• 締切済み

RMAN(Oracle9i)を使ったDB移行

Oracle 9iのRMANを使用して、現行のDBサーバから新DBサーバの移行 を考えており、DB移行のテストをしているのですが、上手く行きません。 ※バックアップファイルは、アーカイブモードでオンラインバックアップです。 新サーバーでOracle9iをインストール、RMAN構築、RMANで仮バックアップ、 旧サーバーのRMANのアーカイブ、フルバックアップファイル(ARCH.BUS, FULL.BUS)を 差し替えてリストアしましたが、 RMAN> restore database; で、「ora-196112:データ・ファイル1はmissing or corrupt dataのためリストされませんでした。」とエラーを吐きました。 RMAN> alter database open resetlogs; を入れたところ、 ora-01157、ora-01110を吐き、リストアできませんでした。 そこで、旧DBサーバーのRMANのデータをごっそり新DBサーバーのRMANに置換して、リストアをしようと試みたところ、RMANのスタート時点で、ora-01991というエラーを吐いて、RMAN自体、起動できませんでした。 どなたか、RMANのバックアップを使用して、DB移行を成功した方、ご教授ください。 もしくは、他のDB移行をご存知の方、ご教授ください。 よろしくお願いします。

  • erqew
  • お礼率62% (15/24)
  • Oracle
  • 回答数3
  • ありがとう数4

みんなの回答

  • SaKaKashi
  • ベストアンサー率24% (755/3136)
回答No.3

ま、参考までに。 OracleにおいてRMANやRMAN以外のバックアップ/リカバリはOSの復旧は完了している前提ですから。 ここでOracleのバックアップ/リカバリの講義をするつもりはさらさら無いのであしからず。

参考URL:
http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/backup.102/B19193-02/recov.htm#4652
erqew
質問者

お礼

ご回答、ありがとうございます。 RMANのバックアップは、日別で取っていくとして、 RMANの設定したところまでのOSまるごとのバックアップが必要ということですね。 参考URL、ありがとうございます。

  • SaKaKashi
  • ベストアンサー率24% (755/3136)
回答No.2

同じサーバに壊れたHDDを復旧してリストアするためのもので、別サーバに復旧するための道具ではないって事ですけどね。 あなたは、サーバ間の移行(移動)をRMANでできるかって質問されているので、RMANではサーバ間の移行はできませんって回答しているだけです。

erqew
質問者

お礼

ご回答ありがとうございます。 「同じサーバに壊れたHDDを復旧してリストアするためのもの」というのをもう少し詳しく教えてください。 すみませんが、よくわかりません。 壊れたHDDとは、どこの部分が壊れて復旧したときにリストア可能ということですか? 1.オラクルをインストールしているドライブが壊れてHDDを復旧したときにリストアはできますか?  この場合のHDDの復旧は、最悪、OSの再インストール、オラクルの再インストールを想定しています。  オラクルデータ、RMANのデータ(RMANバックアップデータ)は壊れていないとします。 2.オラクルデータが入っているドライブが壊れてHDDを復旧したときにリストアできますか? オラクルデータは復旧不能で、RMANバックアップデータは壊れていないとします。 3.オラクルをインストールしているドライブとオラクルデータが入っているドライブが壊れてHDDが壊れたときにリストアはできますか? 例えば、下記のような条件で、ディスク0が壊れてHDDを交換、OSのインストール、オラクルの再インストールをして、RMANのバックアップデータから復旧というのは、できますか? [ディスク0] Cドライブ:OS、オラクルインストール Dドライブ:オラクルデータ、RMANデータ [ディスク1]  Eドライブ:RMANのバックアップデータ

  • SaKaKashi
  • ベストアンサー率24% (755/3136)
回答No.1

RMANはDB移行目的のツールではありませんので。 通常はexp/impで移行しますけどね。

erqew
質問者

お礼

ご回答ありがとうございます。 それでは、Cドライブのハードディスクが壊れて、RMANのバックアップ(Dドライブ)だけ救出されたとしても、復旧されないということですか? こういった面では、RMANでバックアップを取っている意味がないですよね。

