Movimentando Lob Segments

January 19, 2012 Leave a comment

Olá Pessoal.

 

Quando cria se uma tabela utilizando datatype XMLTYPE é criado um segmento do tipo lob.

Em um reorg por exemplo pode ser necessário movimenta-lo, para isso siga os passos abaixo.

PS: Esta mto objetivo pois estou com pressa… :D

 

– Encontrando lob segments

 

SQL> SELECT SEGMENT_NAME,SEGMENT_TYPE,TABLESPACE_NAME FROM DBA_EXTENTS WHERE SEGMENT_TYPE=’LOBSEGMENT’

2 AND TABLESPACE_NAME = ‘TSDCC’;

 

SEGMENT_NAME SEGMENT_TYPE TABLESPACE_NAME

—————————— —————— ——————————

SYS_LOB0000270286C00004$$ LOBSEGMENT TSDCC

SYS_LOB0000270286C00004$$ LOBSEGMENT TSDCC

SYS_LOB0000270286C00004$$ LOBSEGMENT TSDCC

SYS_LOB0000270286C00004$$ LOBSEGMENT TSDCC

SYS_LOB0000270286C00004$$ LOBSEGMENT TSDCC

 

Para mover o lob precisamos das seguintes informações:

 

 

column table_name format a30

column column_name format a30

column segment_name format a30

 

 

SQL> SELECT OWNER, TABLE_NAME,COLUMN_NAME,SEGMENT_NAME FROM DBA_LOBS

2 WHERE TABLESPACE_NAME = ‘TSDCC’ ;

 

OWNER TABLE_NAME COLUMN_NAME SEGMENT_NAME

—————————— —————————— —————————— ——————————

BMFAUT TTSPMLQ_XML MSG_XML SYS_LOB0000120908C00004$$

BMFAUT TXMLMSGTV2 DS_DADO SYS_LOB0000120911C00007$$

BMFAUT TXMLMSGV2 DS_MSG SYS_LOB0000120917C00004$$

BMFAUT TXMLMSG_GERA DS_MSG SYS_LOB0000120920C00004$$

BMFCM TTSPMLQ_XML MSG_XML SYS_LOB0000120939C00004$$

 

 

A sintaxe para movimentar lob é ‘ALTER TABLE <TABLE_NAME> MOVE LOB <LOB_NAME> STORE AS <SEGMENT_NAME> TABLESPACE <TABLESPACE_NAME>;

 

Abaixo esta um sql dinamico para criar o script de movimentação.

 

 

– Cria script para movimentar lobs

SELECT ‘ALTER TABLE ‘ || OWNER || ‘.’ || TABLE_NAME || ‘ MOVE LOB (‘ || COLUMN_NAME || ‘) STORE AS ‘ || SEGMENT_NAME || ‘ TABLESPACE TSDCC2;’

FROM DBA_LOBS

WHERE TABLESPACE_NAME = ‘TSDCC’;

 

ALTER TABLE BMFAUT.TTSPMLQ_XML MOVE LOB (MSG_XML) STORE AS SYS_LOB0000120908C00004$$ TABLESPACE TSDCC2;

 

É isso.

 

Abs.

Henrique

 

Pra que serve cada script de relatórios AWR ?

July 19, 2011 2 comments

Pessoal,

Esse post rápido irá descrever qual o proposito de cada scritpt awr localizado no $ORACLE_HOME/rdbms/admin .

– Relatorio para ambientes Single Instance
@$ORACLE_HOME/rdbms/admin/awrrpt.sql

–Relatorio para ambientes RAC

@$ORACLE_HOME/rdbms/admin/awrgrpt.sql

–Relatorio para instancias especificas do RAC

@$ORACLE_HOME/rdbms/admin/awrgrpti.sql

–Para um sql especifico

@$ORACLE_HOME/rdbms/admin/awrsqrpt.sql

– Para um sql especifico, em uma instancia especifica

@$ORACLE_HOME/rdbms/admin/awrsqrpi.sql

– Gerar relatorio com comparação de dois periodos distintos

@$ORACLE_HOME/rdbms/admin/awrddrpt.sql

– Gerar relatorio com comparação de dois periodos, usando todos instancias disponiveis no ambiente RAC.
@$ORACLE_HOME/rdbms/admin/awrgdrpt.sql

