How to create the recovery catalog on Oracle 12c Multitenant

En el Customer donde me encuentro trabajando, es necesario desarrollar una políticas de backups centralizada.

Con ello es necesario como primeros pasos:

  1. Entender las necesidades de backup y diagnosticar las mejores políticas.
  2. Definir políticas acordes a cada base de datos.
  3. Definir repositorios centralizados.
  4. Crear catalog de rman , con su contingencia.
  5. Crear SCRIPTS de rman, según tipo de política de backup.
  6. Crear JOBS de rman, según tipo de política de ejecución de backup.
  7. Utilizar y configurar algun scheduler centralizado para disparar los backups.

Hoy estaremos trabajando en el punto 4, que nos s indica como crear un CATALOG en una base de datos 12c Multitenant.

Tip : Mientras utilicemos la base de RMAN en una base por separado, y únicamente con esa finalidad, no tiene costo de de licenciamiento.

Creating recovery catalog on 12c.

Nuestro container database : CDBCAT
Nuestro PDB: BKPCAT

Primer paso: debemos loguearnos en nuestro CDB recien creado, subir el CDB y abrir el PDB asignado para el CATALOG.

[oracle@srvoem1a ~]$ . oraenv
ORACLE_SID = [EMREP] ? CDBCAT
The Oracle base remains unchanged with value /u01/app/oracle

[oracle@srvoem1a ~]$ sqlplus / as sysdba

SQL*Plus: Release 12.2.0.1.0 Production on Tue Aug 22 10:36:14 2017
Copyright (c) 1982, 2016, Oracle.  All rights reserved.

Connected to an idle instance.

SQL> startup
ORACLE instance started.

Total System Global Area 3791650816 bytes
Fixed Size                  8799560 bytes
Variable Size             872417976 bytes
Database Buffers         2902458368 bytes
Redo Buffers                7974912 bytes
Database mounted.
Database opened.

Segundo Paso: Verificamos el estado del PDB.

SQL> sho pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 BKPCAT                         MOUNTED

Al verlo en MOUNT MODE, procedemos de la siguiente manera.

SQL> alter pluggable database BKPCAT open;

Pluggable database altered.

Verificamos el Estado nuevamente.

SQL> sho pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 BKPCAT                         READ WRITE NO

Create Catalog User.

Debemos loguearnos a nuestro PDB y crear el usuario OWNER del catalog, el cual sera utilizado para catalogar las bases que asignemos.

En nuestro caso, nuestro usuario se llamara RMANCAT.

[oracle@srvoem1a oradata]$ sqlplus / as sysdba

SQL> alter session set container = BKPCAT;

Session altered.

Primer Paso: Creamos el TBS donde almacenaremos la colección de datos.

SQL> create tablespace RMAN_DATA datafile
'/u01/app/oracle/oradata/CDBCAT/BKPCAT/RMAN_DATA01.dbf' size 100M
autoextend on next 100M maxsize 2G;  2    3

Tablespace created.

Segundo Paso: Creamos el User owner del CATALOG.

SQL> create user RMANCAT identified by RMANCAT
default tablespace RMAN_DATA
quota unlimited on RMAN_DATA;  2    3

User created.

Tercer Paso: Damos los privilegios al usuario.

SQL> grant connect, recovery_catalog_owner to RMANCAT;

Grant succeeded.

SQL> alter user RMANCAT quota unlimited on RMAN_DATA;

Grant succeeded.

Cuarto Paso: Configurar Tnsnames & Listener.

a) Configuramos listener.ora

[oracle@srvoem1a admin]$ vi listener.ora

LISTENER_CDBCAT =
 (DESCRIPTION_LIST =
 (DESCRIPTION =
 (ADDRESS = (PROTOCOL = TCP)(HOST = srvoem1a.garba.com.ar)(PORT = 1715))
 (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1715))
 )
 )

b) Configuración del tnsnames.ora

[oracle@srvoem1a admin]$ vi tnsnames.ora

CDBCAT =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = srvoem1a.garba.com.ar)(PORT = 1715))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = CDBCAT.garba.com.ar)
)
)

LISTENER_CDBCAT =
(ADDRESS = (PROTOCOL = TCP)(HOST = srvoem1a.garba.com.ar)(PORT = 1715))

BKPCAT =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = srvoem1a.garba.com.ar)(PORT = 1715))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = BKPCAT.garba.com.ar)
)
)

LISTENER_CDBCAT =
(ADDRESS = (PROTOCOL = TCP)(HOST = srvoem1a.garba.com.ar)(PORT = 1715))

Quinto Paso: Subimos el listener y registramos el servicio de base de datos.

a) Subimos Listener

[oracle@srvoem1a admin]$ lsnrctl start LISTENER_CDBCAT

LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 22-AUG-2017 12:07:12
Copyright (c) 1991, 2016, Oracle. All rights reserved.

Starting /u01/app/oracle/product/12.2.0/rcat/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 12.2.0.1.0 - Production
System parameter file is /u01/app/oracle/product/12.2.0/rcat/network/admin/listener.ora
Log messages written to /u01/app/oracle/diag/tnslsnr/srvoem1a/listener_cdbcat/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=srvoem1a.garba.com.ar)(PORT=1715)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1715)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=srvoem1a.garba.com.ar)(PORT=1715)))
STATUS of the LISTENER
------------------------
Alias LISTENER_CDBCAT
Version TNSLSNR for Linux: Version 12.2.0.1.0 - Production
Start Date 22-AUG-2017 12:07:13
Uptime 0 days 0 hr. 0 min. 1 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/12.2.0/rcat/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/srvoem1a/listener_cdbcat/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=srvoem1a.garba.com.ar)(PORT=1715)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1715)))
The listener supports no services
The command completed successfully

b) Registramos el listener en la base de datos.

[oracle@srvoem1a admin]$ sqlplus / as sysdba

SQL> alter system register;

System altered.

SQL> sho parameter listener

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
listener_networks                    string
local_listener                       string      LISTENER_CDBCAT
remote_listener                      string
SQL> quit
Disconnected from Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
[oracle@srvoem1a admin]$ 

Sexto Paso: Creamos el catalogo

[oracle@srvoem1a admin]$ export NLS_DATE_FORMAT='DD-MM-RRRR HH24:MI:SS'
[oracle@srvoem1a trace]$ rman catalog RMANCAT/RMANCAT@BKPCAT

Recovery Manager: Release 12.2.0.1.0 - Production on Tue Aug 22 12:24:04 2017
Copyright (c) 1982, 2017, Oracle and/or its affiliates.  All rights reserved.

connected to recovery catalog database

RMAN> create catalog;

recovery catalog created

RMAN>

Estamos listos para comenzar a registrar nuestras bases en el catalog y llevar un control de los backups y sus piezas.