Cách sử dụng Data Pump

   Giới thiệu

Oracle Data Pump là một công cụ để exportimport dữ liệu trong Oracle Database.

Data Pump có 2 tập lệnh là expdpimpdp. Trong đó, expdp sẽ export dữ liệu trong Oracle Database ra thành dump file. Và impdp sẽ sử dụng dump file đó và import lại vào Oracle Database.

Dump file có thể chứa dữ liệu của table, index hay dữ liệu cấu trúc (metadata). Bạn hoàn toàn có thể lựa chọn các đối tượng sẽ được bao gồm trong dump file. 

 

   Export dữ liệu

   Tạo directory

Bước đầu tiên, để có thể Export hay Import dữ liệu, bạn cần tạo 1 directory trên database để chứa các dump file.

mkdir /u01/app/oracle/export

và kết nối vào SQL Plus

sqlplus / as sysdba
CREATE DIRECTORY export_dir AS '/u01/app/oracle/export';

   Export toàn bộ database

expdp "'/ as sysdba'" directory=export_dir dumpfile=export_full_db.dmp logfile=export_full_db.log full=y

Trong đó:

  • directory: Tên directory vừa tạo ở bước trên
  • dumpfile: Tên dump file chứa các dữ liệu sẽ export
  • logfile: Tên file nhật ký ghi lại quá trình export
  • full=y: Export toàn bộ dữ liệu của database

   Export schema

expdp "'/ as sysdba'" directory=export_dir dumpfile=export_schema.dmp logfile=export_schema.log schemas=SOE
  • schemas: Tên các schema bạn muốn export dữ liệu. Bạn có thể export nhiều schema 1 lúc, tên schema cách nhau bởi dấu phẩy. VD: schemas=SOE,SCOTT

   Export table

expdp "'/ as sysdba'" directory=export_dir dumpfile=export_tables.dmp logfile=export_tables.log tables=SOE.CUSTOMERS,SOE.ORDERS

   Export metadata only

Bạn có thể chỉ export dữ liệu cấu trúc, các procedure, function của database với option content=metadata_only

expdp "'/ as sysdba'" directory=export_dir dumpfile=export_tables_metadata.dmp logfile=export_tables_metadata.log tables=SOE.CUSTOMERS,SOE.ORDERS content=metadata_only

Bạn cũng làm tương tự nếu chỉ muốn export data, không bao gồm metadata

expdp "'/ as sysdba'" directory=export_dir dumpfile=export_tables_data.dmp logfile=export_tables_data.log tables=SOE.CUSTOMERS,SOE.ORDERS content=data_only

Chú ý: Nếu không chỉ ra mệnh đề content, cả metadata và data đều sẽ được export.

Bạn có thể tham khảo bài viết sau để biết cách tăng tốc độ Export:

Đọc thêm  Các mẹo nhỏ giúp tăng tốc độ Export và Import cho Oracle

   Import dữ liệu

Nếu bạn import full database, bao gồm cả các schema như SYS, SYSTEM, bạn có thể gặp rất nhiều lỗi, do conflict với nhiều bảng hệ thống.

Do đó, bạn nên tránh import full database hoặc full schema SYS, SYSTEM.

Sau khi đã export xong, bạn copy hoặc chuyển các dump file sang hệ thống chứa database đích, nơi mà bạn muốn import dữ liệu vào.

Bạn cũng cần tạo 1 directory để lưu các dump file này

   Tạo directory

mkdir /u01/app/oracle/import
sqlplus / as sysdba
CREATE DIRECTORY import_dir AS '/u01/app/oracle/import';

   Import schema

impdp "'/ as sysdba'" directory=import_dir dumpfile=export_schema.dmp logfile=import_schema.log schemas=SOE,SCOTT

Bạn có thể đổi tên schema trong quá trình import với option remap_schema như sau:

impdp "'/ as sysdba'" directory=import_dir dumpfile=export_schema.dmp logfile=import_schema.log schemas=SOE,SCOTT remap_schema=SOE:SOE_NEW

trong đó, SOE_NEW là tên schema mới mà bạn muốn

   Import table

impdp "'/ as sysdba'" directory=import_dir dumpfile=export_tables.dmp logfile=import_tables.log tables=SOE.CUSTOMERS,SOE.ORDERS

Nếu đã có table trên database đích, bạn có thể thêm option table_exists_action=replace để ghi đè lên các đối tượng đã có.

impdp "'/ as sysdba'" directory=import_dir dumpfile=export_tables.dmp logfile=import_tables.log tables=SOE.CUSTOMERS,SOE.ORDERS table_exists_action=replace

Bạn cũng có thể đổi tên tables trong quá trình import với option remap_tables như sau:

impdp "'/ as sysdba'" directory=import_dir dumpfile=export_tables.dmp logfile=import_tables.log tables=SOE.CUSTOMERS,SOE.ORDERS remap_table=SOE.CUSTOMERS:SOE.CUST_NEW

Bạn có thể tham khảo bài viết sau để biết cách tăng tốc độ Import:

Đọc thêm  Các mẹo nhỏ giúp tăng tốc độ Export và Import cho Oracle

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