Como tablespaces podem ser transportadas a partir de qualquer plataforma para qualquer plataforma de 10g

Este boletim explica como tablespaces podem ser transportadas a partir de qualquer plataforma para qualquer plataforma de 10g, desde que as plataformas estejam na lista abaixo:

   SQL>  select * from v$transportable_platform;
   PLATFORM_ID PLATFORM_NAME                            ENDIAN_FORMAT
   ---------- ---------------------------------------- --------------
             1 Solaris[tm] OE (32-bit)                  Big
             2 Solaris[tm] OE (64-bit)                  Big
             7 Microsoft Windows IA (32-bit)            Little
            10 Linux IA (32-bit)                        Little
             6 AIX-Based Systems (64-bit)               Big
             3 HP-UX (64-bit)                           Big
             5 HP Tru64 UNIX                            Little
             4 HP-UX IA (64-bit)                        Big
            11 Linux IA (64-bit)                        Little
            15 HP Open VMS                              Little
             8 Microsoft Windows IA (64-bit)            Little
             9 IBM zSeries Based Linux                  Big
            13 Linux x86 64-bit                         Little
            16 Apple Mac OS                             Big
            12 Microsoft Windows x86 64-bit             Little
            17 Solaris Operating System (x86)           Little
            18 IBM Power Based Linux                    Big
            20 Solaris Operating System (x86-64)        Little
            19 HP IA Open VMS                           Little

1. Verifique se há restrições

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

Reveja as “Limitações no Uso Transportable Tablespace” seção na Nota 371556,1. Entre outras coisas, objetos que residem no tablespace SYSTEM e objetos pertencentes a SYS não serão transportados.

Isto inclui, mas não está limitado à usuários, privilégios, Stored Procedures PL/SQL e views.

Se você usar SPATIAL INDEX, aplicar a solução na Nota 579136,1 “IMPDP TRANSPORTABLE TABLESPACE  FAILS for SPATIAL INDEX” antes de continuar

Verifique se os tablespaces serão auto-suficientes

execute sys.dbms_tts.transport_set_check('TBS_DADOS,TBS_INDICE,USERS,TOOLS', true);
select * from sys.transport_set_violations;

==> Essas violações devem ser resolvidas antes de trasportar os tablespaces.

Coloque as tablespaces em modo READ ONLY

ALTER TABLESPACE TOOLS READ ONLY;
ALTER TABLESPACE USERS READ ONLY;
ALTER TABLESPACE TBS_DADOS  READ ONLY;
ALTER TABLESPACE TBS_INDICE READ ONLY;

3. Exporte os metadados

exp userid=\'/ as sysdba\' transport_tablespace=y tablespaces=TBS_DADOS,TBS_INDICE,USERS,TOOLS file=spc_tts.dmp log=exp_spc_tts.log statistics=none

Note: Os dados da tabela não serão exportados

      Sobre o export dos metadados usando transportable tablespace...
      For tablespace REPOSIT ...
      . exporting cluster definitions
      . exporting table definitions
      . . exporting table                MTG_COL_DEP_CHG
      . . exporting table                MTG_DATABASES 
      ....
      . . exporting table              ALEX11_SYSUSERS
      . exporting referential integrity constraints
      . exporting triggers
      . end transportable tablespace metadata export
      Export terminated successfully without warnings.

4. Verifique a ordenação (endianness) do banco de dados de destino e converta, se necessário

–> Execute localmente a conversão do endian compatível antes da etapa de importação:

     rman target=/

    Recovery Manager: Release 10.1.0.1.0 - 64bit Beta
    connected to target database: V101B2 (DBID=3287908659)
    RMAN> convert tablespace 'TBS_DADOS,TBS_INDICE,USERS,TOOLS'
    2>  to platform='Linux x86 64-bit'
    3> FORMAT='/DADOS/FULL/transport_linux/%U';

5. Mova os datafiles e o arquivo do dump de exportação

———————————–

          $ftp tts.dmp
               + 
                /database/db101b2/V101B2/datafile/reposit01.dbf (no conversion)
               or
                /tmp/reposit01.dbf (converted file if conversion had been required)

6. Importe os metadados

