
私は SQL Server DBA であり、最近 Oracle 環境の責任を任されました。(11g)
現在、SQL Server 上のトランザクション ログの定期バックアップを実行し、それらを別のサーバーに移行しています。Oracle でも同じことを行いたいと思っています。
Oracle の REDO ログは、切り替えられる前にサイズに基づいて決定され、サーバーがそれらをアーカイブできるようになります。
これを実現するためのヒントやベストプラクティスを誰か提供してもらえますか。
また、REDO ログのサイズ設定や、日中の使用パターンの変化への対応方法についてもアドバイスをいただければ幸いです。
これはRedhat 5 Enterpriseサーバー上にあることを言い忘れました
答え1
最初の提案は、自分が何をしているのか本当に分かっている場合を除いて、手動で変更しないことです。
バックアップ (REDO ログ バックアップを含む) を実行するための Oracle ツールである について調べるrman
必要があります。何らかのアクションを起こす前に、これを徹底的に調べて、Oracle バックアップのさまざまな側面がどのように機能するかを完全に理解することを強くお勧めします。
通常、Oracle の再実行/アーカイブ ログは、バックアップを実行するまで書き込まれた場所に残ります。バックアップは通常、データベース バックアップとともに必要なアーカイブ ログを含むように設定されます。
REDO ログのサイズについては、データベース変更トランザクションの量に直接基づいて決まります。変更が多いほど、ログの量も大きくなります。これはアプリケーションと使用状況によって大きく異なるため、統計情報 (トランザクション量、トランザクション ログ サイズ、データベース サイズなど、すべてタイムスタンプ付き) を記録し始めることをお勧めします。数週間分のデータを取得したら、アクティビティとログを相関させ、有効な推定値を導き出すことができます。
編集: 元の質問を部分的に誤解していたようです。バックアップを実行するときに、基本的に現在の時点に REDO ログのチェックポイントを作成して、バックアップ開始を発行した時点までのバックアップと完全に一貫性を保つ方法を求めていると思います。
そして、rman は実際にその面倒な作業をすべて処理します。rman のドキュメントから引用します:
最新のログを含むアーカイブ REDO ログのバックアップを取る場合 (つまり、BACKUP ... ARCHIVELOG コマンドを UNTIL または SEQUENCE オプションなしで実行する)、データベースが開いていると、バックアップを開始する前に、RMAN は現在のオンライン REDO ログ グループと、コマンドが発行された時点で最新であった REDO ログ グループまでの、まだアーカイブされていないすべてのオンライン REDO ログを切り替えます。これにより、バックアップには、コマンドの開始前に生成されたすべての REDO が含まれるようになります。
もう少し詳しく説明すると、次のようになります。
BACKUP ... PLUS ARCHIVELOG 句を使用すると、アーカイブ REDO ログを他のファイルのバックアップに追加できます。BACKUP ... PLUS ARCHIVELOG を追加すると、RMAN は次の処理を実行します。
- ALTER SYSTEM ARCHIVE LOG CURRENT コマンドを実行します。
- BACKUP ARCHIVELOG ALL を実行します。バックアップの最適化が有効になっている場合、RMAN は指定されたデバイスにすでにバックアップされているログをスキップすることに注意してください。
- BACKUP コマンドで指定された残りのファイルをバックアップします。
- ALTER SYSTEM ARCHIVE LOG CURRENT コマンドを実行します。
- バックアップ中に生成された残りのアーカイブ ログをバックアップします。
これにより、コマンド中に取得されたデータファイルのバックアップが一貫した状態に回復可能であることが保証されます。
rman ドキュメントには、より詳しい情報が記載されているはずです。私がその URL (オンライン Oracle rman ドキュメント) を取得して提供したいのですが、URL はブックマークしたときからすでに変更されているため、そのまま残っているとは思えません。ただし、rman ドキュメントを Google で検索すれば見つかるはずです。
編集: もう一つ付け加えたいことがあります。サイズについて言及されていました。Oracle 11g は圧縮された REDO ログをサポートしています。私はまだ使用していませんが、サポートされていることは知っています。さらに、Oracle 10g と 11g は圧縮バックアップをサポートしています。まだ圧縮バックアップを行っていない場合、あなたはそうすべきだサイズの削減は大きく、さらに、圧縮バックアップを有効にすると、バックアップ実行のパフォーマンスも大幅に向上しました。
答え2
Oracle の REDO ログは、切り替えられる前にサイズに基づいて決定され、サーバーがそれらをアーカイブできるようになります。
Oracle 9i 以降のパラメータ archive_lag_target を確認してください。
答え3
それはトレードオフです。ログファイルが大きい方が効率的だと聞いたことがありますが、A) ファイルの損失が大きいほどデータの損失も大きくなり、B) 帯域幅が貧弱であるため、私たちはそれを使用しません。
このため、数時間ファイルをスプールし、その後、さまざまなスタンバイ マシンに転送して更新を実行することになります。実際には、まだ Oracle8i を使用していますが、データベースは DBA ではない人物によってかなり前に設計されたため、新しいデータファイルと制御ファイルを手動で作成する必要があります。/ため息
答え4
これを質問してからしばらく経ちましたが、最近答えを見つけました。Oracle 10G R2 以降には、ログ スイッチが指定された時間内に実行されるようにするパラメーターがあります。
alter system set archive_lag_target=900; を実行する場合は、
これにより、使用されるログの量に関係なく、15 分ごとに切り替えが行われるようになります。