論理的なデータバックアップポンプ技術を実装
From:https://blog.csdn.net/weixin_41078837/article/details/80618916
論理バックアップの概要
論理バックアップは、プロセスのバイナリダンプファイルに保存されたときに、データベース・オブジェクトの論理的なコピーを作成します。本質的には、論理バックアップとリカバリは、データベースのインポートおよびエクスポートデータの実際の事実です。
輸出:
輸出は関係なく、これらのエクスポートレコードの物理的な場所の、レコードセット(拡張子は通常、DMPである)データベースレコードがファイルに読み書きされ、本質的には、データベースの論理的なバックアップです
インポート:
それは本質的に、データベースの回復の論理的な輸入され、バイナリダンプファイルを読み込み、エクスポートし、データベースに復元されます。
技術的なデータ・ポンプ・インポート/エクスポート
ポンプデータ(DATAポンプ)データベースまたはデータベースとオペレーティングシステムとの間の高速データ転送技術の間です。サーバー上で実行されているデータ・ポンプ・ツールは、データベース管理者は、データ・ダンプを保存するためのデータベース・ディレクトリを指定する必要があります。
Oracleデータベースの接続
ディレクトリ操作を作成します。
ダンプファイル、ログ・ファイルおよびSQLファイルのデフォルトの位置
データ・ポンプは、サーバーベースではなく、クライアントベースであるため、ファイルをダンプするログファイル、およびSQLファイルは、サーバー・ベースのディレクトリ・パスからの相対アクセスされます。データ・ポンプは、ディレクトリ・パスは、ディレクトリ・オブジェクトとして指定されている必要があります。ディレクトリ・オブジェクトは、ファイル・システム上のディレクトリ・パスに名前をマップします。DBAは、承認されたユーザーのみが、ディレクトリパスに関連付けられたディレクトリオブジェクトへのアクセスを許可されていることを確認する必要があります。
次の例では、という名前のディレクトリ・オブジェクトを作成、SQL文を示す dpump_dir1
にあるディレクトリにマップされています /usr/apps/datafiles.
SQL> 'はは/ usr /アプリケーション/データファイル' などのディレクトリdpump_dir1にを作成します。
ディレクトリオブジェクトが必要とされる理由は、データのセキュリティと整合性を確保することです。例えば:
-
入力ファイルのディレクトリ・パスの位置を指定することが許された場合は、サーバーがアクセスするデータを読み取ることができるかもしれませんが、そのために、あなたはいけません。
-
あなたは、出力ファイルのディレクトリパスの場所を指定することが許された場合、サーバーは正常に削除権限を持たないファイルが上書きされることがあります。
UNIXおよびWindowsオペレーティングシステムでは、デフォルトのディレクトリ・オブジェクトには、 DATA_PUMP_DIR
データベースの作成時に作成されるか、データベース・ディクショナリがアップグレードされるたびに。デフォルトでは、特権ユーザーのみが利用可能です。(ユーザーが SYSTEM
読んでいるとへのアクセス書き込み DATA_PUMP_DIR
デフォルトでは、ディレクトリを。)
あなたが特権ユーザでない場合は、データ・ポンプ・エクスポートまたはデータ・ポンプ・インポートを実行する前に、そして、ディレクトリオブジェクトは、データベース管理者(DBA)によって、またはを持つ任意のユーザーによって作成されなければならない CREATE
ANY
DIRECTORY
特権。
ディレクトリが作成された後、ディレクトリ・オブジェクトを作成するユーザーは、付与する必要があり READ
、または WRITE
他のユーザーにディレクトリのパーミッション。たとえば、Oracleデータベースがユーザーに代わってファイルを読み書きできるようにする hr
ことにより、指定したディレクトリに dpump_dir1
DBAは、次のコマンドを実行しなければなりません:
SQL> GRANT READは、時間のディレクトリdpump_dir1に上の書き込み。
その注意 READ
または WRITE
ディレクトリオブジェクトへのアクセス権をのみ、Oracleデータベースがあなたに代わって対応するディレクトリ内のファイルを読み書きできることを意味します。あなたは適切なオペレーティング・システム権限がないかぎり、Oracleデータベースの外部にあるファイルへの直接アクセスを与えられていません。同様に、Oracleデータベースは、ディレクトリ内のファイルを読み書きするために、オペレーティング・システムからの許可が必要です。
データ・ポンプ・エクスポートおよびインポートは、ファイルの場所を決定するために、次の優先順位を使用します。
-
ディレクトリ・オブジェクトがファイル指定の一部として指定されている場合は、そのディレクトリ・オブジェクトで指定された場所が使用されています。(ディレクトリ・オブジェクトは、コロンで、ファイル名から分離されなければなりません。)
-
ディレクトリ・オブジェクトがファイル指定の一部として指定されていない場合は、で指定されたディレクトリ・オブジェクト
DIRECTORY
パラメータが使用されています。 -
ディレクトリ・オブジェクトがファイル指定の一部として指定されていない場合は何のディレクトリ・オブジェクトがで命名されていない場合、および
DIRECTORY
パラメータは、環境変数の値は、DATA_PUMP_DIR
使用されます。この環境変数は、データ・ポンプ・エクスポートおよびインポート・ユーティリティを実行しているクライアントシステム上のオペレーティング・システム・コマンドを使用して定義されます。このクライアント・ベースの環境変数に割り当てられた値は、最初のDBAがサーバー・システム上に作成する必要があり、サーバーベースのディレクトリ・オブジェクトの名前でなければなりません。たとえば、次のSQL文は、サーバシステム上のディレクトリ・オブジェクトを作成します。ディレクトリ・オブジェクトの名前がありDUMP_FILES1
、それは次の場所にあります'/usr/apps/dumpfiles1'
。SQL> 'はは/ usr /アプリケーション/ dumpfiles1' などのディレクトリDUMP_FILES1を作成します。
次に、使用してUNIXベースのクライアントシステム上のユーザーは、
csh
値を割り当てることができDUMP_FILES1
、環境変数にDATA_PUMP_DIR
。DIRECTORY
パラメータは、コマンドラインから省略することができます。ダンプ・ファイルemployees.dmp
、およびログファイルはexport.log
、に書き込まれます'/usr/apps/dumpfiles1'
。%のsetenv DATA_PUMP_DIR DUMP_FILES1 %EXPDP時間のTABLES =従業員DUMPFILE = employees.dmpは
-
前述の3つの条件では、ディレクトリ・オブジェクトを生成していないし、あなたが特権ユーザーである場合、データ・ポンプは、デフォルトのサーバー・ベースのディレクトリ・オブジェクトの値を使用しようと
DATA_PUMP_DIR
。このディレクトリオブジェクトは、自動的にデータベースの作成時に作成されるか、データベース・ディクショナリがアップグレードされたとき。あなたはのためのパス定義を参照するには、以下のSQLクエリを使用することができますDATA_PUMP_DIR
:SQL> SELECT directory_nameは、DIRECTORY_PATH DBA_DIRECTORIES FROM 2でdirectory_name = 'DATA_PUMP_DIR';
あなたが特権ユーザでない場合は、アクセス
DATA_PUMP_DIR
するディレクトリ・オブジェクトは、DBAによって事前に付与されている必要があります。デフォルト混同しないでください
DATA_PUMP_DIR
同じ名前のクライアント・ベースの環境変数でディレクトリオブジェクトを。
dump_dirユーザーディレクトリを操作する権限を付与されました
(表のインポート、エクスポート、および全体のリザーバに応じて、ユーザモードに応じて導入することができるインポートデータにIMPDPコマンドを使用して、(ユーザモード、エクスポート、および表スペースに応じて誘導される全ライブラリに係る由来導出表のように)に従って、表領域を導入エクスポートデータにEXPDPコマンドを使用し)。
コマンドラインポンプ技術インポートおよびエクスポートデータベースの実施形態に基づいたデータ。
A20のためのSQL>コルDIRECTORY_NAME
A60のためのSQL>コルDIRECTOR_PATH
A8のためのSQL>コルOWNER
トムとテストユーザー認可を作成します
SCOTTユーザーの下で輸出DEPTとEMP表
[オラクル@ dbサーバー〜] $のEXPDPスコット/ oracleディレクトリ= dump_dirダンプファイル= scotttab.dmpテーブル= EMP、DEPT
アクセスへのSCOTTユーザーは、SCOTTユーザーにEMP表を削除します
インポートemp表
[オラクル@ dbサーバー〜] $のimpdpのスコット/ oracleディレクトリ= dump_dirダンプファイル= scotttab.dmpテーブル= EMP
emp表は、成功したインポートされています。
SCOTTユーザーにDEPT表を導入し、EMP表のタムユーザーにエクスポート
[オラクル@ dbサーバー〜] $ impdpのシステム/ oracle11gディレクトリ= dump_dirダンプファイル= scotttab.dmptables = SCOTT.EMP、SCOTT.DEPT REMAP_SCHEMA = SCOTT:TOM
インポートの結果、トムを使用して、ユーザーの接続を参照してください。
エクスポートテーブルスペース
テーブル用のAA表スペースのテーブルxxを作成して、レコードを挿入
エクスポートテーブルスペース
XXのデータファイルを削除すると同時に、テーブル・スペースを削除
AAテーブルがありません。
インポートテーブルスペース
表スペースをインポートする前に、表スペースxxを作成する必要があります
インポート表スペースXX
検証、AAテーブル回復バック。
ライブラリ全体をエクスポート
[オラクル@ dbserverorcl] $ EXPDPシステム/ oracle11gディレクトリ= dump_dirダンプファイル= full.dmpフル= Y
完全なインポートライブラリ
[オラクル@ dbserverorcl] $ impdpのシステム/ oracle11gディレクトリ= dump_dirダンプファイル= full.dmpフル= Y