Oracleデータベースのバックアップ、ライブラリの移行

7563 ワード

Oracleデータベースには、エクスポート/インポート(EXP/IMP)、またはデータポンプ・メソッド(impdp/expdp)、ホット・バックアップ、およびコールド・バックアップの3つの一般的なバックアップ・メソッドがあります.エクスポート/インポート・バックアップは論理バックアップであり、エクスポート/インポートに比べてホット・バックアップ、コールド・バックアップは物理バックアップです.一、exp direct pathを採用するとエクスポート速度が向上することを知っています.したがって、expを使用する場合、直接パスモードを採用することができる.このモードにはDIRECTとRECORDLENGTHパラメータの2つの関連パラメータがある.DIRECTパラメータは、直接パス方式(DIRECT=Y)を使用するか、通常パス方式(DIRECT=N)を使用するかを定義します.通常のパスエクスポートはSQL SELECT文を使用してテーブルからデータを抽出し、直接パスエクスポートはディスクからPGAに直接データを読み取り、そのままエクスポートファイルに書き込むことで、SQLコマンド処理層のデータ変換プロセスを回避し、エクスポート効率を大幅に向上させる.データ量が大きい場合、直接パス導出の効率性の利点はより顕著であり、従来の方法よりも3倍以上高速化することができる.DIRECT=Yと組み合わせて使用されるRECORDLENGTHパラメータは、通常のパスエクスポートで使用されるBUFFERパラメータと同様に、Export I/Oバッファのサイズを定義します.RECORDLENGTHパラメータを最大I/Oバッファ、すなわち65535(64 kb)に設定することを推奨します.exp userid=system/manager full=y direct=y recordlength=65535 file=exp_full.dmp log=exp_full.logのいくつかの制限は、tablespace-mode・直接パスではqueryパラメータがサポートされていないため、直接パスは使用できません.Queryはconventional pathモードでのみ使用できます.・expバージョンが8.1.5未満の場合、expを使用してlobフィールドのあるテーブルをインポートできません.しかし、現在では8バージョンのデータベースはめったにありません.この点は無視できる.・bufferオプションはconventional path exp(従来のパス)にのみ有効です.ダイレクトパスには影響しません.ダイレクトパスの場合は、RECORDLENGTHパラメータを設定する必要があります.・直接経路の場合、RECORDLENGTHパラメータは64 k(65535)に設定することを推奨する.この値は性能の向上に比較的大きい.
1.ライブラリ全体をエクスポート:Expユーザー名/パスワード@SID file=E:xxx.dmp owner=ユーザー名、車に戻ればいい2.指定されたテーブルExp userid=ユーザー名/パスワード@SID tables=(tableName 1,tableName 2,...,tableName)file=格納パスバックアップファイル名.dmp 3.データベース内のテーブルtable 1のフィールド名を「張」にする先頭のデータエクスポートExp system/パスワード@データベース名file=格納パスファイル名.dmp tables=(table 1)query=where files 1 like‘張%’
例:
Microsoft Windows [   6.3.9600]
(c) 2013 Microsoft Corporation。      。

