quarta-feira, 29 de junho de 2016

Verificar Sincronização DataGuard - ORACLE


Boa Noite!

Segue um Script, para verificar a integridade do seu DataGuard e se ele esta sincronizando com o banco Primario.


1) Vamos verificar as informações referentes ao DataGuard,esse script é importante, pois se o DataGuard estiver OPEN/WRITE teremos um problema de sicronização dos dados e sera necessário fazer um restore.

SELECT DATABASE_ROLE, DB_UNIQUE_NAME INSTANCE, OPEN_MODE, PROTECTION_MODE, PROTECTION_LEVEL, SWITCHOVER_STATUS FROM V$DATABASE;




2) Logado no DataGuard - verificamos os Archived ja aplicados no banco "Secundario";

SELECT PROCESS, STATUS, THREAD#, SEQUENCE#, BLOCK#, BLOCKS FROM V$MANAGED_STANDBY;


3) Com esse proximo Script, podemos ver o ultimo Log aplicado;

SELECT THREAD#, MAX(SEQUENCE#) AS "LAST_APPLIED_LOG" FROM V$LOG_HISTORY GROUP BY THREAD#;



Claro que se estamos falando de sincronização, devemos comparar com o Banco Primario,então rodamos os mesmos scripts e comparamos os ultimos logs.

Espero que tenha ajudado


Boa Sorte DBAs!!

Bjs

Mari



terça-feira, 12 de abril de 2016

REORG BANCO DE DADOS - Utilizando BRTOOLS (BRSPACE) ORACLE / SAP


O BRSPACE é uma ferramenta dentro do BRTOOLS que  permite reorganizar tabelas on-line usando o pacote DBMS_REDEFINITION fornecido pelo Oracle. Este método de recuperação é suportado no ambiente como SAP do Oracle 9.2, independentemente da sua liberação SAP.

Atenção: Você só ira reorganizar um banco de dados on-line com o Oracle Patch Set 9.2.0.6.

As restrições do pacote DBMS_REDEFINITION aplicam-se a reorganização online. Em particular, com Oracle, você não pode reorganizar todas as tabelas com campos LONG e LONG RAW. O BRSPACE simplesmente ignora estes campos. No ambiente SAP, esta é principalmente uma preocupação com pool e tabelas clusterizadas. Em um banco de dados Oracle 9 , você deve reorganizar essas tabelas off-line usando o Export / Import .No Oracle 10g, é possível uma conversão on-line dos campos LONG em campos LOB em conexão com SAP core 7.00 (ou mais elevado). Para kernel do SAP 6,40, que é suportado apenas de forma restrita. Você pode reorganizar todas as tabelas on-line depois de terem sido convertidos.

Atenção: No que diz respeito ao LONG para LOB conversão, consulte a recomendação da Oracle

Nota 835552. A LONG para LOB conversão leva a incompatibilidades tipo de campo no ABAP Dictionary para sistemas baseados em SAP Kernel 6,40 se a correção da nota SAP 988336 não foi implementado. A LONG para LOB conversão não é suportada para sistemas SAP com kernels abaixo 6.40.

Você pode reorganizar tabelas individuais, listas de tabelas, todas as tabelas de um ou mais tablespace ou mesmo todas as tabelas de um user de banco de dados SAP. Você também pode usar espaços reservados (wildcards), quando selecionar tabelas.

Você pode reorganizar as tabelas dentro da mesma tablespace, ou você pode movê-los para outra tablespace.

Você também pode mover índices em uma tabela separada. As Novas tablespaces deve ser gerenciadas localmente tablespaces (LMTS), para ambas as tabelas e índices, e deve ser também autoextensible. Você também pode realizar reorganizações dentro da mesma tablespace com dicionário de tabela gerenciados.

As Tabelas podem ser reorganizada on-line em paralelo utilizando até 15 threads paralelos. Para fazer isso, defina - o "--p|-parallel" option of the "-f tbreorg" "função BRSPACE.


Scripts :


brspace -u / -f tbreorg -t SAPSR3.D010TAB
A tabela é organizada on-line em sua própria tablespace


brspace -u / -f tbreorg -t dbstattora,dbstatiora,dbstathora,dbstaihora
Quatro tabelas são reorganizadas online

brspace -u / -f tbreorg -t "DBA*" -n PSAPSR3NEW
Todas as tabelas cujos nomes começam com "DBA" são reorganizada on-line, e no processo são movidas para uma nova tablespace PSAP S3NEW.


brspace -u / -f tbreorg -s PSAPSR3700 -t "*" -p 4
Todas as tabelas da tabela PSAPDDICD (exceto para tabelas com campos de comprimento) são reorganizados on-line, com 4 threads paralelas. Em vez de "*", você também pode usar a palavra-chave "allsel" aqui:


 brspace -u / -f resume 
Saber o andamento da reorganização




Teste uma pequena Tabela;

