1. Giới thiệu

1. 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

2. Bài toán: 

Migrate dữ liệu từ noncdb database sang 1 PDB thuộc CDB cdbnew.

2. 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.

Đọc thêm  Clone PDB từ Non-CDB

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)

1. Đưa database Non-CDB về Read only

2. Kiểm tra tính tương thích của non-CDB với CDB mới

Chạy thủ tục DBMS_PDB.DESCRIBE (trên non-CDB) để sinh ra file xml cấu trúc của non-CDB:

 Sau đó chạy câu lệnh sau trên CDB:

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

3. Shutdown non-CDB

4. Tạo PDB mới từ Non-CDB database

Thực hiện trên CDB cdbnew:

5. 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:

6. Open PDB

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é.

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é.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *