Using RMAN for managing OCI Database Backups

O objetivo de hoje é realizar o backup de um DB System do OCI utilizando apenas o RMAN, enviando os backup pieces para um bucket no Object Storage.

Na console inicial, vamos no Menu principal, clicamos em Storage -> Object Storage:

Clicando em Create Bucket:

Definindo o nome do Bucket e clicando em Create:

Clicando em nosso Bucket:

Coletando o valor do campo “Namespace”, pois o usaremos nas operações seguintes:

Agora vamos configurar a parte de “Authentication Token”. Acessando o Menu Principal -> Identity & Security -> Users:

Clicando no link que corresponde ao meu e-mail da criação da conta:

Em Resource, vamos na tela de “Auth Tokens” -> Generate Token:

Colocando uma descrição e gerando o Token:

Copiando o Token para usá-lo em breve:

Em nosso DB System, precisaremos instalar o Backup Module para que o RMAN consiga gerar os backup pieces em nosso bucket. Para isso, vamos executar o processo abaixo, substituindo os parâmetros conforme abaixo:

  • <user_id> = recebe o valor do e-mail da conta do OCI
  • <auth_token> = recebe o valor do Token que geramos nos passos deste artigo
  • <region_name> = recebe o valor do campo “regionIdentifier” coletado com o comando “curl -s http://SEU_IP/opc/v1/instance/ | grep region”
  • <os-ns> = recebe o valor do Namespace do nosso bucket.
mkdir ~/lib/ 
cd /opt/oracle/oak/pkgrepos/oss/odbcs 
java -jar opc_install.jar -opcId <user_id> -opcPass '<auth_token>' -container backupb -walletDir ~/hsbtwallet/ -libDir ~/lib/ -configfile ~/config -host https://swiftobjectstorage.<region_name>.oraclecloud.com/v1/<os-ns>

Log do processo:

[oracle@luxor ~]$ mkdir ~/lib/
[oracle@luxor ~]$ cd /opt/oracle/oak/pkgrepos/oss/odbcs
[oracle@luxor odbcs]$ java -jar opc_install.jar -opcId meuemail@gmail.com -opcPass 'koYU;l4+1DosJR(T-_Bl' -container backupb -walletDir ~/hsbtwallet/ -libDir ~/lib/ -configfile ~/config -host https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/v1/axdmf59nkyfq
Oracle Database Cloud Backup Module Install Tool, build 12.2.0.1.0DBBKPCSBP_2018-06-12
Oracle Database Cloud Backup Module credentials are valid.
Backups would be sent to container backupb.
Oracle Database Cloud Backup Module wallet created in directory /home/oracle/hsbtwallet.
Oracle Database Cloud Backup Module initialization file /home/oracle/config created.
Downloading Oracle Database Cloud Backup Module Software Library from file opc_linux64.zip.
Download complete.
[oracle@luxor odbcs]$

Agora podemos alterar alguns parâmetros persistentes do RMAN para que o mesmo possa jogar nossos backups para o bucket. O legal é que o device configurado deve ser do tipo \”SBT_TYPE\”, com os parâmetro do exemplo abaixo:

[oracle@luxor odbcs]$ rman target /
 
Recovery Manager: Release 19.0.0.0.0 - Production on Wed Jul 14 23:24:54 2021
Version 19.11.0.0.0
 
Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.
 
connected to target database: CORTEX (DBID=581933924)
 
RMAN> CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' PARMS 'SBT_LIBRARY=/home/oracle/lib/libopc.so, SBT_PARMS=(OPC_PFILE=/home/oracle/co             nfig)';
 
using target database control file instead of recovery catalog
new RMAN configuration parameters:
CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' PARMS  'SBT_LIBRARY=/home/oracle/lib/libopc.so, SBT_PARMS=(OPC_PFILE=/home/oracle/config)             ';
new RMAN configuration parameters are successfully stored
 
RMAN> CONFIGURE DEFAULT DEVICE TYPE TO SBT_TAPE;
 
new RMAN configuration parameters:
CONFIGURE DEFAULT DEVICE TYPE TO 'SBT_TAPE';
new RMAN configuration parameters are successfully stored
 
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;
 
old RMAN configuration parameters:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
new RMAN configuration parameters:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
new RMAN configuration parameters are successfully stored
 
RMAN> CONFIGURE ENCRYPTION FOR DATABASE ON;
 