– Gerar relatorio com comparacao de dois periodos para uma instancia especifica do RAC
@$ORACLE_HOME/rdbms/admin/awrddrpi.sql

Vlws!

Commit;

Henrique

Otimizadores – CBO – E parametros de Tunning em poucas frases.

Pessoal,

Muito tempo sem postar nada :/ … Más vamos a um post rápido porém util.

 Estou trabalhando em um projeto de performance, é legal pois mexo desde de bancos pequenos 4Gb até RAC´s em 4 nodes com TB.. abaixo esta uns parametros que tenho levado em consideração e trazem um belo resultado.

Vejam uma breve descrição sobre os otimizadores utilizados de forma mais comuns, e parametros relacionas ao CBO, espero que seja útil.

OTIMIZADORES

FIRST_ROWS, favorece acesso ao index, é usado quando existe a necessidade de retornar as primeiras linhas de forma rápida mesmo que isso gere mais I/O que um full table scan.

O otimizador FIRST_ROWS, geralmente é utilizado em sistema de transações ONLINE onde o usuário final precisa da primeira pagina de informação o mais rápido possivel.

ALL_ROWS, esse otimizador favorece full table scans, principalmente quando existe a necessidade de reduzir os recursos do servidor. Esse otimizador normalmente é utilizado durante processos batch e para DW, onde o objetivo e reduzir o consumo de recursos do servidor.

PARAMETROS DE AJUDA AO CBO

optimizer_index_cost_adj, é um parametro muito importante para o CBO, pois é ele que determina a propensão que o CBO terá de escolher acesso a index ao invés de FULL TABLE SCAN. Quanto menor o valor, mais chances o CBO terá de escolher acesso ao dado via Index. Esse parametro pode trazer (no meu caso traz efetivamente) grandes ganhos de performance em bancos OLTP. abaixo esta um script que ajuda a mensurar o valor do parametro (coluna c5).

select

   a.average_wait                                  c1,

   b.average_wait                                  c2,

   a.total_waits /(a.total_waits + b.total_waits)*100  c3,

   b.total_waits /(a.total_waits + b.total_waits)*100  c4,

   (b.average_wait / a.average_wait)*100           c5

from

   v$system_event  a,

   v$system_event  b

where

   a.event = ‘db file scattered read’

and

   b.event = ‘db file sequential read’;

OPTIMIZER_INDEX_CACHING, esse parametro que diz ao CBO como seu index esta armazendo dentro do buffer cache.

O valor para o parametro optimizer_index_caching afeta o CBO em suas decisoes para operações de join ( nested loops) ou fazer um full table scan.

Abraço.

Henrique

Commit

/

Categories: Uncategorized

Estimando crescimento da tablespace SYSAUX – Retenção do AWR.

March 11, 2011 Leave a comment

Olá Pessoal.

Precisa aumentar a retenção do AWR  ? Em quanto a tablespace SYSAUX será acrescida por causa dessa alteração ?

A Oracle disponibiliza um script que faz esse calculo pra você, chama-se utlsyxsz.sql e esta localizado dentro de $ORACLE_HOME/rdbms/admin , abaixo esta o out de um teste que fiz na minha VM, repare que ele faz a pergunta e já te da a resposta com a média do sistema, fácil não  ?

Se precisar de um resumão do AWR, como retenção, intervalo de coleta, espaço ocupado e etc, use o script awrinfo.sql que esta no mesmo diretório.

 

**** SQLPlus *****

 

SQL> @utlsyxsz.sql

 

 

This script estimates the space required for the SYSAUX tablespace.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

Specify the Report File Name

~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The default report file name is utlsyxsz.txt.  To use this name,

press <return> to continue, otherwise enter an alternative.

 

Enter value for report_name: x

 

Using the report name x

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

SYSAUX Size Estimation Report

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

Estimated at

12:13:26 on Sep 28, 2010 ( Tuesday ) in Timezone -03:00

 

 

DB_NAME     HOST_PLATFORM                             INST STARTUP_TIME      PAR

———– —————————————- —– —————– —

* CERT      localhost.localdomain – Linux IA (32-bit     1 12:12:29 (09/28)  N)

 

 

~~~~~~~~~~~~~~~~~~~~

Current SYSAUX usage

~~~~~~~~~~~~~~~~~~~~

