Il s'agit de la commande oid2name qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS
PROGRAMME:
Nom
oid2name - résout les OID et les nœuds de fichiers dans un répertoire de données PostgreSQL
SYNOPSIS
oid2name [option...]
DESCRIPTION
oid2name est un programme utilitaire qui aide les administrateurs à examiner la structure de fichier utilisée
par PostgreSQL. Pour l'utiliser, vous devez vous familiariser avec le fichier de base de données
structure, qui est décrite au chapitre 63, Stockage physique de la base de données, dans le
Documentation.
Notes
Le nom « oid2name » est historique, et est en fait assez trompeur, puisque la plupart des
le moment où vous l'utiliserez, vous serez vraiment concerné par les numéros de nœud de fichier des tables
(qui sont les noms de fichiers visibles dans les répertoires de la base de données). Assurez-vous de comprendre
la différence entre les OID de table et les nœuds de fichiers de table !
oid2name se connecte à une base de données cible et extrait l'OID, le nœud de fichier et/ou le nom de la table
informations. Vous pouvez également lui faire afficher les OID de base de données ou les OID d'espace de table.
OPTIONS
oid2name accepte les arguments de ligne de commande suivants :
-f nœud de fichier
afficher les informations pour la table avec filenode nœud de fichier
-i
inclure des index et des séquences dans la liste
-o oid
afficher les informations pour la table avec OID oid
-q
omettre les en-têtes (utile pour les scripts)
-s
afficher les OID des tablespaces
-S
inclure des objets système (ceux dans schéma_informations, pg_toast et pg_catalogue schémas)
-t nom_table_motif
afficher les informations pour la correspondance des tables nom_table_motif
-V
--version
Imprimez la version oid2name et quittez.
-x
afficher plus d'informations sur chaque objet affiché : nom de l'espace de table, nom du schéma et
OID
-?
--Aidez-moi
Affichez l'aide sur les arguments de ligne de commande oid2name et quittez.
oid2name accepte également les arguments de ligne de commande suivants pour les paramètres de connexion :
-d base de données
base de données à laquelle se connecter
-H hôte
hôte du serveur de base de données
-p port
port du serveur de base de données
-U Nom d'utilisateur
nom d'utilisateur pour se connecter en tant que
-P Mot de passe
mot de passe (obsolète - le mettre sur la ligne de commande est un danger pour la sécurité)
Pour afficher des tableaux spécifiques, sélectionnez les tableaux à afficher en utilisant -o, -f et/ou -t. -o
prend un OID, -f prend un filenode, et -t prend un nom de table (en fait, c'est un LIKE
motif, vous pouvez donc utiliser des choses comme foo%). Vous pouvez utiliser autant de ces options que vous
like, et la liste inclura tous les objets correspondant à l'une des options. Mais notez
que ces options ne peuvent afficher que les objets de la base de données donnés par -d.
Si vous ne donnez aucun de -o, -f or -t, mais donnez -d, il listera toutes les tables dans le
base de données nommée par -d. Dans ce mode, le -S et -i les options contrôlent ce qui est répertorié.
Si tu ne donnes pas -d soit, il affichera une liste des OID de la base de données. Alternativement, vous
peut donner -s pour obtenir une liste de tablespace.
NOTES
oid2name nécessite un serveur de base de données en cours d'exécution avec des catalogues système non corrompus. Il est
donc d'une utilité limitée pour la récupération après une corruption catastrophique de la base de données
situations.
EXEMPLES
$ # qu'y a-t-il dans ce serveur de base de données, de toute façon ?
$ oid2nom
Toutes les bases de données :
Tablespace de nom de base de données Oid
----------------------------------
17228 alvherre pg_default
17255 régression pg_default
17227 modèle0 pg_default
1 modèle1 pg_default
$ oid2name -s
Tous les tablespaces :
Nom de l'espace de table Oid
-------------------------
1663 pg_default
1664 pg_global
155151 disque rapide
155152 bigdisque
$ # OK, regardons dans la base de données alvherre
$ cd $PGDATA/base/17228
$ # obtenir les 10 premiers objets db dans le tablespace par défaut, classés par taille
$ ls -lS * | tête -10
-rw -------- 1 alvherre alvherre 136536064 sep 14 09:51 155173
-rw -------- 1 alvherre alvherre 17965056 sep 14 09:51 1155291
-rw -------- 1 alvherre alvherre 1204224 sep 14 09:51 16717
-rw -------- 1 alvherre alvherre 581632 sep 6 17:51 1255
-rw -------- 1 alvherre alvherre 237568 sep 14 09:50 16674
-rw -------- 1 alvherre alvherre 212992 sep 14 09:51 1249
-rw -------- 1 alvherre alvherre 204800 sep 14 09:51 16684
-rw -------- 1 alvherre alvherre 196608 sep 14 09:50 16700
-rw -------- 1 alvherre alvherre 163840 sep 14 09:50 16699
-rw -------- 1 alvherre alvherre 122880 sep 6 17:51 16751
$ # Je me demande quel est le fichier 155173 ...
$ oid2name -d alvherre -f 155173
De la base de données "alvherre":
Nom de la table des nœuds de fichier
----------------------
Comptes 155173
$ # vous pouvez demander plus d'un objet
$ oid2name -d alvherre -f 155173 -f 1155291
De la base de données "alvherre":
Nom de la table des nœuds de fichier
-------------------------
Comptes 155173
1155291 account_pkey
$ # vous pouvez mélanger les options et obtenir plus de détails avec -x
$ oid2name -d alvherre -t comptes -f 1155291 -x
De la base de données "alvherre":
Nom de la table Filenode Oid Schema Tablespace
-------------------------------------------------- ----
155173 comptes 155173 public pg_default
1155291 account_pkey 1155291 public pg_default
$ # affiche l'espace disque pour chaque objet de base de données
$ du [0-9]* |
> pendant la lecture SIZE FILENODE
> faire
> echo "$SIZE `oid2name -q -d alvherre -i -f $FILENODE`"
> fait
16 1155287 branches_pkey
16 1155289 caissiers_pkey
17561 1155291 account_pkey
$ # idem, mais trié par taille
$ du [0-9]* | trier -rn | tout en lisant TAILLE FN
> faire
> echo "$SIZE `oid2name -q -d alvherre -f $FN`"
> fait
133466 155173 comptes
17561 1155291 account_pkey
1177 16717 pg_proc_proname_args_nsp_index
$ # Si vous voulez voir ce qu'il y a dans les tablespaces, utilisez le répertoire pg_tblspc
$ cd $PGDATA/pg_tblspc
$ oid2name -s
Tous les tablespaces :
Nom de l'espace de table Oid
-------------------------
1663 pg_default
1664 pg_global
155151 disque rapide
155152 bigdisque
$ # quelles bases de données ont des objets dans le tablespace "fastdisk" ?
$ ls -d 155151/*
155151/17228/155151/PG_VERSION
$ # Oh, qu'est-ce que la base de données 17228 encore ?
$ oid2nom
Toutes les bases de données :
Tablespace de nom de base de données Oid
----------------------------------
17228 alvherre pg_default
17255 régression pg_default
17227 modèle0 pg_default
1 modèle1 pg_default
$ # Voyons quels objets cette base de données a-t-elle dans le tablespace.
$ cd 155151/17228
$ ls -l
Total des 0
-rw------- 1 postgres postgres 0 sept 13 23:20 155156
$ # OK, c'est une jolie petite table... mais laquelle est-ce ?
$ oid2name -d alvherre -f 155156
De la base de données "alvherre":
Nom de la table des nœuds de fichier
----------------------
155156 toto
Utilisez oid2name en ligne en utilisant les services onworks.net