Orcle 12cの新機能---ほとんど0ダウンタイムの移行PDB

说明1
この新機能は、大幅に別のCDBに1つのマルチテナントコンテナデータベース(CDB)からプラグイン可能なデータベース(PDB)を再配置するクローン機能を活用することで、ダウンタイムを削減します。ソースPDBはまだオープンして実際のクローニング操作が行われている間完全に機能しています。ソースPDBが静止している間にアプリケーションの停止が非常に小さなウィンドウに縮小され、先のPDBは、増分REDOを適用した後にオンラインになります。ソースPDBはその後削除されます。

12.2大幅にダウンタイムを減らす、別のCDB 1つの容器、マルチテナントデータベース(CDB)から移行するクローニング挿入データベース(PDB)を使用して、この新機能機能。実際の操作は、ソースPDBがまだ開いている、全ての機能が利用可能である場合にクローニングが起こります。アプリケーションは、唯一のダウンタイムの短い窓、最後の増分アプリケーションログを持っています。

図1 PDB移行
ここに画像を挿入説明

以下の基準を満たしている必要があり1.1 elocate PDB

  • 現在のユーザーは、PDBが再配置されているにCDBのルートでCREATE DATABASEプラグ接続システム権限を持っている必要があります。

  • 移転前に、PDBが含まれているCDBは、ローカルUNDOモードでなければなりません。 - 必须是地元アンドゥ

  • PDBが再配置されているためにCDBがARCHIVELOGモードでない場合は、PDBは、PDBが再配置されているためにCDBがARCHIVELOGモードになっている場合は、この要件は適用されません。運転中にオープン、読み取り専用モードにする必要があります - 非ファイリングモードは、その後、元のPDBは、読み取り専用モードでのみ開くことがあれば、アーカイブモードにします。

  • 次の前提条件は、データベース・リンクに適用されます。

    • データベース・リンクは、PDBがPDBの現在のCDBに移転されているにCDBからの接続を有効にする必要があります。データベース・リンクは、CDBのルートに接続する必要があります。PDBは、アプリケーションのPDBの場合は、データベース・リンクは、そのアプリケーションのルートに接続する必要があります。

    • データベース・リンクは、PDBの現在のCDBにして接続するユーザーは、CREATE DATABASEプラグ接続システム権限を持っている必要があります。

    • データベース・リンクは、PDBの現在のCDB内で接続するユーザーは、SYSDBAまたはSYSOPERの管理者権限を持っている必要があります。

    • データベース・リンクは、PDBの現在のCDBでCDBのルートに接続している場合は、データベース・リンクがで接続するユーザーは、一般的なユーザーでなければなりません。

  • それが再配置されているためにPDBの現在のCDBとCDBのプラットフォームは、これらの要件を満たす必要があります。

    • 彼らは、同じエンディアンを持つ必要があります。

    • ソース・プラットフォーム上にインストールされたデータベース・オプションは、同じ、またはターゲットプラットフォームにインストールされたデータベース・オプションのサブセットでなければなりません。

  • PDBが再配置されているにCDBの文字セットがAL32UTF8でない場合は、それが再配置されているためにPDBの現在のCDBとCDBは、互換性のある文字セットと各国語キャラクタ・セットを持っている必要があります。互換であるためには、キャラクタ・セットおよび各国語キャラクタ・セットは、Oracle Databaseグローバリゼーション・サポート・ガイドで指定された要件のすべてを満たす必要があります。默认字符集是AL32UTF8

  • あなたがアプリケーションのPDBを作成する場合は、PDBが再配置されているのアプリケーション名とバージョンは、それが再配置された後、アプリケーションのPDBが含まれていますアプリケーションコンテナのアプリケーション名とバージョンと一致する必要があります。

実験2

2.1環境

遠位PDB:192.168.1.55 cndba_pdbは - PDBを再配置であります

SQL> show pdbs;

CON_ID CON_NAME	OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
 2 PDB$SEED	  READ ONLY  NO

 3 PDB1   	MOUNTED

 4 CNDBA_PDB READ WRITE NO

ローカルPDB:192.168.1.110 cndba_pdb_re - 新しいPDBを格納するために使用されます

データベース・リンクを作成するために、2.2先端CDBユーザ

SQL> CREATE USER c##remote_clone_user IDENTIFIED BY remote_clone_user CONTAINER=ALL;

User created.


SQL> GRANT CREATE SESSION, SYSOPER, CREATE PLUGGABLE DATABASE TO c##remote_clone_user CONTAINER=ALL;

Grant succeeded.

2.3チェックリモートモードとアーカイブモードCDB元に戻します

  • モードを元に戻します
COLUMN property_name FORMAT A30
COLUMN property_value FORMAT A30

SELECT property_name, property_value
FROM   database_properties
WHERE  property_name = 'LOCAL_UNDO_ENABLED';

PROPERTY_NAME	       PROPERTY_VALUE
------------------------------ ------------------------------
LOCAL_UNDO_ENABLED	       TRUE
  • アーカイブモード
