0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[23c] Oracle Database 10g から 23cにデータ移行できるか

Last updated at Posted at 2023-07-13

確認したこと

Oracle Database 10g から23c へのデータ移行
Datapump Export / Import を使用します。

環境

<移行元>
・Windows 2003
・Oracle Database 10g

<移行先>
・Oracle Linux 8.8
・Oracle Database 23c Free (Developer Release)

注意:2023/7時点で正式な製品版ではないため、正式リリース前の事前検証用になります。

Oracle Database 10gからDatapump Export

移行対象のデータ確認

今回は、Oracle Databaseの有名なサンプルスキーマであるScottを対象に検証します。
検索すると 4 テーブル、2 インデックスありました。
dept表のデータも検索してみます。
これらを移行することとします。


C:\>sqlplus / as sysdba

SQL*Plus: Release 10.2.0.5.0 - Production on 木 7月 13 06:32:40 2023

Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.



Oracle Database 10g Release 10.2.0.5.0 - 64bit Production
に接続されました。
SQL> select object_type,object_name from dba_objects where owner='SCOTT' order by 1,2;

OBJECT_TYPE         OBJECT_NAME
------------------- ------------------------------
INDEX               PK_DEPT
INDEX               PK_EMP
TABLE               BONUS
TABLE               DEPT
TABLE               EMP
TABLE               SALGRADE

6行が選択されました。

SQL> select * from scott.dept;

    DEPTNO DNAME          LOC
---------- -------------- -------------
        10 ACCOUNTING     NEW YORK
        20 RESEARCH       DALLAS
        30 SALES          CHICAGO
        40 OPERATIONS     BOSTON

SQL>
SQL> exit

Export

Oracle Database 10gから、Scottユーザのオブジェクト・データのみ、Exportを行います。
従来型ではなく、DataPumpExportを使用します。


C:\>sqlplus / as sysdba

SQL*Plus: Release 10.2.0.5.0 - Production on 木 7月 13 06:32:40 2023

Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.



Oracle Database 10g Release 10.2.0.5.0 - 64bit Production
に接続されました。

--★ Exportに使用するディレクトリオブジェクトのパスを確認 ★--
SQL> select directory_name,directory_path from dba_directories;

DIRECTORY_NAME
------------------------------
DIRECTORY_PATH
--------------------------------------------------------------------------------
DATA_PUMP_DIR
C:\oracle\product\10.2.0/admin/gpsdb/dpdump/

ORACLE_OCM_CONFIG_DIR
C:\oracle\product\10.2.0\db_1/ccr/state


SQL> exit
Oracle Database 10g Release 10.2.0.5.0 - 64bit Productionとの接続が切断されました。

--★ 確認したディレクトリオブジェクト「data_pump_dir」を使用してExport ★--
C:\>expdp system/password dumpfile=data_pump_dir:10g.dmp logfile=data_pump_dir:10gexp.log schemas=scott

Export: Release 10.2.0.5.0 - 64bit Production on 木曜日, 13 7月, 2023 6:35:56

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

