RMAN recovery catalog

Энэ хэсэгт RMAN catalog -той хэрхэн ажиллах талаар сонирхуулъя.

Дадлага ажлын хүрээнд дараах нэр бүхий 2 ширхэг VPS ашиглагдах болно.

node214.oracle.me - нөөцлөх бааз. Oracle Database 11.2.0.1.0 --> DB11G
node215.oracle.me - recovery catalog. Oracle Database 11.2.0.4.0 --> orcl

RMAN CATALOG гэж юу вэ?


Oracle RMAN тай холбоотой үйл ажиллагаануудыг RMAN repository-д хадгалдаг. RMAN Repository нь үргэлж target database-ын controlfile-д хадгалагдаж байдаг. Зарим тохиолдолд RMAN Repository -г өөр байршилд хадгалж болох бөгөөд энэ хадгалагдаж буй байршлыг RMAN RECOVERY CATALOG гэж нэрлэнэ. Товчхондоо бол А баазын метадата мэдээллийг өөр баазад хадгалж байна гэсэн үг юм.

Баазуудын archivelog идэвхтэй байснаар бид ONLINE backup авах боломжтой болно. Дараах жишээн дээр ажиллахдаа hostname-ийг анхаарна уу.

Баазын archivelog идэвхтэй эсэхийг шалгая.

SQL> ---- node214.oracle.me
SQL> archive log list;
Database log mode	       Archive Mode
Automatic archival	       Enabled
Archive destination	       USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     26
Next log sequence to archive   28
Current log sequence	       28
SQL>
SQL> show parameter recovery_

NAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest		     string	 /u01/app/oracle/flash_recovery
						 _area
db_recovery_file_dest_size	     big integer 3882M
recovery_parallelism		     integer	 0
SQL>
SQL>
SQL>  select log_mode from v$database;

LOG_MODE
------------
ARCHIVELOG

SQL>

Archivelog идэвхтэй бөгөөд хадгалах замыг тохируулсан байна.

Хэрэв идэвхжүүлээгүй бол дараах алхамын дагуу идэвхжүүлнэ.

SQL> alter system set log_archive_dest='/u01/app/oracle/flash_recovery' scope=spfile;

System altered.

SQL> shu immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.

SQL> startup mount;
ORACLE instance started.

Total System Global Area  234356736 bytes
Fixed Size                  1344088 bytes
Variable Size             146804136 bytes
Database Buffers           83886080 bytes
Redo Buffers                2322432 bytes
Database mounted.

SQL> alter database archivelog;

Database altered.

SQL> alter database open;

Database altered.

SQL> select log_mode from v$database;

LOG_MODE
------------
ARCHIVELOG

Creating the Recovery Catalog


recovery catalog байрлах бааз дээрхи тохиргоог хийцгээе.

Tablespace үүсгэнэ.

SQL>
SQL> create tablespace catalog datafile '/u01/app/oracle/flash_recovery_area/orcl/catalog01.dbf' size 100M;

Tablespace created.
SQL>

Recovery Catalog удирдах хэрэглэгч үүсгэж харгалзах эрхийг өгнө.

SQL>  create user rcat identified by r default tablespace catalog;

User created.

SQL> alter user rcat quota unlimited on catalog;

User altered.

SQL>  grant connect,resource,recovery_catalog_owner to rcat;

Grant succeeded.

SQL>

Recovery Catalog Schema Objects үүсгэх


Catalog-т холболдогдаж шаардлагатай object үүсгэнэ.

[oracle@node215 ~]$ rman catalog rcat/r

Recovery Manager: Release 11.2.0.4.0 - Production on Sat Jan 28 05:17:42 2017

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

connected to recovery catalog database

RMAN>  create catalog tablespace "CATALOG";

recovery catalog created

RMAN>

Recovery Catalog-т баазыг бүртгэх


[oracle@node214 ~]$
[oracle@node214 ~]$ rman target / catalog rcat/r@RCAT

Recovery Manager: Release 11.2.0.1.0 - Production on Sat Jan 28 05:32:17 2017

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

connected to target database: DB11G (DBID=403682774)
connected to recovery catalog database

RMAN> register database;

database registered in recovery catalog
starting full resync of recovery catalog
full resync complete

RMAN>

Зөв ажиллаж байгаа эсэхийг дараах коммандаар шалгана.

[oracle@node214 ~]$ sqlplus / as sysdba

SQL> set lines 200
SQL> col completion_time for a25
SQL> col name for a50
SQL> select name,sequence#,status,completion_time from v$archived_log;

NAME						    SEQUENCE# S COMPLETION_TIME
-------------------------------------------------- ---------- - -------------------------
							    9 D 24-JAN-17
							   10 D 24-JAN-17
							   11 D 24-JAN-17
							   12 D 25-JAN-17
							   13 D 25-JAN-17
							   14 D 25-JAN-17
							   15 D 25-JAN-17
							   16 D 25-JAN-17
							   17 D 25-JAN-17
							   18 D 25-JAN-17
							   19 D 25-JAN-17

