Mục lục

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

				
					shutdown immediate 
startup mount 
alter database open readonly;
				
			

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

3. Shutdown non-CDB

				
					shutdown immediate

				
			

4. 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';

				
			

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:

				
					sqlplus / as sysdba 
alter session set container=noncdb; 
@$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql
				
			

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

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

5 1 đánh giá
Article Rating
Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận
0
Rất thích suy nghĩ của bạn, hãy bình luận.x