old RMAN configuration parameters:
CONFIGURE ENCRYPTION FOR DATABASE ON;
new RMAN configuration parameters:
CONFIGURE ENCRYPTION FOR DATABASE ON;
new RMAN configuration parameters are successfully stored
 
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE SBT_TAPE TO '%F';
 
new RMAN configuration parameters:
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE 'SBT_TAPE' TO '%F';
new RMAN configuration parameters are successfully stored

Realizando um teste de backup:

host 'date'; 
SET ENCRYPTION IDENTIFIED BY "BSS" ONLY; 
BACKUP FULL SECTION SIZE 512M DATABASE TAG DB_SBT; 
host 'date';

Log da execução, com início às 23:27:33 e término 23:30:48 para ser concluído:

RMAN> host 'date';
SET ENCRYPTION IDENTIFIED BY "BSS" ONLY;
BACKUP FULL SECTION SIZE 512M DATABASE TAG DB_SBT;
host 'date';
Wed Jul 14 23:27:33 UTC 2021
host command complete
 
RMAN>
executing command: SET encryption
 
RMAN>
Starting backup at 14-JUL-21
allocated channel: ORA_SBT_TAPE_1
channel ORA_SBT_TAPE_1: SID=288 device type=SBT_TAPE
channel ORA_SBT_TAPE_1: Oracle Database Backup Service Library VER=19.0.0.1
channel ORA_SBT_TAPE_1: starting full datafile backup set
channel ORA_SBT_TAPE_1: specifying datafile(s) in backup set
input datafile file number=00001 name=+DATA/CORTEX_PHX1HB/DATAFILE/system.261.1071999329
backing up blocks 1 through 65536
channel ORA_SBT_TAPE_1: starting piece 1 at 14-JUL-21
channel ORA_SBT_TAPE_1: finished piece 1 at 14-JUL-21
piece handle=0k03vkj7_20_1_1 tag=DB_SBT comment=API Version 2.0,MMS Version 19.0.0.1
channel ORA_SBT_TAPE_1: backup set complete, elapsed time: 00:00:25
channel ORA_SBT_TAPE_1: starting full datafile backup set
channel ORA_SBT_TAPE_1: specifying datafile(s) in backup set
input datafile file number=00001 name=+DATA/CORTEX_PHX1HB/DATAFILE/system.261.1071999329
backing up blocks 65537 through 131072
channel ORA_SBT_TAPE_1: starting piece 2 at 14-JUL-21
channel ORA_SBT_TAPE_1: finished piece 2 at 14-JUL-21
piece handle=0k03vkj7_20_2_1 tag=DB_SBT comment=API Version 2.0,MMS Version 19.0.0.1
channel ORA_SBT_TAPE_1: backup set complete, elapsed time: 00:00:25
channel ORA_SBT_TAPE_1: starting full datafile backup set
channel ORA_SBT_TAPE_1: specifying datafile(s) in backup set
input datafile file number=00001 name=+DATA/CORTEX_PHX1HB/DATAFILE/system.261.1071999329
backing up blocks 131073 through 140800
channel ORA_SBT_TAPE_1: starting piece 3 at 14-JUL-21
channel ORA_SBT_TAPE_1: finished piece 3 at 14-JUL-21
piece handle=0k03vkj7_20_3_1 tag=DB_SBT comment=API Version 2.0,MMS Version 19.0.0.1
channel ORA_SBT_TAPE_1: backup set complete, elapsed time: 00:00:07
channel ORA_SBT_TAPE_1: starting full datafile backup set
channel ORA_SBT_TAPE_1: specifying datafile(s) in backup set
input datafile file number=00009 name=+DATA/CORTEX_PHX1HB/C1CF6DCEA12F134DE0539501000A20C1/DATAFILE/sysaux.272.1072000035
input datafile file number=00008 name=+DATA/CORTEX_PHX1HB/C1CF6DCEA12F134DE0539501000A20C1/DATAFILE/system.271.1072000035
input datafile file number=00010 name=+DATA/CORTEX_PHX1HB/C1CF6DCEA12F134DE0539501000A20C1/DATAFILE/undotbs1.270.1072000035
input datafile file number=00012 name=+DATA/CORTEX_PHX1HB/C1CF6DCEA12F134DE0539501000A20C1/DATAFILE/users.275.1072000383
channel ORA_SBT_TAPE_1: starting piece 1 at 14-JUL-21
channel ORA_SBT_TAPE_1: finished piece 1 at 14-JUL-21
piece handle=0n03vkl2_23_1_1 tag=DB_SBT comment=API Version 2.0,MMS Version 19.0.0.1
channel ORA_SBT_TAPE_1: backup set complete, elapsed time: 00:00:25
channel ORA_SBT_TAPE_1: starting full datafile backup set
channel ORA_SBT_TAPE_1: specifying datafile(s) in backup set
input datafile file number=00006 name=+DATA/CORTEX_PHX1HB/B2084748142A4638E053C003F40A65C0/DATAFILE/sysaux.265.1071999505
input datafile file number=00005 name=+DATA/CORTEX_PHX1HB/B2084748142A4638E053C003F40A65C0/DATAFILE/system.266.1071999505
input datafile file number=00007 name=+DATA/CORTEX_PHX1HB/B2084748142A4638E053C003F40A65C0/DATAFILE/undotbs1.267.1071999505
channel ORA_SBT_TAPE_1: starting piece 1 at 14-JUL-21
channel ORA_SBT_TAPE_1: finished piece 1 at 14-JUL-21
piece handle=0o03vklr_24_1_1 tag=DB_SBT comment=API Version 2.0,MMS Version 19.0.0.1
channel ORA_SBT_TAPE_1: backup set complete, elapsed time: 00:00:35
channel ORA_SBT_TAPE_1: starting full datafile backup set
channel ORA_SBT_TAPE_1: specifying datafile(s) in backup set
input datafile file number=00003 name=+DATA/CORTEX_PHX1HB/DATAFILE/sysaux.262.1071999373
backing up blocks 1 through 65536
channel ORA_SBT_TAPE_1: starting piece 1 at 14-JUL-21
channel ORA_SBT_TAPE_1: finished piece 1 at 14-JUL-21
piece handle=0p03vkmu_25_1_1 tag=DB_SBT comment=API Version 2.0,MMS Version 19.0.0.1
channel ORA_SBT_TAPE_1: backup set complete, elapsed time: 00:00:25
channel ORA_SBT_TAPE_1: starting full datafile backup set
channel ORA_SBT_TAPE_1: specifying datafile(s) in backup set
input datafile file number=00003 name=+DATA/CORTEX_PHX1HB/DATAFILE/sysaux.262.1071999373
backing up blocks 65537 through 103680
channel ORA_SBT_TAPE_1: starting piece 2 at 14-JUL-21
channel ORA_SBT_TAPE_1: finished piece 2 at 14-JUL-21
piece handle=0p03vkmu_25_2_1 tag=DB_SBT comment=API Version 2.0,MMS Version 19.0.0.1
channel ORA_SBT_TAPE_1: backup set complete, elapsed time: 00:00:16
channel ORA_SBT_TAPE_1: starting full datafile backup set
channel ORA_SBT_TAPE_1: specifying datafile(s) in backup set
input datafile file number=00004 name=+DATA/CORTEX_PHX1HB/DATAFILE/undotbs1.263.1071999399
backing up blocks 1 through 65536
channel ORA_SBT_TAPE_1: starting piece 1 at 14-JUL-21
channel ORA_SBT_TAPE_1: finished piece 1 at 14-JUL-21
piece handle=0r03vko7_27_1_1 tag=DB_SBT comment=API Version 2.0,MMS Version 19.0.0.1
channel ORA_SBT_TAPE_1: backup set complete, elapsed time: 00:00:07
channel ORA_SBT_TAPE_1: starting full datafile backup set
channel ORA_SBT_TAPE_1: specifying datafile(s) in backup set
input datafile file number=00004 name=+DATA/CORTEX_PHX1HB/DATAFILE/undotbs1.263.1071999399
backing up blocks 65537 through 85120
channel ORA_SBT_TAPE_1: starting piece 2 at 14-JUL-21
channel ORA_SBT_TAPE_1: finished piece 2 at 14-JUL-21
piece handle=0r03vko7_27_2_1 tag=DB_SBT comment=API Version 2.0,MMS Version 19.0.0.1
channel ORA_SBT_TAPE_1: backup set complete, elapsed time: 00:00:03
channel ORA_SBT_TAPE_1: starting full datafile backup set
channel ORA_SBT_TAPE_1: specifying datafile(s) in backup set
input datafile file number=00011 name=+DATA/CORTEX_PHX1HB/DATAFILE/users.274.1072000383
channel ORA_SBT_TAPE_1: starting piece 1 at 14-JUL-21
channel ORA_SBT_TAPE_1: finished piece 1 at 14-JUL-21
piece handle=0t03vkoh_29_1_1 tag=DB_SBT comment=API Version 2.0,MMS Version 19.0.0.1
channel ORA_SBT_TAPE_1: backup set complete, elapsed time: 00:00:03
Finished backup at 14-JUL-21
 
