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_PRIVSSESSION_PRIVSDBA_TAB_PRIVSDBA_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
SELECTnomeado 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:
- Permitir que usuários leiam e gravem dados (através de SQL).
- Garantir a segurança dos dados.
- Implementar regras de integridade (PK, FK, CHECK, UK).
- Velocidade e facilidade de acesso.
- Disponibilidade.
- Backup e recuperação.
- Lidar com a concorrência de múltiplos usuários.
- Independência de dados.
- 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
- Definir um nome exclusivo (SID), ex:
teste. - Definir a variável de ambiente
ORACLE_SID. - Criar o arquivo de parâmetros
initSID.ora(ex:db_block_size = 8192). - Determinar a estrutura de diretórios (rastreamento, alertas, etc.).
- Criar o arquivo de senhas (
orapwtest). - Iniciar a instância em modo NOMOUNT.
- Preparar o comando
CREATE DATABASE. - Executar o
CREATE DATABASEvia SQL*Plus comoSYSDBA. - Criar as exibições do catálogo (scripts
catalog.sql). - Instalar a opção de PL/SQL (script
catproc.sql). - 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.