LoginSignup
5
4

More than 5 years have passed since last update.

Oracle リカバリカタログデータベース設定メモ

Last updated at Posted at 2015-04-08

リカバリカタログデータベース作成

  1. インスタンスを作成 (SID:RECAT)

  2. sqlplusにてログイン

    $ sqlplus / as sysdba
    
  3. リカバリカタログ用の表領域作成

    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
    
  4. リカバリカタログ用のスキーマ所有者作成

    リカバリ・カタログの所有者を作成し、リカバリ・カタログのオーナーとなるために必要な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;
    
    権限付与が成功しました。
    
  5. sqlplusからログアウト

    SQL> exit
    
  6. リカバリカタログの作成

    $ rman catalog recat/recat
    RMAN> CREATE CATALOG;
    
    リカバリ・カタログが作成されました。
    
    RMAN> EXIT;
    

ターゲットデータベースの登録

ターゲットデータベース「TEST01」「TEST02」の2台を、リカバリデータベースに
登録する。

  1. 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が完了しました。
    
    
  2. 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
  1. 仮想プライベートカタログ所有者の作成

    $ # リカバリカタログ(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
    
    
  2. 各仮想プライベートカタログ所有者にアクセス権限を追加

    $ # recatユーザでrmanログイン
    $ rman CATALOG recat/recat
    RMAN> GRANT CATALOG FOR DATABASE TEST01 TO vptest01;
    
    権限付与が成功しました。
    
    RMAN> GRANT CATALOG FOR DATABASE TEST02 TO vptest02;
    
    権限付与が成功しました。
    
    RMAN> EXIT
    
    
  3. 仮想プライベートカタログの作成

    • 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
    
    
  4. 仮想プライベートカタログの動作確認

    • ターゲットデータベースに接続できる事を確認
    $ 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コマンドでバックアップ可能。

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4