| Total SYSAUX size:                          74.0 MB

|

| Total size of SM/AWR                        43.3 MB (  58.4% of SYSAUX )

| Total size of SM/OPTSTAT                     2.9 MB (   3.9% of SYSAUX )

| Total size of LOGMNR                         5.9 MB (   8.0% of SYSAUX )

| Total size of SM/ADVISOR                     5.3 MB (   7.1% of SYSAUX )

| Total size of SM/OTHER                       4.8 MB (   6.4% of SYSAUX )

| Total size of EM_MONITORING_USER             1.6 MB (   2.1% of SYSAUX )

| Total size of LOGSTDBY                       0.9 MB (   1.2% of SYSAUX )

| Total size of XSOQHIST                       0.8 MB (   1.0% of SYSAUX )

| Total size of AO                             0.8 MB (   1.0% of SYSAUX )

| Total size of STREAMS                        0.5 MB (   0.7% of SYSAUX )

| Total size of JOB_SCHEDULER                  0.4 MB (   0.5% of SYSAUX )

| Total size of TSM                            0.3 MB (   0.3% of SYSAUX )

| Total size of Others                         6.9 MB (   9.3% of SYSAUX )

|

 

~~~~~~~~~~~~~~~~~~~~

AWR Space Estimation

~~~~~~~~~~~~~~~~~~~~

 

| To estimate the size of the Automatic Workload Repository (AWR)

| in SYSAUX, we need the following values:

|

|     – Interval Setting (minutes)

|     – Retention Setting (days)

|     – Number of Instances

|     – Average Number of Active Sessions

|     – Number of Datafiles

 

|

| For ‘Interval Setting’,

|   Press <return> to use the current value:     60.0 minutes

|   otherwise enter an alternative

|

Enter value for interval: 60

 

**   Value for ‘Interval Setting’: 60

 

|

| For ‘Retention Setting’,

|   Press <return> to use the current value:   7.00 days

|   otherwise enter an alternative

|

Enter value for retention: 7

 

**   Value for ‘Retention Setting’: 7

 

|

| For ‘Number of Instances’,

|   Press <return> to use the current value:   1.00

|   otherwise enter an alternative

|

Enter value for num_instances: 1

 

**   Value for ‘Number of Instances’: 1

 

|

| For ‘Average Number of Active Sessions’,

|   Press <return> to use the current value:   0.15

|   otherwise enter an alternative

|

Enter value for active_sessions: 20

 

**   Value for ‘Average Number of Active Sessions’: 20

 

| ***************************************************

| Estimated size of AWR:                     380.8 MB

|

|   The AWR estimate was computed using

|   the following values:

|

|            Interval -        60 minutes

|           Retention -      7.00 days

|       Num Instances -         1

|     Active Sessions -     20.00

|           Datafiles -        26

| ***************************************************

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Optimizer Stat History Space Estimation

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

| To estimate the size of the Optimizer Statistics History

| we need the following values:

|

|     – Number of Tables in the Database

|     – Number of Partitions in the Database

|     – Statistics Retention Period (days)

|     – DML Activity in the Database (level)

 

|

| For ‘Number of Tables’,

|   Press <return> to use the current value:  1,781.0

|   otherwise enter an alternative <a positive integer>

|

Enter value for number_of_tables: 1780

 

**   Value for ‘Number of Tables’: 1780

 

|

| For ‘Number of Partitions’,

|   Press <return> to use the current value:   0.00

|   otherwise enter an alternative <a positive integer>

|

Enter value for number_of_partitions:

 

**   Value for ‘Number of Partitions’: 0

 

|

| For ‘Statistics Retention’,

|   Press <return> to use the current value:     31.0 days

|   otherwise enter an alternative <a positive integer>

|

Enter value for stats_retention: 31

 

**   Value for ‘Statistics Retention’: 31

 

|

| For ‘DML Activity’,

|   Press <return> to use the current value:        2 <medium>

|   otherwise enter an alternative <1=low, 2=medium, 3=high>

|

Enter value for dml_activity: 20

 

**   Value for ‘DML Activity’: 20

 

| ***************************************************

| Estimated size of Stats history             72.6 MB

|

|   The space for Optimizer Statistics history was

|   estimated using the following values:

|

|                         Tables -   1,780

|                        Indexes -   1,883

