quarta-feira, 15 de agosto de 2012
RESIZE UNDO TABLESPACE
Olá Pessoal,
Hoje vou compartilhar com vocês uma experiência, onde tive que realizar a recriação de uma tablespace de undo.
O datafile da tablespace foi colocado UNLIMITED, ou seja, chegou a 32GB e ao tentar fazer o resize ocorria o ORA-3297 erro: arquivo contém dados usados além do valor de RESIZE solicitado, então tive que criar uma nova tablespace e eliminar a antiga.
Segue o passo a passo realizado:
1- Criar uma nova tablespace de UNDO:
CREATE UNDO TABLESPACE UNDOTBS2 DATAFILE '/u01/oradata/orcl/undotbs2_01.dbf'
SIZE 2048M;
2- Definir a nova tablespace criada como default do banco de dados:
OBS:Podemos ter várias tablespaces de undo criadas, mas apenas 1 delas pode ser a default do banco.
ALTER SYSTEM SET UNDO_TABLESPACE=UNDOTBS2 SCOPE=BOTH;
As novas transações vão utilizar a nova tablespace de undo, depois de um tempo(você deve esperar no mínimo o tempo do parâmetro UNDO_RETENTION).
3- Eliminar a tablespace de UNDO antiga ou realizar o resize:
DROP TABLESPACE UNDOTBS1 INCLUDING CONTENTS AND DATAFILES;
OU
ALTER DATABASE DATAFILE '/u01/oradata/orcl/undotbs1_01.dbf' RESIZE 1M;
Por hoje é só, até o próximo post.
segunda-feira, 13 de agosto de 2012
ADD DATAFILE FAILOVER
Esta semana precisei aidiconar um datafile em um banco de dados que tem espelhamento, como está de forma
manual tive que adiconar manualmente no standby.
Depois de adicionado no primário:
adicionei o datafile '/oradata/bdprod/data24.dbf';
Fui até o secundário e:
-- copiei os ultimos archives gerados no primário para o secundário.
-- montei o banco de dados secundário.
scp xxxxx.arc 199.999.999.999:/aaa/bbb/ccc/arch/
-- startup mount
depois:
-- recover stanby database;
escolhi a opção AUTO
esperei gerar o erro em que ele não acha o datafile adicionado.
-- depois de feita a verificação dos archives,
-- fiz a consulta para ver onde estava o DBF simbólico criado automaticamente.
-- select name from v$datafile
/aa/bbb/ccc/UNNAMED00044
-- troquei o nome arquivo para o arquivo adicionado no primário:
alter database
create datafile '/xxx/xxxx/xxx/xxxx/xxxx/xxx/UNNAMED00044' as '/oradata/bdprod/data24.dbf';
executei novamente o recover, para me certificar q não iria dar o erro ao procurar o datafile.
shutdown immediate
('.') Everaldo Ferreira - DBA
Comandos básicos VI Solaris
Pessoal segue uma pequena lista de comandos que ajudam bastante na hora de editar um arquivo no Solaris.
ESC x -> apaga caracter atual
ESC X -> apaga caracter anterior
ESC h -> esquerda
ESC l -> direita
ESC k -> cima
ESC j -> baixo
dd ----> remove linha
ESC i -> entra no modo editável do vi, similar ao INSERT (Linux)
ESC a -> insere após o caracter atual
ESC A -> final da linha
SHIFT A -> vai para o próximo campo vazio na linha, similar ao ESC a.
('.') Everaldo Ferreira - DBA
Deployee Agent 12c GRID
Instalando agent para monitoração no grid 12c
1- baixar o agent
2- disponibilizar no servidor alvo, descompactar o arquivo:
12.1.0.1.0_AgentSoftware_23.zip
- vá até o diretório archives, descompactar os arquivos:
12.1.0.1.0_AgentCore_23.zip
agentcoreimage.zip
3- Editar o arquivo agent.rsp, com seguintes parametros.
4- Dentro do oracle_home, criar diretorio, OMSagent
OMS_HOST= servidor onde está o grid
EM_UPLOAD_PORT=4900
AGENT_REGISTRATION_PASSWORD= senha do sysman do grid
AGENT_INSTANCE_HOME="ORACLE_HOME"/OMSagent
AGENT_PORT=porta para comunicação com agente do OMS_HOST
b_startAgent=true
ORACLE_HOSTNAME= nome do servidor onde está sendo instalado o agent, colocar dominio
s_agentHomeName=agent_home
5- executar: (exemplo)
./agentDeploy.sh AGENT_BASE_DIR=/oracle/prdbd/10.2.0.5/ RESPONSE_FILE=/oracle/prdbd/10.2.0.5/OMSagent/agent.rsp
-- se ocorrer o erro abaixo:
-e
ERROR: OMS_HOST cannot be null. Pass OMS_HOST value either as command-line arguments or in response file.
executar, passando os parametros separados por espaço conforme abaixo. alterar a senha do sysman na variável AGENT_REGISTRATION_PASSWORD
Estes são obrigatórios
./agentDeploy.sh AGENT_BASE_DIR=/oracle/prdbd/10.2.0.5/ OMS_HOST=serverbd EM_UPLOAD_PORT=4900 AGENT_REGISTRATION_PASSWORD=******** AGENT_PORT=3872 b_startAgent=true ORACLE_HOSTNAME=serverbd.local s_agentHomeName=agent_home
('.') Everaldo Ferreira - DBA
Reiniciando EXADATA
Aloo pessoal olha a hora!!!
DESABILITAR O START AUTOMATICO DO CRS, isso é porque ele irá tentar subir automaticamente uma vez q o serviço fique indisponível.
Conectar no servidor via Putty – ssh – servidor servidorprd
CARREGAR O PROFILE DO ASM-GRID
. oraenv
+ASM1
-- Testar se o comando decli esta conectando nos servidores
dcli -g /opt/oracle.SupportTools/onecommand/dbs_group -l root date
-- Executar o comando para realizar o disable do crs
dcli -g /opt/oracle.SupportTools/onecommand/dbs_group -l root /u01/app/11.2.0.2/grid/bin/crsctl disable crs
servidorprd1: CRS-4622: Oracle High Availability Services autostart is disabled.
servidorprd2: CRS-4622: Oracle High Availability Services autostart is disabled.
servidorprd3: CRS-4622: Oracle High Availability Services autostart is disabled.
servidorprd4: CRS-4622: Oracle High Availability Services autostart is disabled.
-- PARAR DBFS – filesystem
crsctl stop resource dbfs_scorp
-- utilizando USUARIO ORACLE
parar todas as bases de dados
. oraenv
srvctl stop database -d xyz -o immediate
-- Conectar no servidor como ROOT
-- parar o cluster
crsctl stop cluster -ALL
dcli -g /opt/oracle.SupportTools/onecommand/dbs_group -l crsctl stop crs
-- desligar o dbservers - poweroff
dcli -g /opt/oracle.SupportTools/onecommand/dbs_group -l root init 0
-- desligar celulas de armazenamento (storage)
-- celula1
ssh xx.x.xx.xxx
-- testar a conexão das células
dcli -g cell_group -l root date
-- comando para desligar
dcli -g cell_group -l root init 0
Reiniciando o Ambiente
ligar as células fisicamente (dedão mesmo no power)
Aguardar...
-- VIA PUTTY NA CELULA 1
-- TESTAR A CONEXAO DAS CELULAS
dcli -g cell_group -l root date
-- TESTAR TODAS AS CELULAS
dcli -g cell_group -l root /etc/init.d/celld status
servercel01: rsStatus: running
servercel01: msStatus: running
servercel01: cellsrvStatus: running
servercel02: rsStatus: running
servercel02: msStatus: running
servercel02: cellsrvStatus: running
servercel03: rsStatus: running
servercel03: msStatus: running
servercel03: cellsrvStatus: running
servercel04: rsStatus: running
servercel04: msStatus: running
servercel04: cellsrvStatus: running
servercel05: rsStatus: running
servercel05: msStatus: running
servercel05: cellsrvStatus: running
REINICIAR OS SERVIDORES DE BANCO
. oraenv
+ASM1
1. crsctl start cluster -ALL
2. dcli -g /opt/oracle.SupportTools/onecommand/dbs_group -l crsctl start crs
3. dcli -g /opt/oracle.SupportTools/onecommand/dbs_group -l root /u01/app/11.2.0.2/grid/bin/crsctl enable crs
-- com USUARIO ORACLE
subir os bancos de dados
. oraenv
srvctl start database -d xyz
No final para subir o NFS, tem q reconectar como root
INICIAR O DBFS
. oraenv
+ASM1
crsctl start resource dbfs_scorp
('.') Everaldo Ferreira - DBA
Desinstalar Agente GRID 12c
Desinstalando o agente e todas as suas ramificações:
Dificil mas achei um doc.
Segue o comando:
-- exportando a variável, caso esteja utilizando por exemplo o x-manager
export DISPLAY=10.2.1.200:0.0
-- digite o comando abaixo
$AGENT_HOME/oui/bin/runInstaller –deinstall
-- irá abrir a tela para remover os componentes, selecione os que fazem referencia ao agente, se escolher todos de uma só vez pode dar um erro referente a dependencias. Escolha novamente na ordem e prossiga.
('.') Everaldo Ferreira - DBA
sexta-feira, 27 de julho de 2012
TUNING DE REDO LOG
Pessoal,
Neste Post vamos falar um pouco sobre um assunto que tenho muito interesse, o Tuning do Banco Oracle.
Tuning é um assunto muito grande e complexo, por isso vou atacar neste Post apenas uma parte do Tuning do Redo Log, porém de forma objetiva e eficaz.
O tamanho e a quantidade dos REDO LOG's influenciam muito no desempenho de gravação do Banco. Tanto para um processo de importação de dados quanto para instruções DML.
Para melhoria de performance a Oracle recomenda que os arquivos de Redo Log estejam em um disco diferente do disco onde localiza-se os os arquivos de dados (Data Files) e que a troca dos arquivos de redo log seja feita entre 20 à 30 minutos no máximo, pois menos causa contenção de escrita e mais que 30 minutos aumenta muito o tempo de recuperação.
Como posso identificar de quanto em quanto tempo a troca do Redo Log está sendo realizada ?
Para isso você deve fazer uma regra de três no tamanho do redo:Ex: você tem troca de redo a cada 10 minutos, o tamanho do seu redo log é de 100MB cada grupo.
Então você deve recriar com 300MB para que o tempo suba para 30 minutos.
A query que faz esta verificação é a seguinte:
select group#,
thread#,
to_char(first_time,'DD/MM HH24:MI') TROCA_REDO,
(BYTES /1024/1024) TAMANHO_MB
FROM V$LOG ORDER BY 2, FIRST_TIME;
Como faço para alterar o tamanho dos arquivos de Redo Log ?
Abaixo segue o procedimento para realizar a alteração:
-- Para verificar o arquivo de redo log corrente:
SELECT * FROM V$LOG;
-- Para alterar/recriar o arquivo de redo log ele deve estar com STATUS INATIVO, caso necessite forçar a troca do arquivo de Redo Log, execute o comando abaixo:
ALTER SYSTEM SWITCH LOGFILE;
-- Não é possível alterar o tamanho do Redo Log já existente, portanto deve-se eliminar o arquivo ou grupo de Redo Log:
ALTER DATABASE DROP LOGFILE GROUP <<numero_grupo>>;
Exemplo:
ALTER DATABASE DROP LOGFILE GROUP 1;
-- Agora basta adicionar o novo grupo de Redo Log com o novo tamanho:
ALTER DATABASE ADD LOGFILE GROUP <<numero_grupo>> ('<<caminho dos membros>>') size <<tamanho>>;
Exemplo:
ALTER DATABASE ADD LOGFILE GROUP 1 (‘\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01A.LOG’, ‘\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01B.LOG’) SIZE 200M;
A T E N Ç Ã O ! ! !
Por padrão ao criar a Instância Oracle é criado 3 grupos de Redo Log. Porém para que a mesma possa ser iniciada é necessário no mínimo 2 grupos de Redo Log.
Enfim, ao apagar, garanta que tenha ao menos 2 grupos de Redo Log, só apague novamente outro grupo após criar mais um novo !!
Galera é isso aí !!! Espero que esse procedimento possa ajudar a todos caso seja necessário !!
Abraços e até o próximo post,
DIEGO GARCIA FRANCISCO
DBA Oracle
Oracle Database 11g Administrator Certified Associate
(21) 7925-4500 / (21) 8714-2496
Assinar:
Postagens (Atom)