データベース
 Computer >> コンピューター >  >> プログラミング >> データベース

Oracle Database 12cでのDataPump拡張機能の操作:パート2

TriCoreが最初に公開したもの:2017年6月6日

Oracle®DataPump(expdp、impdp)は、データベース内およびデータベース間でデータベースオブジェクトをエクスポートおよびインポートするためのユーティリティです。この2部構成のブログ投稿シリーズのパート1では、OracleDatabase 12cでのマルチテナントアーキテクチャの導入と、DataPumpを使用してデータをエクスポートおよびインポートする方法について説明しました。パート2のカバーショーでは、プラグ可能なデータベース(PDB)と、DataPumpがPDBに課す制限のみをエクスポートします。

PDBのエクスポートを取得する

コンテナデータベース(CDB)の場合、実際のデータは基盤となるPDBに属し、各PDBはクライアントには非CDB(標準のOracleデータベース)として表示されます。したがって、PDBからオブジェクトをエクスポートすることは理にかなっています。

Oracle Database 12cでのDataPump拡張機能の操作:パート2

画像ソース:データポンプアーキテクチャ

PDBにDataPumpエクスポートを使用することは、非CDBデータベースにDataPumpエクスポートを使用することと同じです。 PDBにDataPumpエクスポートユーティリティを使用する場合の唯一の違いは、エクスポートを開始するときに、エクスポートコマンドプロンプトで接続識別子またはTransparent NetworkSubstrate(TNS)エイリアスを使用する必要があることです。この手順により、特定のPDBのDataPumpエクスポートを確実に開始できます。

たとえば、ユーザーABBASをエクスポートできます。 PRODPDB1という名前のPDBに属する 次のコマンドを使用します:

  [oracle@labserver ~]$ expdp directory=DP_PDB1 dumpfile=pdb1_abbas.dmp logfile=pdb1_abbas.log schemas=abbas

次のコードブロックは、このコマンドの出力を示しています。

Export: Release 12.1.0.1.0 - Production on Fri Mar 27 00:08:09 2015

Copyright (c) 1982, 2013, Oracle and/or its affiliates.  All rights reserved.