NAME						    SEQUENCE# S COMPLETION_TIME
-------------------------------------------------- ---------- - -------------------------
							   20 D 25-JAN-17
							   21 D 27-JAN-17
							   22 D 27-JAN-17
/u01/app/oracle/flash_recovery_area/DB11G/archivel	   23 A 27-JAN-17
og/2017_01_27/o1_mf_1_23_d8ovzmdb_.arc

/u01/app/oracle/flash_recovery_area/DB11G/archivel	   24 A 27-JAN-17
og/2017_01_27/o1_mf_1_24_d8pb1yjd_.arc

/u01/app/oracle/flash_recovery_area/DB11G/archivel	   25 A 27-JAN-17
og/2017_01_27/o1_mf_1_25_d8plx7ml_.arc

NAME						    SEQUENCE# S COMPLETION_TIME
-------------------------------------------------- ---------- - -------------------------

/u01/app/oracle/flash_recovery_area/DB11G/archivel	   26 A 27-JAN-17
og/2017_01_27/o1_mf_1_26_d8pnp8j8_.arc

/u01/app/oracle/flash_recovery_area/DB11G/archivel	   27 A 28-JAN-17
og/2017_01_28/o1_mf_1_27_d8q8d871_.arc


19 rows selected.

SQL>

Уг мэдээллүүд Recovery Catalog-т хадгалагдсан байх ёстой. Одоо Recovery catalog дээр шалгая.

[oracle@node215 admin]$ sqlplus rcat/r

SQL*Plus: Release 11.2.0.4.0 Production on Sat Jan 28 05:54:44 2017

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>  set lines 200
SQL> col name for a50
SQL> col completion_time for a25
SQL> select name,sequence#,status,completion_time from rc_archived_log
NAME						    SEQUENCE# S COMPLETION_TIME
-------------------------------------------------- ---------- - -------------------------
/u01/app/oracle/flash_recovery_area/DB11G/archivel	   23 A 27-JAN-17
og/2017_01_27/o1_mf_1_23_d8ovzmdb_.arc

/u01/app/oracle/flash_recovery_area/DB11G/archivel	   24 A 27-JAN-17
og/2017_01_27/o1_mf_1_24_d8pb1yjd_.arc

/u01/app/oracle/flash_recovery_area/DB11G/archivel	   25 A 27-JAN-17
og/2017_01_27/o1_mf_1_25_d8plx7ml_.arc

/u01/app/oracle/flash_recovery_area/DB11G/archivel	   26 A 27-JAN-17
og/2017_01_27/o1_mf_1_26_d8pnp8j8_.arc

NAME						    SEQUENCE# S COMPLETION_TIME
-------------------------------------------------- ---------- - -------------------------

/u01/app/oracle/flash_recovery_area/DB11G/archivel	   27 A 28-JAN-17
og/2017_01_28/o1_mf_1_27_d8q8d871_.arc


SQL>

Дээрх үр дүнгээс харахад зөв ажиллаж байгаа нь харагдаж байна.

Recovery Catalog-с устгах


[oracle@node214 ~]$
[oracle@node214 ~]$ rman target / catalog rcat/r@RCAT

Recovery Manager: Release 11.2.0.1.0 - Production on Sat Jan 28 05:39:57 2017

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

connected to target database: DB11G (DBID=403682774)
connected to recovery catalog database

RMAN> unregister database;

database name is "DB11G" and DBID is 403682774

Do you really want to unregister the database (enter YES or NO)? Yes
database unregistered from the recovery catalog

RMAN>

Хэрэв устсан баазын мэдээллийг Recovery Catalog-с устгах гэж байгаа бол баазын нэрийг оруулж өгнө.

RMAN> unregister database DB11G;
database name is "DB11G" and DBID is 403682774

Do you really want to unregister the database (enter YES or NO)? Y
database unregistered from the recovery catalog

Хэрэв ижил нэртэй олон бааз ашигладаг бол баазын дугаарыг ашиглан удирдах боломжтой.

RMAN> set dbid 403682774;

executing command: SET DBID
database name is "DB11G" and DBID is 403682774

Recovery Catalog - Гар аргаар мэдээллийг татах


[oracle@node214 ~]$ rman target / catalog rcat/r@RCAT

Recovery Manager: Release 11.2.0.1.0 - Production on Sat Jan 28 06:00:51 2017

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

connected to target database: DB11G (DBID=403682774)
connected to recovery catalog database

RMAN> resync catalog;

starting full resync of recovery catalog
full resync complete

RMAN>

##Upgrade Catalog

