Copia de seguridad y recuperación (4): RMAN utiliza el catálogo de recuperación para guardar la base de datos de archivo

(1) Descripción general del catálogo de recuperación

La base de datos de archivo RMAN se utiliza para almacenar la información requerida para la copia de seguridad, reparación y recuperación de la base de datos. Esta información se puede guardar en el archivo de control de la base de datos de respaldo, o se puede guardar por separado en el directorio de recuperación de una base de datos de catálogo de recuperación independiente. La diferencia entre los dos métodos es la siguiente:

(1) Guarde la información de respaldo en el archivo de control. Si la información de respaldo se guarda en el archivo de control, entonces el archivo de control incluirá registros no reutilizables y registros reutilizables. Lo que no es reutilizable son los archivos de datos de registro, los archivos de registro en línea y otra información crítica que cambia con poca frecuencia. ; Repetible es la información continuamente nueva generada durante el funcionamiento de la base de datos, como: información histórica de archivos de registro de rehacer, información de archivo de registro archivado, información de respaldo, etc. Debido a que el espacio reutilizable es limitado y el trabajo se realiza de manera cíclica, la información de respaldo que se puede guardar también es limitada.

(2) Guarde la información de respaldo en el directorio de recuperación. Cuando se utiliza RMAN para hacer una copia de seguridad y restaurar la base de datos, RMAN obtiene la información requerida directamente del catálogo de recuperación en lugar de obtener información del archivo de control. Las bases de datos de destino pueden utilizar un catálogo de recuperación, solo registre la base de datos de destino en el catálogo de recuperación. El catálogo de recuperación guarda principalmente:

  • Información sobre los archivos de datos de la base de datos de destino y los archivos de registro de rehacer
  • Información de copia espejo de la base de datos de destino
  • La relación entre el espacio de tabla de la base de datos de destino y los archivos de datos
  • Almacene scripts RMAN creados por el usuario, que pueden reutilizarse
  • Información de configuración de parámetros predefinidos de RMAN permanente

Este artículo usará el catálogo de recuperación para las pruebas de respaldo y recuperación.


(2) Información del entorno de prueba

Dirección IP Nombre de instancia de base de datos Observaciones
192.168.10.11 testdb1 Base de datos 1 para realizar una copia de seguridad, también conocida como la base de datos de destino
192.168.10.12 testdb2 Base de datos a respaldar 2, también conocida como la base de datos de destino
192.168.10.51 catalogdb base de datos del catálogo

              
(3) Configure el catálogo de recuperación para la base de datos

(3.1) Cree un espacio de tabla en la base de datos del catálogo de recuperación (192.168.10.51:catalogdb) para almacenar datos de copia de seguridad de RMAN

crear tablespace recovery_catalog datafile ' /u01/app/oracle/oradata/catalogdb/catalog.dbf ' tamaño 1g;

(3.2) Crear un usuario en la base de datos del catálogo de recuperación

Se puede usar el mismo usuario para múltiples bases de datos de destino, o se puede crear un usuario por separado para cada base de datos de destino. Aquí, se crea un usuario por separado para cada base de datos de destino.

- se usa para hacer SourceDB usuario catálogo de recuperación 
del Crear  el usuario rman_testdb1 IDENTIFICADO por "rman_testdb1" por defecto TABLESPACE recovery_catalog el temporal TABLESPACE TEMP ;
  Subvención del recovery_catalog_owner, Connect, de recursos a rman_testdb1; 

- solía hacer catálogo de recuperación TargetDB usuario 
al Crear  el usuario rman_testdb2 IDENTIFICADO por " rman_testdb2 " predeterminado tablespace recovery_catalog temporal tablespace temp ;
  otorgue recovery_catalog_owner, connect, resource a rman_testdb2;


(3.3) Configure la cadena de conexión de cada instancia

Configure la cadena de conexión tnsnames.ora para cada servidor. El nodo de la base de datos de destino necesita configurar los tns de la base de datos del catálogo, y la base de datos del catálogo necesita configurar los tns de todas las bases de datos de destino.
(3.3.1) Agregue la cadena de conexión de la base de datos catalogdb al nodo testdb1

[oracle @ source-node admin] $ cat tnsnames.ora 
# tnsnames.ora Archivo de configuración de red: / u01 / app / oracle / product / 11.2 . 0 / db_1 / network / admin / tnsnames.ora 
# Generado por las herramientas de configuración de Oracle. 

CATALOGDB = 
  (DESCRIPTION = 
    (ADDRESS_LIST = 
      (ADDRESS = (PROTOCOL = TCP) (HOST = 192.168 . 10.51 ) (PORT = 1521 )) 
    ) 
    (CONNECT_DATA = 
      (SERVICE_NAME = catalogdb) 
    ) 
  )


(3.3.2) Agregue la cadena de conexión de la base de datos catalogdb al nodo testdb2

CATALOGDB =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.51)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = catalogdb)
    )
   )

(3.3.3)在catalogdb节点添加testdb1和testdb2数据库的连接字符串

testdb1 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.11)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = testdb1)
    )
  )

