Database Cloud Service로 PDB를 이동해 보았습니다.
개요
온 프레미스 환경에서 만드는 Oracle Datatabase 12c 환경에서 Database Cloud Service로 플러그 가능 데이터베이스를 이동하여 클라우드에서 동일한 데이터 환경을 재현합니다.
플러그 가능 데이터베이스란?
Oracle Database 12c에는 플러그 가능 데이터베이스 (이후 PDB)라고하는 기능이 있습니다.
이것은 데이터베이스 내에 가상적으로 데이터베이스를 구성하는 기능으로, 이 가상적인 데이터베이스가 PDB입니다.
PDB는 여러 PDB간에 메모리 영역, 프로세스, 제어 파일 등을 공유합니다. 그리고 PDB 단위로 이동(플러그/언플러그)하는 것이 가능합니다.
이동할 플러그 가능 데이터베이스
온-프레미스에 구성된 플러그 가능한 데이터베이스를 검토해 보십시오.
플러그 가능 데이터베이스 목록
SQL> show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDB READ WRITE NO
PDB라는 플러그 가능 데이터베이스가 있습니다.
테이블 목록
PDB에 연결하여 구성된 테이블을 확인해 봅니다.
[oracle@db01 ~]$ sqlplus medrec/medrec@localhost:1521/pdb.jp.oracle.com
select table_name, tablespace_name, status from user_tables;
TABLE_NAME TABLESPACE_NAME STATUS
---------------------- -------------------- --------
ADMINISTRATORS USERS VALID
PATIENTS USERS VALID
PATIENTS_RECORDS USERS VALID
PHYSICIANS USERS VALID
PRESCRIPTIONS USERS VALID
RECORDS USERS VALID
RECORDS_PRESCRIPTIONS USERS VALID
SEQUENCE USERS VALID
8 rows selected.
8개의 테이블이 있습니다.
데이터 파일
이동 대상 PDB의 데이터 파일을 확인해 봅니다.
set lines 120
set pages 100
set term off
clear col
col TABLESPACE_NAME format a10
col FILE_NAME format a35
col STATUS format a10
col MBYTES format 9,999,990
col INCRE format 9,999,990
col AUTOEXTENSIBLE format a5
col ONLINE_STATUS format a6
select
tablespace_name,
file_name,
status,
bytes/1024/1024 mbytes,
increment_by,
autoextensible,
online_status
from
dba_data_files;
TABLESPACE FILE_NAME STATUS MBYTES INCREMENT_BY AUTOE ONLINE
---------- ----------------------------------- ---------- ---------- ------------ ----- ------
SYSTEM /u01/app/oracle/oradata/orcl12c/pdb AVAILABLE 250 1280 YES SYSTEM
/system01.dbf
SYSAUX /u01/app/oracle/oradata/orcl12c/pdb AVAILABLE 570 1280 YES ONLINE
/sysaux01.dbf
USERS /u01/app/oracle/oradata/orcl12c/pdb AVAILABLE 5 160 YES ONLINE
/pdb_users01.dbf
[oracle@db01 pdb]$ ls -l /u01/app/oracle/oradata/orcl12c/pdb
total 844888
-rw-r-----. 1 oracle oinstall 5251072 Nov 7 06:50 pdb_users01.dbf
-rw-r-----. 1 oracle oinstall 597696512 Nov 7 06:50 sysaux01.dbf
-rw-r-----. 1 oracle oinstall 262152192 Nov 7 06:50 system01.dbf
-rw-r-----. 1 oracle oinstall 20979712 Nov 7 05:11 temp012016-11-07_04-38-41-AM.dbf
/u01/app/oracle/oradata/orcl12c/pdb 디렉토리 아래에 데이터 파일이 있습니다.
플러그 가능 데이터베이스 언플러그
플러그 가능한 데이터베이스를 검색하는 것을 언플러그라고 합니다.
플러그를 뽑으면 플러그 가능한 데이터베이스에 대한 정보가 XML 파일로 출력됩니다.
언플러그 구현
다음 SQL에서 플러그 가능 데이터베이스를 언플러그하십시오.
``sql
SQL> alter pluggable database pdb unplug into '/home/oracle/for_cloud/pdb.xml';
Pluggable database altered.
``
지정한 디렉토리에 XML 파일이 출력됩니다.
$ ls -l /home/oracle/for_cloud/pdb.xml
-rw-r--r--. 1 oracle oinstall 4367 Nov 7 06:50 /home/oracle/for_cloud/pdb.xml
Database Cloud Service 인스턴스 만들기
플러그 가능한 데이터베이스를 이동할 Database Cloud Service의 인스턴스를 생성합니다.
SQL> show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDB READ WRITE NO
[oracle@db01 ~]$ sqlplus medrec/medrec@localhost:1521/pdb.jp.oracle.com
select table_name, tablespace_name, status from user_tables;
TABLE_NAME TABLESPACE_NAME STATUS
---------------------- -------------------- --------
ADMINISTRATORS USERS VALID
PATIENTS USERS VALID
PATIENTS_RECORDS USERS VALID
PHYSICIANS USERS VALID
PRESCRIPTIONS USERS VALID
RECORDS USERS VALID
RECORDS_PRESCRIPTIONS USERS VALID
SEQUENCE USERS VALID
8 rows selected.
set lines 120
set pages 100
set term off
clear col
col TABLESPACE_NAME format a10
col FILE_NAME format a35
col STATUS format a10
col MBYTES format 9,999,990
col INCRE format 9,999,990
col AUTOEXTENSIBLE format a5
col ONLINE_STATUS format a6
select
tablespace_name,
file_name,
status,
bytes/1024/1024 mbytes,
increment_by,
autoextensible,
online_status
from
dba_data_files;
TABLESPACE FILE_NAME STATUS MBYTES INCREMENT_BY AUTOE ONLINE
---------- ----------------------------------- ---------- ---------- ------------ ----- ------
SYSTEM /u01/app/oracle/oradata/orcl12c/pdb AVAILABLE 250 1280 YES SYSTEM
/system01.dbf
SYSAUX /u01/app/oracle/oradata/orcl12c/pdb AVAILABLE 570 1280 YES ONLINE
/sysaux01.dbf
USERS /u01/app/oracle/oradata/orcl12c/pdb AVAILABLE 5 160 YES ONLINE
/pdb_users01.dbf
[oracle@db01 pdb]$ ls -l /u01/app/oracle/oradata/orcl12c/pdb
total 844888
-rw-r-----. 1 oracle oinstall 5251072 Nov 7 06:50 pdb_users01.dbf
-rw-r-----. 1 oracle oinstall 597696512 Nov 7 06:50 sysaux01.dbf
-rw-r-----. 1 oracle oinstall 262152192 Nov 7 06:50 system01.dbf
-rw-r-----. 1 oracle oinstall 20979712 Nov 7 05:11 temp012016-11-07_04-38-41-AM.dbf
플러그 가능한 데이터베이스를 검색하는 것을 언플러그라고 합니다.
플러그를 뽑으면 플러그 가능한 데이터베이스에 대한 정보가 XML 파일로 출력됩니다.
언플러그 구현
다음 SQL에서 플러그 가능 데이터베이스를 언플러그하십시오.
``sql
SQL> alter pluggable database pdb unplug into '/home/oracle/for_cloud/pdb.xml';
Pluggable database altered.
``
지정한 디렉토리에 XML 파일이 출력됩니다.
$ ls -l /home/oracle/for_cloud/pdb.xml
-rw-r--r--. 1 oracle oinstall 4367 Nov 7 06:50 /home/oracle/for_cloud/pdb.xml
Database Cloud Service 인스턴스 만들기
플러그 가능한 데이터베이스를 이동할 Database Cloud Service의 인스턴스를 생성합니다.
Database Cloud Service로 이동
온프레미스로 언플러그한 PDB(XML 파일)와 데이터 파일을 Database Cloud Service로 이동합니다.
데이터 파일 배치 대상 준비
Database Cloud Service 환경에 데이터 파일을 배치할 디렉터리를 만듭니다.
$ ls -l /u02/app/oracle/oradata/ORCL
total 2282704
drwxr-x--- 2 oracle oinstall 4096 Nov 7 16:18 changetracking
-rwxr-x--- 1 oracle oinstall 17973248 Nov 7 16:56 control01.ctl
drwxr-x--- 2 oracle oinstall 4096 Nov 7 16:15 PDB1
drwxr-x--- 2 oracle oinstall 4096 Sep 12 16:35 pdbseed
-rwxr-x--- 1 oracle oinstall 702554112 Nov 7 16:52 sysaux01.dbf
-rwxr-x--- 1 oracle oinstall 828383232 Nov 7 16:55 system01.dbf
-rwxr-x--- 1 oracle oinstall 206577664 Nov 7 16:27 temp01.dbf
-rwxr-x--- 1 oracle oinstall 576724992 Nov 7 16:55 undotbs01.dbf
-rwxr-x--- 1 oracle oinstall 5251072 Nov 7 16:35 users01.dbf
/u02/app/oracle/oradata/ORCL에 디렉토리를 작성하십시오.
$ mkdir /u02/app/oracle/oradata/ORCL/pdb_from_onpremise
$ ls -l /u02/app/oracle/oradata/ORCL/
total 2282708
drwxr-x--- 2 oracle oinstall 4096 Nov 7 16:18 changetracking
-rwxr-x--- 1 oracle oinstall 17973248 Nov 7 17:02 control01.ctl
drwxr-x--- 2 oracle oinstall 4096 Nov 7 16:15 PDB1
drwxr-xr-x 2 oracle oinstall 4096 Nov 7 17:02 pdb_from_onpremise
drwxr-x--- 2 oracle oinstall 4096 Sep 12 16:35 pdbseed
-rwxr-x--- 1 oracle oinstall 702554112 Nov 7 17:01 sysaux01.dbf
-rwxr-x--- 1 oracle oinstall 828383232 Nov 7 17:00 system01.dbf
-rwxr-x--- 1 oracle oinstall 206577664 Nov 7 17:01 temp01.dbf
-rwxr-x--- 1 oracle oinstall 576724992 Nov 7 16:59 undotbs01.dbf
-rwxr-x--- 1 oracle oinstall 5251072 Nov 7 16:35 users01.dbf
데이터 파일 이동
데이터 파일을 클라우드에 복사합니다.
$ scp pdb_users01.dbf oracle@<DBCS-IPアドレス>:/u02/app/oracle/oradata/ORCL/pdb_from_onpremise/
$ scp sysaux01.dbf oracle@<DBCS-IPアドレス>:/u02/app/oracle/oradata/ORCL/pdb_from_onpremise/
$ scp system01.db oracle@<DBCS-IPアドレス>:/u02/app/oracle/oradata/ORCL/pdb_from_onpremise/
Unplug PDB XML 파일 이동
언플러그된 PDB XML 파일을 클라우드에 복사합니다.
$ scp pdb.xml oracle@<DBCS-IPアドレス>:/u02/app/oracle/oradata/ORCL/pdb_from_onpremise/
플러그 가능 데이터베이스 플러그
이미 Database Cloud Service에는 플러그 가능한 데이터베이스가 만들어져 있으므로 먼저 삭제한 후 이동한 PDB를 플러그합니다.
Database Cloud Service에서 플러그 가능 데이터베이스 삭제
SQL> alter pluggable database pdb1 close;
Pluggable database altered.
SQL> drop pluggable database pdb1 including datafiles;
Pluggable database dropped.
SQL> show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
언플러그된 PDB의 XML 편집
XML에는 데이터 파일의 위치가 하드 코드되어 있으므로, 이 경우에는/u02/app/oracle/oradata/ORCL/pdb_from_onpremise/에서 경로를 다시 씁니다.
플러그 가능 데이터베이스 플러그
다음 SQL로 언플러그한 PDB를 플러그한다
SQL> create pluggable database pdb1
2 using '/u02/app/oracle/oradata/ORCL/pdb_from_onpremise/pdb.xml'
3 file_name_convert = (
4 '/u02/app/oracle/oradata/ORCL/pdb_from_onpremise/',
5 '/u02/app/oracle/oradata/ORCL/pdb_migrated/'
6 );
Pluggable database created.
확인
SQL> select table_name, tablespace_name, status from user_tables;
TABLE_NAME TABLESPACE_NAME STATUS
--------------------- -------------------- --------
ADMINISTRATORS USERS VALID
PATIENTS USERS VALID
PATIENTS_RECORDS USERS VALID
PHYSICIANS USERS VALID
PRESCRIPTIONS USERS VALID
RECORDS USERS VALID
RECORDS_PRESCRIPTIONS USERS VALID
SEQUENCE USERS VALID
요약
PDB에서의 이동은 구성 파일과 데이터 파일을 대상에 배치하고 인식하는 직관적으로 이해하기 쉬운 작업입니다.
온프레미스에서 클라우드로의 이동도 매우 쉽게 수행할 수 있었습니다.
Reference
이 문제에 관하여(Database Cloud Service로 PDB를 이동해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/shinyay/items/afe77eb6fc09498dfb60
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
SQL> alter pluggable database pdb1 close;
Pluggable database altered.
SQL> drop pluggable database pdb1 including datafiles;
Pluggable database dropped.
SQL> show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
SQL> create pluggable database pdb1
2 using '/u02/app/oracle/oradata/ORCL/pdb_from_onpremise/pdb.xml'
3 file_name_convert = (
4 '/u02/app/oracle/oradata/ORCL/pdb_from_onpremise/',
5 '/u02/app/oracle/oradata/ORCL/pdb_migrated/'
6 );
Pluggable database created.
SQL> select table_name, tablespace_name, status from user_tables;
TABLE_NAME TABLESPACE_NAME STATUS
--------------------- -------------------- --------
ADMINISTRATORS USERS VALID
PATIENTS USERS VALID
PATIENTS_RECORDS USERS VALID
PHYSICIANS USERS VALID
PRESCRIPTIONS USERS VALID
RECORDS USERS VALID
RECORDS_PRESCRIPTIONS USERS VALID
SEQUENCE USERS VALID
PDB에서의 이동은 구성 파일과 데이터 파일을 대상에 배치하고 인식하는 직관적으로 이해하기 쉬운 작업입니다.
온프레미스에서 클라우드로의 이동도 매우 쉽게 수행할 수 있었습니다.
Reference
이 문제에 관하여(Database Cloud Service로 PDB를 이동해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/shinyay/items/afe77eb6fc09498dfb60텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)