Starting Control File and SPFILE Autobackup at 14-JUL-21
piece handle=c-581933924-20210714-00 comment=API Version 2.0,MMS Version 19.0.0.1
Finished Control File and SPFILE Autobackup at 14-JUL-21
 
RMAN>
 
Wed Jul 14 23:30:48 UTC 2021
host command complete

Apenas para termos a experiência, vamos rodar o mesmo backup para disco. Obviamente o tempo é muito menor:

host 'date'; 
SET ENCRYPTION ON ; 
run 
 { 
    ALLOCATE CHANNEL c DEVICE TYPE DISK; 
    BACKUP FULL DATABASE FORMAT '+RECO/db%U' TAG DB_DSK; 
 } 
host 'date';

Log:

RMAN> host 'date';
SET ENCRYPTION ON ;
run
 {
        ALLOCATE CHANNEL c DEVICE TYPE DISK;
        BACKUP FULL DATABASE FORMAT '+RECO/db%U' TAG DB_DSK;
 }
host 'date';
Wed Jul 14 23:34:09 UTC 2021
host command complete
 
RMAN>
executing command: SET encryption
 
RMAN> 2> 3> 4> 5>
released channel: ORA_SBT_TAPE_1
allocated channel: c
channel c: SID=288 device type=DISK
 
