Documentation PostgreSQL 9.1.24 > Annexes > Modules supplémentaires fournis > pageinspect | |
oid2name | passwordcheck |
Le module pageinspect fournit des fonctions qui vous permettent d'inspecter le contenu des pages de la base de données à un bas niveau, ce qui utile pour le débogage. Toutes ces fonctions ne sont utilisables que par les super-utilisateurs.
get_raw_page lit le bloc spécifié de la relation nommée et renvoie une copie en tant que valeur de type bytea. Ceci permet la récupération de la copie cohérente à un instant t d'un bloc spécifique. fork devrait être 'main' pour les données, et 'fsm' pour la carte des espaces libres, 'vm' pour la carte de visibilité, ou 'init' pour la partie initialisation.
Une version raccourcie de get_raw_page, pour le lire que la partie des données. Équivalent à get_raw_page(relname, 'main', blkno).
page_header affiche les champs communs à toutes les pages des tables et index PostgreSQL™.
L'image d'une page obtenu avec get_raw_page doit être passé en argument. Par exemple :
test=# SELECT * FROM page_header(get_raw_page('pg_class', 0)); lsn | tli | flags | lower | upper | special | pagesize | version | prune_xid -----------+-----+-------+-------+-------+---------+----------+---------+----------- 0/24A1B50 | 1 | 1 | 232 | 368 | 8192 | 8192 | 4 | 0
Les colonnes renvoyées correspondent aux champs de la structure PageHeaderData. Voir src/include/storage/bufpage.h pour les détails.
heap_page_items affiche tous les pointeurs de ligne dans une page de table. Pour les pointeurs de ligne en utilisation, les en-têtes de ligne sont aussi affichées. Toutes les lignes sont affichées, qu'elles soient ou non visibles dans l'image MVCC au moment où la page brute a été copiée.
Une image d'une page de table obtenue avec get_raw_page doit être fournie en argument. Par exemple :
test=# SELECT * FROM heap_page_items(get_raw_page('pg_class', 0));
Voir src/include/storage/itemid.h et src/include/access/htup.h pour des explications sur les champs renvoyés.
bt_metap renvoie des informations sur une méta-page d'un index B-tree. Par exemple :
test=# SELECT * FROM bt_metap('pg_cast_oid_index'); -[ RECORD 1 ]----- magic | 340322 version | 2 root | 1 level | 0 fastroot | 1 fastlevel | 0
bt_page_stats renvoie un résumé des informations sur les pages enfants des index B-tree. Par exemple :
test=# SELECT * FROM bt_page_stats('pg_cast_oid_index', 1); -[ RECORD 1 ]-+----- blkno | 1 type | l live_items | 256 dead_items | 0 avg_item_size | 12 page_size | 8192 free_size | 4056 btpo_prev | 0 btpo_next | 0 btpo | 0 btpo_flags | 3
bt_page_items renvoie des informations détaillées sur tous les éléments d'une page d'index btree. Par exemple :
test=# SELECT * FROM bt_page_items('pg_cast_oid_index', 1); itemoffset | ctid | itemlen | nulls | vars | data ------------+---------+---------+-------+------+------------- 1 | (0,1) | 12 | f | f | 23 27 00 00 2 | (0,2) | 12 | f | f | 24 27 00 00 3 | (0,3) | 12 | f | f | 25 27 00 00 4 | (0,4) | 12 | f | f | 26 27 00 00 5 | (0,5) | 12 | f | f | 27 27 00 00 6 | (0,6) | 12 | f | f | 28 27 00 00 7 | (0,7) | 12 | f | f | 29 27 00 00 8 | (0,8) | 12 | f | f | 2a 27 00 00
fsm_page_contents affiche la structure interne d'une page FSM. La sortie est une chaîne multi-lignes, chaque ligne décrivant un nœud de l'arbre binaire d'une page. Seuls les nœuds différents de zéro sont affichés. Le pointeur appelé « next », qui pointe vers le prochain slot à renvoyer pour cette page, est aussi affiché.
Voir src/backend/storage/freespace/README pour plus d'informations sur la structure d'une page FSM.