Энэ хэсэгт 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-ийн талаарх мэдээллүүд