Giới thiệu
Môi trường:
Trên server có IP 192.168.56.100 có 2 database:
Non-CDB:
- DB Name: noncdb
CDB:
- DB Name: cdbnew
Server đã cài đặt Oracle Database 19.3 và hệ điều hành Linux 7.9
Bài toán:
Migrate dữ liệu từ noncdb database sang 1 PDB thuộc CDB cdbnew.
Các bước tiến hành clone PDB từ Non-CDB
Trước đây, tôi đã có bài viết hướng dẫn anh em 1 cách khác để biến 1 non-CDB thành 1 PDB trong CDB thông qua database link.
Tuy nhiên nếu như non-CDB nằm cùng 1 server với CDB, cách làm trên sẽ duplicate (nhân bản) thêm dung lượng của non-CDB (để biến nó thành PDB).
Như vậy, sẽ cần thêm dung lượng để chứa lượng dữ liệu bị duplicate (có thể là tạm thời) đó,
Bài viết này hướng dẫn 1 cách khác, có thể khắc phục được nhược điểm đó, đó là sử dụng package DBMS_PDB
DBMS_PDB sẽ generate ra file xml cấu trúc của non-CDB, và chúng ta có thể migrate non-CDB vào thẳng CDB bằng file xml đó (tương tự như cách chúng ta plug 1 PDB vào CDB)
Đưa database Non-CDB về Read only
shutdown immediate startup mount alter database open readonly;
Kiểm tra tính tương thích của non-CDB với CDB mới
begin dbms_pdb.describe ( pdb_descr_file => '/home/oracle/noncdb.xml' ); end; /
Sau đó chạy câu lệnh sau trên CDB:
set serveroutput on declare compatible constant varchar2(3) := case dbms_pdb.check_plug_compatibility ( pdb_descr_file => '/home/oracle/noncdb.xml', pdb_name => 'noncdb') when true then 'YES' else 'NO' end; begin dbms_output.put_line(compatible); end; /
Nếu kết quả trả về là ‘YES’, tức là non-CDB hoàn toàn tương thích với CDB, có thể thực hiện migrate thành PDB được
Shutdown non-CDB
shutdown immediate
Tạo PDB mới từ Non-CDB database
Thực hiện trên CDB cdbnew:
create pluggable database noncdb using '/home/oracle/noncdb.xml';
Chạy script noncdb_to_pdb.sql
Sau khi tạo xong PDB, bạn không được open database lên, bạn cần chạy script noncdb_to_pdb.sql trước:
sqlplus / as sysdba alter session set container=noncdb; @$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql
Open PDB
alter pluggable database noncdb open;
Nguồn: https://dangxuanduy.com/
Hiện tại, tôi có tổ chức đều đặn các khóa học về quản trị Oracle Database, tôi sẽ để thông tin ở đây, để bạn nào quan tâm về lịch học cũng như chương trình học có thể theo dõi nhé.
KHOÁ DÀNH CHO NGƯỜI MỚI
KHÓA HỌC: QUẢN TRỊ ORACLE DATABASE THẬT LÀ ĐƠN GIẢN (ADMIN 1)
CÁC KHOÁ NÂNG CAO:
KHÓA HỌC ORACLE NÂNG CAO: QUẢN TRỊ KIẾN TRÚC MULTITENANT 12c
KHÓA HỌC ORACLE NÂNG CAO: QUẢN TRỊ HỆ THỐNG DATA GUARD
CÁC KHOÁ COMBO:
COMBO 1: ADMIN 1 + MULTITENANT 12c
COMBO 3: ADMIN 1 + MULTITENANT 12c + DATA GUARD
LỊCH HỌC:
Mời bạn xem tại đây: LỊCH HỌC CÁC LỚP ORACLE
ĐĂNG KÝ:
Form đăng ký
Hãy tham gia group “Kho tài liệu kiến thức database” để cùng học hỏi và chia sẻ nhé.