Migrate noncdb bằng transportable tablespace

   Giới thiệu Transportable Tablespace

   Transportable Tablespace là gì?

Transportable Tablespace có thể coi là cách migrate dữ liệu nhanh nhất trong các cách sử dụng Data Pump. Nó kết hợp được ưu điểm của 2 phương thức migrate dữ liệu: logical và physical.

Hiểu 1 cách đơn giản: Nếu migrate dữ liệu theo phương thức Physical (VD: Sử dụng RMAN hay Data Guard), tốc độ thực hiện sẽ nhanh hơn vì nó không cần quan tâm đến những đối tượng logical (như table, index,…) bên trong.

Tuy nhiên, nó không linh hoạt được như phương thức logical. Nhất là với bài toán migrate dữ liệu qua lại giữa các platform khác nhau.

   Môi trường: 

Non-CDB (nguồn):

  • IP: 192.168.56.100
  • DB Name: testdb

CDB (đích):

  • IP: 192.168.56.101
  • DB Name: cdbnew

2 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 Transportable Tablespace

   Phân tích bài toán

Trong database TESTDB, tôi chỉ lưu data của người dùng trong 2 tablespace là: USERSDATA2022.

Do đó, tôi sẽ chỉ cần migrate dữ liệu trong 2 tablespace này là đủ.

 

   Kiểm tra endianess trên database nguồn và đích

Chạy câu lệnh sau trên cả nguồn và đích

SELECT d.PLATFORM_NAME, ENDIAN_FORMAT 
FROM V$TRANSPORTABLE_PLATFORM tp, V$DATABASE d 
WHERE tp.PLATFORM_ID = d.PLATFORM_ID;

check endianess

Nếu cả database nguồn và đích đều cùng endian, bạn có thể tiến hành Transportable Tablespace luôn. Còn nếu không, bạn sẽ phải thực hiện convert endian.

Đọc thêm  Cấu hình Logical Replication trong PostgreSQL

 

   Kiểm tra các tablespace

Bước này sẽ kiểm tra các tablespace cần transport xem có đối tượng nào không thoả mãn điều kiện hay không? (VD: Partitioned table có partition nằm ở cả tablespace SYSTEM).

EXECUTE DBMS_TTS.TRANSPORT_SET_CHECK('USERS,DATA2022', TRUE);
Sau khi chạy xong thủ tục trên, bạn có thể kiểm tra kết quả bằng câu lệnh sau:
SELECT * FROM TRANSPORT_SET_VIOLATIONS;
Nếu không có kết quả trả về, tức là các tablespace hoàn toàn có thể transport được.
Còn nếu có bất cứ lỗi nào được trả về, bạn cần xem xét và giải quyết nó.

   Tạo directory để export

Tạo directory trên nguồn

create directory export_tts as '/home/oracle/dump/';

 

   Đưa các tablespace cần transport về Read Only

Thực hiện trên database nguồn:
alter tablespace users read only;
alter tablespace data2022 read only;

 

   Thực hiện export transportable tablespace trên nguồn

expdp "'/ as sysdba'" directory=export_tts dumpfile=dump_tts.dmp logfile dump_tts.dmp transportable=always full=y metrics=yes

Sau khi export xong, bạn sẽ thấy ở phần cuối trong log export:

export transportable tablespace datafile

Đây là các datafile bạn sẽ cần phải copy qua database đích.

   Tạo Pluggable database trống trên đích:

create pluggable database pdb_tts admin user duydx identified by oracle file_name_convert=('/u02/oradata/CDBNEW/pdbseed/','/u02/oradata/CDBNEW/pdb_tts/');


alter pluggable database pdb_tts open;
Copy các datafile qua đích:
scp /u02/oradata/TESTDB/data2022_1.dbf 192.168.56.101:/u02/oradata/CDBNEW/pdb_tts/
scp /u02/oradata/TESTDB/data2022_1.dbf 192.168.56.101:/u02/oradata/CDBNEW/pdb_tts/
scp /home/oracle/dump/dump_tts.dmp 192.168.56.101:/home/oracle/dump/

 

   Tạo directory trên đích

create directory import_tts as '/home/oracle/dump/';

 

   Import vào đích

impdp "'[email protected]_tts as sysdba'" directory=import_tts dumpfile=dump_tts.dmp logfile=dump_tts_imp.log metrics=yes logtime=all transport_datafiles='/u02/oradata/CDBNEW/pdb_tts/users01.dbf','/u02/oradata/CDBNEW/pdb_tts/data2022_1.dbf'

Chú ý: 

Như vậy, kết thúc bước trên, có thể coi bạn đã migrate dữ liệu xong từ non CDB TESTDB sang PDB_TTS thuộc CDBNEW rồi đó.

Đọc thêm  Thay đổi Undo Tablespace trên Oracle

Tuy nhiên, bạn cần lưu ý, nếu bước import thất bại, các transportable datafile ở trên đích sẽ không thể sử dụng được nữa, cần phải thực hiện lại từ đầu.

Do đó, trong suốt quá trình thực hiện Transportable Tablespace bạn vẫn cần bảo vệ các datafile trên nguồn cẩn thận, để có thể rollback và thực hiện lại khi có sự cố xảy ra.

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 2: ADMIN 1 + DATA GUARD 

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

 

0 0 đá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