Starting backup at 14-JUL-21
channel c: starting compressed full datafile backup set
channel c: specifying datafile(s) in backup set
input datafile file number=00001 name=+DATA/CORTEX_PHX1HB/DATAFILE/system.261.1071999329
input datafile file number=00003 name=+DATA/CORTEX_PHX1HB/DATAFILE/sysaux.262.1071999373
input datafile file number=00004 name=+DATA/CORTEX_PHX1HB/DATAFILE/undotbs1.263.1071999399
input datafile file number=00011 name=+DATA/CORTEX_PHX1HB/DATAFILE/users.274.1072000383
channel c: starting piece 1 at 14-JUL-21
channel c: finished piece 1 at 14-JUL-21
piece handle=+RECO/db0v03vkvi_31_1_1 tag=DB_DSK comment=NONE
channel c: backup set complete, elapsed time: 00:00:35
channel c: starting compressed full datafile backup set
channel c: specifying datafile(s) in backup set
input datafile file number=00009 name=+DATA/CORTEX_PHX1HB/C1CF6DCEA12F134DE0539501000A20C1/DATAFILE/sysaux.272.1072000035
input datafile file number=00008 name=+DATA/CORTEX_PHX1HB/C1CF6DCEA12F134DE0539501000A20C1/DATAFILE/system.271.1072000035
input datafile file number=00010 name=+DATA/CORTEX_PHX1HB/C1CF6DCEA12F134DE0539501000A20C1/DATAFILE/undotbs1.270.1072000035
input datafile file number=00012 name=+DATA/CORTEX_PHX1HB/C1CF6DCEA12F134DE0539501000A20C1/DATAFILE/users.275.1072000383
channel c: starting piece 1 at 14-JUL-21
channel c: finished piece 1 at 14-JUL-21
piece handle=+RECO/db1003vl0l_32_1_1 tag=DB_DSK comment=NONE
channel c: backup set complete, elapsed time: 00:00:15
channel c: starting compressed full datafile backup set
channel c: specifying datafile(s) in backup set
input datafile file number=00006 name=+DATA/CORTEX_PHX1HB/B2084748142A4638E053C003F40A65C0/DATAFILE/sysaux.265.1071999505
input datafile file number=00005 name=+DATA/CORTEX_PHX1HB/B2084748142A4638E053C003F40A65C0/DATAFILE/system.266.1071999505
input datafile file number=00007 name=+DATA/CORTEX_PHX1HB/B2084748142A4638E053C003F40A65C0/DATAFILE/undotbs1.267.1071999505
channel c: starting piece 1 at 14-JUL-21
channel c: finished piece 1 at 14-JUL-21
piece handle=+RECO/db1103vl14_33_1_1 tag=DB_DSK comment=NONE
channel c: backup set complete, elapsed time: 00:00:15
Finished backup at 14-JUL-21
 