|                        Columns -  26,052

|                     Partitions -       0

|          Indexes on Partitions -       0

|          Columns in Partitions -       0

|        Stats Retention in Days -      31

|          Level of DML Activity -  Medium

| ***************************************************

 

~~~~~~~~~~~~~~~~~~~~~~

Estimated SYSAUX usage

~~~~~~~~~~~~~~~~~~~~~~

 

| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

| Estimated size of AWR:                     380.8 MB

|

|   The AWR estimate was computed using

|   the following values:

|

|            Interval -        60 minutes

|           Retention -      7.00 days

|       Num Instances -         1

|     Active Sessions -     20.00

|           Datafiles -        26

| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

| Estimated size of Stats history             72.6 MB

|

|   The space for Optimizer Statistics history was

|   estimated using the following values:

|

|                         Tables -   1,780

|                        Indexes -   1,883

|                        Columns -  26,052

|                     Partitions -       0

|          Indexes on Partitions -       0

|          Columns in Partitions -       0

|        Stats Retention in Days -      31

|          Level of DML Activity -  Medium

| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

|   For all the other components, the estimate

|   is equal to the current space usage of

|   the component.

| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

|

|

| ***************************************************

| Summary of SYSAUX Space Estimation

| ***************************************************

 

| Est size of LOGMNR                           5.9 MB

| Est size of SM/ADVISOR                       5.3 MB

| Est size of SM/OTHER                         4.8 MB

| Est size of EM_MONITORING_USER               1.6 MB

| Est size of LOGSTDBY                         0.9 MB

| Est size of XSOQHIST                         0.8 MB

| Est size of AO                               0.8 MB

| Est size of STREAMS                          0.5 MB

| Est size of JOB_SCHEDULER                    0.4 MB

| Est size of TSM                              0.3 MB

| Est size of Others                           6.9 MB

 

| Est size of SM/AWR                         380.8 MB

| Est size of SM/OPTSTAT                      72.6 MB

|

| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

| Total Estimated SYSAUX size:               481.3 MB

| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

| ***************************************************

 

End of Report

 

Abraço,

Henrique

Commit

/

 

Categories: Administração, Dicas Tags: ,

Adicionando disco em Diskgroup ASM – Linux.

January 24, 2011 Leave a comment

Pessoal,

 Este post na verdade não é bem um artigo, é só um rascunho.. porque eu mesmo esqueço as vezes a sequencia correta dos passos para adicionar um disco para o asm, então vou colocar aqui, assim já sei onde vou procurar.

Os passos do artigo se resumem em adiconar o disco no ASMLIB ( se não souber o que é ASMLIB, dá um procurada é importante) e depois no diskgroup do ASM.

Mãos a obra.

Primeiro veja se o disco já pertence ao Oracle , para isso faça um querydisk.

- querydisk

[oracle@acsprod mpath (acnxp0)]$ sudo /usr/sbin/oracleasm querydisk /dev/mpath/mpath18p1

Device “/dev/mpath/mpath18p1″ is not marked as an ASM disk

 

Veja que o Asmlib respondeu que o disco não pertence a ele, então vamos criar o disco no Asmlib. 

– criando o disk

[oracle@acsprod mpath (acnxp0)]$ sudo /usr/sbin/oracleasm createdisk DSK013 /dev/mpath/mpath18p1

Writing disk header: done

Instantiating disk: done

 

Agora vamos listar os discos para ver ser foi criado “certinho” 

– liste os discos

sudo /usr/sbin/oracleasm listdisks

DSK000

DSK001

DSK002

DSK003

DSK004

DSK005

DSK006

DSK008

DSK009

DSK010

DSK011

DSK012

DSK013

 

 

Opa, legal o disco DSK013 esta lá, agora vamos adiciona-lo ao Diskgroup no ASM . 

Para isso configure as variaveis da sua instancia ASM e se conecte nela.

 

– veja o status dos discos e tamanho na visao v$asm_disk

set line 180

col path for a30 

select name, mount_status, header_status, mode_status, label, path, total_mb, free_mb from v$asm_disk

order by label, path

/

 

 

– valida o tamanho / espacos dos diskgroups

SQL> select name, total_mb, free_mb from v$asm_diskgroup;

 

NAME                             TOTAL_MB    FREE_MB

—————————— ———- ———-

