반응형

사전 상태 확인

[oracle@ol7 ~]$ id
uid=54321(oracle) gid=54322(dba) groups=54322(dba) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[oracle@ol7 ~]$ env | grep SID
ORACLE_SID=TST
[oracle@ol7 ~]$
[oracle@ol7 ~]$ ps -ef | grep pmon
oracle    2648     1  0 10:27 ?        00:00:00 ora_pmon_CDBTST
oracle    3044     1  0 10:27 ?        00:00:00 ora_pmon_TST
oracle    3530  2589  0 10:29 pts/0    00:00:00 grep --color=auto pmon
[oracle@ol7 ~]$
[oracle@ol7 ~]$ sqlplus "/as sysdba"

SQL*Plus: Release 19.0.0.0.0 - Production on Wed Oct 5 09:38:22 2022
Version 19.16.0.0.0

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


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.16.0.0.0

SQL> set linesize 150
SQL> col name for a20
SQL> SELECT dbid, name, db_unique_name, created, log_mode, open_mode, cdb, con_id FROM v$database;

      DBID NAME      DB_UNIQUE_NAME                 CREATED   LOG_MODE     OPEN_MODE            CDB     CON_ID
---------- --------- ------------------------------ --------- ------------ -------------------- --- ----------
2257768950 TST       TST                            28-SEP-22 ARCHIVELOG   READ WRITE           NO           0

SQL>
SQL> select con_id, name, open_mode, dbid, con_uid, guid from v$containers;

    CON_ID NAME                 OPEN_MODE        DBID    CON_UID GUID
---------- -------------------- ---------- ---------- ---------- --------------------------------
         0 TST                  READ WRITE 2257768950          0 E9E0BFB3A630405FE0536538A8C0FB1E

SQL>
SQL> select CON_ID, DBID, GUID, NAME, OPEN_MODE from v$pdbs;

no rows selected

SQL>
SQL> set linesize 150
SQL> col file_name for a50
SQL> select TABLESPACE_NAME, FILE_NAME from dba_data_files;

TABLESPACE_NAME                FILE_NAME
------------------------------ --------------------------------------------------
SYSTEM                         /oradata/system/sytem01.dbf
SYSAUX                         /oradata/system/sysaux01.dbf
UNDOTBS1                       /oradata/system/unotodb01.dbf
USERS                          /oradata/system/user01.dbf
TS_DATA                        /oradata/data/ts_data_01.dbf
TS_IDX                         /oradata/idx/ts_indx_01.dbf

6 rows selected.

SQL>
SQL> select TABLESPACE_NAME, FILE_NAME from dba_temp_files;

TABLESPACE_NAME                FILE_NAME
------------------------------ --------------------------------------------------
TEMP                           /oradata/temp/temp01.dbf

SQL>
SQL> exit
Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.16.0.0.0
[oracle@ol7 ~]$
[oracle@ol7 ~]$ export ORACLE_SID=CDBTST
[oracle@ol7 ~]$ export ORACLE_UNQNAME=CDBTST
[oracle@ol7 ~]$
[oracle@ol7 ~]$ env | grep ORACLE_SID
ORACLE_SID=CDBTST
[oracle@ol7 ~]$ env | grep ORACLE_UNQNAME
ORACLE_UNQNAME=CDBTST
[oracle@ol7 ~]$
[oracle@ol7 ~]$ sqlplus "/as sysdba"

SQL*Plus: Release 19.0.0.0.0 - Production on Thu Oct 6 11:21:57 2022
Version 19.16.0.0.0

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


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.16.0.0.0

SQL>
SQL> show con_id

CON_ID
------------------------------
1
SQL>
SQL> show con_name

CON_NAME
------------------------------
CDB$ROOT
SQL>
SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
SQL>
SQL> set linesize 150
SQL> col name for a20
SQL> SELECT dbid, name, db_unique_name, created, log_mode, open_mode, cdb, con_id FROM v$database;

      DBID NAME                 DB_UNIQUE_NAME                 CREATED   LOG_MODE     OPEN_MODE            CDB     CON_ID
---------- -------------------- ------------------------------ --------- ------------ -------------------- --- ----------
1215054330 CDBTST               CDBTST                         06-OCT-22 NOARCHIVELOG READ WRITE           YES          0

