oracleかわいいよoracle

とかいいたくなってくる。

普段仕事で使う分にはOracleはだいぶ手の内に入ってきた。それでも、高額さにはほとほとあきれてもいた。けど、今日リカバリーマネージャをぽちぽち叩いてたらこりゃすごいなあと思った。BACKUP DATABASE;一発バックアップ。RESTORE DATABASE;でリストア。RECOVER DATABASE;でリカバリ。おおお。

データの保全っていう意味で、たぶんOracleほど堅牢性っていう方を向いたRDB製品ってないんだろうな。

教科書読みながら育てたrmanスクリプト。

#冗長性
#保存するバックアップファイル数を設定
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
#リカバリ期間
configure retention policy to recovery window of 7 days;
#同一ファイルをスキップしたり読み取り専用表領域のデータファイルをスキップする
CONFIGURE BACKUP OPTIMIZATION ON;
#デフォルトデバイス
#テープにする場合はTO SBTに設定
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
#バックアップファイルの保存先
#configure channel device type disk format '/path/to/%U'
#最大バックアップピースサイズ。このサイズで分割される。
#backupsetをバックアップタイプにしていると、バックアップセットファイルにまとめられる。
#configure channel device type disk maxpiecesize SIZE;
#複数チャネル構成,バックアップタイプ
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO COMPRESSED BACKUPSET;
#制御ファイルの自動バックアップ
#リカバリカタログを使用しない場合は必要
CONFIGURE CONTROLFILE AUTOBACKUP ON;
#フラッシュリカバリ領域以外に保存する場合は絶対パスで指定する
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/opt/app/oracle/product/10.2.0/db_1/dbs/snapcf_orcl.f'; # default

#バックアップの最適化と表領域の除外
#明示的に表領域除外
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/opt/app/oracle/product/10.2.0/db_1/dbs/snapcf_orcl.f'; # default

#バックアップの最適化と表領域の除外
#明示的に表領域除外
#configure exclude for tablespace

#SQL 'ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE ''/home/oracle/tracking.dbf''';

#レベル1累積増分バックアップ
backup incremental level 1 cumulative device type disk tag '%TAG' database;
#アーカイブログを全てバックアップ。終わった後全削除
backup device type disk tag '%TAG' archivelog all not backed up delete all input;