—————

          $ imp userid=\'/ as sysdba\' TRANSPORT_TABLESPACE=Y  file=spc_tts.dmp log=spc_imp_tts.log  TABLESPACES= TBS_DADOS,TBS_INDICE,USERS,TOOLS datafiles=DADOS/FULL/transport_linux/bla1.dbf,DADOS/FULL/transport_linux/bla2.dbf,DADOS/FULL/transport_linux/bla3.dbf, (or /tmp/reposit01.dbf )

7. Altere as tablespaces importadas para READ WRITE

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

 ALTER TABLESPACE TOOLS READ WRITE;
ALTER TABLESPACE USERS READ ONLY;
ALTER TABLESPACE TBS_DADOS  READ WRITE;
ALTER TABLESPACE TBS_INDICE  READ WRITE;
PRONTO!

Preservando estatísticas ao transportar Tablespaces no Oracle

Este é um roteiro para transportar um tablespace sem ter que analisar novamente tabelas e índices. Isto naturalmente supõe que as estatísticas otimizadoras já tenham sido coletadas. O exemplo usa um schema chamado DEMO e um tablespace chamado TRANSTS.

1. Preserve as estatísticas:

exec DBMS_STATS.CREATE_STAT_TABLE ('DEMO','DEMOSTATS');
exec DBMS_STATS.EXPORT_SCHEMA_STATS ('DEMO','DEMOSTATS');

2. Transforme o tablespace em READ ONLY, como preparação para o transporte:

ALTER TABLESPACE transts READ ONLY;

3. Verifique se não há nenhuma dependência que venha a violar as restrições de transporte:

exec dbms_tts.transport_set_check(‘TRANSTS’, TRUE);

SELECT * FROM transport_set_violations;

4. Exporte as definições de dicionário do tablespace:

 exp TRANSPORT_TABLESPACE=y TABLESPACES=transts \ TRIGGERS=y  CONSTRAINTS=y GRANTS=y FILE=tts.dmp LOG=exptts.log

5. Faça um upload para um FTP ou copie os arquivos de dados e exporte o arquivo da origem para o destino;

6. Crie usuários no banco de dados alvo, caso eles ainda não tenham sido criados;

7. Ligue os tablespaces ao banco de dados alvo:

     imp TRANSPORT_TABLESPACE=y \
     DATAFILES=('/opt/oracle/data/TRANSTS_1.dbf') \
     TABLESPACES=(transts) \
     FILE=tts.dmp LOG=imptts.log

8. Marque o tablespace como READ WRITE. Dessa forma, RMAN reconhecerá sua existência. Caso seja necessário, é possível reverter o ajuste do tablespace para READ ONLY:

 ALTER TABLESPACE transts READ WRITE;

9. Importe as estatísticas preservadas:

exec DBMS_STATS.IMPORT_SCHEMA_STATS (‘DEMO’,’DEMOSTATS’);

Sobre Alexandre Pires

ORACLE OCS Goldengate Specialist, OCE RAC 10g R2, OCP 12C, 11g, 10g , 9i e 8i - Mais de 25 anos de experiência na área de TI. Participei de projetos na G&P alocado na TOK STOK, EDINFOR alocado na TV CIDADE "NET", 3CON Alocado no PÃO DE AÇUCAR, DISCOVER alocado na VIVO, BANCO IBI e TIVIT, SPC BRASIL, UOLDIVEO alocado no CARREFOUR e atualmente na ORACLE ACS atendendo os seguintes projetos: VIVO, CLARO, TIM, CIELO, CAIXA SEGUROS, MAPFRE, PORTO SEGURO, SULAMERICA, BRADESCO SEGUROS, BANCO BRADESCO, BASA, SANTANDER, CNJ, TSE, ELETROPAULO, EDP, SKY, NATURA, ODEBRESHT, NISSEI, SICREDI, CELEPAR, TAM, TIVIT, IBM, SMILES, CELEPAR, SERPRO,OKI,BANCO PAN, etc
Esse post foi publicado em PLSQL SCRIPTS, SHELL SCRIPT, TUTORIAL e marcado , , , , , , , , , , , , . Guardar link permanente.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s