3

私は仕事を始めたばかりで、いわばデータベースが現在適切にバックアップされていないという問題を特定しました。Oracleネイティブバックアップユーティリティを使用して6時間ごとに1回のバックアップを実行していますが、ファイルシステムのコピーを取得するだけで、データベースの「ウォーム」バックアップを実行できるという会社からのプロセスも販売されました。データベースファイルの一部を復元する必要がある場合は、Oracleをシャットダウンしてから、コピーしたファイルをコピーし、Oracleを再起動すると、世界は再び完全になります。課題は、これがまだ機能していないという事実です。オラクルが提供しているメッセージを確認するためにもう少し時間を費やす必要がありますが、私の主な質問は「それは可能ですか」です。Oracleの実行中にOracleファイルのコピーを取り、後日それらのファイルを使用してデータベースを復元するには?データベースをシャットダウンしてからコピーを作成すれば機能することは知っていますが、データベースの実行中にコピー(ファイルシステム)を作成できると聞いたのはこれが初めてです。任意のガイダンスをいただければ幸いです。これが私たちが得ているエラーです。

ORA-00314: log 3 of thread 1, expected sequence# 1939 doesn't match 1944
ORA-00312: online log 3 thread 1: 'E:\ORACLE\ORADATA\ITMS\REDO03.LOG'
4

4 に答える 4

3

はい、可能ですが、最初にすべてのテーブルスペースをバックアップモードにして、後でそれらを取り出す必要があります(たとえばALTER TABLESPACE x BEGIN BACKUPALTER TABLESPACE x END BACKUP構文をチェックして、状況に適していることを確認する必要があります)。非常に単純化しすぎると、これはOracleにデータファイルに書き込まないように指示するため、すべてのデータファイルが一貫した状態に保たれます。

そうしないと発生する2つの主な問題は、コピー中に個々のファイルが更新されるため、1つのファイルが破損する可能性があることです。さらに、ファイルごとに内部タイムスタンプとシーケンスが異なるため、Oracleはそれらの使用を許可しません。

購入したプロセスを使用している場合は、すでにすべての処理を行っているはずです。バックアップはOKのようで、まだ機能していないのは復元です。

私はしばらくの間ホットバックアップからの復元に関与していなかったので、他の誰かが実際のエラーの詳細を提供する必要があります。私が読んだのは、復元されたデータファイルで開こうとしましたが、後でライブREDOログが記録されたということです。RECOVER復元するときは、バックアップが作成されてから生成されたREDOログを使用してデータベースにアクセスする必要があると思います。または、その時点に復元しようとしている場合は、RESETLOGSディレクティブを使用してデータを開き、後で取得したすべてのREDOログからすべての変更を失う可能性があります。しかし、実際にはこれよりも多くの情報に基づいたアドバイスを取ります...

于 2010-10-28T14:08:22.570 に答える
3

私の知る限り、実行中のOracleインスタンスからデータファイルを「コピー」する方法は2つあります。

  • 表領域が「BEGINBACKUP」モードの場合、データファイルは表領域にコピーされます。
  • コピーの実行中にファイルシステムのブロック変更をスナップショットおよび追跡できるVeritasなどのハイエンドジャーナルファイルシステムを使用しています。
于 2010-10-28T14:12:35.697 に答える
1

これは、AmazonEC2で実行されているミッションクリティカルではないデータベースを使用して効果的に実行しました。私のバックアップ戦略は、EBSボリュームのスナップショットを定期的に取得することです。バックアップを復元するには、スナップショットから新しいEBSボリュームを作成し、それを使用してインスタンスを起動してから、を実行しますRECOVER DATABASE

もちろん、これにより、スナップショットが作成されたときに実行中だったトランザクションはすべて失われます。

于 2010-10-29T03:15:56.907 に答える
1

可能です。ARCHIVELOGモードである必要があります。

スクリプトの例は手動用です。

Alter tablespace USERS begin backup;
host cp -p /u02/oradata/PROD/users01.dbf /u03/backup/PROD/
host cp -p /u02/oradata/PROD/users02.dbf /u03/backup/PROD/
Alter tablespace USERS end backup;

ただし、RMANのみを使用することをお勧めします。RMANは非常に堅牢で、無料で含まれており、ホットバックアップとコールドバックアップを実行します。別のインスタンスに複製したり、ある時点で複製したり、特定の時点に回復したりします。手動バックアップ手順は、RMANを使用するように移行する必要があります。

データベースを開いた状態でデータベース全体をバックアップしたい場合(スクリプトでパスワードを回避できるように、OracleとDBAの方が好きですが、ymmv):

$ ORAENV_ASK=NO
$ ORACLE_SID=PROD
$ . oraenv
$ rman target=/

Recovery Manager: Release 10.2.0.4.0 - Production on Thu Oct 28 14:23:29 2010

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

connected to target database: PROD (DBID=x)

RMAN> backup as compressed backupset database plus archivelog;

...

Backup Complete.
于 2010-10-28T18:27:08.883 に答える