Starting Control File and SPFILE Autobackup at 14-JUL-21
piece handle=+RECO/CORTEX_PHX1HB/AUTOBACKUP/2021_07_14/s_1077924916.304.1077924917 comment=NONE
Finished Control File and SPFILE Autobackup at 14-JUL-21
released channel: c
 
RMAN>
 
Wed Jul 14 23:35:21 UTC 2021
host command complete

O nosso primeiro backup desencadeou a criação do bucket abaixo:

Com as seguintes pastas:

E aí estão os nossos backup pieces:

Deletando os backups produzidos:

RMAN> DELETE BACKUPSET TAG DB_SBT;
 
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=288 device type=DISK
allocated channel: ORA_SBT_TAPE_1
channel ORA_SBT_TAPE_1: SID=290 device type=SBT_TAPE
channel ORA_SBT_TAPE_1: Oracle Database Backup Service Library VER=19.0.0.1
 
List of Backup Pieces
BP Key  BS Key  Pc# Cp# Status      Device Type Piece Name
------- ------- --- --- ----------- ----------- ----------
20      20      1   1   AVAILABLE   SBT_TAPE    0k03vkj7_20_1_1
21      20      2   1   AVAILABLE   SBT_TAPE    0k03vkj7_20_2_1
22      20      3   1   AVAILABLE   SBT_TAPE    0k03vkj7_20_3_1
23      21      1   1   AVAILABLE   SBT_TAPE    0n03vkl2_23_1_1
24      22      1   1   AVAILABLE   SBT_TAPE    0o03vklr_24_1_1
25      23      1   1   AVAILABLE   SBT_TAPE    0p03vkmu_25_1_1
26      23      2   1   AVAILABLE   SBT_TAPE    0p03vkmu_25_2_1
27      24      1   1   AVAILABLE   SBT_TAPE    0r03vko7_27_1_1
28      24      2   1   AVAILABLE   SBT_TAPE    0r03vko7_27_2_1
29      25      1   1   AVAILABLE   SBT_TAPE    0t03vkoh_29_1_1
 
Do you really want to delete the above objects (enter YES or NO)? Y
deleted backup piece
backup piece handle=0k03vkj7_20_1_1 RECID=20 STAMP=1077924458
deleted backup piece
backup piece handle=0k03vkj7_20_2_1 RECID=21 STAMP=1077924490
deleted backup piece
backup piece handle=0k03vkj7_20_3_1 RECID=22 STAMP=1077924508
deleted backup piece
backup piece handle=0n03vkl2_23_1_1 RECID=23 STAMP=1077924515
deleted backup piece
backup piece handle=0o03vklr_24_1_1 RECID=24 STAMP=1077924541
deleted backup piece
backup piece handle=0p03vkmu_25_1_1 RECID=25 STAMP=1077924576
deleted backup piece
backup piece handle=0p03vkmu_25_2_1 RECID=26 STAMP=1077924601
deleted backup piece
backup piece handle=0r03vko7_27_1_1 RECID=27 STAMP=1077924616
deleted backup piece
backup piece handle=0r03vko7_27_2_1 RECID=28 STAMP=1077924624
deleted backup piece
backup piece handle=0t03vkoh_29_1_1 RECID=29 STAMP=1077924627
Deleted 10 objects
 
 
RMAN> DELETE BACKUPSET TAG DB_DSK;
 
using channel ORA_DISK_1
using channel ORA_SBT_TAPE_1
 
List of Backup Pieces
BP Key  BS Key  Pc# Cp# Status      Device Type Piece Name
------- ------- --- --- ----------- ----------- ----------
31      27      1   1   AVAILABLE   DISK        +RECO/db0v03vkvi_31_1_1
32      28      1   1   AVAILABLE   DISK        +RECO/db1003vl0l_32_1_1
33      29      1   1   AVAILABLE   DISK        +RECO/db1103vl14_33_1_1
 
Do you really want to delete the above objects (enter YES or NO)? y
deleted backup piece
backup piece handle=+RECO/db0v03vkvi_31_1_1 RECID=31 STAMP=1077924852
deleted backup piece
backup piece handle=+RECO/db1003vl0l_32_1_1 RECID=32 STAMP=1077924887
deleted backup piece
backup piece handle=+RECO/db1103vl14_33_1_1 RECID=33 STAMP=1077924902
Deleted 3 objects

Obs: Este procedimento foi criado pelo senhor Ahmed Baraka (www.ahmedbaraka.com) e foi apenas reproduzido por mim em um laboratório pessoal para fins de aprendizado.

Leave a Comment

Your email address will not be published.