OracleDB 7の概要:TTSを使用して非CDB表領域をCDBアーキテクチャに移行する

ソースライブラリ

SQL> select * from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
PL/SQL Release 11.2.0.4.0 - Production
CORE    11.2.0.4.0      Production
TNS for Linux: Version 11.2.0.4.0 - Production
NLSRTL Version 11.2.0.4.0 - Production

宛先ライブラリ

SQL> select * from v$version;

BANNER                                                                               CON_ID
-------------------------------------------------------------------------------- ----------
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production              0
PL/SQL Release 12.1.0.2.0 - Production                                                    0
CORE    12.1.0.2.0      Production                                                                0
TNS for Linux: Version 12.1.0.2.0 - Production                                            0
NLSRTL Version 12.1.0.2.0 - Production                                                    0
SQL> select cdb from v$database;

CDB
---
YES

ステップ

3.1(ソースライブラリ)メタデータのエクスポート

grant read,write on directory FILE_PATH to TEST;
grant exp_full_database to TEST;
alter tablespace TESTDATA read only;
alter tablespace TESTINDEX read only;


expdp TEST/TEST dumpfile=TEST_metadata.dmp directory=FILE_PATH transport_tablespaces= TESTDATA,TESTINDEX logfile=TEST_export.log;

3.2(ターゲットライブラリ)PDB等を作成します。

  • CDBデータベースにPDBを作成します
$sqlplus / as sysdba;
SQL> create pluggable database PDBSYD admin user PDBSYD identified by Passwod123456 roles=(connect) file_name_convert=('/data/T24CDB/T24CDB/pdbseed','/data/T24CDB/T24CDB/PDBSYD');
  • PDBを開く
SQL> alter pluggable database PDBSYD open;
  • PDBセッションに切り替えます
SQL> alter session set container= PDBSYD;
  • PDBのプライベートユーザーを作成する
SQL> create user SYDADMIN identified by SYDADMIN;
  • ディレクトリオブジェクトにSYDADMIN権限を付与します
SQL> grant DBA_PATH to SYDADMIN;
SQL> grant exp_full_database to SYDADMIN;

3.3(ターゲットライブラリ)PDBにリンクされたtns文字列を設定します

私はtnsnames.oraから来ました

PDBSYD =
 (DESCRIPTION =
  (ADDRESS = (PROTOCOL = TCP)(HOST = 99.13.213.50)(PORT = 1521))
     (CONNECT_DATA =
       (SERVER = DEDICATED)
       (SERVICE_NAME = PDBSYD)
   )
)
  • tnspingを使用してリンク文字列をテストします
$ tnsping PDBSYD
  • SYDADMINユーザーがPDBに直接ログインすることをテストします
[oracle@oceansvn01 12chome1]<20190801 16:06:28>$ sqlplus SYDADMIN/SYDADMIN@pdbsyd

SQL*Plus: Release 12.1.0.2.0 Production on Thu Aug 1 16:06:30 2019
Copyright (c) 1982, 2014, Oracle.  All rights reserved.

Last Successful login time: Thu Aug 01 2019 15:57:55 +08:00

Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

SQL> show con_name;

CON_NAME
------------------------------
PDBSYD
SQL>

3.3ソースデータベースのメタデータファイルとテーブルスペースファイルをコピーします

scpやftpなどのツールを使用して、ソースライブラリからエクスポートされたメタデータファイルとテーブルスペースファイルをコピーし、ファイル属性(chown)を正しく設定できます(ここでは省略

3.4(ターゲットライブラリ)PDBに直接インポート

$ impdp SYDADMIN/SYDADMIN@pdbsyd dumpfile=CMBASOC1_metadata_01.dmp directory=DBA_PATH logfile=CMBASOC_import1.log transport_datafiles=/data/T24CDB/T24CDB/PDBSYD/cmbasoc1_index.dbf,/data/T24CDB/T24CDB/PDBSYD/cmbasoc1_data.dbf;

終わり

  • ソースデータベースのテーブルスペースを読み取り/書き込みに設定します
alter tablespace TESTDATA read write;
alter tablespace TESTINDEX read write;

総括する

         CDBアーキテクチャはORACLEの公式機能です。12cより前の非CDBアーキテクチャの公式サポートはますます低くなると考えられます。したがって、非CDBアーキテクチャから高バージョンのCDBアーキテクチャへの本番データベースの移行は、近年のDBAの主要なタスクの1つになります。

     前回のブログでは、DB LINK方式による非CDBデータベースアーキテクチャからCDBアーキテクチャへの直接移行について説明しました移行後の非CDBデータベースPDBなった後、非CDBのSYSTEMを含め、多くの欠点があります。アーキテクチャ/ SYSAUX / USERなどの複数のテーブルスペースファイルは多くのディスク領域を占有し、noncdb_to_pdb.sqlは失敗しやすいと言われています。

     この記事では、非CDBから別の次元からのCDBへの移行について説明します。移行は表スペースに対して正確であるため、時間とスペースが大幅に節約され、DB間のバージョン移行がサポートされます。

おすすめ

転載: blog.csdn.net/zhaogang1993/article/details/98160233