Username: sys@prodpdb1 as sysdba
Password:

Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Advanced Analytics
and Real Application Testing options
Starting "SYS"."SYS_EXPORT_SCHEMA_01":  sys/********@prodpdb1 AS SYSDBA directory=DP_PDB1 dumpfile=pdb1_abbas.dmp logfile=pdb1_abbas.log schemas=abbas
Estimate in progress using BLOCKS method...
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 64 KB
Processing object type SCHEMA_EXPORT/USER
Processing object type SCHEMA_EXPORT/SYSTEM_GRANT
Processing object type SCHEMA_EXPORT/ROLE_GRANT
Processing object type SCHEMA_EXPORT/DEFAULT_ROLE
Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
Processing object type SCHEMA_EXPORT/TABLE/TABLE
Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
Processing object type SCHEMA_EXPORT/STATISTICS/MARKER
. . exported "ABBAS"."TAB1"                              67.85 KB      41 rows
Master table "SYS"."SYS_EXPORT_SCHEMA_01" successfully loaded/unloaded
******************************************************************************
Dump file set for SYS.SYS_EXPORT_SCHEMA_01 is:
  /backup/exp/prodpdb1/pdb1_abbas.dmp
Job "SYS"."SYS_EXPORT_SCHEMA_01" successfully completed at Thu Mar 26 14:39:44 2015 elapsed 0 00:01:08

ユーザー名を渡したコマンドは、PRODPDB1という名前のPDBの接続識別子も指定していることに注意してください。 。

[oracle@labserver ~]$ expdp directory=DP_PDB1 dumpfile=pdb1_abbas.dmp logfile=pdb1_abbas.log schemas=abbas

Export: Release 12.1.0.1.0 - Production on Fri Mar 27 00:08:09 2015

Copyright (c) 1982, 2013, Oracle and/or its affiliates.  All rights reserved.

Username: sys@prodpdb1 as sysdba
Password:

次のコードブロックは、接続識別子(prodpdb1PRODPDB1という名前のPDBに解決されます 。

  [oracle@labserver ~]$ tnsping prodpdb1

  TNS Ping Utility for Linux: Version 12.1.0.1.0 - Production on 27-MAR-2015 00:11:54

  Copyright (c) 1997, 2013, Oracle.  All rights reserved.

  Used parameter files:
  /app/oracle/db/12.1.0.1/network/admin/sqlnet.ora


  Used TNSNAMES adapter to resolve the alias
  Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = labserver.home.com)(PORT = 1525)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = prodpdb1)))
  OK (10 msec)

PDBに対するデータポンプの制限

Data Pumpでは、ルートコンテナまたはCDBが所有するディレクトリをインポートおよびエクスポートに使用できないことに注意してください。また、別のPDBが所有するものを使用することはできません。

代わりに、PDBの下にディレクトリを作成する必要があります。 Data Pumpのエクスポートおよびインポート機能を使用するには、PDBがディレクトリを所有している必要があります。

別のPDBまたはrootcontainerに属するディレクトリを使用しようとすると、コマンドは次のエラーを返します。

  [oracle@labserver ~]$ expdp directory=DP_PDB2 dumpfile=pdb1_abbas.dmp logfile=pdb1_abbas.log schemas=abbas

  Export: Release 12.1.0.1.0 - Production on Fri Mar 27 00:21:08 2015

  Copyright (c) 1982, 2013, Oracle and/or its affiliates.  All rights reserved.

  Username: sys@prodpdb1 as sysdba
  Password:

  Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
  With the Partitioning, Automatic Storage Management, OLAP, Advanced Analytics
  and Real Application Testing options
  ORA-39002: invalid operation
  ORA-39070: Unable to open the log file.
  ORA-39087: directory name DP_PDB2 is invalid

また、defaultdirectory DATA_PUMP_DIRは使用できません。 DataPumpを使用してaPDBをエクスポートまたはインポートします。この制限が存在するのは、DATA_PUMP_DIR 常にルートコンテナによって所有されており、その所有権を変更することはできません。

デフォルトのDATA_PUMP_DIRを作成しようとした場合 PDB内では、コマンドは次のエラーを返します。

  sys@PRODPDB1> show con_name

  CON_NAME
  ------------------------------
  PRODPDB1
  sys@PRODPDB1> create or replace directory DATA_PUMP_DIR as '/backup/exp/prodpdb1';
  create or replace directory DATA_PUMP_DIR as '/backup/exp/prodpdb1'
  *
  ERROR at line 1:
  ORA-65040: operation not allowed from within a pluggable database

そのため、Data Pumpのエクスポートまたはインポートを実行するには、常にPDB用のディレクトリを明示的に作成する必要があります。

結論

Data Pumpユーティリティは、OracleがOracle10gで導入した拡張されたエクスポートおよびインポートツールです。このブログ投稿シリーズのパート1およびパート2で説明されているOracleDatabase12cのexpdp拡張機能を活用すると、このユーティリティを最大限に活用できます。

[フィードバック]タブを使用して、コメントを書き込んだり、質問したりします。

参照

次のドキュメントは、このブログ投稿の参照として使用されました:

  • このリリースでのOracleDatabaseUtilitiesの変更点

  1. OracleDatabaseでの統計の復元

    このブログ投稿では、Oracle®Databaseで統計を復元するタイミングと方法について説明しています。 はじめに データベース管理者(DBA)として、freshstatisticsを収集すると、オプティマイザーが次善の実行プランを実行することにつながることがよくあります。そのような場合は、パフォーマンスが向上した時点から統計を復元することをお勧めします。 ただし、Oracle Databaseのバージョンが異なれば、統計の処理方法に小さな変更があります。 Oracle 10gは、簡単に復元できるように統計の自動保存を開始しました。 11.1以降、Oracleはより優れた方法を導入

  2. Excel でデータベースを作成する方法 (簡単な手順)

    Excel で簡単なデータベースを作成する方法がわかりませんか?この記事では、わずか 7 で Excel でデータベースを作成する方法を紹介します。 簡単な手順 MS Access は、データベースとして使用するには複雑なツールだと思いますか?そのため、Excel はそのための優れたツールです。 テクニックを学びましょう。 次の練習用ワークブックをダウンロードしてください。トピックをより明確に理解するのに役立ちます。 Excel でデータベースを作成するための 8 つのステップ Excel ワークブックを正しく設計すれば、簡単にデータベースとして使用できます。主なポイントは、ワークブ