Copiando arquivos do ASM para uma instance ASM remota
Uma feature muito útil existente desde a versão 11.1 do Automatic Storage Management (ASM) Command-Line Utility (ASMCMD) é o cp, além de permitir a cópia local de arquivos permite também a cópia remota entre instances ASM (coisa que nem todos sabem).
Realizando a cópia remota de arquivos do ASM para ASM, descarta-se a necessidade de uma unidade auxiliar (NFS, file system, ..) para a transição do arquivo, além de realizar uma conversão transparente entre Little-Endian e Big-Endian caso necessário. Para copias de arquivos non-ASM ou para um diskgroup ASM não existe a conversão direta do endian sendo necessário a utilização de ferramentas complementares para isto (RMAN).
Sintaxe para cópia remota: (caso o password não seja informado no comando ele será solicitado posteriormente, conforme exemplo abaixo)
cp [FILE NAME] [REMOTE ASM USER]/[PASSWORD]@[SERVER NAME].[ASM INSTANCE]:[REMOTE DESTINTATION] ASMCMD> cp TOOLS.732.947846879 sys@server2.+ASM:+DGDATA/TESTE/TOOLS01.dbf Enter password: ********** copying +DGDATA/ORCL1/datafile/TOOLS.732.947846879 -> server2:+DGDATA/TESTE/TOOLS01.dbf ASMCMD> pwd +DGDATA/TESTE ASMCMD> ls -lt Type Redund Striped Time Sys Name N TOOLS01.dbf => +DGDATA/ASM/DATAFILE/TOOLS01.dbf.10182.958218431 ASMCMD> Caso a instance ASM no servidor remoto possua uma porta diferente da default 1521, especifique a porta através da opção --port ASMCMD> cp --port 1525 TOOLS.732.947846879 sys@server2.+ASM:+DGDATA/TESTE/TOOLS01.dbf
Limitações do cp:
– Não permite a cópia de arquivos como OCR ou SPFILE;
– Não pode copiar arquivos entre duas instâncias remotas. A instância local do Oracle ASM deve ser a origem ou o destino da operação.
Além do cp do ASMCMD existe o DBMS_FILE_TRANSFER que também permite a cópia de arquivos de forma local e remota realizando automaticamente (por padrão) a conversão de endian (11.2.0.4 e posterior).
“From 12c and in 11.2.0.4 DBMS_FILE_TRANSFER does the conversion by default. Using DBMS_FILE_TRANSFER the destination database converts each block when it receives a file from a platform with different endianness. Datafiles can be imported after they are moved to the destination database as part of a transportable operation without RMAN conversion.”
<
p dir=”ltr” style=”line-height: 1.2; margin-top: 0pt; margin-bottom: 0pt;”>
PUT_FILE:
-- remote database SQL> create directory dir2 as '+DGDATA/TESTE2'; Directory created. -- local database SQL> create directory dir1 as '+DGDATA/TESTE2'; Directory created. SQL> create database link remote connect to user_copy identified by pwd1 using 'ORCL1'; Database link created. BEGIN DBMS_FILE_TRANSFER.put_file( source_directory_object => 'DIR1', source_file_name => 'EXEMPLO.DBF', destination_directory_object => 'DIR2', destination_file_name => 'EXEMPLO.DBF', destination_database => 'REMOTE'); END; / PL/SQL procedure successfully completed. -- remote ASM ASMCMD> ls -lt Type Redund Striped Time Sys Name N EXEMPLO.DBF => +DGDATA/ORCL1/DATAFILE/FILE_TRANSFER/EXEMPLO.DBF.10195.958231667
GET_FILE:
-- remote database SQL> create directory dir1 as '/u01/orcl1/datafile'; Directory created. -- local database SQL> create directory dir2 as '+DGDATA/TESTE2'; Directory created. SQL> create database link remote connect to user_copy identified by pwd1 using 'ORCL1'; Database link created. BEGIN DBMS_FILE_TRANSFER.get_file( source_directory_object => 'DIR1', source_file_name => 'EXEMPLO.DBF', source_database => 'REMOTE', destination_directory_object => 'DIR2', destination_file_name => 'EXEMPLO.DBF'); END; / PL/SQL procedure successfully completed. -- local ASM ASMCMD> ls -lt Type Redund Striped Time Sys Name N EXEMPLO.DBF => +DGDATA/ORCL2/DATAFILE/FILE_TRANSFER/EXEMPLO.DBF.1774.958232287
Referências
https://docs.oracle.com/cd/B28359_01/server.111/b31107/asm_util.htm#OSTMG94243
https://docs.oracle.com/database/122/OSTMG/asmcmd-file-commands.htm#OSTMG94462
How to Migrate to different Endian Platform Using Transportable Tablespaces With RMAN (Doc ID 371556.1)

Anderson Graf é Bacharel em Sistemas de Informação, MBA em Oracle Database Management e Senior DBA na Teiko Soluções em TI. Está envolvido em soluções multi-plataforma de alta disponibilidade, como implementações de RAC, Dataguard, Oracle Engineered Systems entre outros. É um entusiasta da tecnologia Oracle, possui certificações, OCP 10g, 11g e 12c, OCS Linux, banco de dados e cloud control, OCE Performance Tuning, OPNCS, Oracle ACE Associate e autor em vários blogs e OTN (Oracle Technology Network).