接続先: Oracle Database 10g Release 10.2.0.5.0 - 64bit Production
"SYSTEM"."SYS_EXPORT_SCHEMA_01"を起動しています: system/******** dumpfile=data_pump_dir:10g.dmp logfile=data_pump_dir:10gexp.log schemas=scott
BLOCKSメソッドを使用して見積り中です...
オブジェクト型SCHEMA_EXPORT/TABLE/TABLE_DATAの処理中です
BLOCKSメソッドを使用した見積り合計: 192 KB
オブジェクト型SCHEMA_EXPORT/USERの処理中です
オブジェクト型SCHEMA_EXPORT/SYSTEM_GRANTの処理中です
オブジェクト型SCHEMA_EXPORT/ROLE_GRANTの処理中です
オブジェクト型SCHEMA_EXPORT/DEFAULT_ROLEの処理中です
オブジェクト型SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMAの処理中です
オブジェクト型SCHEMA_EXPORT/TABLE/TABLEの処理中です
オブジェクト型SCHEMA_EXPORT/TABLE/INDEX/INDEXの処理中です
オブジェクト型SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINTの処理中です
オブジェクト型SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINTの処理中です
. . "SCOTT"."DEPT"                              5.656 KB       4行がエクスポートされました
. . "SCOTT"."EMP"                               7.742 KB      12行がエクスポートされました
. . "SCOTT"."SALGRADE"                          5.585 KB       5行がエクスポートされました
. . "SCOTT"."BONUS"                                 0 KB       0行がエクスポートされました
マスター表"SYSTEM"."SYS_EXPORT_SCHEMA_01"は正常にロード/アンロードされました
******************************************************************************
SYSTEM.SYS_EXPORT_SCHEMA_01に設定されたダンプ・ファイルは次のとおりです:
  C:\ORACLE\PRODUCT\10.2.0\ADMIN\GPSDB\DPDUMP\10G.DMP
ジョブ"SYSTEM"."SYS_EXPORT_SCHEMA_01"が06:37:04で正常に完了しました

ExportされたDmpファイルの確認

出力されたDmpファイルを 23c環境にコピーします。
image.png

23c:ディレクトリオブジェクトの確認

ここから23ck環境での作業です。
まずはImportのためにどこのDmpファイルを配置すればよいか、
ディレクトリオブジェクトのパスを確認します。
23cではマルチテナント環境が必須のため、PDB内での確認となります。

[oracle@host01 ~]$ sqlplus / as sysdba

SQL*Plus: Release 23.0.0.0.0 - Developer-Release on 木 7月 13 09:37:59 2023
Version 23.2.0.0.0

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



Oracle Database 23c Free, Release 23.0.0.0.0 - Developer-Release
Version 23.2.0.0.0
に接続されました。
SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 FREEPDB1                       READ WRITE NO
SQL> alter session set container=freepdb1;

セッションが変更されました。

SQL> select directory_name,directory_path from dba_directories;

DIRECTORY_NAME                           DIRECTORY_PATH
---------------------------------------- --------------------------------------------------------------------------------
SDO_DIR_ADMIN                            /opt/oracle/product/23c/dbhomeFree/md/admin
XMLDIR                                   /opt/oracle/product/23c/dbhomeFree/rdbms/xml
XSDDIR                                   /opt/oracle/product/23c/dbhomeFree/rdbms/xml/schema
ORACLE_BASE                              /opt/oracle
ORACLE_HOME                              /opt/oracle/product/23c/dbhomeFree
OPATCH_INST_DIR                          /opt/oracle/product/23c/dbhomeFree/OPatch
DATA_PUMP_DIR                            /opt/oracle/admin/FREE/dpdump/FC950AB002EFA9B3E055020C29FC1158
DBMS_OPTIM_LOGDIR                        /opt/oracle/product/23c/dbhomeFree/cfgtoollogs
DBMS_OPTIM_ADMINDIR                      /opt/oracle/product/23c/dbhomeFree/rdbms/admin
OPATCH_SCRIPT_DIR                        /opt/oracle/product/23c/dbhomeFree/QOpatch
OPATCH_LOG_DIR                           /opt/oracle/product/23c/dbhomeFree/rdbms/log
JAVA$JOX$CUJS$DIRECTORY$                 /opt/oracle/product/23c/dbhomeFree/javavm/admin/

12行が選択されました。

SQL> exit
Oracle Database 23c Free, Release 23.0.0.0.0 - Developer-Release
Version 23.2.0.0.0との接続が切断されました。
[oracle@host01 ~]$

23c:データのインポート

前手順で確認したDATA_PUMP_DIRディレクトリに、10gで取得したDmpファイルを配置します。
その後、impdpコマンドで、「PDB」にImportを行います。

[oracle@host01 ~]$ cd /opt/oracle/admin/FREE/dpdump/FC950AB002EFA9B3E055020C29FC1158
[oracle@host01 FC950AB002EFA9B3E055020C29FC1158]$ ls
10G.DMP  
[oracle@host01 FC950AB002EFA9B3E055020C29FC1158]$ impdp system/oracle@localhost:1521/freepdb1 dumpfile=data_pump_dir:10G.DMP logfile=data_pump_dir:imp.log

Import: Release 23.0.0.0.0 - Developer-Release on 木 7月 13 09:42:34 2023
Version 23.2.0.0.0

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

接続先: Oracle Database 23c Free, Release 23.0.0.0.0 - Developer-Release
マスター表"SYSTEM"."SYS_IMPORT_FULL_01"は正常にロード/アンロードされました
"SYSTEM"."SYS_IMPORT_FULL_01"を起動しています: system/********@localhost:1521/freepdb1 dumpfile=data_pump_dir:10G.DMP logfile=data_pump_dir:imp.log
オブジェクト型SCHEMA_EXPORT/USERの処理中です
オブジェクト型SCHEMA_EXPORT/SYSTEM_GRANTの処理中です
オブジェクト型SCHEMA_EXPORT/ROLE_GRANTの処理中です
オブジェクト型SCHEMA_EXPORT/DEFAULT_ROLEの処理中です
オブジェクト型SCHEMA_EXPORT/TABLE/TABLEの処理中です
オブジェクト型SCHEMA_EXPORT/TABLE/TABLE_DATAの処理中です
. . "SCOTT"."DEPT"                              5.656 KB       4行がインポートされました
. . "SCOTT"."EMP"                               7.742 KB      12行がインポートされました
. . "SCOTT"."SALGRADE"                          5.585 KB       5行がインポートされました
. . "SCOTT"."BONUS"                                 0 KB       0行がインポートされました
オブジェクト型SCHEMA_EXPORT/TABLE/INDEX/INDEXの処理中です
オブジェクト型SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINTの処理中です
オブジェクト型SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINTの処理中です
ジョブ"SYSTEM"."SYS_IMPORT_FULL_01"が木 7月 13 22:42:44 2023 elapsed 0 00:00:06で正常に完了しました

[oracle@host01 FC950AB002EFA9B3E055020C29FC1158]$

23c:データの確認

正しくImportされたことを確認します。
10gと同じテーブル、インデックス、データが確認できました。
10gから23cに無事にデータ移行できました!

[oracle@host01 FC950AB002EFA9B3E055020C29FC1158]$ sqlplus scott/tiger@localhost:1521/freepdb1

SQL*Plus: Release 23.0.0.0.0 - Developer-Release on 木 7月 13 09:45:44 2023
Version 23.2.0.0.0

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

最終正常ログイン時間: 木 7月  13 2023 09:45:02 -04:00


Oracle Database 23c Free, Release 23.0.0.0.0 - Developer-Release
Version 23.2.0.0.0
に接続されました。
SQL> col object_name for a30
SQL> select object_type,object_name from user_objects order by 1,2;

OBJECT_TYPE             OBJECT_NAME
----------------------- ------------------------------
INDEX                   PK_DEPT
INDEX                   PK_EMP
TABLE                   BONUS
TABLE                   DEPT
TABLE                   EMP
TABLE                   SALGRADE

6行が選択されました。

SQL> select * from dept;

    DEPTNO DNAME          LOC
---------- -------------- -------------
        10 ACCOUNTING     NEW YORK
        20 RESEARCH       DALLAS
        30 SALES          CHICAGO
        40 OPERATIONS     BOSTON

SQL>
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?