RMAN> CONNECT CATALOG rcat@RCAT

recovery catalog database Password: password
connected to recovery catalog database 
PL/SQL package rman.DBMS_RCVCAT version 10.01.00 in RCVCAT database is too old

RMAN> UPGRADE CATALOG;

recovery catalog owner is RCAT 
enter UPGRADE CATALOG command again to confirm catalog upgrade 

RMAN> UPGRADE CATALOG;

recovery catalog upgraded to version 11.01.00
DBMS_RCVMAN package upgraded to version 11.01.00
DBMS_RCVCAT package upgraded to version 11.01.00

Recovery catalog - ашиглагдах views


Хаалтан доторхи views-ийг нөөцлөх бааз сервер дээр ажиллуулна. (node214.oracle.me)


RC_ARCHIVED_LOG (V$ARCHIVED_LOG) - Archivelog -ийн талаарх мэдээллийг хадгална. Бид дээр шалгаж туршсан билээ


RC_BACKUP_CONTROLFILE (V$BACKUP_DATAFILE) - controlfile-ийн нөөцлөлтийн мэдээлэл

SQL> select file#,creation_time,resetlogs_time,blocks,block_size,controlfile_type from v$backup_datafile where file#=0;
SQL> select * from RC_BACKUP_CONTROLFILE where file#=0;

RC_BACKUP_CORRUPTION (V$BACKUP_CORRUPTION) - datafile backups нөөцлөхтэй холбоотой гэмтлүүдийн мэдээлэл
RC_BACKUP_DATAFILE (V$BACKUP_DATAFILE) - Нөөцлөгдсөн datafiles-ийн талаархи дэлгэрэнгүй нэмэлт мэдээллүүд


RC_BACKUP_FILES (V$BACKUP_FILES) - Нөөцлөлтийн талаархи RMAN коммандын мөрнөөс ажиллуулсан list backup ба list copy коммандуудын талаархи бүрэн мэдээллийг харуулна. Уг view -ийг ашиглахын тулд dbms_rcvman.setdatabase коммандын тусламжтайгаар баазын дугаарыг оноож өгөх шаардлагатай.

SQL> exec dbms_rcvman.setdatabase(null,null,null,403682774,null)

PL/SQL procedure successfully completed.

SQL> select * from RC_BACKUP_FILES;

RC_BACKUP_PIECE (V$BACKUP_PIECE) - Энгийн нөөцлөх коммандтай холбоотой мэдээллүүд


RC_BACKUP_REDOLOG (V$BACKUP_REDOLOG) - Нөөцлөлтөнд хамрагдсан archive logs файлуудын жагсаалт


RC_BACKUP_SET (V$BACKUP_SET) - backup set-ийн талаархи мэдээлэл.


RC_BACKUP_SPFILE (V$BACKUP_SPFILE) - spfile файлын нөөцлөлтийн талаар


RC_CONTROLFILE_COPY (V$CONTROLFILE_COPY) - copy коммандаар хуулагдсан controlfile нөөцлөлтийн талаар


RC_COPY_CORRUPTION (V$COPY_CORRUPTION) - Хуулбарлах явцад гэмтсэн блокуудын талаар


RC_DATABASE (V$DATABASE) - Catalog-т бүртгэгдсэн баазуудын ерөнхий мэдээлэл


RC_DATABASE_BLOCK_CORRUPTION (V$DATABASE_BLOCK_CORRUPTION) - Нөөцлөлт хийх явцад илэрсэн гэмтэлтэй блокын мэдээлэл


RC_DATABASE_INCARNATION (V$DATABASE_INCARNATION) - this view contains a record for each incarnation of each database registered in catalog


RC_DATAFILE (V$DATAFILE) - datafiles-уудын талаарх мэдээлэл


RC_DATAFILE_COPY (V$DATAFILE_COPY) - copy коммандаар үүссэн датафайлын metadata мэдээлэл


RC_LOG_HISTORY (V$LOG_HISTORY) - online redo logs-ийн талаарх түүх


RC_OFFLINE_RANGE (V$OFFLIE_RANGE) - datafiles хэзээ online/offline/read only болсон талаар мэдээлэл


RC_REDO_LOG (V$REDO_LOG) - redologs-ийн талаарх мэдээлэл


RC_REDO_THREAD (V$REDO_THREAD) - RAC орчин ашиглагдана


RC_RESYNC - resync хийх бүрийг тэмдэглэнэ


RC_RMAN_CONFIGURATION (V$RMAN_CONFIGURATION) - show all коммандтай ижил мэдээллийг агуулна


RC_TABLESPACE (V$TABLESPACE) - tablesapces үүдийн талаарх мэдээллүүд


RC_TEMPFILE (V$TEMPFILE) - tempfiles-ийн талаарх мэдээллүүд