関連するQ&A

  • Oracle RMANでのリカバリ

    ORACLE9iのRMANでリカバリの検証をしていますが、 上手くいきません。 RMANに詳しい方、ご教授下さい。 運用時、RMANのバックアップ(フルバックアップ、アーカイブログバックアップ)は日々行っており、 OS丸ごとのバックアップは月ごとに行っています。 それで、HDD障害が起こったときに、OS丸ごとバックアップを利用してバックアップした日(月初)に戻して、 本日のRMANのバックアップを利用して、リストアができるかを検証しています。 [環境] Oracleのバージョン[Oracle9i 9.2.0.7.0] アーカイブモード [検証内容] (1).DBの設定、RMANの設定 -> (2).REDOログのCURRENT確認 -> (3).Windowsの機能でバックアップ -> (4).REDOログが上書きされてアーカイブログがはかれるまでDBのテーブルにデータを追加 -> (5).RMANでバックアップ -> (6).REDOログのCURRENT確認((2)のときのCURRENTが異なるようにした) -> (7).(3)のバックアップを使ってWindowsの機能で復元 -> (8).(5)のRMANバックアップデータ (フルバックアップデータ、アーカイブログバックアップデータ)を置換して、RMANのリストア (2)の時点のREDOログの状態を「select * from v$log」で確認したところ、 GROUP#2がCURRENTでした。 GROUP# SEQUENCE# ARCHIVE STATUS 1 2 YES INACTIVE 2 3 NO CURRENT 3 1 YES INACTIVE (6)の時点のREDOログの状態を確認したところ、 GROUP#3がCURRENTでした。 GROUP# SEQUENCE# ARCHIVE STATUS 1 11 YES INACTIVE 2 12 YES ACTIVE 3 13 NO CURRENT (8)のとき、「RMAN> restore database;」のコマンドを打ったとき、下記のエラーが出てきて、 リストアできませんでした。 エラー「ORA-19612:データ・ファイル1はmissing or corrupt dataのためリストアされませんでした。」 CURRENTの状態、位置によってリストアできたりできなかったりするのでしょうか? SEQUENCE#の値を変更、もしくは、アーカイブログのバックアップから、REDOログをリストア する必要があるのでしょうか? または、他に必要な設定をする必要があるのでしょうか? リカバリするときのコマンドは、下記の通りです。 SET ORACLE_SID=<SID名> rman target / catalog rman/rman@RMAN RMAN> STARTUP NOMOUNT RMAN> RESTORE CONTROLFILE; RMAN> ALTER DATABASE MOUNT; RMAN> RESTORE DATABASE; RMAN> ALTER DATABASE OPEN RESETLOGS; 前回、同じようなやり方でリストアしたときは、上手く行きました。 そのときは、下記のような状態でした。 ((4)のときのデータ件数は少し異なり、(6)の時点でGROUP#1がCURRENTでした。) GROUP# SEQUENCE# ARCHIVE STATUS 1 11 NO CURRENT 2 9 YES INACTIVE 3 10 YES ACTIVE 以上、宜しくお願いします。

  • 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に対して「~古いバックアップからリストア~」といったメッセージが出てくるのか理解できていません。 おそらくリカバリで使用するコマンドが誤っているのだと思うのですが、このエラーの解決のヒントなどございましたらご教示ください。 よろしくお願いします。

  • RMANでリストア→DBオープンする方法

    RMANで毎日DB全体をオンラインバックアップしています。 本日DB全体のリカバリが必要となったのですが、 「障害が発生した日の早朝に取得したバックアップをリストアした時点の状態に復旧して欲しい」とお客様から要望が来ました。 RMANで、リストアしただけでDBを起動させる方法ってあるのでしょうか? restore database;のあと、resetlogsオプションつきでDBを起動させようとしましたが、「不完全リカバリでないためresetlogsは使用できません」とエラーで怒られてしまいました。当然ですよね。。。 ちなみに、コールドバックアップは取得していません。 DB環境は以下の通りです。 OS:Windows2003 R2 SP2 DB:OracleSE 10.2.0.1 なにか良い方法がありましたら教えていただけませんでしょうか。 よろしくお願いします。

  • oracle11の移行について

    こんにちは。Oracleに関して質問があります。 現状2台(サーバA、サーバB)のWindows2003Serverがあり、それぞれOracle11.1gが稼動しています。サーバAで動かしているDBをそのままサーバBに持っていきたいと考えています。 Webでサーバ移行やバックアップをキーワードに検索したところ、ほとんどが、障害の発生したサーバにデータをリストアする方法が紹介されており、サーバ移行の観点で書かれた情報が少ないことがわかりました。 また、古いOracleだとexpコマンドやimpコマンドでバックアップ/リストアができるとありましたが、11.1gにはOracleEnterpriseManagerでバックアップが取れるようになっており、この機能を使って、移行できないものかと思っています。 たしかに、エクスポートファイルからのインポートというメニューがあるのですが、このメニューは特定のインスタンス?にWebアクセスした後にでてくるメニューなので、ここでインポートしたら、既存のインスタンスのデータが上書きされてしまう印象を持っています。 サーバBにリストアする場合は、あらかじめ、サーバAと同じインスタンス名でデータベースの入れ物?を作っておき、そこでインポートすればよいのでしょうか?また、この場合、管理ファイルなどが重複してしまうのですが、問題はありませんでしょうか? つたない表現で申し訳ありませんが、ご存知の方、ご教授お願いします。

  • Oracle オラクル データベースの移行  移動について

    オラクルがインストールされているPC(A)から 同じDBを別PC(B)へ移す作業を職場で依頼されたのですが、 やり方が分らず困っています。 Oracle: 9i リリース 9.2 OS:XP モード:ノーアーカイブ 概要として、 1.既存DBの停止 2. バックアップ取得(OSアプリ、エクスプローラー等でバックアップ取得を考えてます) (制御ファイルとデータファイル、REDOログ)が対象!? 3.新PC(B)にオラクルインストール 4.新PCのオラクルでリストア作業(この辺が全くわからないです) と考えました。 DBにお詳しい方の意見、 詳しい処理(考え方は、ともかく実操作)を詳しく紹介しているサイトが あれば情報共有させてください。 ※移行先のドライブ構成は移行元と基本同じですが、 出来ればリストア時に検討したいと思っています。 ※既存DBは自由にDB停止して必要なデータ(バックアップ)は取れるので、 3番と4番の詳しいやり方が分かればうれしい。 そもそも考え方自体間違っているのかも・・・そしたらご指摘お願いします。 ※出来ればRMANは使わない方法がベスト

  • DBが作成できない(ORA-03113)

    こんにちわ。Oracle9iを導入しようとしています。 インストールまでは上手くいったのですが、DBの 作成の際に同じエラーが多発しDBが作成できません。 誰か良い回避方法を知っていらっしゃる方がいれば 教えてください。お願いします。 ・表示されるエラー Ora-03113: End of file on communication channel ・マシンのスペック CPU:P(3)500 HDD:10.5G ( /:3GB, /u01(オラクル領域):5GB, /tmp:1GB, SWAP:1GB) メモリ:128MB OS:Miracle Linux v2.1 ・Oracle9iの種類 Oracle9i Database for Linux(9.2.0) ・$ORACLE_BASE/admin/yamamoto(SID)/bdump配下のアラートログ(抜粋) 2002 Successful mount of redo thread 1, with mount id 1368550459. Thu Dec 19 16:51:08 2002 Completed: Create controlfile reuse set database yamamoto MAXINST Shutting down instance: further logons disabled Shutting down instance (normal) License high water mark = 3 All dispatchers and shared servers shutdown Thu Dec 19 16:51:14 2002 ALTER DATABASE CLOSE NORMAL ORA-1109 signalled during: ALTER DATABASE CLOSE NORMAL... Thu Dec 19 16:51:14 2002 ALTER DATABASE DISMOUNT Completed: ALTER DATABASE DISMOUNT ARCH: Archiving is disabled Shutting down archive processes Archiving is disabled Archive process shutdown avoided: 0 active ARCH: Archiving is disabled Shutting down archive processes Archiving is disabled Archive process shutdown avoided: 0 active Thu Dec 19 16:51:20 2002 Starting ORACLE instance (normal) Thu Dec 19 16:51:20 2002 WARNING: EINVAL creating segment of size 0x000000000f400000 fix shm parameters in /etc/system or equivalent

  • Oracle10g と9iの同居

    Oracle10gと9iを同じサーバで運用したいです。 (どちらもDATABASEです。) 1つのサーバで、バージョンの違うDBを運用することは可能ですか? 以前、8iと9iは同居可能と聞いたことがありますが、 10gと9iも同居可能ですか? 教えてください。よろしくお願いします。

  • PostgreSQLのDB復元

    PostgreSQLのDBサーバがハードディスク故障で使えなくなり、新サーバに交換しましたが、幸い古いディスクからファイルシステムのデータをコピーできました。 この場合、どうやって新サーバにDBのリストアできるのでしょうか? コピーされた古いディスクのファイルはdumpしてない元々のファイル群ですので、ちょっと復元のやり方が分かりません。 新サーバに同じバージョンのPostgreSQLをインストールして、古いファイルを上書きすればいいでしょうか? ちなみに、旧サーバと新サーバのスペックは一緒です。 分かる方いればぜひ教えてください。

  • rmanで別ホストへリストアする際の制御ファイル

    rmanで別ホストへリストアする際に、Oracleのマニュアルを見ると制御ファイルのautobackupからのリストアを行っています。 制御ファイルを別ホストのrmanのカタログなり制御ファイルに登録する必要があるかと思うのですが、 それはどうやってやればいいのでしょうか。 ちなみに以下を参照しています。 http://docs.oracle.com/cd/E16338_01/backup.112/b56269/rcmadvre.htm#i1007814

  • オンライン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件入った状態)まで戻したいのですが、 解決の手がかりになる情報などがございましたらご教示いただけますでしょうか。 よろしくお願いします。