Mục lục

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.

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

Đọc thêm  Rename ASM Diskgroup
				
					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 "'sys@pdb_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 đó.

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.

Đọc thêm  Di chuyển tablespace sang thư mục khác trong PostgreSQL

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

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

Đọc thêm  [Ebook] The Cloud DBA Oracle - Download PDF
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
0
Rất thích suy nghĩ của bạn, hãy bình luận.x