web-dev-qa-db-ja.com

Oracle DBでDBIDを書き留めることが重要なのはなぜですか?

Oracle DBで最初にすべきことの1つはDBIDを書き留めておくことです。そのため、制御ファイルを紛失した場合は、RMANで設定する必要があります。そうすると、そこから復元できます。自動バックアップ。 (ドキュメントが言ったように)

RMAN> SET DBID 320066378;
RMAN> RUN {
    SET CONTROLFILE AUTOBACKUP FORMAT 
          FOR DEVICE TYPE DISK TO 'autobackup_format';
    RESTORE CONTROLFILE FROM AUTOBACKUP;
    }

しかし、それから数週間前、職場の別のサーバーで緊急のDB復元を行わなければならないときに、DBIDをまったく使用しなかったことに気付きました。さらに、DBIDを使用したことがないことに気付きました。

私たちのすべてのバックアップは、CONTROLFILE AUTOBACKUP ON、およびそれらの「フラッシュ/高速リカバリ領域」は使用しません。制御ファイルを復元するときは、RESTORE CONTROLFILE FROM '/file/name';、任意のDBIDを設定するホイットアウト。

データファイルを追加し、制御ファイルを物理的に移動し、テーブルをトランケートして行を挿入し、それをコミットし、シャットダウンを中止し、最後の自動バックアップから制御ファイルを復元し、dbを回復して開きます。

[Oracle@localhost rman]$ sqlplus '/as sysdba'

SQL*Plus: Release 11.2.0.1.0 Production on Mié Nov 27 11:39:03 2013

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


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

SQL> select file_name from dba_data_files where tablespace_name = 'TS_PRUEBA';

FILE_NAME
--------------------------------------------------------------------------------
/u01/app/Oracle/oradata/data/ts_prueba.dbf

SQL> alter tablespace ts_prueba add datafile '/u01/app/Oracle/oradata/data/ts_prueba02.dbf' size 10M;

Tablespace altered.

SQL> show parameter control_files;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
control_files                        string      /u01/app/Oracle/oradata/system
                                                 /control01.ctl, /u01/app/oracl
                                                 e/oradata/system/control02.ctl
SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
[Oracle@localhost rman]$ mv /u01/app/Oracle/oradata/system/control01.ctl /u01/app/Oracle/oradata/system/control01.ctl.dead
[Oracle@localhost rman]$ mv /u01/app/Oracle/oradata/system/control02.ctl /u01/app/Oracle/oradata/system/control02.ctl.dead
[Oracle@localhost rman]$ sqlplus '/as sysdba'

SQL*Plus: Release 11.2.0.1.0 Production on Mié Nov 27 11:51:24 2013

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


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

SQL> truncate table prueba.test;

Table truncated.

SQL>  insert into prueba.test values (1,'Helo world');

1 row created.

SQL> commit;

Commit complete.

SQL> shutdown abort;
Oracle instance shut down.
SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
[Oracle@localhost rman]$ pwd
/mnt/rman
[Oracle@localhost rman]$ ls -lthar
total 366M
drwxr-xr-x 5 root   root     4.0K Apr 15  2013 ..
-rw-r----- 1 Oracle oinstall 9.7M Nov 27 11:27 c-1340618388-20131127-00
drwxr-xr-x 5 Oracle oinstall 4.0K Nov 27 11:31 .
-rw-r----- 1 Oracle oinstall 9.7M Nov 27 11:31 c-1340618388-20131127-01
[Oracle@localhost rman]$ rman target /

Recovery Manager: Release 11.2.0.1.0 - Production on Mié Nov 27 11:57:01 2013

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

connected to target database (not started)

RMAN> startup nomount;

Oracle instance started

Total System Global Area     418484224 bytes

Fixed Size                     1336932 bytes
Variable Size                314575260 bytes
Database Buffers              96468992 bytes
Redo Buffers                   6103040 bytes

RMAN> restore controlfile from '/mnt/rman/c-1340618388-20131127-01';

Starting restore at 27-NOV-2013 11:57:33
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=19 device type=DISK

channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
output file name=/u01/app/Oracle/oradata/system/control01.ctl
output file name=/u01/app/Oracle/oradata/system/control02.ctl
Finished restore at 27-NOV-2013 11:57:35

RMAN> alter database mount;

database mounted
released channel: ORA_DISK_1

RMAN> recover database;

Starting recover at 27-NOV-2013 11:57:55
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=19 device type=DISK

starting media recovery

archived log for thread 1 with sequence 1 is already on disk as file /home/Oracle/redolog/redo01b.log
archived log file name=/home/Oracle/redolog/redo01b.log thread=1 sequence=1
creating datafile file number=6 name=/u01/app/Oracle/oradata/data/ts_prueba02.dbf
archived log file name=/home/Oracle/redolog/redo01b.log thread=1 sequence=1
media recovery complete, elapsed time: 00:00:02
Finished recover at 27-NOV-2013 11:57:58

RMAN> alter database open resetlogs;

database opened

RMAN> exit


Recovery Manager complete.
[Oracle@localhost rman]$ sqlplus '/as sysdba'

SQL*Plus: Release 11.2.0.1.0 Production on Mié Nov 27 11:58:21 2013

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


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

SQL> select file_name from dba_data_files where tablespace_name ='TS_PRUEBA';

FILE_NAME
--------------------------------------------------------------------------------
/u01/app/Oracle/oradata/data/ts_prueba.dbf
/u01/app/Oracle/oradata/data/ts_prueba02.dbf

SQL> select * from prueba.test;

    NUMERO FRASE
---------- --------------------------------------------------
         1 Helo world

これが正しい場合、どのような場合にDBIDが必要ですか?

よろしく

3
vegatripy

グローバルRMANカタログとTSMやNetBackupなどのバックアップソフトウェアを使用する場合。次に、DBIDは一意のデータベース識別子です。これは、特にクロスサイト(DR)リストアに必要です。

各データベースが独自のディスクバックアップディレクトリを使用する場合、DBIDの重要性はそれほど見えません。

PS:REPORT SCHEMA rmanコマンドの出力を保持することも便利です。これにより、復元後のデータファイルの予想サイズがわかります。そして、その場所。これは、クローン作成時にデータベース用のストレージを準備するのに役立ちます。

2
ibre5041

このシナリオでは、制御ファイルのバックアップがある限り、dbidを設定する必要はありません。これは、制御ファイルのバックアップも失うと変化します。緊急事態ではそれらは金の価値があるので、あなたがそれらを持っていることを確認してください。カタログデータベースを用意しても、生活は楽にはなりません。

0
ik_zelf