SQL> select CON_ID, DBID, GUID, NAME, OPEN_MODE from v$pdbs;

    CON_ID       DBID GUID                             NAME                 OPEN_MODE
---------- ---------- -------------------------------- -------------------- ----------
         2 3663278307 EA535EAA92860935E0536538A8C09DEC PDB$SEED             READ ONLY

SQL>
SQL> col file_name for a50
SQL> select TABLESPACE_NAME, FILE_NAME from dba_data_files;

TABLESPACE_NAME                FILE_NAME
------------------------------ --------------------------------------------------
SYSTEM                         /oracdbtst/CDBTST/system01.dbf
SYSAUX                         /oracdbtst/CDBTST/sysaux01.dbf
UNDOTBS1                       /oracdbtst/CDBTST/undotbs01.dbf
USERS                          /oracdbtst/CDBTST/users01.dbf

SQL> select TABLESPACE_NAME, FILE_NAME from dba_temp_files;

TABLESPACE_NAME                FILE_NAME
------------------------------ --------------------------------------------------
TEMP                           /oracdbtst/CDBTST/temp01.dbf

SQL>
SQL> exit
Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.16.0.0.0
[oracle@ol7 ~]$

non-CDB를 PDB로 변환 하기

[oracle@ol7 DATASYNCXML]$ pwd
/home/oracle/DATASYNCXML
[oracle@ol7 DATASYNCXML]$ ls
[oracle@ol7 DATASYNCXML]$
[oracle@ol7 DATASYNCXML]$ env | grep SID
ORACLE_SID=TST
[oracle@ol7 DATASYNCXML]$
[oracle@ol7 DATASYNCXML]$ sqlplus "/as sysdba"

SQL*Plus: Release 19.0.0.0.0 - Production on Wed Oct 5 09:41:54 2022
Version 19.16.0.0.0

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


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.16.0.0.0

SQL>
SQL>
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> --Read Only로 Open
SQL> STARTUP OPEN READ ONLY;
ORACLE instance started.

Total System Global Area 1660940992 bytes
Fixed Size                  8897216 bytes
Variable Size            1090519040 bytes
Database Buffers          553648128 bytes
Redo Buffers                7876608 bytes
Database mounted.
Database opened.
SQL>
SQL> BEGIN
  2  DBMS_PDB.DESCRIBE(
  3  pdb_descr_file => '/home/oracle/DATASYNCXML/tst.xml');
  4  end;
  5  /

PL/SQL procedure successfully completed.

SQL> !pwd
/home/oracle/DATASYNCXML

SQL> !ls
tst.xml
SQL> exit
Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.16.0.0.0
[oracle@ol7 DATASYNCXML]$ exit
logout
[root@ol7 /]# id
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[root@ol7 /]# pwd
/
[root@ol7 /]# mkdir -p /orapdbtst/system /orapdbtst/temp /orapdbtst/data /orapdbtst/idx
[root@ol7 /]# chown -R oracle:dba /orapdbtst
[root@ol7 /]#
[root@ol7 /]# su - oracle
Last login: Wed Oct  5 09:33:30 KST 2022 on pts/0
[oracle@ol7 ~]$ cd DATASYNCXML/
[oracle@ol7 DATASYNCXML]$
[oracle@ol7 DATASYNCXML]$ id
uid=54321(oracle) gid=54322(dba) groups=54322(dba) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[oracle@ol7 DATASYNCXML]$ pwd
/home/oracle/DATASYNCXML
[oracle@ol7 DATASYNCXML]$ sqlplus "/as sysdba"

SQL*Plus: Release 19.0.0.0.0 - Production on Wed Oct 5 11:02:13 2022
Version 19.16.0.0.0

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


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.16.0.0.0

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> exit
Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.16.0.0.0
[oracle@ol7 DATASYNCXML]$
[oracle@ol7 DATASYNCXML]$ export ORACLE_SID=CDBTST
[oracle@ol7 DATASYNCXML]$ export ORACLE_UNQNAME=CDBTST
[oracle@ol7 DATASYNCXML]$
[oracle@ol7 DATASYNCXML]$ env | grep ORACLE_SID
ORACLE_SID=CDBTST
[oracle@ol7 DATASYNCXML]$ env | grep ORACLE_UNQNAME
ORACLE_UNQNAME=CDBTST
[oracle@ol7 DATASYNCXML]$
[oracle@ol7 DATASYNCXML]$ sqlplus "/as sysdba"

