Guia de Administração e Arquitetura Oracle Database

Classificado em Computação

Escrito em em português com um tamanho de 10,13 KB

Comparação de Velocidade: RAM vs. Disco

Acesso rápido à velocidade de acesso do disco e RAM:

  • RAM: ~ 10^-9 segundos
  • Disco: ~ 10^-3 segundos

Gerenciamento de Backups com RMAN

O RMAN (Recovery Manager) é o comando utilizado para suportar operações de backup. Ele é responsável por gerenciar backups e restaurar arquivos de dados (datafiles), registros de arquivos (archivelogs) e arquivos de controle (control files). Além disso, pode ser usado para a recuperação completa ou incompleta de um banco de dados.

Comandos GRANT, REVOKE e Privilégios

Privilégios de Sistema: É um privilégio que permite ao usuário executar ações específicas no banco de dados, como, por exemplo, criar uma tabela.

Privilégios de Objeto: São privilégios que permitem ao usuário acessar e manipular um objeto específico.

Para obter informações sobre os privilégios, estão disponíveis as seguintes exibições (views):

  • DBA_SYS_PRIVS
  • SESSION_PRIVS
  • DBA_TAB_PRIVS
  • DBA_COL_PRIVS

O que são Views (Visões) e sua Utilidade

Uma view (visão) é uma tabela lógica (não física), baseada em outras tabelas ou exibições.

  • Funciona como uma janela através da qual se pode exibir ou modificar dados em tabelas.
  • Uma visão não contém dados em si.
  • As tabelas em que se define uma visão são chamadas de tabelas base.
  • A visão é armazenada como um comando SELECT nomeado no dicionário de dados.

Utiliza-se para:

  • Obter acesso limitado ao banco de dados, exibindo apenas partes específicas.
  • Substituir consultas complexas por consultas simples através de múltiplas visões. Por exemplo, a seleção de uma visão definida em várias tabelas é mais fácil de perceber do que usar combinações (JOIN).
  • Proporcionar independência de dados.
  • Fornecer maneiras diferentes de ver os mesmos dados, adaptados a cada utilizador ou aplicação.
  • Permitir o acesso a grupos de usuários de acordo com critérios específicos.

Arquitetura Oracle e Conceitos de Banco de Dados

Um banco de dados (BD) é um repositório que nos permite armazenar grandes quantidades de informações de forma organizada para fácil localização e uso. Do ponto de vista técnico, é um sistema composto por um conjunto de dados armazenados em discos e um conjunto de programas que os manipulam.

Recursos de um RDBMS (Relational Data Base Management System)

Um SGBD deve apresentar os seguintes serviços:

  1. Permitir que usuários leiam e gravem dados (através de SQL).
  2. Garantir a segurança dos dados.
  3. Implementar regras de integridade (PK, FK, CHECK, UK).
  4. Velocidade e facilidade de acesso.
  5. Disponibilidade.
  6. Backup e recuperação.
  7. Lidar com a concorrência de múltiplos usuários.
  8. Independência de dados.
  9. Capacidade de implementar transações.

Instância

Uma instância Oracle é composta por vários processos e espaços de memória compartilhada necessários para acessar as informações no banco de dados. O painel é constituído por processos do usuário, processos de background do Oracle e a SGA (espaço de memória compartilhada).

Arquivo de Controle (Control File)

É um pequeno arquivo binário que define o status em tempo real do banco de dados físico. Suas funções incluem:

  • Manter a integridade do banco de dados.
  • É essencial para a montagem (MOUNT) do banco durante a inicialização.
  • Está associado a apenas um banco de dados.
  • Sua perda pode exigir a recuperação da base de dados.
  • Seu tamanho inicial é definido durante o CREATE DATABASE.

Datafile (Arquivo de Dados)

Um datafile é uma representação física de um tablespace. São os arquivos onde a informação é armazenada fisicamente.

Propriedades ACID

É um conjunto de propriedades que uma transação deve satisfazer:

  • Atomicidade (Atomicity): Garante que a transação seja concluída totalmente ou não seja feita de todo.
  • Consistência (Consistency): Assegura que o banco de dados passe de um estado consistente a outro, respeitando todas as regras de integridade.
  • Isolamento (Isolation): Garante que as operações não interfiram umas nas outras.
  • Durabilidade (Durability): Assegura a permanência das alterações após a conclusão da transação, mesmo em caso de falha do sistema (como queda de energia).

UNDO Tablespace e Segmentos de Rollback

O segmento de UNDO é usado para armazenar valores antigos (dados de undo) quando um processo altera informações. Ele armazena a localização e o estado anterior dos dados.

