リカバリカタログデータベース作成
-
インスタンスを作成 (SID:RECAT)
-
sqlplusにてログイン
$ sqlplus / as sysdba
-
リカバリカタログ用の表領域作成
SQL> CREATE TABLESPACE catalog DATAFILE '/u01/app/oracle/oradata/RECAT/catalog01.dbf' SIZE 15M; 表領域が作成されました。 SQL> SELECT TABLESPACE_NAME, FILE_NAME, bytes/1024/1024 MB FROM DBA_DATA_FILES WHERE TABLESPACE_NAME='CATALOG'; TABLESPACE_NAME FILE_NAME MB -------------------- -------------------------------------------------- ---------- CATALOG /u01/app/oracle/oradata/RECAT/catalog01.dbf 15
-
リカバリカタログ用のスキーマ所有者作成
リカバリ・カタログの所有者を作成し、リカバリ・カタログのオーナーとなるために必要なRECOVERY_CATALOG_OWNERロールを付与。
SQL> CREATE USER recat IDENTIFIED BY recat 2 TEMPORARY TABLESPACE TEMP 3 DEFAULT TABLESPACE CATALOG 4 QUOTA UNLIMITED ON CATALOG; ユーザーが作成されました。 SQL> GRANT RECOVERY_CATALOG_OWNER TO recat; 権限付与が成功しました。
-
sqlplusからログアウト
SQL> exit
-
リカバリカタログの作成
$ rman catalog recat/recat RMAN> CREATE CATALOG; リカバリ・カタログが作成されました。 RMAN> EXIT;
ターゲットデータベースの登録
ターゲットデータベース「TEST01」「TEST02」の2台を、リカバリデータベースに
登録する。
-
TEST01
$ rman TARGET sys/oracle@TEST01 CATALOG recat/recat ターゲット・データベース: TEST01 (データベースID= 111111111)に接続されました リカバリ・カタログ・データベースに接続されました。 RMAN> REGISTER DATABASE; データベースがリカバリ・カタログに登録されました。 リカバリ・カタログの完全再同期を開始しています 完全再同期が完了しました RMAN> REPORT SCHEMA; データベースdb_unique_name TEST01のデータベース・スキーマのレポート 永続データファイルのリスト =========================== File Size(MB) Tablespace RB segs Datafile Name ---- -------- -------------------- ------- ------------------------ 1 750 SYSTEM YES /u01/app/oracle/oradata/TEST01/system01.dbf 2 600 SYSAUX NO /u01/app/oracle/oradata/TEST01/sysaux01.dbf 3 770 UNDOTBS1 YES /u01/app/oracle/oradata/TEST01/undotbs01.dbf 4 5 USERS NO /u01/app/oracle/oradata/TEST01/users01.dbf 一時ファイルのリスト ======================= File Size(MB) Tablespace Maxsize(MB) Tempfile Name ---- -------- -------------------- ----------- -------------------- 1 59 TEMP 32767 /u01/app/oracle/oradata/TEST01/temp01.dbf RMAN> EXIT Recovery Managerが完了しました。
-
TEST02
$ rman TARGET sys/oracle@TEST02 CATALOG recat/recat ターゲット・データベース: TEST02 (データベースID= 222222222)に接続されました リカバリ・カタログ・データベースに接続されました。 RMAN> REGISTER DATABASE; データベースがリカバリ・カタログに登録されました。 リカバリ・カタログの完全再同期を開始しています 完全再同期が完了しました RMAN> REPORT SCHEMA; データベースdb_unique_name TEST02のデータベース・スキーマのレポート 永続データファイルのリスト =========================== File Size(MB) Tablespace RB segs Datafile Name ---- -------- -------------------- ------- ------------------------ 1 750 SYSTEM YES /u01/app/oracle/oradata/TEST02/system01.dbf 2 600 SYSAUX NO /u01/app/oracle/oradata/TEST02/sysaux01.dbf 3 770 UNDOTBS1 YES /u01/app/oracle/oradata/TEST02/undotbs01.dbf 4 5 USERS NO /u01/app/oracle/oradata/TEST02/users01.dbf 一時ファイルのリスト ======================= File Size(MB) Tablespace Maxsize(MB) Tempfile Name ---- -------- -------------------- ----------- -------------------- 1 59 TEMP 32767 /u01/app/oracle/oradata/TEST02/temp01.dbf RMAN> EXIT Recovery Managerが完了しました。
仮想プライベートカタログの設定
以下の通りに作成
- TEST01用ユーザ → vptest01
- TEST02用ユーザ → vptest02
-
仮想プライベートカタログ所有者の作成
$ # リカバリカタログ(RECAT)にログイン $ sqlplus / as sysdba SQL> -- TEST01用ユーザ vptest01 SQL> CREATE USER vptest01 IDENTIFIED BY vptest01 TEMPORARY TABLESPACE TEMP DEFAULT TABLESPACE CATALOG QUOTA UNLIMITED ON CATALOG; ユーザーが作成されました。 SQL> GRANT RECOVERY_CATALOG_OWNER TO vptest01; 権限付与が成功しました。 SQL> -- TEST02用ユーザ vptest02 SQL> CREATE USER vptest02 IDENTIFIED BY vptest02 TEMPORARY TABLESPACE TEMP DEFAULT TABLESPACE CATALOG QUOTA UNLIMITED ON CATALOG; ユーザーが作成されました。 SQL> GRANT RECOVERY_CATALOG_OWNER TO vptest02; 権限付与が成功しました。 SQL> EXIT
-
各仮想プライベートカタログ所有者にアクセス権限を追加
$ # recatユーザでrmanログイン $ rman CATALOG recat/recat RMAN> GRANT CATALOG FOR DATABASE TEST01 TO vptest01; 権限付与が成功しました。 RMAN> GRANT CATALOG FOR DATABASE TEST02 TO vptest02; 権限付与が成功しました。 RMAN> EXIT
-
仮想プライベートカタログの作成
- vptest01
$ rman catalog vptest01/vptest01 RMAN> create virtual catalog; RECATが所有する適格なベース・カタログが見つかりました RECATが所有するベース・カタログに対して仮想カタログが作成されました RMAN> EXIT
- vptest02
$ rman catalog vptest02/vptest02 RMAN> create virtual catalog; RECATが所有する適格なベース・カタログが見つかりました RECATが所有するベース・カタログに対して仮想カタログが作成されました RMAN> EXIT
-
仮想プライベートカタログの動作確認
- ターゲットデータベースに接続できる事を確認
$ rman target sys/oracle@TEST01 catalog vptest01/vptest01 ターゲット・データベース: TEST01 (データベースID=1111111111)に接続されました リカバリ・カタログ・データベースに接続されました。 RMAN> report schema; データベースdb_unique_name TEST01のデータベース・スキーマのレポート …(省略)… RMAN> exit $ rman target sys/oracle@TEST02 catalog vptest02/vptest02 ターゲット・データベース: TEST02 (データベースID=222222222)に接続されました リカバリ・カタログ・データベースに接続されました。 RMAN> report schema; データベースdb_unique_name TEST01のデータベース・スキーマのレポート …(省略)… RMAN> exit
- 他のターゲットデータベースに接続できないことを確認
$ rman target sys/oracle@TEST01 catalog vptest02/vptest02 ターゲット・データベース: TEST01 (データベースID=1111111111)に接続されました リカバリ・カタログ・データベースに接続されました。 RMAN> report schema; RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: reportコマンドが04/08/2015 17:47:11で失敗しました RMAN-06004: リカバリ・カタログ・データベースでのOracleエラー: RMAN-20001: target database not found in recovery catalog RMAN> exit $ rman target sys/oracle@TEST02 catalog vptest01/vptest01 ターゲット・データベース: TEST02 (データベースID=222222222)に接続されました リカバリ・カタログ・データベースに接続されました。 RMAN> report schema; RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: reportコマンドが04/08/2015 17:48:57で失敗しました RMAN-06004: リカバリ・カタログ・データベースでのOracleエラー: RMAN-20001: target database not found in recovery catalog RMAN> exit
注意事項
リカバリカタログデータベース自身のバックアップも忘れないように。
RMANコマンドでバックアップ可能。