SQL> archive log list;
Database log mode	       Archive Mode
Automatic archival	       Enabled
Archive destination	       USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     41
Next log sequence to archive   43
Current log sequence	       43

2.4ローカルCDBの設定TNS、遠位CDB監督

tnsnames.oraで以下を追加し、「(SERVER = DEDICATED)」が含まれるようにしてください

CDB55=
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.55)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = zhixin)
    )
  )

- テスト

[oracle@db12CR2 backup]$ tnsping cdb55

TNS Ping Utility for Linux: Version 12.2.0.1.0 - Production on 08-AUG-2017 14:26:51

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

Used parameter files:

Used TNSNAMES adapter to resolve the alias

Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.55)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = zhixin)))

OK (10 msec)

2.5チェックローカルCDBは、モードとアーカイブモードを元に戻します

-undoモード

COLUMN property_name FORMAT A30
COLUMN property_value FORMAT A30

SELECT property_name, property_value
FROM   database_properties
WHERE  property_name = 'LOCAL_UNDO_ENABLED';
PROPERTY_NAME	       PROPERTY_VALUE
------------------------------ ------------------------------
LOCAL_UNDO_ENABLED	      TRUE

- アーカイブモード

SQL> archive log list;
Database log mode	       Archive Mode
Automatic archival	       Enabled
Archive destination	       USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     402
Next log sequence to archive   404
Current log sequence	       404

ローカルCDBで作成された2.6のdblink、遠位CDBを監督

SQL> CREATE PUBLIC DATABASE LINK clone_link
  CONNECT TO c##remote_clone_user IDENTIFIED BY remote_clone_user USING 'cdb55';  2  
Database link created.

- テストするかどうか、通常のデータベース・リンク

SQL> select count(*) from user_tables@clone_link;
  COUNT(*)
----------
 0 --因为该用户下没有表

2.7移動可能PDB

CREATE PLUGGABLE DATABASE cndba_pdb_re FROM cndba_pdb@clone_link
FILE_NAME_CONVERT = ('/u01/app/oracle/oradata/cndba_pdb/','/u01/app/oracle/oradata/orcl/cndba_pdb_re/')
RELOCATE;
Pluggable database created.

あなたはOMFを開始した場合、あなたは赤い部分は必要ありません。

2.8ビューの新しいPDB

MOUNT状態がCNDBA_PDB_REです

SQL> SELECT name, open_mode FROM v$pdbs WHERE name = 'CNDBA_PDB_RE';

NAME	       OPEN_MODE
------------------------------ --------------------
CNDBA_PDB_RE	       MOUNTED

- 現在の状態が移転されます

SQL> col pdb_name for a20
SQL> SELECT pdb_name, status FROM DBA_PDBS  WHERE pdb_name = 'CNDBA_PDB_RE';

PDB_NAME	     STATUS
--------------------   -----------------------
CNDBA_PDB_RE	     RELOCATING

2.9 PDB遠位一部のDML操作

SQL> show pdbs;
    CON_ID CON_NAME	  OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
 2 PDB$SEED	  READ ONLY  NO
 3 PDB1   MOUNTED
 4 CNDBA_PDB	  READ WRITE NO --首先PDB为READ WRITE状态
 
SQL> alter session set container=cndba_pdb;

Session altered.

SQL> conn lei/lei@cndba_pdb

Connected.

- テーブルを作成し、データを挿入

SQL> create table test_relocate as select * from v$version;
Table created.

2.10完全な再配置

新しいPDBを開くと、それが再配置完了を表します。

SQL> alter pluggable database CNDBA_PDB_RE open;
Pluggable database altered.


SQL> SELECT name, open_mode FROM v$pdbs WHERE name = 'CNDBA_PDB_RE';

NAME	       OPEN_MODE
------------------------------ --------------------
CNDBA_PDB_RE	       READ WRITE

2.11かどうかを確認バック上のデータ伝送

SQL> select * from lei.test_relocate;

BANNER
--------------------------------------------------------------------------------
    CON_ID
----------
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
 0
PL/SQL Release 12.2.0.1.0 - Production
 0
CORE	12.2.0.1.0	Production
 0
BANNER
--------------------------------------------------------------------------------
    CON_ID
----------
TNS for Linux: Version 12.2.0.1.0 - Production
 0
NLSRTL Version

問題ありません。

2.12 PDBの遠位端を削除するかどうかを確認します

SQL> show pdbs;

    CON_ID CON_NAME	  OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
 2 PDB$SEED	  READ ONLY  NO
 3 PDB1   	 MOUNTED

あなたはCNDBA_PDBがなくなった、見ることができます。

参考記事:
http://docs.oracle.com/database/122/ADMIN/creating-and-removing-pdbs-with-sql-plus.htm#ADMIN-GUID-F887DBA7-61A6-49FB-8400-40632765F1E1
HTTP: //docs.oracle.com/database/122/NLSPG/choosing-character-set.htm#NLSPG1035
https://oracle-base.com/articles/12c/multitenant-relocate-pdb-12cr2

おすすめ

転載: blog.csdn.net/qianglei6077/article/details/92795746