testdb2 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.12)(PORT = 1521))
    )
    (CONNECT_DATA =
       (SERVICE_NAME = testdb2)
     )
   )


(3.4)启动RMAN,创建恢复目录
在catalogdb数据库节点启动RMAN,创建恢复目录

(3.4.1)为testdb1创建恢复目录

## testdb1
[oracle@primarynode admin]$ rman 

RMAN> connect catalog rman_testdb1/rman_testdb1
connected to recovery catalog database

RMAN> create catalog tablespace recovery_catalog;
 recovery catalog created


(3.4.2)为testdb2创建恢复目录

## testdb2
[oracle@primarynode admin]$ rman

RMAN> connect catalog rman_testdb2/rman_testdb2
connected to recovery catalog database

RMAN> create catalog tablespace recovery_catalog;
 recovery catalog created


(3.5)注册数据库
(3.5.1)将testdb1注册到恢复目录中

[oracle@primarynode admin]$ rman


 RMAN> connect target sys/Oracle123@testdb1
 connected to target database: TESTDB1 (DBID=789833349)

RMAN> connect catalog rman_testdb1/rman_testdb1
 connected to recovery catalog database

RMAN> register database;
 database registered in recovery catalog
 starting full resync of recovery catalog
 full resync complete

RMAN> exit


(3.5.2)将testdb2注册到恢复目录中

[oracle@primarynode admin]$ rman

RMAN> connect target sys/Oracle123@testdb2
 connected to target database: TESTDB2 (DBID=1359425552)

RMAN> connect catalog rman_testdb2/rman_testdb2
 connected to recovery catalog database

RMAN> register database;
 database registered in recovery catalog
 starting full resync of recovery catalog
 full resync complete


(四)备份与恢复测试
(4.1)创建测试数据

在数据库testdb1中的用户lijiaman下面创建表test01,并插入测试数据

create user lijiaman identified by "lijiaman";
 grant dba,connect to lijiaman;

create table lijiaman.test01 
 (
   id     number primary key,
   name   varchar2(30)
 );

insert into lijiaman.test01 values(1,'a');
 commit;

(4.2)将test01数据库备份到/rman_backup目录下面,需要主义的是,备份只能放在目标数据库服务器的本地

# 创建备份路径
[root@primarynode ~]# mkdir /rman_backup
[root@primarynode ~]# chown -R oracle:oinstall /rman_backup/
# 开始备份
rman target sys/Oracle123@testdb1 catalog rman_testdb1/rman_testdb1

run{            
 configure controlfile autobackup on;
 configure controlfile autobackup format for device type disk to '/rman_backup/controlfile_%F.bak';
 allocate channel c1 type disk;
 backup full tag 'dbfull' format '/rman_backup/full_%u_%s_%p' database;
 sql 'alter system archive log current';
 backup archivelog all format '/rman_backup/arch_%u_%s_%p';
 backup spfile format '/rman_backup/spfile_%d_%U';
 delete noprompt expired backup;
 delete noprompt obsolete;
 release channel c1;
}

(4.3)模拟误操作

--查看误操作之前的时间

select sysdate from dual;
sysdate
-------------
2020/4/14 20:48:55 


--执行trucnate操作:
truncate table lijiaman.test01;

(4.4)执行恢复
将数据库恢复到truncate之前,这里恢复到2020/4/14 20:48:55
(4.4.1)将testdb1设置为mount状态

[oracle@source-node ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Tue Apr 14 20:54:18 2020

Copyright (c) 1982, 2013, Oracle.  All rights reserved.


 Connected to:
 Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
 With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> shutdown immediate
 Database closed.
 Database dismounted.
 ORACLE instance shut down.
 SQL> startup mount
ORACLE instance started.

Total System Global Area  584568832 bytes
 Fixed Size            2255432 bytes
Variable Size          369100216 bytes
Database Buffers      205520896 bytes
Redo Buffers            7692288 bytes
Database mounted.

(4.4.2)在备份服务器catalog上执行恢复操作

rman target sys/Oracle123@testdb1 catalog rman_testdb1/rman_testdb1
RMAN>SQL"ALTER SESSION SET NLS_LANGUAGE=''AMERICAN''";
RMAN>SQL"ALTER SESSION SET NLS_DATE_FORMAT=''YYYY-MM-DD HH24:MI:SS''";
RUN{
SET UNTIL TIME '2020-04-14 20:48:55';
RESTORE DATABASE;
RECOVER DATABASE;
 }


(4.5)因为是不完全恢复,以resetlogs方式打开数据库

SQL> alter database open resetlogs;

Database altered.

(4.6)确认数据已经还原回来

SQL> select * from lijiaman.test01;
    ID NAME
---------- ------------------------------
     1 a


(五)总结

个人觉得,使用恢复目录来保存RMAN信息的优点有:可以长久保存RMAN信息,可以保存RMAN脚本。

与将备份信息保存在控制文件相比,最大的差别是:使用catalog时,执行备份恢复都需要连接到两个数据库,而使用控制文件则只需连接待恢复的数据库。


【完】          

Supongo que te gusta

Origin www.cnblogs.com/lijiaman/p/12701390.html
Recomendado
Clasificación