Este documento fornece uma visão geral de um workshop para DBAs que visa ensinar desde a instalação do sistema operacional até a configuração do banco de dados Oracle. A agenda inclui introdução ao papel de DBA, sistemas operacionais, armazenamento, instalação e configuração do Oracle database nas versões 10g, 11g e 12c. O workshop também aborda preparação do sistema operacional, gerenciamento e manutenção do banco de dados.
1. DBA Essential – Prepare, Instale e Configure
DBA
Essential
Prepare, Instale e Configure
10g 11g & 12c
2. Visão Geral
Este workshop destina-se a profissionais que buscam
“iniciar/aprimorar” seus conhecimentos com o Oracle
database nas versões 10g, 11g e 12c.
É desejável que se tenha o mínimo de conhecimento de
bancos de dados relacionais e linguagem SQL.
O workshop visa lhe ensinar a montar um ambiente de
banco de dados (Oracle) desde a etapa de instalação
do sistema operacional. Neste workshop trabalharemos
com os sistemas operacionais Linux e Solaris e as
versões 10g, 11g e 12c do Oracle database.
2
8. Introdução
O que é ser DBA?8
O que faz um DBA:
Desenha a arquitetura do servidor.
Instala (às vezes) e prepara (sempre) o sistema operacional.
Instala e configura o banco de dados.
Executa testes de performance do banco de dados.
Cria usuários.
Monitora e acompanha o crescimento do banco.
Monitora o desempenho do banco de dados.
Auxilia os desenvolvedores em processos de tuning de SQL.
Tuning reativo e proativo no banco de dados.
Configura e monitora o backup.
Testa o restore e o recovery do backup.
Manutenção planejada e não planejada.
9. Introdução
Mercado de Trabalho9
Onde há DBAs?
Empresas de médio para grande porte.
Consultorias (Professional Services).
Meios de contratação:
CLT (Salário fixo mensal).
PJ (Contratação por horas trabalhadas).
Níveis hierárquicos de um DBA:
Júnior: Inicio da carreira.
Pleno: Mínimo 2 anos de carreira.
Sênior: Mínimo 5 anos de carreira.
Especialista: Mais de 10 anos de carreira.
10. Introdução
Mercado de Trabalho10
É fácil me tornar DBA?
Depende de seu esforço!
Quais os pré-requisitos mínimos para começar?
Conhecimentos básicos de Linux.
Conhecimentos intermediários de inglês.
No mínimo certificação OCP.
13. Introdução
Como Aprender?13
Monte um ambiente de estudos:
Oracle VirtualBox.
Oracle Enterprise Linux.
Oracle Database 12c.
Link do post para montar um ambiente de estudos.
14. Introdução
Certificações14
Nível I: OCA (Oracle Certified Assiciate).
Nível II: OCP (Oracle Certified Professional).
Treinamento oficial + Exame 1Z0-053 ou 1Z0-063
Nível III: OCM (Oracle Certified Master).
OCP + Treinamentos + 3 dias de prova
17. Introdução
Treinamentos17
Oficiais:
Muito teóricos e pouco prático, te preparam para
passar em determinada prova e só!
Obrigatório para certificação OCP.
Fixam muito bem os conceitos em sua memória.
Não Oficiais:
Mais práticos e pouco teóricos, você aprende fazendo
e com exemplos mais próximos da realidade.
Podem eventualmente ajudar em alguma certificação.
18. Introdução
Próximos Passos18
Monte seu laboratório:
Instale o VirtualBox.
Instale o Oracle Enterprise Linux.
Instale o Banco de dados.
Pesquise, leia, estude:
Blogs.
Fóruns.
Tutoriais e etc...
Na internet de hoje não há limites, tudo vai depender de seu esforço!
20. Sistemas Operacionais
Linux20
Nesta etapa do treinamento você vai aprender:
Criar sua VM.
Instalar o Linux.
Trabalhar com o “Shell”.
Gerenciar processos e usuários.
Gerenciamento de arquivos e diretórios.
Analise de performance do servidor.
Configurar os recursos do sistema.
Gerenciamento de software.
43. Sistemas Operacionais
Linux43
Trabalhando com “Shell”:
Para se conectar remotamente use alguma ferramenta
como Putty ou MobaXterm:
Use o comando: ssh <usuário>@<servidor>
Após conectar-se o prompt lhe exibe o sinal “$”
44. Sistemas Operacionais
Linux44
Trabalhando com “Shell”:
Para começar, algumas dicas de comandos:
man: Manual online de comandos do SO.
Digite: man top
O que aconteceu?
whatis: Descrição breve de um comando.
Digite: whatis top
O que aconteceu?
Quem está conectado agora?
Digite: who
45. Sistemas Operacionais
Linux45
Trabalhando com “Shell”:
Como encontrar o caminho de um executável?
Digite: which man ou whereis man
Quero limpar minha tela.
Digite: clear
Preciso encontrar meus arquivos sql. E agora?
Digite: find –name *sql
Viu? Linux não é coisa de outro mundo, muito menos algo tão
complexo como você imaginava. Vamos em frente, ainda há
muitas novidades!
46. Sistemas Operacionais
Linux46
Variáveis de ambiente:
O que é?: Espaços em memória que armazenam
valores para serem utilizados pelo SO.
Exemplos:
$ORACLE_HOME: Local de instalação do Oracle
$ORACLE_SID: Nome da sua instancia
$PATH: Local dos arquivos executáveis
$HOME: Diretório padrão do usuário
47. Sistemas Operacionais
Linux47
Variáveis de ambiente:
Para consultar suas variáveis use echo:
As variáveis de ambiente são definidas no arquivo
.bash_profile, que fica no “home” do usuário “oracle”
(/home/oracle).
48. Sistemas Operacionais
Linux48
Variáveis de ambiente (alias):
Comandos longos se tornam “chatos” para trabalhar,
porém você pode encurtá-los com um “alias” veja:
Comando:
Construindo um alias:
Agora fica mais fácil, basta digitar:
49. Sistemas Operacionais
Linux49
Histórico de comandos:
Você pode capturar o histórico de seus comandos dentro do Shell
digitando o comando history:
Neste exemplo, capturamos o históricos dos últimos 5 comandos.
Você pode reexecutar um comando diretamente pele seu numero
no histórico, conforme a imagem.
50. Sistemas Operacionais
Linux50
Gerenciamento de processos e usuários:
Para ver os processos em execução dentro do SO, use o comando ps
(process status). Este comando sem nenhum parâmetro, exibe somente os
processos que foram iniciados pela sua sessão.
Você pode usar as opções –ef e | grep <string>, para refinar
sua busca. Vendo todos os resultados, dentro dos seus critérios de
pesquisa.
51. Sistemas Operacionais
Linux51
Gerenciamento de processos e usuários:
Com a opção –fu, você pode listar todos os processos de um usuário
em especifico, por exemplo, listar todos os processos do usuário oracle.
Exemplo: Imagine que por alguma razão, você precisa encontrar o
processo do RMAN (Recovery Manager) dentro do SO e na sequencia
eliminá-lo.
Para eliminar o processo, use o comando kill
52. Sistemas Operacionais
Linux52
Gerenciamento de processos e usuários:
Preciso saber quem está conectado no SO. E agora? Use o
comando who.
Ótimo, mas agora desta lista de conexões, qual é a minha
conexão? Digite who am i
53. Sistemas Operacionais
Linux53
Gerenciamento de processos e usuários:
O processo de instalação do Oracle, pede que você limite o
número máximo de processos que podem ser executados
simultaneamente, por questões de segurança.
Essas configurações, são definidas pelo usuário “root” no
arquivo “/etc/security/limits.conf”
Veja como está o seu arquivo agora, com o comando cat
54. Sistemas Operacionais
Linux54
Gerenciamento de processos e usuários:
Caso precise, você pode trocar a senha do usuário dentro
do sistema operacional, para isso use o comando passwd
Neste comando, o usuário troca a própria senha, mas
quando um usuário precisa trocar a senha de outro usuário,
é precisa estar logado como “root” e acrescentar o
usuário.
55. Sistemas Operacionais
Linux55
Gerenciamento de processos e usuários:
Em certos momentos, você vai precisar executar comandos
com o usuário “root” (Administrador). Para fazer isso pode
se utilizar o comando su – root
Após fornecer a senha de root, você estará conectado com
o usuário administrador do sistema. Cuidado!
Repare que em seu prompt de comando agora está a
mensagem root@<hostname>#. E não mais como antes
user@<hostname>$
Use as credenciais de root, apenas quando necessário, jamais
trabalhe diretamente com esse usuário.
56. Sistemas Operacionais
Linux56
Gerenciamento de processos e usuários:
É possível também (e mais seguro), ter o privilégios de root,
diretamente em seu usuário para não usar as credenciais de
root diretamente. Use o comando sudo
Para fazer uso do comando sudo, é preciso antes que o
usuário em questão esteja registrado no arquivo
/etc/sudoers, com uma linha similar a esta:
A partir de então, pode se executar qualquer comando de
root, desde que precedido da palavra sudo
57. Sistemas Operacionais
Linux57
Gerenciamento de processos e usuários:
Durante a instalação do Oracle, será preciso criar grupos
de usuários além do próprio usuário oracle, abaixo
comandos:
Adicionar um grupo:
Remover um grupo:
Você pode consultar os grupos existentes em:
Para adicionar usuários:
Para consultar informações de usuários consulte o arquivo,
/etc/passwd
60. Sistemas Operacionais
Linux60
Gerenciamento de arquivos e diretórios:
Em qual diretório estou? pwd
Preciso acessar a pasta /oracle/product: cd
Preciso voltar para meu diretório home.
Preciso voltar um nível no diretório.
61. Sistemas Operacionais
Linux61
Gerenciamento de arquivos e diretórios:
Crie uma pasta chamada “scripts” dentro de sua home.
Acesse a pasta e imprima sua localização.
Tente criar uma pasta diretamente no diretório /
O que aconteceu? Veja os privilégios deste diretório.
62. Sistemas Operacionais
Linux62
Gerenciamento de arquivos e diretórios:
Preciso remover (apagar) um diretório, e agora?
Se o diretório tiver arquivos...
Para resolver use a opção –r, isso vai remover o diretório e seu
conteúdo junto.
Ao usar a opção –r você receberá a mensagem:
Para confirmar a remoção use a opção Y ou N para desistir.
Quer apara o diretório, mas não quer ver esta mensagem? Use:
63. Sistemas Operacionais
Linux63
Gerenciamento de arquivos e diretórios:
Para criar arquivos dentro do Linux usa o editor vi (em
modo texto). Graficamente pode se usar outros
editores como gedit por exemplo.
Criando um arquivo:
Feche o editor: [esc] +
Veja seu arquivo dentro do diretório:
Para criar um arquivo rapidamente, use o comando touch
67. Sistemas Operacionais
Linux67
Gerenciamento de arquivos e diretórios:
Você pode consultar tudo que está dentro de um diretório
mesmo sem estar dentro dele, com o comando ls, veja:
Neste exemplo, listamos todos os “diretórios” que estavam
dentro da $ORACLE_HOME e iniciavam-se com a letra “b”.
Caso “-d” fosse omitido, seria exibido todos os diretórios e
arquivos que começassem com a letra “b”.
68. Sistemas Operacionais
Linux68
Gerenciamento de arquivos e diretórios:
Para listar somente o nome dos arquivos de seu diretório
corrente, digite apenas ls:
O comando ls puro e simples pode não ser tão útil, tente
algo mais sofisticado para capturar maiores informações:
70. Sistemas Operacionais
Linux70
Gerenciamento de arquivos e diretórios:
Para modificar as permissões de um arquivo use chmod
Com o comando ls, agora veja as permissões:
No Linux as permissões são concedidas em três níveis sendo
nesta ordem: owner do arquivo, grupos de usuários e por
ultimo demais usuários.
Veja no próximo slide a lista completa das permissões.
73. Sistemas Operacionais
Linux73
Gerenciamento de arquivos e diretórios:
Dentro do Linux todo arquivo tem um owner (dono),
algumas vezes você precisa mudar o owner de algum
arquivo ou diretório, para isso o comando chown
Pode se também trocar apenas o grupo dentro do SO.
75. Sistemas Operacionais
Linux75
Gerenciamento de arquivos e diretórios:
Para encontrar a diferença entre 2 arquivos, use o
comando diff.
O comando sdiff é mais interessante.
Para encontrar diferenças entre 3 arquivos use diff3
76. Sistemas Operacionais
Linux76
Gerenciamento de arquivos e diretórios:
Para copiar arquivos use o comando cp
Neste exemplo, o arquivo é copiado para mesma
pasta, porém com outro nome (listener.old.ora).
Para copiar diretórios use a opção –r
Atenção ao copiar arquivos, pois caso já exista um
arquivo de mesmo nome o Linux sobrescreve sem
perguntar.
77. Sistemas Operacionais
Linux77
Gerenciamento de arquivos e diretórios:
Para copiar arquivos entre servidores use scp
Outro comando útil, é o rsync, com ele você pode
sincronizar diretórios que precisam ter o mesmo
conteúdo.
-- progress vai lhe exibir somente a diferença.
78. Sistemas Operacionais
Linux78
Gerenciamento de arquivos e diretórios:
Para mover arquivos entre diretórios, a sintaxe é a
mesma do comando cp (copy) porém agora o
comando é o mv (move):
79. Sistemas Operacionais
Linux79
Gerenciamento de arquivos e diretórios:
Para pesquisar por arquivos dentro do sistema
operacional, use o comando find
Para procurar por textos dentro de arquivos:
Para arquivos binários use strings
84. Sistemas Operacionais
Linux84
Analise de performance do servidor:
Se “wa” apresentar
um valor muito alto,
isso significa que você
tem uma sobrecarga
na camada de
storage.
Se “b” apresentar um
valor muito alto, isso
significa que você tem
uma sobrecarga na
camada de CPU, ou
seja, está havendo
esperas na camada de
sistema operacional
Se “si” ou “so” apresentar
um valor muito alto, isso
significa que você tem uma
sobrecarga na camada de
memória.
88. Sistemas Operacionais
Linux88
Analise de performance do servidor:
Você pode colocar o comando top para executar em
modo “batch” direcionando o resultado para um
arquivo e analisar os resultados posteriormente.
Monitorando os processos do usuário oracle “-U”, em
um intervalo de 5 segundos “-d” em 25 iterações “-n”
89. Sistemas Operacionais
Linux89
Analise de performance do servidor:
mpstat
Por default só traz uma linha agregada para todas as
CPUs, mas você pode verificar individualmente dentro
de intervalos regulares. Exemplo, seu processador 0 em
um intervalo de 2 segundos em 20 repetições:
92. Sistemas Operacionais
Linux92
Analise de performance do servidor:
Free (Informações da memória RAM)
Para facilitar a leitura, opcionalmente use “-m”
(megabytes) ou “-g” (gigabytes).
93. Sistemas Operacionais
Linux93
Analise de performance do servidor:
df (Disk free)
Para facilitar a leitura, opcionalmente use “-h”.
Também é possível ver informações de um único disco.
98. Sistemas Operacionais
Linux98
Configurar recursos do sistema:
Interprocess communication (IPC): Método usado pelo
sistema operacional para coordenação dos processos
do banco de dados com os processos do sistema
operacional.
Existem três tipos de IPCs:
Semaphores
Shared Memory
Queue
99. Sistemas Operacionais
Linux99
Configurar recursos do sistema:
Bancos de dados Oracle, precisam de configurações
especiais para estes processos, seguindo o que a
documentação da Oracle recomenda, caso contrario:
100. Sistemas Operacionais
Linux100
Configurar recursos do sistema:
O primeiro passo para acertar as configurações dentro
do Linux, é conhecer os recursos e o sistema
operacional que se está trabalhando:
Para conhecer a arquitetura do SO use uname
Para conhecer o release de seu kernel use uname –r
ou dê um cat /proc/version
104. Sistemas Operacionais
Linux104
Configurar recursos do sistema:
No processo de instalação será preciso alterar algumas
configurações de kernel, essas informações ficam no
arquivo /etc/sysctl.conf e com o comando sysctl –a
você pode visualizar:
105. Sistemas Operacionais
Linux105
Configurar recursos do sistema:
Na hora de executar as alterações, você pode fazer
das seguintes maneiras:
Executando o comando sysctl –w
Adicionando as informações com o comando echo
Editando o arquivo /etc/sysctl.conf
Adicionando as informações com o comando cat
107. Sistemas Operacionais
Linux107
Configurar recursos do sistema:
A documentação da Oracle, recomenda que você
estabeleça limites para o numero de arquivos abertos
dentro do sistema operacional, isso também é feito no
arquivo sysctl.conf no parâmetro file-max:
108. Sistemas Operacionais
Linux108
Configurar recursos do sistema:
O processo de instalação do Oracle, também pede que
você limite o numero de processos Shell dentro do SO, isso é
feito no arquivo /etc/security/limits.conf
O comando ulimit também lhe ajuda na definição destes
parâmetros
109. Sistemas Operacionais
Linux109
Gerenciamento de software:
Nesta sessão você vai aprender:
Como instalar pacotes necessários no sistema operacional.
Remover pacotes caso seja preciso.
Atualizar pacotes caso preciso.
110. Sistemas Operacionais
Linux110
Gerenciamento de software:
No processo de instalação do Oracle, você terá que
instalar vários pacotes (libs) no sistema operacional,
essa atividade você pode executar com o comando
rpm.
111. Sistemas Operacionais
Linux111
Gerenciamento de software:
Você pode com o comando rpm –qf (query for file),
descobrir qual é o nome do pacote de determinado
programa, por exemplo:
Para saber se você tem um pacote instalado em seu sistema,
use rpm –qa:
Para atualizar um pacote use rpm -Uvh
112. Sistemas Operacionais
Linux112
Gerenciamento de software:
Para remover um pacote, use rpm –e ou --erase:
No momento da instalação do Oracle, você precisará
ter uma série de pacotes instalados, isso pode ser feito
de duas maneiras, instalando os pacotes um a um, ou
automatizar com um único pacote que instala todos.
http://oradata.com.br/oracle-12c-instalacao-linux/
118. Storage
118
ASM – Automatic Store Management
O que é?
Para que serve?
É obrigatório usar?
Como implementar.
119. Storage
119
ASM – Automatic Store Management
O que é?
Um “file system” proprietário da Oracle para atender as
necessidades de bancos de dados, onde se pode ter muitas
vantagens e ganho de produtividade com relação à outras
soluções de storage usadas com Oracle database.
Storage
Sistema Operacional
Instancia ASM
Instancia de Banco de Dados
120. Storage
120
ASM – Automatic Store Management
O que é?
No ASM, trabalhamos com o conceito de “disk groups”
(grupos de discos), sendo assim, então você pode:
Agregar dois discos físicos de 100GB para formar um disco
lógico de 200GB.
Ter um disco “espelhado” em outro, por questões de
redundância/segurança.
Ter as duas opções combinadas, espelhamen-
to, mais a agregação de discos.
124. Storage
124
ASM – Automatic Store Management
O que é?
No Windows tudo começa no “C:”, no Linux tudo começa
no “/”, e no ASM? Tudo começa no “+”
Sendo assim:
C:DATAORDTdatafiles
/DATA/ORDT/datafiles/
+DATA/ORDT/datafiles/ASM
125. Storage
125
ASM – Automatic Store Management
O que é?
/dev/sdc1
/dev/sdd1
ASMDISK01
ASMDISK02
ASMDISK01
ASMDISK02
Discos no
sistema operacional
Discos ASM Diskgroup ASM
“DATA”
21 3
126. Storage
126
ASM – Automatic Store Management
O que é?
Storage
Sistema Operacional
Instancia ASM
Instancia de Banco de Dados
127. Storage
127
ASM – Automatic Store Management
Para que serve?
O ASM será a camada de storage do seu banco de dados,
ele será o hospedeiro de seus arquivos de dados, ou seja, o
que você tem de mais valioso dentro do banco de dados
estará dentro do ASM.
Com o ASM você pode gerenciar sua camada de storage sem
precisar para o seu banco de dados, além de
eliminar tarefas como: gerenciamento de LUN,
Movimentação e reorganização de arquivos,
gerenciamento de file system e cluster file
system.
128. Storage
128
ASM – Automatic Store Management
É obrigatório usar?
Não, mas com o ASM você elimina: tuning de I/O,
movimentação e reorganização de datafiles, gerenciamento
de nomes de arquivos, LVM, files system, cluster file system e
etc...
Além de diminuir: Erros humanos (como um “rm” acidental) e a
dependência do administrador do starage.
Agora a escolha é sua!
129. Storage
129
ASM – Automatic Store Management
Como implementar?
O ASM vem no setup do Grid Infrastructure, que é instalado
antes do software do DB, porém antes de instalá-lo você já
deve ter:
1. Seus discos no estado “bruto” (sem formatar)
2. Os pacotes do asm já instalados no sistema operacional.
3. O serviço “oracleasm” executando.
131. Storage
131
ASM – Automatic Store Management
Como implementar?
Crie disk groups distintos se possíveis em controladoras
distintas também.
Procure usar disk groups separados para: dados, índices e
LOBs, além de um disk group exclusivo para FRA.
Não use “redundância redundante”, ou seja se o disco já
vier com redundância do storage, não use redundância no
ASM.
Procure usar discos sempre com tamanhos iguais.
133. Storage
133
DAS – Direct attached storage.
O que é?
É um storage local (os discos conectados diretamente no
servidor).
Não é compartilhado entre outros servidores.
Atende somente pequenas aplicações.
Performance pode ser maior.
Custo menor.
134. Storage
134
DAS – Direct attached storage.
Como implementar?
Use “mount points”.
Os discos serão apresentados para o servidor no “/dev...”
Procure usar os discos distribuídos assim como no ASM.
Fique atento as permissões em cada disco.
136. Oracle
136
Nesta etapa do treinamento você vai aprender:
Preparação do sistema operacional
Instalação
Grid Infrastructure
Software de danco de dados
Configuração
Criação da instancia.
Configurações mínimas para produção
Manutenção
Monitoramento & Performance
137. Oracle
Preparação do SO137
Preparação do sistema operacional:
Veja os discos do seu servidor: df –h
Vamos adicionar mais dois discos de 10GB cada.
Desligue sua VM e adicione dois discos virtuais.
142. Oracle
Preparação do SO142
Preparação do sistema operacional:
Veja os novos discos adicionados no servidor.
Nestes discos instalaremos os binários de grid e do
banco de dados, agora o próximo passo é formata-los.
Para esta atividade usaremos o comando fdisk
fdiks /dev/sdb
fdisk /dev/sdc
144. Oracle
Preparação do SO144
Preparação do sistema operacional:
Confira se os discos aparecem formatados:
ls –ltr /dev/sd*[1]
Crie dois diretórios (“/u01” e “/u02”):
mkdir –p /u01
mkdir –p /u02
145. Oracle
Preparação do SO145
Preparação do sistema operacional:
Execute os comandos:
mkfs.ext3 /dev/sdb1
mkfs.ext3 /dev/sdc1
Adicione as seguintes linhas no arquivo /etc/fstab
/dev/sdb1 /u01 ext3 defaults 0 0
/dev/sdc1 /u02 ext3 defaults 0 0
Reinicie a maquina virtual, após o seu restart execute
um df -h
146. Oracle
Preparação do SO146
Preparação do sistema operacional:
Repita os procedimentos do slide 131 até 133, para
adicionar mais 8 discos virtuais ao seu servidor, os
discos devem ter o nome de disco01 até disco06, cada
um com 3GB de tamanho.
Após a criação dos discos, formate-os de acordo com o
slide 136.
151. Oracle
Preparação do SO151
Preparação do sistema operacional:
Desabilite o firewall:
# systemctl stop firewalld
# systemctl disable firewalld
Edite o parâmetro no arquivo /etc/selinux/config o
parâmetro SELINUX para permissive:
SELINUX=permissive
Crie os grupos de usuário “dba” e “oinstall” e também
o usuário “oracle” já atribuindo-o a esses grupos:
# groupadd -g 54321 oinstall
# groupadd -g 54322 dba
# useradd -g oinstall -G dba oracle
152. Oracle
Preparação do SO152
Preparação do sistema operacional:
Altere a senha do usuário oracle para ora2015@
# passwd oracle
Crie o diretório para o Grid Infrastructure:
# mkdir -p /u01/app/oracle/product/12.1.0/grid
Troque o owner deste diretório para o usuário oracle:
# chown -R oracle:oinstall /u01
E dê as permissões para pode executar a instalação:
# chmod -R 775 /u01
154. Oracle
Instalação154
Instalação do Grid Infrastructure:
Crie um diretório chamado “asmlib” em /home/oracle:
mkdir –p /home/oracle/asmlib
Execute os comandos abaixo:
rpm -e linux-firmware-20140213-0.3.git4164c23.0.1.el7.noarch
rpm -Uvh linux-firmware-20140911-0.1.git365e80c.0.1.el7.noarch.rpm
rpm -Uvh kernel-3.10.0-229.7.2.el7.x86_64.rpm
rpm -Uvh kmod-oracleasm-2.0.8-8.el7.x86_64.rpm
rpm -Uvh oracleasmlib-2.0.4-1.el5.x86_64.rpm
rpm -Uvh oracleasm-support-2.1.8-1.el5.x86_64.rpm
155. Oracle
Instalação155
Instalação do Grid Infrastructure:
Configure o processo do oracleasm:
# oracleasm configure –i
Default user to own the driver interface []: oracle
Default group to own the driver interface []: dba
Start Oracle ASM library driver on boot (y/n) [n]: y
Scan for Oracle ASM disks on boot (y/n) [y]: y
Writing Oracle ASM library driver configuration: done
Inicie o serviço:
# oracleasm init
Veja o seu status:
# oracleasm status
157. Oracle
Instalação157
Instalação do Grid Infrastructure:
Descompacte os arquivos de instalação:
# su - oracle
$ unzip linuxamd64_12102_grid_1of2.zip
$ unzip linuxamd64_12102_grid_2of2.zip
Acesse o diretório e execute o runInstaller.
$ cd grid/
$ ./runInstaller
181. Oracle
Instalação181
Instalação do software de banco de dados:
Descompacte os arquivos de instalação:
# su - oracle
$ unzip linuxamd64_12102_database_1of2.zip
$ unzip linuxamd64_12102_database_2of2.zip
Acesse o diretório e execute o runInstaller.
$ cd database/
$ ./runInstaller
195. Oracle
Configuração195
Criação da instancia de banco de dados:
Acerte as variáveis de ambiente para o caminho da
instalação do banco de dados:
[oracle@localhost ~]$ . oraenv
ORACLE_SID = [oracle] ? ORDT
ORACLE_HOME = [/home/oracle] ? /u02/app/oracle/product/12.1.0/dbhome_1/
The Oracle base has been set to /u02/app/oracle
Uma instancia de banco de dados pode ser criada:
Pelo dbca (ferramenta gráfica)
Pelo dbca –silente (em modo texto, sem GUI)
Direto no SQL*Plus (manualmente)
214. Gerenciamento
& Manutenção214
Nesta etapa do treinamento você vai aprender:
Arquitetura do banco de dados.
Gerenciamento da Instancia.
Monitoramento e Performance.
Automação de Tarefas.
Backup Restore & Recover.
Tecnologias de Flashback.
Utilidades.
215. Gerenciamento
& Manutenção215
Nesta etapa do treinamento você vai aprender:
Arquitetura do banco de dados.
Gerenciamento da Instancia.
Monitoramento e Performance.
Automação de Tarefas.
Backup Restore & Recover.
Tecnologias de Flashback.
Utilidades.
217. Gerenciamento
& Manutenção217
Sessões & Conexões:
Conexão: Uma comunicação física entre um processo
de usuário e um processo de servidor, através da rede.
Processo de usuário: Qualquer ferramenta cliente que se
conecte ao Oracle SQL*Plus, SQL Developer, um executável,
uma classe Java etc...
Processo de servidor: Processo gerado no SO do servidor,
dedicado a atender as requisições de um processo de
usuário.
220. Gerenciamento
& Manutenção220
A instancia de banco de dados:
Depois de completamente instalado e em seu estado de
funcionamento pleno, um banco de dados Oracle pode ser
divido em duas partes:
Lógica: “Instância”, um conjunto de processos em
execução, somados a estruturas de memória que juntos e
orquestrados formam a instancia de banco de dados e
lhe disponibilizam as funcionalidades do banco de dados:
Física: “Banco de dados”, tudo aquilo você vê (datafiles,
controlfiles, arquivos de redo log, archivelogs e etc...) que
são partes onde de fato a informação é gravada.
221. Gerenciamento
& Manutenção221
Arquitetura do banco de dados:
Datafiles Redo logs Archive logs
PMON
SMON RECO
DBWR LGWR ARCH CKPT
ASMB RBAL
Processos de background
Estruturas de memória
SAG/PGA
223. Gerenciamento
& Manutenção223
Processos de Background:
Processo de
background
Função
DBWR Atualiza os blocos “sujos” do database buffer cache com os datafiles.
LGWR Escreve nos arquivos de redo as informações do buffer de rede log.
CKPT Atualiza os controlfiles e o cabeçalho dos datafiles com meta-dados
das gravações feitas pelo processo de DBWR
ARCH Reescreve as informações dos redo logs para os archivelogs
PMON Recover quando uma conexão falha, liberação de recursos quando
alguém se desconecta, avaliar os dispatchers em servidores “shared”
SMON Recovery automático da instancia quando necessário, libera segmentos
temporários.
RECO Resolve transações “duvidosas” em ambientes com transações
distribuídas.
224. Gerenciamento
& Manutenção224
Processos de Background:
Processo de
background
Função
MMON Gerenciamento/Agendamento de atividades, AWR, ADDM
MMAN Gerenciador dos processos de memória
MMNL Gerenciamento de atividades de coletas de dados, relatório ASH,
coleta de estatísticas e etc.
RVWR Escreve os dados relativos as operações de flashback para a fast
recovery área.
ASMB Conexão da instancia ASM com o storage, para gerenciamento e
estatísticas
RBAL Coordena a atividade de re balanceamento dentro dos disk groups
226. Gerenciamento
& Manutenção226
Estruturas de memória (SGA/PGA):
A parte da instancia relacionada a memória, está
dividida basicamente em duas partes principais:
SGA: System Global Area Engrenagem principal do
banco de dados, maior parte das atividades ocorrem
aqui.
PGA: Program Global Area: Reserva de memória
para ser distribuída entre as sessões conectadas a
instancia.
227. Gerenciamento
& Manutenção227
Estruturas de memória (SGA/PGA):
A memória alocada pa-
ra a instancia, será dividi-
da entre SGA e PGA na
seguinte proporção:
60% SGA e 40% PGA.
228. Gerenciamento
& Manutenção228
Program Global Area (PGA):
Quando uma conexão é estabelecida, uma fatia da
PGA é dedicada a ela, para que possa executar
suas tarefas, essa fatia, é composta de:
Então, com várias conexões em
uma instancia de produção o
cenário seria este:
229. Gerenciamento
& Manutenção229
Program Global Area (PGA):
“SQL Work Area”, é usada para processamento de
instrução SQL como por exemplo “sort operations”, “hash
join”, “bitmap merge” e etc.
“private SQL Area”, armazena seus códigos SQL e
PL/SQL, dados de sua sessão, bem como os valores de
suas bind variables.
230. Gerenciamento
& Manutenção230
System Global Area (SGA):
A SGA é uma área de memoria dedicada a instancia e
não é compartilhada diretamente entre as sessões, pois
é dividida em subpartes internas.
É possível ver o valores atribuídos à sua SGA e alguns
componentes na hora do “startup” da instancia.
231. Gerenciamento
& Manutenção231
Principais Componentes da SGA:
Database buffer cache: Armazena os blocos de dados
mais acessados, desde o startup da instancia.
Possui opções como: keep, recycle e nk buffer cache.
233. Gerenciamento
& Manutenção233
Principais Componentes da SGA:
Shared Pool: Um pool de memória responsável pelos
diversos tipos de cache existentes dentro da instancia,
como dicionário de dados, parâmetro de sistema e etc.
235. Gerenciamento
& Manutenção235
Principais Componentes da SGA:
Large Pool: Pool de memória responsável por
operações de I/O internas e massivas como
backup/restore, Oracle XA e etc. É utilizado como uma
extensão da shared pool.
236. Gerenciamento
& Manutenção236
Principais Componentes da SGA:
Java Pool: Pool de memória responsável por persistir
códigos java compilados dentro da JVM do próprio
Oracle.
Streams Pool: Buffer de memória que armazena as
filas de mensagens capturadas pelo Oracle Streams.
Este pool de memória só será utilizado se junto com seu
banco de dados, você também usar o Oracle Streams.
237. Gerenciamento
& Manutenção237
Interação instancia x banco de dados:
Tudo que é memória e “processo” dentro do SO, se
perderá ao desligar a instancia e para que isso não
aconteça, periodicamente a instancia efetua um
processo de sincronismo entre as áreas de “memória” e
“disco”.
O sincronismo é um processo completamente assíncrono
das atividades dos usuários.
238. Gerenciamento
& Manutenção238
Componentes físicos:
Datafiles: Arquivos de dados, ou seja os arquivos onde
as informações dos usuários são guardadas, tabelas,
índices e etc.
Redo log: Arquivos que contem os vetores de alteração
no banco de dados, produzidos pelos comandos dos
usuários, INSERT, UPDATE, DELETE, CREATE, ALTER DROP
e etc.
Controlfiles: Arquivos responsáveis por garantir a
sincronia dos dados entre a parte logica e a parte
fisica das operações dentro da instancia.
239. Gerenciamento
& Manutenção239
Overview:
O banco de dados foi
projetado para que a maior
parte das operações feitas
por usuários sejam executadas
em memória, visto que o custo
desta execução sempre será
melhor se comparado com os
discos.
De maneira assíncrona, os
processos de background
garantem o sincronismo entre
as áreas de memória e disco.
240. Gerenciamento
& Manutenção240
SPFILE:
Arquivo binário, que registra os parâmetros de
configurações da instancia do banco de dados como,
memória, numero máximo de processos permitidos,
localização dos controlfiles e etc.
Este arquivo é carregado para memória no momento
da inicialização da instancia.
É possível alterar parâmetros mesmo depois de a
instancia iniciada, alguns são dinâmicos, outros são
estáticos.
244. Gerenciamento
& Manutenção244
Alterando um parâmetro em seu SPFILE:
Parâmetro dinâmico,
pode ser alterado sem
reiniciar a instanciar
Parâmetro estático,
Para alterar deve-se
reiniciar a instancia
Use a clausula “scope”
e reinicialize a instancia
alteração tenha efeito.
246. Gerenciamento
& Manutenção246
Alert Log:
Cada banco de dados tem um arquivo de log (.xml e
.log) que registra em ordem cronológica as atividades
do banco de dados como:
Erros internos como: ORA-600, ORA-1578 e ORA-60
Operações administrativas: STARTUP, SHUTDOWN, ALTER
SYSTEM, ARCHIVE, RECOVER.
Erros de processos de dispatchers servidores compartilhados
Erros de atualização automática de materialized views
248. Gerenciamento
& Manutenção248
Nesta etapa do treinamento você vai aprender:
Arquitetura do banco de dados.
Gerenciamento da Instancia.
Monitoramento e Performance.
Automação de Tarefas.
Backup Restore & Recover.
Tecnologias de Flashback.
Utilidades.
249. Gerenciamento
& Manutenção249
Startup:
Nomount: Inicia a instancia, mas não monta o banco,
está etapa normalmente é usada para operações de
recuperação de controlfile.
Mount: Inicia a instancia, monta o banco, mas não
permite conexões, usada para atividades do DBA
apenas (restore/recover por exemplo).
Open: Inicia a instancia, monta e abre o banco, neste
estágio permitido o acesso a todos os usuários.
Force: Força a instancia a iniciar e executar um recover
completo após um shutdown inadequado ou inesperado.
251. Gerenciamento
& Manutenção251
Shutdown:
Normal: Aguarda todos os usuários encerrarem suas
atividades e desconectarem-se da instancia.
Transactional: Permite as transações correntes
terminarem seu trabalho, mas não permite o inicio de
outras atividades.
Immediate: Encerra as transações imediatamente e
executa o rollback.
Abort: O mesmo que retirar seu servidor da fonte de
energia.
254. Gerenciamento
& Manutenção254
Configurando conexões:
listener.ora: Arquivo texto residente no servidor, onde
se define as propriedades de conexão entre cliente e
servidor como: hostname, porta e etc.
tnsnames.ora: Arquivo texto residente no cliente onde
se define o caminho (hostname, porta, nome do banco
de dados e protocolo de rede) para chegar ao banco
de dados através da tradução de um “alias”
262. Gerenciamento
& Manutenção262
Métodos de conexão:
Easy Connect
Conexão padrão.
Não preciso e configuração no lado client.
Suportado apenas por TCP/IP (não há SSL).
SQL> connect user/pass@hostname:porta/instance
263. Gerenciamento
& Manutenção263
Métodos de conexão:
Local Naming
Precisa de uma arquivo no client (TNSNAMES.ora)
Suporta todos os protocolos Oracle Net
Suporta conexões avançadas.
Failover
Source routing
Load Balancing
TNSNAMES.ora SQL> connect user/pass@alias
264. Gerenciamento
& Manutenção264
Métodos de conexão:
Directory Naming
Precisa de um servidor LDAP com um arquivo de
resolução de nomes:
Oracle Internet Directory
Microsoft Active Directory
Suporta todos os protocolos Oracle Net e opções de
conexões avançadas.
TNSNAMES.ora
LDAP
266. Gerenciamento
& Manutenção266
Database Link:
CREATE DATABASE LINK <remote_global_name>
CONNECT TO <user> IDENTIFIED BY <pwd>
USING '<connect_string_for_remote_db>';
REMOTE_DB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)
(HOST = host02.example.com)(PORT = 1521))
(CONNECT_DATA = (SERVER = DEDICATED)
(SERVICE_NAME = orcl.example.com)
)
)
CONNECT hr/hr@orcl;
CREATE DATABASE LINK remote
CONNECT TO HR IDENTIFIED BY HR
USING 'REMOTE_ORCL';
SELECT * FROM employees@remote
267. Gerenciamento
& Manutenção267
Prática:
Crie um novo listener com as configurações:
Porta: 1525.
Nome: meu_listener.
Crie um tnsnames.ora com as configurações:
Instancia: ORDT.
Porta: 1525.
No hostname de seu ambiente de estudos.
Aliás: TESTE
Conecte-se na sua instancia pelo alias de seu tnsnames.
268. Gerenciamento
& Manutenção268
Armazenamento (Banco de dados):
Memória (SGA/PGA)
PMON
SMON RECO
DBWR LGWR ARCH CKPT
ASMB RBAL
Processos de Background
Instancia
Banco de
Dados
Datafiles Redo logs Controlfiles
272. Gerenciamento
& Manutenção272
Tablespaces Padrão:
SYSTEM: Informações do próprio banco de dados
(dicionário de dados), usuários SYS e SYSTEM.
UNDO: “Imagens antigas”, blocos recentemente
alterados, para garantir a consistência de leitura.
TEMP: Processamento de transações, tudo aquilo que
não cabe na PGA.
SYSAUX: Informações auxiliares, repositório do
Enterprise Manager:
USERS: Tablespace permanente default, se você não
atribuir uma tablespace a um usuário, o que ele criar
será armazenado aqui.
273. Gerenciamento
& Manutenção273
Para criar uma tablespace você precisa:
Um nome para a tablespace.
Uma localização para a tablespace.
Um tamanho para a tablespace.
SQL> CREATE TABLESPACE [nome] DATAFILE [local] [tamanho];
SQL> CREATE TABLESPACE ORADATA
DATAFILE ‘+DATA/ORDT/oradata_01.dbf’ SIZE 10M;
SQL> CREATE TABLESPACE ORADATA
DATAFILE ‘/u02/oradata_01.dbf’ SIZE 10M;
Com ASM
Sem ASM
274. Gerenciamento
& Manutenção274
Manutenção de uma tablespace:
Adicionar mais datafiles.
Aumentar um datafile.
Modificar um datafile.
SQL> ALTER TABLESPACE ORADATA ADD DATAFILE
‘/u02/oradata_02.dbf’ SIZE 10M
SQL> ALTER DATABASE DATAFILE
‘/u02/oradata_01.dbf’ SIZE 10M RESIZE 20M;
SQL> ALTER DATABASE DATAFILE
‘/u02/oradata_01.dbf’ SIZE 20M
AUTOEXTEND ON NEXT 20M MAXSIZE 10G;
278. Gerenciamento
& Manutenção278
Tablespaces, dicas:
Uma tablespace por usuário.
Não use datafiles muito grandes (ex: + 16GB).
Use nomes concisos (que associem a TBS ao usuário).
Se possível, separe suas tablespaces por tipo de dados,
ex: uma para dados, outra para índices e outra para
LOBs e em discos distintos também.
Use tablespaces com crescimento automático.
Monitore o crescimento de suas tablespaces.
Crie métricas para ser alertado, sobre uso das
tablespaces.
279. Gerenciamento
& Manutenção279
Tablespace de UNDO:
Tablespace “cíclica”, para garantir a leitura consistente
das informações durante uma transação, fonte de
dados para o comando rollback, flashbacks e recuperar
transações com erro.
SQL> update curso set nome_curso….;
TBS UNDO
Database
Buffer Cache
A
A
B
B
280. Gerenciamento
& Manutenção280
Gerenciando a tablespace de UNDO:
SQL> create undo tablespace undotbs_02
datafile ‘/oradata/undotbs_02.dbf’ size 2M autoextend on;
SQL> alter tablespace undotbs_02 add datafile
‘/oradata/undotbs_03.dbf’ size 2M autoextend on;
SQL> alter system set undo_tablespace=‘undotbs_02’;
282. Gerenciamento
& Manutenção282
OMF Oracle Managed File:
O que é? Capacidade do banco de dados simplificar a
gestão de arquivos da instancia diretamente no SO,
exemplo datafiles, redo logs entre outros.
Para utilizar:
SQL> alter system set DB_CREATE_FILE_DEST=‘+DATA’;
SQL> alter system set DB_CREATE_ONLINE_LOG_DEST_1=‘+FRA’;
SQL> alter system set DB_RECOVERY_FILE_DEST=‘FRA’;
284. Gerenciamento
& Manutenção284
Views de performance dinâmicas (v$):
Views que contém informações a respeito da
performance do banco de dados.
Seus dados estão 100% persistidos em memória e em
tempo real.
A maior parte destas views só estarão disponíveis
quando o banco de dados estiver aberto.
Sempre começarão com v$...
Procure maiores detalhes com o select:
SQL> select * from dict where table_name like ‘V$%’;
285. Gerenciamento
& Manutenção285
Views de performance dinâmicas (v$):
Exemplos:
SQL> select disk_number, total_mb, free_mb from v$asm_disk;
SQL> select username, machine, osuser from v$session;
SQL> select sql_text, cpu_time
from v$sql
where cpu_time > 50000;
SQL> select instance_name, status, startup_time
from v$instance;
SQL> select dbid, name, cdb, flashback_on, current_scn
from v$database;
286. Gerenciamento
& Manutenção286
Dicionário de dados:
Repositório dos meta-dados do banco de dados.
Está acessível a todos usuários (respeitando suas
devidas permissões).
Não é acessível diretamente, é acessado através de
views do dicionário de dados.
Para conhecer o dicionário de dados, você pode
executar o select:
SQL> select * from dictionary order by 1;
287. Gerenciamento
& Manutenção287
Dicionário de dados:
As views do dicionário de dados sempre vão começar
com USER_*, ALL_* e DBA_*, onde o significado é:
USER_*: Informações do usuário corrente.
ALL_*: Informações do usuário e demais objetos que tem
acesso/permissão.
DBA_*: Informações de todos os usuários da instancia de
banco de dados, este acesso é exclusivo para quem tem
privilégios administrativos.
SQL> select * from user_tables; -- minhas tabelas
SQL> select * from all_tables; -- minhas tabelas e demais
--tabelas que tenho acesso.
288. Gerenciamento
& Manutenção288
Dicionário de dados:
SQL> select username, account_status, default_tablespace
from dba_users
Where account_status =‘OPEN’;
SQL> select sequence_name, min_value, max_value, increment_by
from user_sequences;
SQL> select owner, table_name, num_rows, last_analyzed
from dba_tables;
SQL> select owner, trigger_name, table_name, status
from dba_triggers;
SQL> select owner, object_name, type, droptime, can_undrop
from dba_recyclebin;
289. Gerenciamento
& Manutenção289
Oracle Enterprise Manager:
Console de administração (web) do banco de dados.
Monitoramento.
Diagnostico.
Administração.
Manutenção.
11g: OEM Database Control, OEM Grid Control.
12c: OEM Express, OEM Cloud Control.
Quando Database Control e Express, pode ser criado
junto com a instancia, ou a qualquer momento posterior.
300. Gerenciamento
& Manutenção300
Oracle Enterprise Manager:
Desempenho > Hub de Desempenho
Aqui há informações mais detalhadas
sobre o consumo de memória da instancia.
• Processos em execução
• Memória dedicada a instancia
• Database buffer cache
• Large Pool
• Shared Pool
• Java Pool
• Fluxo de I/O
301. Gerenciamento
& Manutenção301
Oracle Enterprise Manager:
Desempenho > Hub de Desempenho
Aqui há informações mais detalhadas
sobre o consumo de memória da instancia.
• Processos em execução
• Memória dedicada a instancia
• Database buffer cache
• Large Pool
• Shared Pool
• Java Pool
• Fluxo de I/O
309. Ainda tem mais!
309
Esta é só uma amostra do material que está sendo
construído, em breve publicaremos atualizações do
material completo deste treinamento incluindo as
datas disponíveis para realizar o treinamento:
Siga-nos nas mídias sociais e mantenha-se por
dentro das novidades!
@oradatact /oradata