SQL*Plus: Release 19.0.0.0.0 - Production on Thu Oct 6 11:28:04 2022
Version 19.16.0.0.0

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


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.16.0.0.0

SQL> SET SERVEROUTPUT ON;
SQL> DECLARE
  2  compatible CONSTANT VARCHAR2(3) := CASE DBMS_PDB.CHECK_PLUG_COMPATIBILITY(pdb_descr_file => '/home/oracle/DATASYNCXML/tst.xml')
  3  WHEN TRUE THEN 'YES'
  4  ELSE 'NO'
  5  END;
  6  BEGIN
  7  DBMS_OUTPUT.PUT_LINE(compatible);
  8  END;
  9  /
YES

PL/SQL procedure successfully completed.

SQL>
SQL> col cause for a20
SQL> col name for a20
SQL> col message for a35 word_wrapped
SQL> set linesize 150
SQL> select name,cause,type,message,status from PDB_PLUG_IN_VIOLATIONS where name='TST';

NAME                 CAUSE                TYPE      MESSAGE                             STATUS
-------------------- -------------------- --------- ----------------------------------- ---------
TST                  Non-CDB to PDB       WARNING   PDB plugged in is a non-CDB,        PENDING
                                                    requires noncdb_to_pdb.sql be run.

TST                  Parameter            WARNING   CDB parameter processes mismatch:   PENDING
                                                    Previous 150 Current 300


SQL>
SQL> CREATE PLUGGABLE DATABASE PDBTST USING '/home/oracle/DATASYNCXML/tst.xml'
  2  COPY
  3  FILE_NAME_CONVERT = ('/oradata/system/','/orapdbtst/system/',
  4  '/oradata/data/','/orapdbtst/data/',
  5  '/oradata/idx/','/orapdbtst/idx/',
  6  '/oradata/temp/','/orapdbtst/temp/');

Pluggable database created.

SQL>
SQL> show con_name

CON_NAME
------------------------------
CDB$ROOT
SQL>
SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDBTST                         MOUNTED
SQL>
SQL> ALTER SESSION SET CONTAINER=PDBTST;

Session altered.

SQL> show con_name

CON_NAME
------------------------------
PDBTST
SQL>
SQL> @$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql
SQL> SET FEEDBACK 1
~~~~~
PL/SQL procedure successfully completed.

SQL> alter PLUGGABLE database PDBTST close;

Pluggable database altered.

SQL>
SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         3 PDBTST                         MOUNTED
SQL>
SQL>
SQL> ALTER PLUGGABLE DATABASE OPEN;

Pluggable database altered.

SQL>
SQL>
SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         3 PDBTST                         READ WRITE NO
SQL>
SQL> col name for a20
SQL> SELECT name, open_mode FROM v$pdbs;

NAME                 OPEN_MODE
-------------------- ----------
PDBTST               READ WRITE

1 row selected.

SQL> exit
Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.16.0.0.0
[oracle@ol7 ~]$

PDB 전환 확인

[oracle@ol7 ~]$ id
uid=54321(oracle) gid=54322(dba) groups=54322(dba) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[oracle@ol7 ~]$ env | grep SID
ORACLE_SID=CDBTST
[oracle@ol7 ~]$
[oracle@ol7 ~]$ sqlplus "/as sysdba"

SQL*Plus: Release 19.0.0.0.0 - Production on Thu Oct 6 14:02:59 2022
Version 19.16.0.0.0

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


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.16.0.0.0

SQL> show con_name

CON_NAME
------------------------------
CDB$ROOT
SQL>
SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDBTST                         READ WRITE NO
SQL>
SQL> select USERNAME from dba_users where username='SCOTT';

no rows selected

SQL>
SQL> ALTER SESSION SET CONTAINER=PDBTST;

Session altered.

SQL> show con_name

CON_NAME
------------------------------
PDBTST
SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         3 PDBTST                         READ WRITE NO
SQL> select USERNAME from dba_users where username='SCOTT';

USERNAME
--------------------------------------------------------------------------------
SCOTT

SQL> exit
Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.16.0.0.0
[oracle@ol7 ~]$

참고문헌

How to Convert Non-CDB to PDB Database on same local host machine in 12c - Testcase (문서 ID 2012448.1)
반응형

+ Recent posts