• 締切済み

制御ファイルのバックアップから戻す方法

alter database backup controlfile to 'ファイル名'でバックアップした制御ファイルを、制御ファイルに障害などの際に使用するにはどのような手順をふめばよいのでしょうか?

  • Oracle
  • 回答数1
  • ありがとう数13

みんなの回答

回答No.1

バックアップリカバリーの方法は参考URLを参照して下さい。 質問に書かれてる方法でバックアップした制御ファイルは、制御ファイルを作るためのスクリプトが保存されているだけですよ。 他の方法のほうが良いと思います。

参考URL:
http://otndnld.oracle.co.jp/deploy/maintenance/pdf/bak_rec.pdf
yamasa
質問者

お礼

recover database文でできたのですね。 ありがとうございます。 alter database backup controlfile to traceでテキストのスクリプトが作成することは知っていたのですが、バイナリでバックアップした制御ファイルの使い方がわかりませんでした。

関連するQ&A

  • ARCHIVEを利用したバックアップサーバへのデータ反映について

    毎晩オンラインバックアップを行い、 バックアップサーバ(待機環境)へリストアしております。 (この処理は、バックアップファイルを復旧後に  Recover Database命令を使用しております。) この環境に対し、1時間おきに メインサーバのArchiveLogをコピーして 差分をバックアップサーバに反映したいのですが、 この場合、どの様な処理を実施したらよいのでしょうか? 夜間に行っている処理を実行してもAchiveが反映してくれません。 何か良い方法があればご教示をお願い致します。 現在、以下の環境で行っております。 OS:Windows 2003 Server DB:Oracle 10.1.0.4 (メイン・バックアップサーバ共に同じ) ・夜間に行っている処理  (1)DBシャットダウン  (2)バックアップファイルのリストア  (3)コントロールファイルの再設定  (4)DBのマウント  (5)最新までのArchiveLogを取得  (6)Recover Database Using Backup Controlfile Until Cancel;  (7)Alter Database Open Resetlogs;  終了

  • バックアップについて

    データベースのバックアップについて質問です。 クエリファイル(.sql)からバックアップを取りたいのですが、バッチファイルなどを使用せずに、クエリファイルを実行するだけでバックアップを取る方法はないのでしょうか? 現在、クエリファイルには BACKUP DATABASE データベース名 TO DISK = 'バックアップ先' WITH INIT と記述しております。 このファイルをただ実行しても、マネージメントスタジオが起動し、ログインを求められ、実行ボタンを押さないと実行はされないと思います。 バッチファイルを併用、またはバッチファイルのみでバックアップを取ることは成功しているのですが、バッチファイルを使わずに、クエリファイルのみでこれを実行する方法はないものかと悩んでおります。 方法がございましたら、ご教授願います。

  • オンラインREDOログ障害からの復旧方法について

    現在、Oracle11g Release2 11.2.0.3(ASM使用) の環境で、オンラインREDOログファイルが全て消失した場合を想定して、以下の手順で復旧の方法をテストしています。 ----- 1.sqlコマンドでテーブルに1件データを挿入する。 2.フルバックアップ(バックアップセット)を取得する。 3.sqlコマンドでテーブルに1件データを挿入する。 4.累積増分バックアップを取得する。 5.sqlコマンドでテーブルに1件データを挿入する。 6.DBをシャットダウンする。 (RMAN> shutdown immediate;) 7.オンラインREDOログファイルを全て削除する。 8.DBをマウントする。 (RMAN> startup mount;) 9.リストアをする。 (RMAN> restore database;) 10.バックアップの際に除外している表領域をオフラインにする。 (SQL> Alter database datafile '+DATA/orcl/DATAFILE/hoge2' offline drop;) 11.リカバリをする。 (SQL> recover database using backup controlfile until cancel;) (ログの指定は AUTO) 12.DBをオープンする。 (RMAN> alter database open resetlogs;) 13.sqlコマンドでテーブルの中を確認する。 (SQL> select * from HOGEHOGE;) (データが1件) ----- 上記の手順でDBをオープンにするところまで上手くいったのですが、 私の考えでは、13でテーブルを確認するとデータが2件はいっていると思ったのですが、 結果は、1件だけでした。 累積増分バックアップを取得した時点(データが2件入った状態)まで戻したいのですが、 解決の手がかりになる情報などがございましたらご教示いただけますでしょうか。 よろしくお願いします。

  • 制御ファイルの追加について

    「制御ファイルの追加」方法について、教えてください。(Oracle 9i) SPFILE使用時に、制御ファイルを追加する場合、 以下の手順で行えうよう、書籍に記載されていました。 ----------------------------------------- (1)インスタンス起動時にSPFILEを変更  (ALTER SYSTEM SET CONTROL_FILE=...) (2)データベースの停止 (3)OSコマンドにて制御ファイルをコピー (4)データベースを再起動 ----------------------------------------- 上記、(1)~(4)の順のうち、 (1)は一番最後に実施してはいけないのでしょうか? ((2)→(3)→(4)→(1)) よろしくお願いします。

  • batファイルの記述について

    PCにインストールされているMSDEのバックアップをタスクで取得したいと思っています。 いつも、コマンドを手入力して取得しているのですが、batにすることはできないでしょうか。 参考ページとかでも構いませんので、アドバイスを頂ければ幸いです。 ちなみに、下記のように入力しています。 C:\>osql -E 1>backup database database名 to disk="c:\msdebackup\backup.bak" 2>backup database database名_log to disk="c:\msdebackup\backup_log.bak" 3>go 以上、宜しくお願い致します。

  • RMANを使用してのバックアップとリカバリの検証

    RMANを使用してのバックアップとリカバリの検証 Oracleの知識があまりないので、変な事を聞いているかもしれませんが、 RMANのバックアップとリカバリについて以下の現象について、エラーが解決できずにいます。 ===現象=== Oracle11g Release2 11.2.0.3(ASM使用) 現在、指定の表領域以外のバックアップ(フルと累積増分)を取得し、累積増分を取得した時点までリカバリを行う検証を行っております。 ※バックアップコマンド ・フル  backup incremental level = 0 format '+DATA/BACKUP/lv0backup_%U' database TAG 'dbbackup' plus archivelog TAG 'archivebackup' delete all input; ・累積増分  BACKUP INCREMENTAL LEVEL 1 format '+DATA/BACKUP/lv1backup_%U' CUMULATIVE DATABASE TAG 'dbbackup' PLUS ARCHIVELOG TAG 'archivebackup' DELETE INPUT; RMANの環境構成に以下を設定 他はデフォルトです。  CONFIGURE CONTROLFILE AUTOBACKUP ON;  CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '+DATA/BACKUP/CF_%F';  CONFIGURE EXCLUDE FOR TABLESPACE 'TBLSP01';←データファイル6  CONFIGURE EXCLUDE FOR TABLESPACE 'TBLSP02';←データファイル7 この設定で、以下のコマンドで累積増分バックアップを行った時点までリカバリしようとすると、エラーになります。 ~~~~~ RMAN> run{ set until scn = 1069044; restore database; recover database; alter database open; } 実行コマンド: SET until clause restoreが開始されました(開始時間: 13-08-14) チャネル: ORA_DISK_1が割り当てられました チャネルORA_DISK_1: SID=14 インスタンス=orcl_1 デバイス・タイプ=DISK ファイル6はデータベース全体のバックアップから除外されています。 ファイル7はデータベース全体のバックアップから除外されています。 チャネルORA_DISK_1: データファイル・バックアップ・セットのリストアを開始しています チャネルORA_DISK_1: バックアップ・セットからリストアするデータファイルを指定しています チャネルORA_DISK_1: データファイル00001を+DATA/orcl/datafile/system.313.823464749にリストアしています チャネルORA_DISK_1: データファイル00002を+DATA/orcl/datafile/sysaux.323.823464751にリストアしています チャネルORA_DISK_1: データファイル00003を+DATA/orcl/datafile/undotbs1.274.823464751にリストアしています チャネルORA_DISK_1: データファイル00004を+DATA/orcl/datafile/users.286.823464751にリストアしています チャネルORA_DISK_1: データファイル00005を+DATA/orcl/datafile/undotbs2.280.823464985にリストアしています チャネルORA_DISK_1: データファイル00008を+DATA/orcl/datafile/testspace3にリストアしています チャネルORA_DISK_1: バックアップ・ピース+DATA/backup/lv0backup_0ioha718_1_1から読取り中です チャネルORA_DISK_1: ピース・ハンドル=+DATA/backup/lv0backup_0ioha718_1_1 タグ=DBBACKUP チャネルORA_DISK_1: バックアップ・ピース1がリストアされました チャネルORA_DISK_1: リストアが完了しました。経過時間: 00:01:05 以前のバックアップへのフェイルオーバー restoreが完了しました(完了時間: 13-08-14) recoverが開始されました(開始時間: 13-08-14) チャネルORA_DISK_1の使用 RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: recoverコマンドが08/14/2013 20:57:47で失敗しました RMAN-06556: データファイル6は、SCN 1069044より古いバックアップからリストアする必要があります ~~~~~ 私には、なぜバックアップから除外されているデータファイル6に対して「~古いバックアップからリストア~」といったメッセージが出てくるのか理解できていません。 おそらくリカバリで使用するコマンドが誤っているのだと思うのですが、このエラーの解決のヒントなどございましたらご教示ください。 よろしくお願いします。

  • 2008でバッチファイルからバックアップするには?

    お世話になっております。 SQL Server 2008 Expressで、DBのバックアップを定期的に取ろうとしているのですが、うまくいきません。 SQL Serverのタスク等ではなく、バッチファイルを作成し、 タイムスタンプを付けて保存したいと思っています。 例:「TESTDB_YYYYMMDD_HHMMSS.bak」 2005のときは、以下のファイルを用意し、 Backup.bat Backup.sql ---- Backup.bat 内容 ------------------------ sqlcmd -SMYPC\SQLEXPRESS -Usa -iC:\DBBackup\DBBackup.sql -P"" >> C:\DBBackup\backup.log (タイムスタンプを付ける処理) ---- Backup.sql 内容 ------------------------ BACKUP DATABASE [TESTDB] TO DISK = N'C:\DBBackup\TESTDB.bak' WITH NOFORMAT, NOINIT, NAME = N'TESTDB-完全 データベース バックアップ', SKIP, NOREWIND, NOUNLOAD, STATS = 10 GO 同様の処理を2008上で行うと、特にエラーメッセージも出ないのですが、 バックアップファイルが出力されません。 (Management Studio Express上でSQLを流すとバックアップファイルが出力されます。) SQLCMDの仕様が変わった為かと思いますが、 解決策をご存知の方いらっしゃいましたら、宜しくお願い致します。

  • Oracle9i(Win)バックアップすべきファイルは?

    Oracle9i(Win版)をOracle9iを再インストールする事態になってもダウン時までの状態に戻したいと思っています。 EnterpriseManagerConsoleからDailyBackupのジョブを以下のスクリプトで走らせています。 (ウィザードで生成されたものです) ------------------------------------------------run { allocate channel Channel1 type disk format '*:\******\*****\b_%u_%p_%c'; backup ( database include current controlfile ); backup ( archivelog all delete input ); } allocate channel for maintenance device type disk; delete obsolete device type disk; ------------------------------------------------ この他にバックアップを取るべきファイルは パスワードファイル、listener.ora、sqlnet.ora、tnsnames.ora位でしょうか? 上記のジョブ以外にバックアップを取っておくべきファイルは何かアドバイスをください。

  • backup.pst というバックアップファイルをつくってあったが

    バックアップファイルが開けません。 どのようにすればよいのでしょうか。 オフィス系だと思います。 ファイル名は backup.pst です。 よろしくお願いします。

  • ネットワーク指定のバックアップ方法について

    SQL Server2000おいてバックアップをジョブに登録し定期的に取ろうと思っています。 ジョブにBACKUP DATABASE [ABCD] TO DISK = N'\\LANDISK\SHARE\BACKUP\BackData' WITH NOINIT , NOUNLOAD , NAME = N'Data バックアップ', NOSKIP , STATS = 10, NOFORMAT として"LANDISK"というネットワーク上にバックアップしようとしています。 しかし、バックアップ デバイス '\\LANDISK\SHARE\BACKUP\BackData' を開けません。デバイス エラーまたはデバイスがオフラインです。詳細については、SQL Server のエラー ログを参照してください。 というエラーとなってしまいます。 ログを見ても BackupDiskFile::CreateMedia: バックアップ デバイス '\\LANDISK\SHARE\BACKUP\BackData' を create にできませんでした。オペレーティング システム エラー = 5(アクセスが拒否されました。)。 となっております。 どなたか良い方法を分かりやすく教えていただけないでしょうか?