Comment utiliser le dictionnaire de données Oracle de 12c

L'apprentissage de la dans et hors du dictionnaire de données est l'une des choses les plus importantes que vous pouvez faire pour devenir un top-notch Oracle Database Administrator 12c (DBA). La dictionnaire de données est une collection de tableaux et de vues à l'intérieur de la base de données qui détiennent toutes les informations sur l'état actuel et passé de la base de données.

Les données dans le dictionnaire de données sont modifiées que par Oracle lui-même à travers les processus de fonctionnement de la base de données. Oracle enregistre des millions de bits d'information pour lesquels vous pouvez utiliser pour régler, sécurisé et dépanner la base de données. Il peut prendre des années pour vous de maîtriser. Comprendre le dictionnaire de données Oracle est un des bâtons de mesure entre un junior ou DBA senior.

Le dictionnaire de données peut être divisé selon les catégories indiquées ci-dessous.

PréfixeTypeDescription
USER_VueObjets appartenant à l'utilisateur courant
TOUS_VueTous les objets auxquels utilisateur a accès
DBA_VueTous les objets dans la base de données
V $VueVue dynamique des performances. Peuplé de la mémoire et controlfiles
GV $VueComme V $, mais, pour plusieurs instances dans un clusterenvironment
X $TableLes tables internes contenant des données cryptées mais souvent utiles

Parmi les types de vue dictionnaire cotées, comme un DBA, vous passerez la plupart de votre temps à lire les DBA_ et V $ vues. Ces vues fournissent les données les plus utiles et les plus faciles à interpréter. En fait, les utilisateurs qui ne sont pas souvent DBA auront pas accès aux DBA_ et V $ vues.

D'autre part, tous les utilisateurs ont accès à la vue USER_ et ALL_. Garder le DBA_, V $ et X $ vues caché est une partie importante de la sécurité de base de données. Certaines informations contenues dans ces vues pourrait être utilisé par des personnes d'avoir accès aux données dont ils ne sont pas autorisés.

Oracle 12c a des milliers de vues du dictionnaire de données dans la base de données. Dans la base de données utilisée à des fins de démonstration, il ya environ trois mille.

La plupart, mais pas tous, DBA_ et V $ vues ont des noms qui sont quelque peu intuitive. Par exemple, voici un échantillonnage de vues utiles dans la base de données.

NomContenu
DBA_TABLESInformations sur tous les tableaux
DBA_USERSInformations sur tous les utilisateurs
DBA_AUDIT_TRAILInformation sur les audits capturé
V $ DATABASEInformations sur la configuration de base de données actuelle
V $ CONTROLFILEInformations sur les fichiers de contrôle de base de données actuelles



Malgré la grande quantité d'objets du dictionnaire de données disponibles pour vous, obtenir de l'information à leur sujet est relativement facile avec un peu de pratique. La documentation Oracle va être la source définitive de toutes les informations, énumérant les différents points de vue et décrivant le contenu des différentes colonnes. Vous pouvez obtenir la documentation pour la vue au docs Oracle.

Avec un peu de savoir-faire et le bon sens, vous pouvez également obtenir beaucoup de l'information vous-même. Beaucoup de points de vue ont des noms qui sont auto-explicatif. Avec cette information, vous pouvez regarder à l'intérieur de la base de données pour voir ce point de vue sont disponibles. Il est en fait une vue sur les points de vue:

SQL> décrire dictionaryName Null? Tapez ----------------------------- -------- ------------ -------- TABLE_NAME VARCHAR2 (128) COMMENTSVARCHAR2 (4000)

Vous pouvez parfois trouver ce que vous cherchez avec un peu de bon sens et l'intelligence. Dites que vous êtes à la recherche d'informations sur les indices:

SQL> table_name2 SELECT FROM WHERE table_name comme dictionary3 'DBA%INDEX%'-TABLE_NAME------------------------------------------------------------DBA_INDEXESDBA_INDEXTYPESDBA_INDEXTYPE_ARRAYTYPESDBA_INDEXTYPE_COMMENTSDBA_INDEXTYPE_OPERATORSDBA_PART_INDEXESDBA_XML_INDEXES7 lignes sélectionnées.

Se familiariser avec le dictionnaire de données est primordiale. Vous pourriez entendre qu'il n'y a pas besoin de vous inquiéter le dictionnaire de données parce que tous les outils d'interface graphique vous donner les informations que vous avez besoin. Le fait est que ces outils GUI ne lisent à partir du dictionnaire de données vues.

Cependant, ne vous laissez pas donner un faux sentiment de sécurité. Plus d'une fois, nous avons vu où les outils d'interface graphique ont échoué ou disparu déconnecté. Si vous n'êtes pas à l'aise de naviguer le dictionnaire de données par SQL, ce pourrait être la fin de votre travail de DBA en cas d'urgence.

Nous aimerions également vous informer que malgré la disponibilité des outils d'interface graphique, un DBA qui est efficace à interroger le dictionnaire de données avec SQL peuvent souvent obtenir des réponses précises plus rapidement que quelqu'un en utilisant un outil comme base de données express.

Enfin, si vous voulez des rapports très spécifiques générés sur un calendrier, il n'y a pas de meilleur moyen que d'écrire vos propres rapports et le calendrier afin de fonctionner comme un script par un ordonnanceur, comme Planificateur de tâches Windows ou crontab UNIX / Linux. Puis, après la génération du rapport, le script peut envoyer les résultats via e-mail.

Vous pouvez, comme d'avoir des rapports qui ne sont pas mis en conserve dans Enterprise Manager, tels que les utilisateurs avec Échec Login suite à une mauvaise passe dans les 24 dernières heures:

SQL> SELECT USERNAME, USERHOST, timestamp, ACTION_NAME, RETURNCODE2 DE dba_audit_trail3 où username = 'ORDER BY HR'4 timestamp-username USERHOSTTIMESTAMP ACTION_NAME RETURNCODE -------- ------------- - --------- ------------ ---------- HRorasvr0106-JUN-13 LOGON 0HRorasvr0108-JUN-13 LOGON 1017HRorasvr0109-JUN-13 LOGOFF0HRorasvr0116-JUN-13 LOGON 0HRorasvr0117-JUN-13 LOGON 0HRorasvr0117-JUN-13 LOGOFF0HRorasvr0118-JUN-13 LOGOFF0HRorasvr0128-JUN-13 LOGON 0HRorasvr0128-JUN-13 LOGON 1017HRorasvr0128-JUN-13 LOGOFF010 lignes sélectionnées.

Ou, tableaux créés par les RH de l'utilisateur dans les 100 derniers jours:

SQL> SELECT nom_objet, created2 DE dba_objects3 OÙ créé> sysdate - 1004 ET object_type = 'TABLE'5 et ​​propriétaire =' HR'-OBJECT_NAME CRÉÉ --------------- ----- ---- RÉGIONS 09-Mai-13LOCATIONS09-MAI-MAI-09 13JOB_HISTORY-13JOBS 09-Mai-13EMPLOYEES09-MAI-MAI-09 13DEPARTMENTS-13COUNTRIES09-MAI-137 lignes sélectionnées.

» » » Comment utiliser le dictionnaire de données Oracle de 12c