Como usar o Dicionário de Dados da Oracle 12c

Aprender a entrar e sair do dicionário de dados é uma das coisas mais importantes que você pode fazer para se tornar um top-notch a Oracle 12c Database Administrator (DBA). o dicionário de dados é um conjunto de tabelas e exibições no banco de dados que armazenam todas as informações sobre o estado atual e passado do banco de dados.

Os dados do dicionário de dados é modificada apenas pela própria Oracle através dos processos de funcionamento da base de dados. A Oracle registra milhões de bits de informação para que você pode usar para sintonizar, seguro, e resolver o banco de dados. Pode levar anos para você dominar. Compreender o dicionário de dados Oracle é uma das varas de medição entre um júnior ou sênior DBA.

O dicionário de dados podem ser divididos em categorias indicadas abaixo.

PrefixoDigitarDescrição
DO UTILIZADOR_VisãoObjetos pertencentes ao usuário atual
TODOS_VisãoTodos os objetos aos quais usuário atual tem acesso
DBA_VisãoTodos os objetos no banco de dados
V $Visãovista do desempenho dinâmico. Preenchida a partir de memória e controlfiles
GV $VisãoComo V $, mas, por várias instâncias em um clusterenvironment
X $Mesatabelas internas que contenham dados crípticas, mas muitas vezes úteis

Da visão de dicionário de tipos listados, como um DBA, você vai passar a maior parte de seu tempo lendo as DBA_ e V $ exibições. Estes pontos de vista fornecer os dados mais úteis e mais facilmente interpretados. Na verdade, os usuários que não são DBAs muitas vezes não têm acesso aos DBA_ e V $ exibições.

Por outro lado, todos os usuários têm acesso aos pontos de vista user_ e ALL_. Mantendo o DBA_, V $ e $ visualizações X escondida é uma parte importante da segurança de banco de dados. Algumas informações nesses pontos de vista poderiam ser usados ​​por pessoas para obter acesso a dados em que eles não são permitidos.

A Oracle 12c tem milhares de visualizações de dicionário de dados no banco de dados. No banco de dados utilizado para fins de demonstração, existem cerca de três mil.

A maioria, mas não todos, DBA_ e V $ exibições têm nomes que são um pouco intuitiva. Por exemplo, aqui está uma amostra de pontos de vista úteis no banco de dados.

NomeConteúdo
DBA_TABLESInformações sobre todas as tabelas
DBA_USERSInformações sobre todos os usuários
DBA_AUDIT_TRAILInformações sobre auditorias capturado
V $ DATABASEInformações sobre a configuração do banco de dados atual
V $ CONTROLFILEInformações sobre os arquivos de controle do banco de dados atuais

Apesar da grande quantidade de objetos de dicionário de dados disponíveis para você, obter informações sobre eles é relativamente fácil com um pouco de prática. A documentação da Oracle vai ser a fonte definitiva de todas as informações, listando os diferentes pontos de vista e descrever o conteúdo das várias colunas. Você pode obter a documentação para a vista no docs da oracle.

Com um pouco de know-how e de senso comum, você também pode obter um monte de informações por conta própria. Muitos dos pontos de vista têm nomes que são auto-explicativos. Com essa informação, você pode olhar para dentro do banco de dados para ver o que estão disponíveis pontos de vista. Há realmente uma visão dos pontos de vista:

SQL> describe dictionaryName nulo? Digitar----------------------------- -------- ------------ -------- TABLE_NAME VARCHAR2 (128) COMMENTSVARCHAR2 (4000)

Às vezes você pode encontrar o que você está procurando com um pouco de bom senso e inteligência. Digamos que você está à procura de informações sobre índices:

SQL> table_name2 SELECT FROM dictionary3 onde table_name como 'DBA%INDEX%'-TABLE_NAME------------------------------------------------------------DBA_INDEXESDBA_INDEXTYPESDBA_INDEXTYPE_ARRAYTYPESDBA_INDEXTYPE_COMMENTSDBA_INDEXTYPE_OPERATORSDBA_PART_INDEXESDBA_XML_INDEXES7 linhas selecionadas.

Familiarize-se com o dicionário de dados é fundamental. Você pode ouvir que não há necessidade de se preocupar com o dicionário de dados, porque todas as ferramentas GUI lhe dar a informação que você precisa. O fato é que essas ferramentas GUI não ler a partir das visões de dicionário de dados.

No entanto, não deixe que lhe dar uma falsa sensação de segurança. Mais de uma vez, vimos que as ferramentas GUI falharam ou ido offline. Se você não está confortável navegar o dicionário de dados por SQL, que poderia ser o fim de seu trabalho DBA em caso de emergência.

Gostaríamos também de informar que apesar da disponibilidade das ferramentas GUI, um DBA, que é eficiente em consultar o dicionário de dados com SQL pode muitas vezes obter respostas precisas mais rapidamente do que alguém que usa uma ferramenta como o banco de dados Express.

Última, se você quiser relatórios muito específicos gerados em uma agenda, não há melhor maneira do que para escrever seus próprios relatórios e planejamento para ser executado como um script através de um programador, como o Windows Task Scheduler ou crontab UNIX / Linux. Então, depois de gerar o relatório, o script pode enviar os resultados para fora através de e-mail.

Você pode gostar de ter relatórios que não são enlatados em Enterprise Manager, como Usuários com Falha de Login do devido passe errada nas últimas 24 horas:

SQL> username SELECT, USERHOST, TIMESTAMP, ACTION_NAME, RETURNCODE2 DE dba_audit_trail3 ONDE 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 linhas selecionadas.

Ou, tabelas criadas pelo RH do usuário nos últimos 100 dias:

SQL> object_name SELECT, created2 DE dba_objects3 ONDE criado> sysdate - 1004 E object_type = 'TABLE'5 e proprietário =' HR'-OBJECT_NAME CRIADO --------------- ----- ---- REGIÕES 09 MAY-13LOCATIONS09-MAY-13JOB_HISTORY-09-MAY-13JOBS 09-MAY-13EMPLOYEES09-MAY-13DEPARTMENTS 09-MAY-13COUNTRIES09-MAY-137 linhas selecionadas.

menu