NXARC                               71672      71616

NXDAT                              645040       4886 

 

– adicion disco a um diskgroup

SQL> alter diskgroup nxdat add disk ‘ORCL:DSK012′ name DSK012;

 

Diskgroup altered.

  

SQL> alter diskgroup nxdat add disk ‘ORCL:DSK013′ name DSK013; 

Diskgroup altered.

 

SQL> SQL> alter diskgroup nxdat add disk ‘ORCL:DSK014′ name DSK014;

 Diskgroup altered.

 

– Verifica o novo tamanho do diskgroup.

 

SQL>

SQL> select name, total_mb, free_mb from v$asm_diskgroup;

0

NAME                             TOTAL_MB    FREE_MB

—————————— ———- ———-

NXARC                               71672      71616

NXDAT                              860056     219896

 

 

Pronto o disco foi adicionado no Diskgroup.

 

Espero ter ajudado..

Abraço,

Henrique

commit

/

 

 

PS: Caso sua instância ASM seja 11g, você deve ser conectar com o privilegio de SYSASM e não SYSDBA com nas versões anteriores.es.

Recover de bloco com Block Media Recover – RMAN

December 10, 2010 1 comment

Olá,

Amigos, um tempo sem post.. muito trabalho, fim de ano, projetos atrasados…. enfim.. vamos lá.

Quando menos se espera , você pode precisar BMR ou Block Media Recover, essa funcionalidade do RMAN que faz recuperação apenas do bloco corrompido tem salvo minha “vida” nos últimos 3 dias, isso porque a três noites seguidas que sou acordado pelo time de monitoraçao com erros no backup de 3 bases que tem datafiles no mesmo filesystem.

O problema é daqueles que nós DBA´s nunca queremos corrupção, por sorte esse ambiente tem o RMAN configurado perfeitamente com a Library de fitas, o que facilita muito meu trabalho, afinal faz o recover apenas do que realmente é necessário.

Bom vamos ao que interessa.

 

Primeiramente o erro – Se estiver usando o rman para backup não se desespere…rsrs

Hex dump of Absolute File 24, Block 116222 in trace file /oracle/9.2.0/admin/wb5ip0/udump/wb5ip01_ora_9888.trc

***

Corrupt block relative dba: 0x0601c5fe (file 24, block 116222)

Fractured block found during backing up datafile

Data in bad block -

 type: 0 format: 0 rdba: 0×00000000

 last change scn: 0×0000.00000000 seq: 0×0 flg: 0×00

 consistency value in tail: 0xc51d0601

 check value in block header: 0×0, block checksum disabled

 spare1: 0×0, spare2: 0×0, spare3: 0×0

***

 

1 – Na mensagem temos informações valiosas, o id do datafile (24) e o bloco corrompido, com a query abaixo é possivel descobrir qual o segmento que esta nesse bloco, ou se por sorte ele esta vazio. Se o segmento for index por exemplo, não muito grande, pode se fazer um rebuild e já amenizar o problema.

 

SELECT SEGMENT_NAME, SEGMENT_TYPE FROM DBA_EXTENTS

WHERE FILE_ID = 24  AND 116222 BETWEEN BLOCK_ID AND

BLOCK_ID + BLOCKS – 1;

 

Uma alternativa bem legal também, é fazer resize do datafile (se possivel) até o bloco corrompido, isso vai eliminar o problema, e depois faz outro resize para o tamanho normal.

 

PS: Lembrando que o RMAN irá mostrar um erro sempre que for fazer backup, caso exista blocos corrompidos, então precisa realmente arrumar o “trem”.

 

2 – No meu caso o bloco estava vazio, então decidi utilizar o Block Media Recover, para isso, primeiro é necessário rodar um comando de verificação na base. Esse comando irá procurar por blocos corrompidos e em encontrando irá popular a view v$backup_corruption.

– Comando de verificação – Aloquei varios canais, más pode ser feito so o comando backup validate…

 

run {

allocate channel d1 type disk;

allocate channel d2 type disk;

allocate channel d3 type disk;

allocate channel d4 type disk;

allocate channel d5 type disk;

backup validate check logical database;

}

 

Quando o comando terminar, faça uma query na v$backup_corruption e veja o resultado.

