Como posso fazer um backup de RMAN da minha instância de banco de dados do Amazon RDS para Oracle?
Quero usar o Recovery Manager (RMAN) para fazer um backup da minha instância de banco de dados do Amazon Relational Database Service (Amazon RDS) para Oracle.
Resolução
Antes de fazer um backup de RMAN da sua instância de banco de dados do Amazon RDS para Oracle, observe as seguintes limitações:
- Quando você executa um backup de RMAN em sua instância de banco de dados, você consome espaço do armazenamento alocado para essa instância. Também é possível usar a integração do Amazon Elastic File System (Amazon EFS) para armazenar arquivos de backup em armazenamento estendido sem aumentar o tamanho geral do armazenamento da sua instância de banco de dados.
- Recursos como a opção paralela para backups, compactação de backup, validação de banco de dados e monitoramento de alterações em blocos estão disponíveis somente para usuários do Oracle Enterprise Edition. Para obter mais informações, consulte Oracle Database Editions no site do Oracle.
- Os recursos do RMAN não são compatíveis com réplicas de leitura do RDS para Oracle, mas é possível usar o monitoramento de alterações em blocos nas réplicas de leitura.
- Você deve ativar os backups automatizados em suas instâncias de banco de dados antes de realizar um backup de RMAN. Como os backups de RMAN são operações on-line, o log de arquivamento deve estar ativado. Ao ativar o backup automatizado em sua instância, você também define a instância de banco de dados no modo Archive Log.
Execute o backup de RMAN da sua instância de banco de dados
Use um dos métodos a seguir para realizar o backup de RMAN da sua instância de banco de dados:
- Use o diretório DATA_PUMP_DIR padrão.
- Crie um novo diretório para armazenar os arquivos de backup no armazenamento alocado da instância do RDS.
- Use a integração do Amazon EFS para evitar o uso do armazenamento alocado da sua instância de banco de dados.
Para monitorar a quantidade de armazenamento consumido pelo diretório, execute a seguinte consulta:
SELECT round(SUM(filesize)/1024/1024/1024, 3) SIZE_IN_GB FROM TABLE(rdsadmin.rds_file_util.listdir('<DIRECTORY_NAME>'));
Realize um backup completo do banco de dados da sua instância de banco de dados
Ao realizar um backup completo do banco de dados, você faz backup de todos os arquivos de dados na sua instância de banco de dados. Isso inclui os arquivos de controle e o arquivo de procedimentos armazenados.
Para realizar um backup completo do banco de dados com o nome da tag Full_DB_BACKUP no DATA_PUMP_DIR com parâmetros de tarefa padrão, execute a seguinte consulta:
BEGIN rdsadmin.rdsadmin_rman_util.backup_database_full( p_owner => 'SYS', p_directory_name => 'DATA_PUMP_DIR', p_tag => 'FULL_DB_BACKUP', p_rman_to_dbms_output => FALSE); END; /
Realize um backup incremental do banco de dados da sua instância de banco de dados
Os backups incrementais usam um parâmetro extra chamado p_level. Para realizar um backup incremental completo, defina p_level como 0. Para realizar um backup diferencial incremental, defina p_level como 1. Para obter mais informações, consulte About RMAN incremental backups (Sobre backups incrementais de RMAN) no site do Oracle.
Assim como os backups completos, os backups incrementais em instâncias de banco de dados do RDS para Oracle têm parâmetros comuns que é possível definir antes de iniciar o backup.
Para realizar um backup incremental com o nome da tag MY_INCREMENTAL_BACKUP no diretório DATA_PUMP_DIR com parâmetros de tarefa padrão, execute o procedimento a seguir:
BEGIN rdsadmin.rdsadmin_rman_util.backup_database_incremental( p_owner => 'SYS', p_directory_name => 'DATA_PUMP_DIR', p_level => 1, p_tag => 'MY_INCREMENTAL_BACKUP', p_rman_to_dbms_output => FALSE); END; /
Realize um backup do log de arquivamento da sua instância de banco de dados
Use o pacote rdsadmin_rman_util do Amazon RDS para Oracle para fazer backup de seus logs de arquivamento com base no intervalo SCN, no intervalo de números de sequência e no intervalo de datas.
Execute o procedimento a seguir para fazer backup dos logs de arquivamento da sua instância no diretório ARCHIVE_LOG_BACKUP com o nome de tag LOG_BACKUP. Para modificar as configurações de seus backups de logs de arquivamento, consulte Realização de tarefas comuns do RMAN para instâncias de banco de dados Oracle.
--creating a directory to store archive log backups EXEC rdsadmin.rdsadmin_util.create_directory(p_directory_name => 'ARCHIVE_LOG_BACKUP'); --performing archive log backup BEGIN rdsadmin.rdsadmin_rman_util.backup_archivelog_all( p_owner => 'SYS', p_directory_name => 'ARCHIVE_LOG_BACKUP', p_tag => 'LOG_BACKUP', p_rman_to_dbms_output => FALSE); END; /
Execute um backup em tablespace da sua instância de banco de dados
Use os parâmetros comuns descritos em Backup de um tablespace para realizar um backup individual de tablespace da sua instância de banco de dados. O comando de exemplo a seguir faz backup do tablespace USERS1 no diretório personalizado TB_BACKUP com o nome de tag MYTABLESPACE_BACKUP.
BEGIN rdsadmin.rdsadmin_rman_util.backup_tablespace( p_owner => 'SYS', p_directory_name => 'TB_BACKUP', p_tablespace_name => 'USERS1', p_tag => 'MYTABLESPACE_BACKUP', p_rman_to_dbms_output => FALSE); END; /
Observação: também é possível usar o procedimento rdsadmin_rman_util para realizar o backup do arquivo de controle. Para obter mais informações, consulte Backup de um arquivo de controle.
Monitore as tarefas de backup de RMAN
Para monitorar o backup de RMAN, use consultas SQL ou verifique os arquivos de log gerados para a tarefa de RMAN.
Use os métodos a seguir para acessar os arquivos de log das tarefas de backup de RMAN:
-
Defina p_rman_to_dbms_output como TRUE na tarefa de RMAN que você deseja executar. Certifique-se de definir serveroutput como on antes de executar o pacote rdsadmin_rman_util.
-
Para listar os arquivos de log de tarefas do RMAN, consulte a seção de logs e eventos no console do Amazon Aurora e do RDS.
-
Se a tarefa de backup de RMAN estiver concluída, também é possível executar a seguinte consulta SQL para listar os logs de tarefas do RMAN. Em seguida, use o procedimento rdsadmin.rds_file_util.read_text_file para ler os logs. Para obter mais informações, consulte Listar arquivos.
column filename format a70 set linesize 200 SELECT * FROM TABLE(rdsadmin.rds_file_util.listdir('BDUMP')) where filename like '%rman%'; -
Para verificar o tamanho do diretório em que o backup de RMAN está armazenado, primeiro execute a consulta a seguir. Em seguida, monitore o consumo de armazenamento.
SELECT round(SUM(filesize)/1024/1024, 3) SIZE_IN_MB FROM TABLE(rdsadmin.rds_file_util.listdir('<DIRECTORY_NAME>')); -
Para listar o status da tarefa de backup com o tempo necessário para concluir a tarefa de backup de RMAN, execute a consulta a seguir.
set linesize 500 pagesize 2000 col Hours format 9999.99 col STATUS format a10 select SESSION_KEY, INPUT_TYPE, STATUS, to_char(START_TIME,'mm-dd-yyyy hh24:mi:ss') as RMAN_Bkup_start_time, to_char(END_TIME,'mm-dd-yyyy hh24:mi:ss') as RMAN_Bkup_end_time, elapsed_seconds/3600 Hours from V$RMAN_BACKUP_JOB_DETAILS order by session_key;
Informações relacionadas
Realização de tarefas comuns diversas para instâncias de banco de dados Oracle
Realização de tarefas comuns relacionadas ao log para instâncias de banco de dados Oracle
- Tópicos
- Database
- Idioma
- Português

Conteúdo relevante
feita há um ano
feita há um ano