Thứ Bảy, 21 tháng 8, 2021

Chuyển đổi Non-Container Database (CDB) sang Pluggable Database (PDB) trong Oracle Database 12c Release 1 (12.1)

Mục đích:  Chuyển đổi Non-Container Database (CDB) sang Pluggable Database (PDB) trong Oracle Database 12c Release 1 (12.1)/19c, nôi dung bài viết:

  • Nhân bản (clone) Non-CDB từ xa
  • Sử dụng DBMS_PDB
  • Sử dụng Data Pump (expdb, impdp)
  • Sửu dụng đồng bộ  GoldenGate
  • Xem xét Patching 

Nhân bản (clone)  Non-CDB từ xa

Patchset (bộ vá lỗi) 12.1.0.2 đã giới thiệu tính năng tạo PDB dưới dạng nhân bảno (clone) Non-CDB từ xa. Điều này được thảo luận trong một bài riêng biệt ở đây (tìm trong web) .

Sử dụng DBMS_PDB

Gói DBMS_PDB cho phép bạn tạo một file XML metadata từ một cơ sở dữ liệu 12c non-CDB, nó miêu tả cách bạn rút (còn gọi là unplug) một cơ sở dữ liệu PDB. Điều này cho phép non-CDB cắm vào như một PDB trong một CDB hiện có.

Tắt non-CDB và khởi động nó ở chế độ read-only

export ORACLE_SID=db12c
sqlplus / as sysdba

SHUTDOWN IMMEDIATE;
STARTUP OPEN READ ONLY;

Describe non-DBC sử dụng thủ tục DBMS_PDB.DESCRIBE. Thủ tục này tạo 1 XML file mô tả cách rút đối với PDB.

BEGIN
  DBMS_PDB.DESCRIBE(
    pdb_descr_file => '/tmp/db12c.xml');
END;
/

Tắt non-CDB database.

export ORACLE_SID=db12c
sqlplus / as sysdba

SHUTDOWN IMMEDIATE;

Kết nối với một CDB hiện có và tạo một PDB mới bằng cách sử dụng file mô tả cơ sở dữ liệu non-CDB. Hãy nhớ cấu hình tham số FILE_NAME_CONVERT để chuyển đổi các file hiện có sang vị trí mới.

export ORACLE_SID=cdb1
sqlplus / as sysdba

CREATE PLUGGABLE DATABASE pdb6 USING '/tmp/db12c.xml'
  COPY
  FILE_NAME_CONVERT = ('/u01/app/oracle/oradata/db12c/', '/u01/app/oracle/oradata/cdb1/pdb6/');

Chuyển sang PDB container và chạy tập lệnh "$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql" để dọnh dẹp PDB mới:

ALTER SESSION SET CONTAINER=pdb6;

@$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql

Bật PDB và kiểm tra open mode:

ALTER SESSION SET CONTAINER=pdb6;

ALTER PLUGGABLE DATABASE OPEN;

SELECT name, open_mode FROM v$pdbs;

NAME                           OPEN_MODE
------------------------------ ----------
PDB6                           READ WRITE

1 row selected.

SQL>

Non-CDB đã được chuyển sangPDB. Bạn nên backup PDB trước khi bật nên sử dụng.

Sử dụng Data Pump (expdb, impdp)

Một cách đơn giản nữa là export dữ liệu từ non-CDB và import trực tiếp vào PDB mới được tạo. Với điều kiện quá trình import đang kết nối bằng cách sử dụng một dịch vụ trỏ đến PDB có liên quan, điều này không khác với bất kỳ quá trình truyền dữ liệu nào khác bằng cách sử dụng data pump.

Nếu non-CDB phiên bản 11.2.0.3 trở đi, bạn có thể xem xét sử dụng Transport database. Nếu non-CDB trước 11.2.0.3, thì bạn vẫn có thể cân nhắc sử dụng transportable tablespaces.

Sử dụng đồng bộ GoldenGate

Một giải pháp thay thế khác là sử dụng sản phẩm như Golden Gate để đồng bộ dữ liệu từ non-container database sang pluggable database.

Cân nhắc Patching

Nếu các instance của bạn không ở cùng một mức patch, bạn sẽ có thể nhìn thấy các vi phạm PDB trong view PDB_PLUG_IN_VIOLATIONS Nếu đích có patch cao hơn nguồn, chỉ cần chạy tiện ích datapatch trên cá thể đích theo cách bình thường. Nó sẽ xác định công việc chúng ta cần phải làm.

cd $ORACLE_HOME/OPatch
./datapatch -verbose

Nếu đích có patch thấp hơn nguồn, bạn sẽ cần chạy datapatch -rollback , như được mô tả ở đây .

Tham khảo thêm:

Hy vọng hữu ích cho bạn.
=============================
* KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE trực tiếp từ tôi giúp bạn bước đầu trở thành những chuyên gia DBA, đủ kinh nghiệm đi thi chứng chỉ OA/OCP, đặc biệt là rất nhiều kinh nghiệm, bí kíp thực chiến trên các hệ thống Core tại VN chỉ sau 1 khoá học.
* CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
* Chi tiết tham khảo:
https://bit.ly/oaz_w
hoặc
https://bit.ly/oaz_fp
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile: 0902912888
⚡️ Skype: tranbinh48ca
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: http://bit.ly/ytb_binhoraclemaster
👨 Tiktok: https://www.tiktok.com/@binhoraclemaster?lang=vi
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhoracle
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội

=============================
học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,khóa học pl/sql, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle dataguard, oracle goldengate, oracle weblogic, oracle exadata, hoc solaris, hoc linux, hoc aix

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master