Entrar com usuário Admin SAP
Comando: brspace -u / -f tbreorg -t SAPSR3.D010TAB
Inicio: 17:11
Término: 17:24
Tabela      SAPSR3.D010TAB
Tamanho Inicial :   2.69
Tamanho Final : 2.64


Teste com uma Tablespace;

Entrar com usuário SAP ADM
Comando: brspace -u / -f tbreorg -s PSAPSR3700 -t "*" -p 4
Inicio: 15:24 hrs
Término: 16:00
Tamanho Inicial : 94484
Tamanho Final: 81937 






Gostei da Ferramenta, até o momento consegui efetuar reorg online,sem prejudicar o negócio.

OBS: Os testes acima foram efetuados em um ambiente de teste.

Até o proximo post....

Boa Sorte DBAs!!!


segunda-feira, 1 de fevereiro de 2016

BATCH PARA RODAR RMAN NO WINDOWS


1- Abrir o Notepad do Windows e criar dois arquivos (uma extensão .bat e .rcv) 

Backup_Online.bat

SET NLS_DATE_FORMAT=DD-MON-YYYY HH24:MI:SS
SET ORACLE_HOME=D:\app\oracle\product\11.2.0.3\dbhome_1
SET ORACLE_SID=NOMEDO BANCO
SET SCRIPT_ORACLE=D:\Dba\Scripts
SET LOG_ORACLE=D:\Dba\Scripts\Backup\Log

%ORACLE_HOME%\bin\rman target / nocatalog cmdfile=%SCRIPT_ORACLE%\Backup_Online.rcv msglog=%LOG_ORACLE%\Backup_Online_%DATE:~4,2%.%DATE:~7,2%.%DATE:~10,4%_%T


Vamos criar o script do backup online, segue:

Backup_Online.rcv

RUN{crosscheck archivelog all;
crosscheck backupset;
delete noprompt expired backupset ;
delete noprompt expired backup ;
delete noprompt obsolete ;
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE BACKUP OPTIMIZATION OFF;
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT 'E:\BACKUP\RMAN\Nome_BD\bk_full_df_ Nome_BD %U';
SET CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'e:\BACKUP\RMAN\ Nome_BD \c_%F.ctl';
sql 'alter system switch logfile';
allocate channel ch01 device type disk FORMAT 'E:\BACKUP\RMAN\MSAF\bk_full_ Nome_BD _%U';
sql 'alter system archive log current';
backup as compressed backupset incremental level 0 section size 50g database;
BACKUP SECTION SIZE 50G ARCHIVELOG ALL not backed up 1 times FORMAT 'e:\BACKUP\RMAN\ Nome_BD \bk_archivelog_ Nome_BD _%U';
delete noprompt archivelog until time 'SYSDATE-2';
}


2 - Ir ate o agendador de tarefas do Windows












quarta-feira, 2 de dezembro de 2015

Script Listar Datafiles

Bom dia a todos,

Hoje precisei listar os Datafiles para verificar o tamanho,uso e espaço livre,e me deparei com esse script bem legal. e achei interessante dividir com vocês.


 ========= Script Completo DATAFILES =========================

set lin 120 pages 60 feed off heading on
ttitle skip center "Relatorio de utilizacao de Espaco por Datafile" skip 2
col tablespace for a15
col file format a55
set numformat 99999999.9

accept tbsn prompt "Digite o nome da Tablespace [enter=todas]...:"

clear breaks
clear computes
break on Tablespace skip 1 on report skip 2

compute sum of Total(M) on Tablespace
compute sum of Used(M)  on Tablespace
compute sum of Free(M)  on Tablespace
compute avg of %Free    on Tablespace
compute sum of Total(M) on report
compute sum of Used(M)  on report
compute sum of Free(M)  on report


select b.file_name "File",
       b.tablespace_name "Tablespace",
       b.bytes/(1024*1024) "Total(M)",
       round((b.bytes-sum(nvl(a.bytes,0)))/(1024*1024),1) "Used(M)",
       round(sum(nvl(a.bytes,0))/(1024*1024),1) "Free(M)",
       round((sum(nvl(a.bytes,0))/(b.bytes))*100,1) "%_Free"
from   dba_free_space a,
       dba_data_files b
where  a.file_id(+) = b.file_id
and    b.tablespace_name like (upper(nvl('&tbsn',b.TABLESPACE_NAME)))
group by b.tablespace_name,b.file_name,b.bytes
order by b.file_name asc;

ttitle off

============================================================




sábado, 10 de outubro de 2015

Editar Jobs no OEM12c


Olá DBAs,

Segue mais um procedimento no Enterprise Manager 12C.

Poucos sabem, mas o OEM pode executar seus Jobs de banco e ainda notificar se ocorre algum problema,vou mostrar hoje como editar um job dentro do OEM12C, caso você entre em uma empresa que ja faz uso da ferramenta ou se você deseja criar um novo job tbm pode seguir esse caminho.

