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?

RUの異なるPDBクローンを試す

Posted at

はじめに

Oracle Database は21cからCDB(コンテナタイプ)のアーキテクチャのみを提供する事となりました。このアーキテクチャにおいて向上しているものにクローンを代表する高い可搬性が挙げられます。マニュアルには、クローンの前提条件の1つとして「同じリリース」である事が記載されている反面、アップグレードのマニュアルには「リプレイ・アップグレードを使用したCDBまたはPDBのアップグレード」にもあるとおり、以前のリリースのPDBを新しいリリースのCDBに接続するアップグレードの方式が記載されています。
今回はRUが異なるケースでPDBクローンを実施してみます。

環境について

今回の環境はOracle Database 19c Version 19.3 および19.26で実施しています。

Q15-01.png

実装の手順および実行

A) PDB 19.3環境構築 - ORCL1903 : PDB1903A (クローン元PDB)
PDB 19.3環境構築と確認 (クローン元ノード Node1で)

SELECT patch_id, patch_type, action, description FROM dba_registry_sqlpatch; 

PATCH_ID PATCH_TYPE ACTION          DESCRIPTION
-------- ---------- --------------- ----------------------------------------------------
29517242 RU         APPLY           Database Release Update : 19.3.0.0.190416 (29517242)

SQL>show pdbs
   CON_ID CON_NAME                        OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDB1903A                       READ WRITE NO

B) CDB 19.26 (クローン先 CDB) 環境構築と確認
CDB 19.26環境構築と確認 (クローン先ノード Node2で)

SELECT patch_id, patch_type, action, description FROM dba_registry_sqlpatch;

PATCH_ID PATCH_TYPE ACTION          DESCRIPTION
-------- ---------- --------------- ----------------------------------------------------
29517242 RU         APPLY           Database Release Update : 19.26.0.0.250121 (37260974)

SQL>show pdbs
CON_ID CON_NAME                         OPEN MODE  RESTRICTED
-------- ------------------------------ ---------- ----------
       2 PDB$SEED                       READ ONLY  NO

C) ユーザとDatabase Link 作成

  • Node1に Create Pluggable Database 権限を持つユーザ PDBSYSを作成
create user PDBSYS default tablespace "USERS" TEMPORARY TABLESPACE "TEMP";
grant connect,resource to PDBSYS;
grant create pluggable database to PDBSYS;
alter user PDBSYS identified by oracle;
  • Node2 に Node1(クローン元PDB)への接続が可能な Database Link (DL1903)を作成
CREATE DATABASE LINK DL1903A
CONNECT TO PDBSYS IDENTIFIED BY oracle
USING 'PDB1903A'; 

※ ここでの"PDB1903A"はtnsnames.oraに設定された接続文字列を示す

D) クローンの作成とステータス(violations)を確認
datafile directoryの確認
/u01/app/oracle/oradata/ORCL1903/pdb1903a/ ⇦ クローン元のデータファイル位置
/u01/app/oracle/oradata/ORCL19C/datafile/PDB1903A を作成する

CREATE PLUGGABLE DATABASE "pdb1903a" FROM "pdb1903a"@"DL1903A"
STORAGE UNLIMITED TEMPFILE REUSE
FILE_NAME_CONVERT=('/u01/app/oracle/oradata/ORCL1903/pdb1903a/','/u01/app/oracle/oradata/ORCL19C/datafile/PDB1903A/');

プラガブル・データベースが作成されました。
経過: 00:00:08.27

SQL>show pdbs
CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED                       READ ONLY  NO
3 PDB1903A                       MOUNTED
SQL> alter pluggable database PDB1903A open;
警告: PDBが変更されましたが、エラーがあります。
経過: 00:00:05.85
 
    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED                       READ ONLY  NO
3 PDB1903A                       READ WRITE YES

select* from PDB_PLUG_IN_VIOLATIONS where type = 'ERROR';
---
5-04-04 08:44:10.265131
PDB1903A
SQL Patch                                                        ERROR                0          1
'19.26.0.0.0 Release_Update 2501181248' is installed in the CDB but '19.3.0.0.0 Release_Update 1904101227' is installed in the P
DB
PENDING
Call datapatch to install in the PDB or the CDB

datapatch の適用を指摘されている

E) datapatch の適用工程へ

  • datapatch の詳細なチェックを実施する
