DBを一つ用意します。rcat として作りました。
DBCAで作るときは何もオプションは要りません。 最低限のものでいいです。
「12 リカバリ・カタログの管理」を見ながら作ります。
rman/rman というユーザにしています。
#pre{{ [oracle@ora1 ~]$ sqlplus sys/oracle@rcat as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on 日 9月 13 17:51:04 2009
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options に接続されました。 SQL> create user rman identified by rman
2 temporary tablespace temp 3 default tablespace users 4 quota unlimited on users;
ユーザーが作成されました。
SQL> grant recovery_catalog_owner to rman;
権限付与が成功しました。
SQL> }}
rman で接続して作ります。
#pre{{ [oracle@ora1 ~]$ rman catalog rman/rman@rcat
Recovery Manager: Release 11.2.0.1.0 - Production on 日 9月 13 18:00:48 2009
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
リカバリ・カタログ・データベースに接続されました。
RMAN> create catalog;
リカバリ・カタログが作成されました。
RMAN> }}
できていることを確認しましょう。
#pre{{ [oracle@ora1 ~]$ sqlplus rman/rman@rcat
SQL*Plus: Release 11.2.0.1.0 Production on 日 9月 13 18:04:01 2009
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options に接続されました。 SQL> select table_name from user_tables;
TABLE_NAME
TEMPRES ... DB
44行が選択されました。
SQL> }}
OKです。
orcl データベースを登録します。
RMANから接続します。
#pre{{ [oracle@ora1 ~]$ rman catalog rman/rman@rcat
Recovery Manager: Release 11.2.0.1.0 - Production on 日 9月 13 18:07:09 2009
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
リカバリ・カタログ・データベースに接続されました。
RMAN> connect target sys/oracle@orcl
ターゲット・データベース: ORCL (データベースID=1225201194)に接続されました
RMAN> register database;
データベースがリカバリ・カタログに登録されました。 リカバリ・カタログの完全再同期を開始しています 完全再同期が完了しました
RMAN> report schema;
データベースdb_unique_name ORCLのデータベース・スキーマのレポート
永続データファイルのリスト =========================== File Size(MB) Tablespace RB segs Datafile Name
1 680 SYSTEM YES /u02/oradata/orcl/system01.dbf 2 510 SYSAUX NO /u02/oradata/orcl/sysaux01.dbf 3 85 UNDOTBS1 YES /u02/oradata/orcl/undotbs01.dbf 4 5 USERS NO /u02/oradata/orcl/users01.dbf 5 100 EXAMPLE NO /u02/oradata/orcl/example01.dbf 6 10 TESTTBS NO /u02/oradata/orcl/testtbs01.dbf
一時ファイルのリスト ======================= File Size(MB) Tablespace Maxsize(MB) Tempfile Name
1 29 TEMP 32767 /u02/oradata/orcl/temp01.dbf
RMAN> }}
orcl インスタンスに接続して設定します。 増分バックアップが速くなるそうです。
db_create_file_dest の先にこのファイルを作ります。
#pre{{ [oracle@ora1 ~]$ sqlplus sys/oracle@orcl as sysdba ...
SQL> show parameter db_create_file_dest
NAME TYPE
VALUE
db_create_file_dest string
SQL> alter system set db_create_file_dest='/u02/oradata/orcl'
2 scope=both sid='*';
システムが変更されました。
SQL> alter database enable block change tracking;
データベースが変更されました。
SQL> select status,filename from v$block_change_tracking;
STATUS
FILENAME
ENABLED /u02/oradata/orcl/ORCL/changetracking/o1_mf_5bsgrjw5_.chg
SQL> }}
ちゃんとファイルが作られていました。
#pre{{ [oracle@ora1 ~]$ ls /u02/oradata/orcl/ORCL/changetracking/ o1_mf_5bsgrjw5_.chg }}
まずRMANで接続しておきます。 バックカップ先を設定しました。
#pre{{ [oracle@ora1 ~]$ rman catalog rman/rman@rcat
Recovery Manager: Release 11.2.0.1.0 - Production on 日 9月 13 18:32:03 2009
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
リカバリ・カタログ・データベースに接続されました。
RMAN> connect target sys/oracle@orcl
ターゲット・データベース: ORCL (データベースID=1225201194)に接続されました
RMAN> configure channel device type disk format '/u01/app/oracle/backup/%U';
新しいRMAN構成パラメータ: CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/u01/app/oracle/backup/%U'; 新しいRMAN構成パラメータが格納できました リカバリ・カタログの完全再同期を開始しています 完全再同期が完了しました
RMAN> }}
バックアップします。マルチセクションにしてみます。
#pre{{ RMAN> run { 2> backup database section size 100M 3> tag orcl20090913 4> keep forever 5> ; 6> }
backupが開始されました(開始時間: 09-09-13) 現在のログがアーカイブされました。
チャネル: ORA_DISK_1が割り当てられました チャネルORA_DISK_1: SID=96 デバイス・タイプ=DISK バックアップは廃止になりません。 このバックアップからのリカバリを要求されたアーカイブ・ログはバックアップされません チャネルORA_DISK_1: フル・データファイル・バックアップ・セットを開始しています チャネルORA_DISK_1: バックアップ・セットにデータファイルを指定しています 入力データファイル・ファイル番号=00001 名前=/u02/oradata/orcl/system01.dbf 1から12800のブロックをバックアップしています チャネルORA_DISK_1: ピース1(09-09-13)を起動します ... チャネルORA_DISK_1: バックアップ・セットが完了しました。経過時間: 00:00:03 backupが完了しました(完了時間: 09-09-13) }}
list backup で確認できます。
#pre{{ RMAN> list backup;
バックアップ・セットのリスト ===================
BS Key Type LV Size Device Type Elapsed Time 終了時間
216 Full 593.77M DISK 00:07:47 09-09-13
維持: BACKUP_LOGS 期限: FOREVER
... }}
SHUTDOWNしてからファイルを消しちゃいます。
#pre{{ [oracle@ora1 ~]$ cd /u02/oradata/orcl [oracle@ora1 orcl]$ rm system01.dbf [oracle@ora1 orcl]$ rm example01.dbf }}
当然ながら正しく起動しません。
#pre{{ SQL> startup ORACLEインスタンスが起動しました。
Total System Global Area 521936896 bytes Fixed Size 2214936 bytes Variable Size 402654184 bytes Database Buffers 113246208 bytes Redo Buffers 3821568 bytes データベースがマウントされました。 ORA-01157: データファイル1を識別/ロックできません - DBWRトレース・ファイルを参照してください ORA-01110: データファイル1: '/u02/oradata/orcl/system01.dbf'
SQL> }}
RMANからつないで戻します。
リカバリカタログがあるので どうバックアップされているのかは全部RMANが知っているということで、 リストアやリカバリはとても簡単に終わります。
#pre{{ [oracle@ora1 ~]$ rman catalog rman/rman@rcat
Recovery Manager: Release 11.2.0.1.0 - Production on 日 9月 13 19:19:07 2009
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
リカバリ・カタログ・データベースに接続されました。
RMAN> connect target sys/oracle@orcl
ターゲット・データベース: ORCL(DBID=1225201194、未オープン)に接続されました
RMAN> restore database;
restoreが開始されました(開始時間: 09-09-13) チャネル: ORA_DISK_1が割り当てられました チャネルORA_DISK_1: SID=20 デバイス・タイプ=DISK ... チャネルORA_DISK_1: リストアが完了しました。経過時間: 00:00:35 restoreが完了しました(完了時間: 09-09-13) }}
restore が終わったら recover もしておきます。
#pre{{ RMAN> recover database;
recoverが開始されました(開始時間: 09-09-13) チャネルORA_DISK_1の使用
メディア・リカバリを開始しています メディア・リカバリが完了しました。経過時間: 00:00:07
recoverが完了しました(完了時間: 09-09-13)
RMAN> }}
今度は正しく上がります。
#pre{{ SQL> shutdown immediate ORA-01109: データベースがオープンされていません。
データベースがディスマウントされました。 ORACLEインスタンスがシャットダウンされました。 SQL> startup ORACLEインスタンスが起動しました。
Total System Global Area 521936896 bytes Fixed Size 2214936 bytes Variable Size 402654184 bytes Database Buffers 113246208 bytes Redo Buffers 3821568 bytes データベースがマウントされました。 データベースがオープンされました。 SQL> }}