DBAs World
47 pág.

DBAs World


DisciplinaBancos de Dados para Redes90 materiais672 seguidores
Pré-visualização4 páginas
1
\u201cDBA\u2019s World\u201d
Alexandre Pereira Meire
Maio/2006
apmeire@gmail.com 
Tarefas comuns de um DBA
\ufffd Instalação do software de banco de dados
\ufffd Criação de bancos de dados
\ufffd Upgrade do BD e software para versões mais 
recentes
\ufffd Inicialização e shutdown do BD
\ufffd Gerência das estruturas de armazenamento 
(storage)
\ufffd Gerência de usuários e segurança
2
Tarefas comuns de um DBA 
(cont)
\ufffd Manipulação de objetos: tabelas, índices e 
views
\ufffd Realização de backups do BD e restauração, 
quando necessário
\ufffd Monitoramento da saúde do BD de forma 
proativa e tomada de ações preventivas ou 
corretivas quando requerido
\ufffd Monitoramento e ajuste de performance
Agenda
\ufffd Arquitetura BD Oracle
\ufffd Segurança
\ufffd Backup
\ufffd Gerência de Objetos do BD 
\ufffd Performance
\ufffd Design
3
Arquitetura do BD Oracle
\ufffd Estruturas lógicas:
\u2013 Tablespace, segmento, extensão, bloco
\ufffd Estruturas físicas:
\u2013 Data files, redo log files, control files
\ufffd Instância Oracle
\u2013 Estruturas de memória: SGA, PGA
\u2013 Processos:
\u2022 Processos servidores, processos em background
Estruturas Lógicas
\ufffd Parâmetro 
DB_BLOCK_SIZE 
especificado durante a 
criação do Database
\ufffd Valor: potência de 2
\ufffd Faixa de valores 
depende do SO; 
tipicamente: 2KB-16KB
\ufffd Valor 4KB ou 8KB para 
OLTP, 16KB ou mais 
para sistemas OLAP
4
Estruturas Físicas
\ufffd Data Files
\ufffd Redo Log Files (multiplexado)
\ufffd Control Files (multiplexado) 
\u2013 Database name, nomes e localizações dos 
data files e redo log files
\u2013 Utilizado na inicialização da instância ou 
recuperação a partir de falhas 
(identificação dos data file e redo log)
Tablespaces e Datafiles
5
Estrutura de Memória da 
Instância Oracle
\ufffd SGA (System Global Area)
\u2013 Buffer Cache -The buffer cache is the component of the SGA that acts as the
buffer to store any data being queried or modified.
\u2013 Shared Pool -The shared pool caches information that can be shared among 
users (SQL statements, information from the data dictionary, stored procedures)
\u2013 Redo Log Buffer -This buffer improves performance by caching redo 
information (used for instance recovery) until it can be written to the physical redo 
log files (disk).
\u2013 Large Pool -An optional area that is used for buffering large I/O requests for
various server processes.
\u2013 Java Pool -The Java pool memory is used for all session-specific Java code and
data within the Java Virtual Machine (JVM)
\u2013 Streams Pool -The Streams pool is used by the Oracle Streams product.
Instância Oracle
6
Estrutura de Memória da 
Instância Oracle (cont)
\ufffd PGA (Program Global Area)
\u2013 A program global area (PGA) é a área de memória utilizada por 
cada Oracle server process. 
\u2013 Cada server process é o processo às requisições de um cliente 
conectado. Cada server process tem sua própria área PGA, uma 
área de memória não compartilhada.
\u2013 A PGA é utilizada para processamento de comandos SQL e 
manutenção de informações de logon e sessão.
\u2013 A quantidade de memória PGA utilizada e seu conteúdo depende 
da configuração da instância, i.e., se a instância é executada em 
modo dedicado ou compartilhado (dedicated server or shared 
server mode).
Oracle Background Processes
\ufffd Database Writer (DBWn) -The database writer writes modified 
blocks from the database buffer cache to the files on disk (maximum of 20)
\ufffd Log Writer (LGWR) -The log writer process writes redo log entries to 
disk. Redo log entries are generated in the redo log buffer of the SGA and the log writer 
process writes the redo log entries sequentially into an online redo log file.
\ufffd Checkpoint -At specific times, all modified database buffers in the SGA are 
written to the datafiles by a database writer process (DBWn). This event is called a
checkpoint. The checkpoint process is responsible for signalling DBWn at checkpoints 
and updating all of the datafiles and control files of the database to indicate the most 
recent checkpoint.
7
Oracle Background Processes 
(cont)
\ufffd System Monitor (SMON) -The system monitor performs crash recovery 
when a failed instance starts up again.
\ufffd Process Monitor (PMON) -The process monitor performs process recovery 
when a user process fails. It is responsible for cleaning up the cache and freeing 
resources that the failed process was using.
\ufffd Archiver (ARCn) -When the database is running in archive log mode, one or
more archiver processes copy the redo log files to archival storage when the log files are
full or a log switch occurs.
Agenda
\ufffd Arquitetura BD Oracle
\ufffd Segurança
\ufffd Backup 
\ufffd Gerência de Objetos do BD
\ufffd Performance
\ufffd Design
8
Segurança
\ufffd Usuários
\ufffd Senha e autenticação
\ufffd Roles e privilégios
\ufffd \u201cChecklist\u201d
Criação de usuário
CREATE USER <username>
IDENTIFIED BY <senha>
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP
PROFILE DEFAULT
ACCOUNT UNLOCK
\ufffd Ao criar um usuário, é criado um 
\u2018schema\u2019 para ele
\ufffd O usuário é o \u2018owner\u2019 dos objetos 
criados nesse schema
9
Privilégios
\ufffdPrivilégios de sistema
grant create table to <user1>;
grant create procedure to <user2>;
grant create any table|view|index
|procedure|role|user ...
grant drop any table|view|index
|procedure|role|user ...
grant DBA to <user_dba>;
Privilégios (cont)
\ufffdPrivilégios sobre objetos
grant insert, update, delete on
rh.funcionarios to user1;
grant select on rh.cargos to user2;
(melhor se concedidos através de 
roles)
grant <privilegio> on <objeto> to 
<role> [with admin option];
10
Privilégios (cont)
\ufffd Caso real (dicas):
\u2013 Privilégios sobre objetos: via roles, com senha
\u2013 Privilégios em Produção solicitados formalmente
\u2013 Não existe \u2018log\u2019 de criação e bloqueio de usuários 
e autorizações (deve ser implementado à parte)
\u2013 Modificações de objetos: somente DBAs (exceção 
objetos procedurais em desenv)
Checklist de Segurança
\ufffd Dica 1: instale somente os produtos 
necessários
\u2013 Schemas de exemplo: eliminar ou bloquear os 
usuários desses schemas
\ufffd Dica 2: bloquear e expirar todas as contas de 
usuário criadas na instalação (default via 
DBCA)
\u2013 Contas de usuário abertas são uma brecha a ser 
explorada para obter acesso não autorizado ao 
sistema 
\u2013 Contas de sistema: SYS, SYSTEM, SYSMAN, 
DBSNMP (Enterprise Manager)
11
Checklist de Segurança (cont)
\ufffd Dica 3: Modificar as passwords default
\u2013 Passwords distintas para usuários do sistema
\u2013 \u2018SCOTT\u2019 e outros usuários default: expired & 
locked
\u2013 Implementar regras de validação da password: 
comprimento, histórico, complexidade
\u2013 Parâmetros para passwords: 
\u2022 password_life_time, failed_login_attempts, etc 
\u2013 Caso ANS: geração de passwords (e antiga 
password \u2018default\u2019), bloqueio de usuários, conta 
de usuário \u201cemprestada\u201d
Checklist de Segurança (cont)
\ufffd Dica 4: desabilitar acesso ao Dic. Dados
\u2013 Parâmetro no init<sid>.ora: 
O7_DICTIONARY_ACCESSIBILITY = FALSE
\u2013 Desabilita acesso irrestrito ao Dic. Dados 
\ufffd Dica 5: princípio do privilégio mínimo 
\u2013 Conceder somente os privilégios estritamente 
necessários
\u2013 Revogar privilégios desnecessários do grupo 
PUBLIC
\u2013 Associar usuários a roles quando ele requer todos 
os privilégios dessa role
12
Checklist de Segurança (cont)
\ufffd Dica 6: exigir autenticação no DB
\u2013 Não permitir conexões com o usuário do 
sistema operacional. Parâmetro: 
REMOTE_OS_AUTHENT = FALSE
\ufffd Dica 7: restringir acesso ao sistema 
operacional
\u2013 Limitar a quantidade de usuários com 
privilégios no diretório do Oracle Database 
home (instalação) e seu conteúdo
Checklist de Segurança (cont)
\ufffd Dica 8: restringir o acesso via rede
\u2013 Utilizar um firewall
\u2013 Proteger o Listener (password, privilégios)
\u2013 Monitorar acesso, verificar endereços IP, 
criptografia (?)
\ufffd Dica 9: Aplicar Security Patches da 
Oracle e SO
\ufffd Dica 10: Contactar o suporte da Oracle
13
Usuários em um BD de produção 
(um caso real)
\ufffd Schemas contendo 
objetos (A)
\u2013 Um schema por sistema, 
ou por área de negócio
\u2013 Objetos de BD 
manipulados pelos 
sistemas (S/I/U/D)
\u2013 Nenhum desses usuários 
se conecta ao banco 
(são somente 
containeres de objetos)
\ufffd Usuários pp ditos (B)
\u2013 Usuários se conectam ao 
banco através dos 
sistemas