[oracle@node2 OPatch]$  ./datapatch -sanity_checks
Wide character in print at /u01/app/oracle/product/19.0.0/dbhome_1/sqlpatch/sqlpatch_sanity_checks.pm line 473.
SQL Patching sanity checks version 19.26.0.0.0 on 2025年04月04日 08時56分50秒
Wide character in print at /u01/app/oracle/product/19.0.0/dbhome_1/sqlpatch/sqlpatch_sanity_checks.pm line 482.
Wide character in print at /u01/app/oracle/product/19.0.0/dbhome_1/sqlpatch/sqlpatch_sanity_checks.pm line 490.
Copyright (c) 2021, 2025, Oracle.  All rights reserved.

... 一部割愛

Check: PDB Violations - WARNING
  Before patching, there should not be any unresolved PDB plugin violations.
  The listed PDB plugin violations were found
  Fix the reported PDB plugin violations, for known scenarios refer to MOS Note 2288129.1.

... 

  PDB1903A:
    |   CAUSE   |                                                              MESSAGE                                                               |   NAME   | STATUS  | TYPE  |
    |-----------+------------------------------------------------------------------------------------------------------------------------------------+----------+---------+-------|
    | SQL Patch | '19.26.0.0.0 Release_Update 2501181248' is installed in the CDB but '19.3.0.0.0 Release_Update 1904101227' is installed in the PDB | PDB1903A | PENDING | ERROR |
    |-----------+------------------------------------------------------------------------------------------------------------------------------------+----------+---------+-------|
Check: Invalid System Objects - WARNING
  There should be no INVALID objects in Oracle-maintained schemas before patching.
  The following number of objects are INVALID (per container).
  Run '?/rdbms/admin/utlrp.sql' (per container) to try recompiling invalid objects.
  PDB1903A:
    | OBJECT_COUNT |
    |--------------|
    |      98      |
    |--------------|
Check: Tablespace Status - OK
Check: Backup jobs - OK
Check: Temp file exists - OK
Check: Temp file online - OK
Check: Data Pump running - OK
Check: Container status - OK
...
SQL Patching sanity checks completed on 2025年04月04日 08時57分31秒
Wide character in print at /u01/app/oracle/product/19.0.0/dbhome_1/sqlpatch/sqlpatch_sanity_checks.pm line 482.
Wide character in print at /u01/app/oracle/product/19.0.0/dbhome_1/sqlpatch/sqlpatch_sanity_checks.pm line 490.
  • datapatch の適用実施
SQL> alter pluggable database PDB1903A close immediate;
 
??: 00:00:00.58
SQL> show pdbs
 
    CON_ID CON_NAME                          OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
 2 PDB$SEED                          READ ONLY  NO
 3 PDB1903A                          MOUNTED

SQL> alter pluggable database PDB1903A open upgrade;
 
??: 00:00:00.80
SQL> show pdbs
 
    CON_ID CON_NAME                          OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
 2 PDB$SEED                          READ ONLY  NO
 3 PDB1903A                          MIGRATE    YES
  
[oracle@node2 OPatch]$ ./datapatch -pdbs PDB1903A -verbose

直ぐに適用が完了するので確認する

[oracle@ptvm19 OPatch]$ opatch lspatches
37260974;Database Release Update : 19.26.0.0.250121 (37260974)
29585399;OCW RELEASE UPDATE 19.3.0.0.0 (29585399)
OPatch succeeded

datapatch の適用されたPDBを通常どおり起動する

SQL> alter pluggable database PDB1903A close immediate;
SQL> alter pluggable database PDB1903A open upgrade;
SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  YES
         3 PDB1903A                       READ WRITE NO

<参考資料>
Pluggable Databases Opened in Restricted Mode After PSU Patching (Doc ID 2225006.1)
Datapatch slow/stuck at "Gathering database info" and "Installing Patches" without returning OS prompt / Status (Doc ID 2978448.1)
Datapatch 実行後に PDB プラグインまたはクローン DB が PDB_PLUG_IN_VIOLATION で違反を返す (Doc ID 1931071.1)
マルチテナントでの Unplug/Plug のベストプラクティス (Doc ID 1943745.1)

最後に

CDB構成になり、PDBの統合・集約が進むとPDB単位での運用において、今までと違った操作や監視・管理が必要になるケースがあります。今回のようなケースもその1つかも知れません。最新のRUで稼働しているCDBに統合・集約される、少し世代が古いPDBを移行するケースです。21cからはOpenと同時に自動でアップグレードされる設定がデフォルトになりましたが、VIOLATION のチェックなどについては参考になると思われます。

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?