C:\Users\Administrator>exp userid=***/***@orcl tables=MSG_DETAI
\  \MSG_DETAILS.dmp

Export: Release 11.2.0.3.0 - Production on     10  9 09:10:13 2017

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights re


   : Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64
tion
With the Partitioning, OLAP, Data Mining and Real Application Testing
    ZHS16GBK      AL16UTF16 NCHAR    
      AL32UTF8     (        )

              ...
. .                           MSG_DETAILS
. .                               M1707_01              0  
. .                               M1707_02              0  
. .                               M1707_03              0  
. .                               M1707_04              0  
. .                               M1707_05              0  
. .                               M1707_06              0  
. .                               M1707_07              0  
. .                               M1707_08              0  
. .                               M1707_09              0  
. .                               M1707_10              0  
. .                               M1707_11              0  
. .                               M1707_12              0  
. .                               M1707_13             72  
. .                               M1707_14        1140191  
. .                               M1707_15
2.IMP Oracle Importプロセスでは、Exportプロセスの数倍の時間をかけてデータベースにデータをインポートする必要があります.一部の重要な時点では、データベースの緊急障害復旧に対応するためにインポートされます.ダウンタイムを短縮するには、導入を高速化することが重要です.大きなデータ量の導入を加速させる特効はありませんが、導入時間全体を減らすために適切な設定をすることができます.・IMPが通常の方法と同じinsert・IMPを大量に作成した場合、インデックスは通常loggingであり、undoとredoが大量に生成される.
コマンドラインを使用してdmpファイルをインポートする例:imp my/123@orclfile=d.dmp fromuser=my touser=my ignore=y statistics=none buffer=1億円解釈:imp新規ライブラリのユーザ名/新規ライブラリのパスワード@SID file=dmpファイルパスfromuser=どのユーザからインポート(dmpファイルのユーザ)touser=どのユーザにインポートするか
IMP速度の向上:(1、commitパラメータの使用は推奨されません.impが失敗すると、後続のトラブルが多くなるからです.(2、bufferパラメータ値を大きくして、より大きなarray ImpパラメータBUFFERを一度に読み込むことができるようにする.bufferパラメータ値を大きくすることにより、一度により大きなarray ImpパラメータBUFFERを定義する.これにより、Importプロセスによるデータの読み取り回数が減少し、導入効率が向上する.BUFFERの大きさは、システムアプリケーション、データベース規模に依存し、通常、百兆とすれば十分である.その使い方は以下の通りである:imp user/pwd fromuser=user1 touser=user2 file=/tmp/imp_db_pipe1 commit=y feedback=10000 buffer=10240000
(3、初期化パラメータsort_area_sizeを大きく設定してインデックス作成時のソート速度を速め、大メモリでASMM/MMを有効にしても何の役にも立たないと感じます.(4、INDEXES=Nオプションを使用して、データをインポートしてから手動でインデックスを作成します.前述のソート領域の追加について説明した場合、Impプロセスはデータをインポートしてからインデックスを作成します.インポート中にユーザー定義のインデックスを作成します.特に、テーブルに複数のインデックスがある場合や、データテーブルが特に膨大な場合は、時間がかかります.場合によっては、データのインポートに最も早い時間が必要になりますを選択し、インデックスの作成を許可すると、INDEXES=Nを使用してデータのみをインポートし、インデックスを作成しないことができます.INDEXFILEオプションを使用して、インデックスを作成するDLLスクリプトを生成し、手動でインデックスを作成することができます.また、2回目、1回目、2回目のインデックスをインポートする方法もあります.使用方法は次のとおりです.
imp user/pwd fromuser=user1 touser=user2 file=/tmp/imp_db_pipe1 commit=y feedback=10000 buffer=10240000 ignore=y rows=y indexes=n
imp user/pwd fromuser=user1 touser=user2 file=/tmp/imp_index_pipe1 commit=y feedback=10000 buffer=10240000 ignore=y rows=n indexes=y
(5、LARGE_POOL_SIZEを増やすinit.oraにMTS_SERVICE、MTS_DISPATCHERSなどのパラメータが配置されている場合、tnsnames.oraにはない(SERVER=DEDICATED)の構成では、データベースは共有サーバモードを使用しています.MTSモードでは、Exp/IMp操作でLARGE_POOLが使用されます.LARGE_POOL_SIZEを150 Mに調整することをお勧めします.データベースがMTSモードであるかどうかを確認します.SQL>select distinct server from v$session;-戻り値にnoneまたはsharedが表示された場合、MTSが有効になっていることを示します.(6、ログのサイズを大きくしてlog switchの回数を減らす、つまりcheckpointの回数を減らし、ディスクの書き込み回数を減らす(7、既存のテーブルにデータを追加する場合、例えば、テーブルにビットマップインデックスがある場合は、インデックスを削除してからインポートしたほうがよい.そうしないと、インデックスを更新する際に多くの待機注意が生じる.関連するいくつかのパラメータ1、db_writer_processes impが導入された場合、上記の点がすべてできた場合、さらに影響が最も大きいパラメータが確定する必要があるはい、それはdb_writer_processesです.プロセスの数は、サーバーのCPUの状況に応じて増加できます.速度は大幅に向上します.2、fast_start_mttr_targetの平均回復時間は、300秒などの合理的な数字を設定する必要があります.システムのチェックポイントを速める他に注意しなければならないことは、1.ターゲットデータベースを非アーカイブモードに設定し、もちろんリポジトリを停止してNologgingを使用したほうがいいです.2.インポート時にインデックスと制約をすべて削除できます(index,constraint,triggerなど、dropまたはdisableはすべてのindexと関連するpkを削除します)3.ロールバックセグメントが十分大きい場合、commit=yパラメータを追加することなく、頻繁にコミットすることは効率に影響します.4.DBLINK移行を使用することも考えられます.同様に非アーカイブモード、insert/+append/into select/+parallel(t,4)/*fromを使用します.t@dblink;;5.移行中に各種空間が十分かどうか(redolog,archivelog,undo segment,temp tbsを含む)に常に注意する;6.その他の要因干渉(Job,Trigger,Profileなど).7.Impの場合はbufferが大きく与えられます.8.impにはparallelはありません.parallelを使いたい場合は元のテーブルを複数のcsvに出力してsqlldr 9.でマテリアルビュー(Material View)を試してみてくださいあ、別々の表領域であればtransport tablespaceも考えられます.10.EXPDPとIMPDPの使用も考えられます.11 table/indexにNologgingを設定します.12.同プラットフォームであれば、表領域別に転送する方が、高速です.13.用のqueryサブクエリエクスポートインポート(exp imp).14.ignore=y buffer=40960000で、1秒に少なくとも10 wのレコードが必要です.15.まずテーブルを作成し、インデックス情報を削除します.テーブルは並列度を設定します.パーティション化可能であれば、並列インポートを推奨します.つまり、複数のスクリプトを書きます.各スクリプトは異なるパーティションの内容をインポートします.commit=yを加えると、インポートが完了したら並列にインデックスを作成し、作成が完了したら並列度をキャンセルします.