1 - Na Tela inicial do OEM12C, se estiver configurada como Summary, do lado esquerdo abaixo temos o status dos jobs que apresentaram algum erro,clique no numero de erros;


2 - Selecione o Job e clique em problems;



3 - Clique na ultima falha deexecução;




4 -  Nesta tela mostra o script que rodou e toda a sequencia,no final aparece o erro que o BD indicou no final da execução;



5 - Volte uma tela e clique em "Editar", depois selecione a aba Parameters e modifique o que for necessário no script;


1 - Para criar um novo Job, na tela inicial selecione enterprise> jobs> activity

2 - Clique em create like e defina o alvo,parametros,credenciais do banco,schedulle e access.( os detalhes de criação,mostrarei em outro post) 



Boa Sorte DBAs!!!


Bjs

Mari




 




domingo, 20 de setembro de 2015

Aumentar Tablespace Utilizando o Enterprise Manager 12C (OEM12C)


Olá a todos,

Alem de verificarmos as tablespaces de forma rapida e de varios alvos,com o Enterprise Manager, tambem podemos aumentar o datafile ou inserir um novo,facilita muito o trabalho do DBA no dia a dia.

Segue o passo a passo;


1 - Logado no OEM12C, selecione a opção Alvos > Banco de Dados;




1.1 - Essa opção leva a lista de banco de dados gerenciados pelo Enterprise Manager 12c,selecione o alvo que deseja efetuar a modificação.



2- Selecione a opção Administração > Armazenamento > Tablespace;





3 - Esta particularmente é umas das telas que mais gosto no OEM12c, aqui temos as informações de espaço,tipo,tamanho  e espaço utilizado da tablespace;



3.1 - Selecione a Tablespace qual você quer aumentar


4 - Na tela abaixo, temos a informação do data file,qual o tamanho dele atualmente,o diretório que se encontra, o tamanho utilizado e se esta habilitada a expansão automática;

Você tem duas alternativas, expandir o data file, clicando sobre o nome dele, ou adicionar um novo data file;


5 - Na tela abaixo, eu criei um novo datafile,observe uma coisa muito importante o OEM não esta criando o meu datafile no mesmo diretório que ja esta os antigos,isso é muito perigoso,pois quando rodamos um backup dependendo da ferramenta,pode ocorrer erros e uma possível ruptura dos dados;



Após inserir os dados solicitados, você tem três opções, mostrar SQL ( onde aparece o código SQL para inserir diretamente por linha de comando), você pode cancelar, ou simplesmente clicar em OK (se clicar em OK ele vai confirmar os dados e executar)


Mostrar SQL





E pronto,espero ter ajudado.


Boa Sorte DBAs.


Bjs

Mari

quinta-feira, 3 de setembro de 2015

ORA-32001: write to SPFILE request but no SPFILE specified at startup


Esse erro ocorre quando o SPFILE não foi configurado para ser utilizado no banco de dados. |Antes da correção do erro vamos ver o que é SPFILE e PFILE.

Alem do Control files o Oracle tem dois tipos de arquivos de parâmetros que são lidos na inicilização do banco de dados,caso não encontre os arquivos a inicialização falha.

PFILE 

O PFILE é um arquivo texto, dentro dele estão guardados os parâmetros de configuração do banco de dados. Estes parâmetros informam a quantidade de memória a ser alocada, onde estão os arquivos do banco de dados e onde gravar os arquivos necessários ao funcionamento do banco. Como o PFILE é um arquivo de texto puro, ele pode ser facilmente editado no VI do UNIX ou no Notepad do Windows. Normalmente ele tem o nome de init.ora, onde SID é a identificação de seu banco de dados, exemplo se seu SID é MDB  então seu PFILE será nomeado como initmdb.ora


SPFILE

Diferente do PFILE, o SPFILE é um arquivo binário e seu conteúdo não pode ser editado. Para verificar se ele existe, use o comando:


SHOW PARAMETER SPFILE;

Ele não pode ser editado diretamente como o PFILE, porem com o comando ALTER SYSTEM você pode modificar os parametros, a maior vantagem de uso do SPFILE é que ele é incluido no backup do RMAN toda vez que é modificado e essas modificações são efetuadas com o banco aberto,porem o correto é reiniciar a intância assim que modificar o parametro.



Corrigindo o ORA-32001


1 - Verifique se o SPFILE esta sendo usado;

show parameter spfile

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string

Podemos ver que o value esta em branco, isso indica que o spfile não foi criado.

2 - Crie um SPFILE;

create pfile from spfile;


3 - shutdown immediate
     startup
     
4 - Repita o comando do passo 1 e verifique se o value esta preenchido.

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string      /u01/app/oracle/product/11.2.0
                                                 /db_1/dbs/spfileprodnew.ora


Boa Sorte DBAs

Bjs

Mari