SQL> select file#, block#, marked_corrupt, corruption_type

  2  from v$backup_corruption;

 

     FILE#     BLOCK# MAR CORRUPTIO

———- ———- — ———

        24     116222 YES FRACTURED

        27     378708 YES FRACTURED

        28     256001 YES FRACTURED

        24     116222 YES FRACTURED

        28     256001 YES FRACTURED

        24     116222 YES FRACTURED

        28     256003 YES FRACTURED

        28     256005 YES FRACTURED

        27     378708 YES FRACTURED

        28     256001 YES FRACTURED

        24     116222 YES FRACTURED

        27     378708 YES FRACTURED

        24     116222 YES FRACTURED

 

O retorno foi drastico, várias corrupções, vamos a correção.

 

No RMAN, mande o comando :

 

run {

ALLOCATE CHANNEL c1 TYPE ‘sbt_tape’

PARMS ‘ENV=(TDPO_OPTFILE=/oracle/9.2.0/tsm/tdpo_acvdp0.opt)’;

blockrecover corruption list;

RELEASE CHANNEl c1;

}

 

Uma explicação rápida sobre o bloco de comando acima:

ALLOCATE CHANNEL c1 TYPE ‘sbt_tape’ à alocando um canal do tipo fita

PARMS ‘ENV=(TDPO_OPTFILE=/oracle/9.2.0/tsm/tdpo_acvdp0.opt)’ – Passando path do driver da fita.

blockrecover corruption list à Ira fazer recover de toda a lista de blocos contidas na v$backup_corruption, uma alternative seria passer penas o file e bloco corrompido, nesse caso ficaria assim blockrecover datafile 24 block 116222;.

RELEASE CHANNEL C1 – Libera o canal de fita alocado no primeiro comando.

 

Durante a execução do comando, o rman irá pesquisar por um backup válido do bloco, e de forma sequencial aplicar os archives necessários para que o bloco fique consistente com o restante do banco.

 

– Saída do comando.

Starting blockrecover at 10-12-2010 05:25:32

 

channel c1: restoring block(s)

channel c1: specifying block(s) to restore from backup set

restoring blocks of datafile 00024

channel c1: restored block(s) from backup piece 1

piece handle=gslv3gfi_1_1 tag=TAG20101209T031551 params=NULL

channel c1: restored block(s) from backup piece 2

piece handle=gslv3gfi_2_1 tag=TAG20101209T031551 params=NULL

channel c1: restored block(s) from backup piece 3

piece handle=gslv3gfi_3_1 tag=TAG20101209T031551 params=NULL

channel c1: block restore complete

 

– Aplicando archives

archive log thread 1 sequence 90379 is already on disk as file /oradata/arch01/wb5ip0/wb5ip01_0000090379.arc

channel c1: starting archive log restore to default destination

channel c1: restoring archive log

archive log thread=1 sequence=90312

channel c1: restored backup piece 1

piece handle=gulv3h74_1_1 tag=TAG20101209T034748 params=NULL

channel c1: restore complete

 

channel c1: restore complete

Finished blockrecover at 10-12-2010 05:38:20

 

 Após a finalização, faça um dbverify somente para garantir que não existem mais blocos corrompidos..

 

É isso galera.

 

Abraço,

Henrique

Commit

/

Validar sintaxe de script rman

November 22, 2010 Leave a comment

Olá,

Precisa ter certeza de que seu script de backup / restore esta correto ? Não pode executa-lo ?

Utilize o comando checksyntax, veja como é simples.

 

Criei um arquivo de exemplo simples.

[oracle@localhost ~]$ vi bkp_online.sql

run {

backup as compressed backupset database include current controlfile plus archivelog;

}

 

Entre no rman com a opção checksyntax.

[oracle@localhost ~]$ rman checksyntax

Recovery Manager: Release 10.2.0.1.0 – Production on Fri Sep 24 09:46:31 2010

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

RMAN>

Para fazer o teste “chame” o script.

 

RMAN> @bkp_online.sql

RMAN> run {

2> backup as compressed backupset database include current controlfile plus archivelog delete all input;

3> }

The cmdfile has no syntax errors

RMAN> **end-of-file**

 

Se receber a mensagem “The cmdfile has no syntax errors”, fique tranquilo tudo esta perfeito.

 

Abraço,

Henrique

Commit

/

 

Follow

Get every new post delivered to your Inbox.