Tablespace

O DBA cria tablespaces para maior controle e manutenção. O Oracle reconhece dois tipos:

  • SYSTEM Tablespace: Criado com o banco de dados, é obrigatório e contém o dicionário de dados e o segmento de undo do sistema.
  • Non-SYSTEM Tablespace: Oferece flexibilidade, separando segmentos de undo, dados temporários e aplicações para otimizar backups e o controle de espaço.

Segmentos de Rollback

Objetos internos que permitem a restauração de transações e garantem a coerência na leitura. Sua estrutura inclui:

  • Identificação da transação.
  • Endereço do bloco da tabela.
  • Número da linha e da coluna.
  • Valor dos dados antigos.

Parâmetros: O arquivo init.ora

O arquivo init.ora contém os parâmetros de inicialização do sistema Oracle. O DBA o utiliza para configurar o SGBD, determinar o tamanho da SGA e localizar arquivos de controle. Por ser essencial, deve ser copiado regularmente para proteção.

Tipos de Desligamento (Shutdown)

  • Shutdown Normal: Impede novos acessos, aguarda a desconexão de todos os usuários e fecha o banco com cuidado. É a opção recomendada.
  • Shutdown Immediate: Encerra as sentenças em processo, faz o rollback de transações não confirmadas e para o banco imediatamente. Não exige recuperação na próxima inicialização.
  • Shutdown Abort: Finaliza instruções abruptamente sem realizar rollback. Exige recuperação (recovery) na próxima inicialização e deve ser usado apenas em emergências.

Tipos de Inicialização (Startup)

  • Normal
  • Nomount
  • Mount
  • Open
  • Restrict

SQL*Loader

O SQL*Loader é um utilitário da Oracle para carregar dados de arquivos externos (texto ou binários) para o banco de dados.

Estruturas de Tablespace e DBCA

  • Objetos (tabelas, índices) são armazenados em tablespaces.
  • Um banco de dados possui vários tablespaces.
  • Um tablespace pode ter vários datafiles, mas um datafile pertence a apenas um tablespace.

Funções dos Tablespaces Específicos

  • SYSTEM: Dicionário de dados e unidades de programa.
  • SYSAUX: Auxiliar do sistema.
  • TEMP: Operações temporárias.
  • UNDO: Dados de reversão.
  • USERS: Dados dos usuários.
  • EXAMPLE: Objetos de demonstração (demo).

Arquivos de Parâmetros: PFILE e SPFILE

  • PFILE (Static): Arquivo de texto (initSID.ora) editável manualmente.
  • SPFILE (Persistent): Arquivo binário (spfileSID.ora) modificado via comandos Oracle (ALTER SYSTEM).

Passos para Criar um Banco de Dados Manualmente

  1. Definir um nome exclusivo (SID), ex: teste.
  2. Definir a variável de ambiente ORACLE_SID.
  3. Criar o arquivo de parâmetros initSID.ora (ex: db_block_size = 8192).
  4. Determinar a estrutura de diretórios (rastreamento, alertas, etc.).
  5. Criar o arquivo de senhas (orapwtest).
  6. Iniciar a instância em modo NOMOUNT.
  7. Preparar o comando CREATE DATABASE.
  8. Executar o CREATE DATABASE via SQL*Plus como SYSDBA.
  9. Criar as exibições do catálogo (scripts catalog.sql).
  10. Instalar a opção de PL/SQL (script catproc.sql).
  11. Adicionar arquivos de log ou controle adicionais, se necessário.

Armazenamento: Extensões e Segmentos

O tamanho das extensões futuras de um segmento é definido na cláusula STORAGE:

  • INITIAL: Tamanho do primeiro ramal.
  • NEXT: Tamanho da próxima extensão.
  • PCTINCREASE: Percentual de aumento para extensões subsequentes.
  • MINEXTENTS: Número inicial de extensões reservadas.
  • MAXEXTENTS: Número máximo de extensões permitidas.

Views de Desempenho e Dicionário

  • V$LOG: Mostra os Redo Logs ativos.
  • V$LOGFILE: Grupos de Redo Logs.
  • V$DATAFILE: Arquivos de dados do banco.
  • V$CONTROLFILE: Localização dos arquivos de controle.
  • DBA_USERS: Informações sobre usuários.
  • DBA_PROFILES: Perfis e limites.
  • DBA_TABLESPACES: Descrição dos tablespaces.
  • DBA_TABLES: Descrição das tabelas relacionais.
  • DBA_SYS_PRIVS: Privilégios de sistema concedidos.
  • DBA_ROLE_PRIVS: Papéis (roles) concedidos.

Entradas relacionadas: