[Ora] Lession17

49
HẠNH ------------------------------------------------- Objectives Sau khi hoàn thành bài hoc này, ban co the: • Mô tả cách dể di chuyển dữ liệu • Tạo và sử dụng các đối tượng thư mục • Sử dụng SQL * Loader để tai dữ liệu từ một csdl không phải Oracle (hoặc tập tin người dùng) • Sử dụng các bảng bên ngoài để di chuyển dữ liệu thông qua nền tảng các tập tin độc lập • Giải thích về kiến trúc chung của Oracle Data Pump • Sử dụung bơm dữ liệu xuất - nhap để di chuyển du liệu giuữa các csdl Oracle ------------------------------------------------- MOVING DATA: GENERAL ARCHITECTURE Thanh phan chuc nang chinh: • DBMS_DATAPUMP: chua cac API cho viec xuat dl toc do cao va cac tien ich nhap doi voi du lieu lon va chuyen dong sieu du lieu.

Transcript of [Ora] Lession17

Page 1: [Ora] Lession17

HẠNH-------------------------------------------------

Objectives

Sau khi hoàn thành bài hoc này, ban co the:

• Mô tả cách dể di chuyển dữ liệu

• Tạo và sử dụng các đối tượng thư mục

• Sử dụng SQL * Loader để tai dữ liệu từ một csdl không phải Oracle (hoặc tập tin

người dùng)

• Sử dụng các bảng bên ngoài để di chuyển dữ liệu thông qua nền tảng các tập tin

độc lập

• Giải thích về kiến trúc chung của Oracle Data Pump

• Sử dụung bơm dữ liệu xuất - nhap để di chuyển du liệu giuữa các csdl Oracle

-------------------------------------------------

MOVING DATA: GENERAL ARCHITECTURE

Thanh phan chuc nang chinh:

• DBMS_DATAPUMP: chua cac API cho viec xuat dl toc do cao va cac tien ich

nhap doi voi du lieu lon va chuyen dong sieu du lieu.

• Đường dẫn trực tiếp API (DPAPI): Oracle Database 11g ho tro 1 giao dien

duong dan API truc tiep giam thieu chuyen doi du lieu va phan tich tai ca 2 ben

unloading va thoi gian loading.

Page 2: [Ora] Lession17

• DBMS_METADATA: duoc su dung boi qua trinh lao dong cho tat ca cac sieu

du lieu unloading va loading.

dinh nghia doi tuong csdl duoc luu tru su dung XML thay vi SQL.

• External Table API: Với ORACLE_DATAPUMP va trinh dieu khien truy cap

ORACLE_LOADER, ban co the luu tru du lieu trong cca bang ben ngoai ( co

nghia la, trong nen tang cac tap tin doc lap). Cau lenh SELECT doc bang ben

ngoai nhu the ho dang duoc luu tru trong 1 csdl Oracle

• SQL * Loader: da duoc tich hop voi bang ben ngoai, cung cap chuyen doi tu

dong cac tap tin dieu khien nap cac thong so truy cap bang ben ngoai

• expdpand impdp:lop mong ma lam cho cca cuoc goi den cac goi

DBMS_DATAPUMP de khoi dong ca giam sat hoat dong bom du lieu

•Other clients: ac ung sung (chang han nhu kiem soat csdl, sap chep, di chuyen

tablespace, va cac ung dung nguoi dung) ma duoc huong loi tu cs ha tang nay.

SQL * Plus cung co the duoc su dung nhu 1 khach hang cua DBMS_DATAPUMP

cho cac truy van trang thai don gian doi voi cac hoat dong dang dien ra

-------------------------------------------------

ORACLE DATA PUMP: OVERVIEW

Nhu 1 co so tren may chu cho du lieu toc do cao va chuyen dong sieu du lieu,

Oracle Data Pump:

- co the duoc goi thong qua DBMS_DATAPUMP

- Cung cap cac cong cu sau day:

Page 3: [Ora] Lession17

= expdp

= impdp

= giao dien web

- cung cap 4 phuong phap di chuyen du lieu:

= tap tin dl sap chep

= duong dan truc tiep

= bang ngoai

= ho tro mang lien ket

= tach tu va reattaches de cac long-running jobs

= khoi dong lai DATA PUMP

Oracle data pump cho phep loading va unloading du lieu va siue du lieu voi toc do

cao cua csdl. CSHT PUMP du lieu co the duoc goi thong qua goi

DBMS_DATAPUMPPL/SQL. Vi vay, tien ich di chuyen du lieu tuy chinh co the

duoc xay dung bang cach su dung data Pump.

Oracle database 11g cung cap cac cong cu sau:

- xuat dong lenh va nhap clients duoc goi la expand impdp,tuong ung

- xuat dua tren web va giao dien nhap co the truy cap tu dieu khien csdl data pump

tu dong quyet dinh cac phuong phap truy cap csdl de su dung, chung co the la con

duong truc tiep hoac o bang ben ngoai. data pump su dung tai duong dan truc tiep

va unload khi cau truc bang cho phep no va khi hieu suat toi da dong duy nhat

duoc thuc hien. Tuy nhien, neu co nhung nhóm bang, rang buoc toan ven tham

chieu, cot ma hoa, hoac mot so doi tuong khac, data pump su dung bang ben ngoai

chu ko phai la duong dan truc tiep de di chuyen du lieu.

Kha nang tach khoi va gan lai long-running jobs ma ko anh huong den cong viec

rieng cua minh cho phep ban giam sat cong viec tu nhieu dia diem trong khi no

dang chay. Tat ca dung lai viec data pump co the duoc khoi dong lai ma ko mat di

du lieu mien la metainformation ko bi quay ray. No ko quan trong cho du cong

viec duoc dung lai tu nguyen hay ko tu nguyen do sup do.

Page 4: [Ora] Lession17

-------------------------------------------------

ORACLE DATA PUMP: BENEFITS

data pump cung cap nhieu loi ich vs mot so tinh nang moi hon cong cu chuyen doi

du lieu truoc do, chang han nhu:

- doi tuong Fine grained va lua chon du lieu

- dac diem ky thuat ro rang cua phien ban csdl

- thuc hien song song

- uoc tinh xuat tieu thu khong gia cong viec

- che do mang trong 1 moi truong phan phoi

- kha nang remapping

- lay mau va nen sieu du lieu

- nen du lieu trong qua trinh xuat data pump

- bao mat thong qua ma hoa

- co kha nang cuat loai du lieu XML nhu CLOB

- Che do Legacy de ho tro cac tap tin xuat - nhap cu

-----000-----

Các thông số EXCLUDE, INCLUDE, và CONTENT được sử dụng cho các đối

tượng fine-grained và lựa chọn dữ liệu.

Bạn có thể chỉ định các phiên bản cơ sở dữ liệu cho các đối tượng được di chuyển

(bằng cách sử dụng tham số VERSION) để tạo ra một tập tin cài đặt PUMP đó là

sự tương thích với phiên bản trước đó của cơ sở dữ liệu Oracle có hỗ trợ Pump

Data.

Page 5: [Ora] Lession17

Bạn có thể sử dụng tham số song song để xác định số lượng tối đa của chủ đề của

các máy chủ thực hiện hoạt động điều hành thay mặt cho việc xuất khẩu.

Bạn có thể ước tính một công việc xuất khẩu sẽ tiêu thụ bao nhiêu không gian

(không có thực sự thực hiện việc xuất khẩu) bằng cách sử dụng các tham số

ESTIMATE_ONLY.

Chế độ mạng cho phép bạn xuất khẩu từ một cơ sở dữ liệu từ xa trực tiếp vào một

tập tin thiết lập PUMP. Điều này có thể được thực hiện bằng cách sử dụng một

liên kết cơ sở dữ liệu hệ thống nguồn.

Trong khi nhập khẩu, bạn có thể thay đổi tên mục tiêu tập tin dữ liệu, lược đồ, và

bảng.

Ngoài ra, bạn có thể chỉ định một tỷ lệ phần trăm của dữ liệu được lấy mẫu và dỡ

xuống từ cơ sở dữ liệu nguồn khi thực hiện xuất DATA PUMP. Điều này có thể

được thực hiện bằng cách xác định các tham số SAMPLE.

Bạn có thể sử dụng tham số COMPRESSION để cho biết các siêu dữ liệu nên

được nén trong các tập tin dump xuất khẩu để nó chiếm ít không gian đĩa. Nếu bạn

nén các siêu dữ liệu, nó sẽ tự động giải nén trong nhập khẩu.

----000----

Trong Oracle Database 11g, tính năng mới đã được thêm vào cho phép bạn:

• Nén cả dữ liệu và siêu dữ liệu, chỉ có dữ liệu, chỉ có siêu dữ liệu, hoặc không có

dữ liệu trong quá trình xuất khẩu

• Xác định tùy chọn mã hóa bổ sung trong các lĩnh vực sau:

Page 6: [Ora] Lession17

- Bạn có thể chọn để mã hóa dữ liệu và siêu dữ liệu, chỉ có dữ liệu, chỉ có siêu dữ

liệu, không có dữ liệu,

hoặc chỉ cột được mã hóa trong quá trình xuất khẩu.

- Bạn có thể chỉ định một thuật toán mã hóa cụ thể để sử dụng trong quá trình xuất

khẩu.

- Bạn có thể chỉ định các kiểu bảo mật sử dụng để thực hiện mã hóa và giải mã

trong quá trình xuất khẩu. Ví dụ, có lẽ là tập tin cài đặt PUMP sẽ được nhập vào

một

cơ sở dữ liệu khác nhau hoặc từ xa và nó phải được giữ an toàn trong vận chuyển.

Hoặc có lẽ là

PUMP tập tin cài đặt sẽ được nhập khẩu tại chỗ bằng cách sử dụng mã hóa Oracle

Wallet nhưng nó có thể

cũng cần phải được nhập khẩu ngoại vi mà Oracle mã hóa Wallet là không có sẵn.

• Thực hiện chế độ xuất khẩu và nhập khẩu bảng bằng cách sử dụng phương pháp

di chuyển, xác định cách

bảng phân vùng cần được xử lý trong các hoạt động nhập khẩu

• Ghi đè lên các tập tin dump hiện trong khi hoạt động xuất khẩu

• Đổi tên bảng trong khi hoạt động nhập khẩu

• Xác định rằng một tải dữ liệu nên tiến hành ngay cả khi hành vi vi phạm là

nondeferredconstraint

gặp phải (Điều này chỉ có hiệu lực cho các hoạt động nhập khẩu có sử dụng các

bảng bên ngoài truy cập

phương pháp.)

• Xác định rằng các cột XMLType sẽ được xuất khẩu ở dạng không nén CLOB

bất kể định dạng lưu trữ XMLType đã được xác định cho họ

• Trong một xuất khẩu, chỉ định một chức năng remap mà mất như một nguồn giá

trị ban đầu của cột được chỉ định và trả về một giá trị mới điều chỉnh sẽ thay thế

các giá trị ban đầu trong các tập tin dump

• Dữ liệu Remap như nó đang được nhập khẩu vào một cơ sở dữ liệu mới

Page 7: [Ora] Lession17

• Chế độ Legacy để hỗ trợ việc sử dụng xuất khẩu ban đầu (điểm kinh nghiệm) và

nhập khẩu (imp) kịch bản.

-------------------------------------------------

DIRECTORY OBJECTS FOR DATA PUMP

Directory Objects for Data Pump

Đối tượng thư mục để Pump Data

Đối tượng thư mục là những cấu trúc hợp lý mà đại diện cho một thư mục vật lý

trên hệ thống tập tin của máy chủ. Chúng chứa các vị trí của một thư mục hệ điều

hành cụ thể.

Thư mục tên đối tượng này có thể được sử dụng trong quản lý doanh nghiệp do đó

bạn không cần phải cứng mã thư mục thông số kỹ thuật đường dẫn. Bạn do đó có

được tính linh hoạt quản lý tập tin lớn hơn. Đối tượng thư mục được sở hữu bởi

các SYSuser.

  Tên thư mục là duy nhất trong cơ sở dữ liệu bởi vì tất cả các thư mục được đặt

trong một không gian tên duy nhất (có nghĩa là, SYS).

Đối tượng thư mục được yêu cầu khi bạn xác định vị trí tập tin để Pump Data vì

nó truy cập các tập tin trên máy chủ thay vì trên máy khách.

Trong Enterprise Manager, chọn Schema> Cơ sở dữ liệu đối tượng> Directory

Objects.

Để chỉnh sửa hoặc xóa một đối tượng thư mục, chọn đối tượng và nhấp vào nút

thích hợp

-------------------------------------------------

Page 8: [Ora] Lession17

CREATING DIRECTORY OBJECTS

Trên trang Đối tượng mục, nhấn vào nút Create.

2. Nhập vào tên của các đối tượng thư mục và đường dẫn hệ điều hành mà nó bản

đồ. Thư mục hệ điều hành nên được tạo ra trước khi chúng được sử dụng. Bạn có

thể kiểm tra điều này bằng cách nhấn vào nút Test hệ thống tập tin. Trong các thử

nghiệm, cung cấp các thông tin đăng nhập máy chủ (có nghĩa là, người sử dụng hệ

điều hành những người có đặc quyền trên thư mục hệ điều hành này).

3. Quyền cho các đối tượng thư mục không giống nhau như cho phép hệ điều hành

trên các thư mục vật lý trên hệ thống tập tin máy chủ. Bạn có thể quản lý quyền

người dùng trên các đối tượng thư mục cá nhân. Điều này làm tăng mức độ an

ninh và cung cấp cho bạn kiểm soát chặt chẽ hơn các đối tượng này. Trên trang

đặc quyền, nhấn Add để chọn người dùng mà bạn cho đọc hoặc viết ưu đãi (hoặc

cả hai).

4. Nhấp vào Hiển thị SQL để xem các báo cáo cơ bản. Nhấp vào Quay lại khi

hoàn tất.

5. Nhấn OK để tạo ra các đối tượng

HOÀNGĐối tượng thư mục trong Data Pump

Đối tượng thư mục là những cấu trúc logic đại diện cho một chỉ dẫn vật lý

trên hệ thống tập tin của máy chủ. Chúng chứa vị trí của một thư mục điều

hành cụ thể. Tên của đối tượng thư mục có thể được dùng trong Enterprise

Manager do đó không cần mã hóa thông số kĩ thuật đường dẫn thư mục.

Page 9: [Ora] Lession17

Theo cách đó bạn linh hoạt hơn trong quản lý tập tin. Chúng được sở hữu

bởi người dùng SYS. Những cái tên thư mục này là duy nhất trong cơ sở dữ

liệu bởi vì tất cả các thư mục được đặt trong một không gian tên cá biệt ( Đó

chính là SYS).

Đối tượng thư mục được yêu cầu khi bạn xác định vị trí tập tin trong Data

Pump vì nó xác định các tập tin trên máy chủ thay vì trên máy khách.

Trong Enterprise Manager, chọn Schema > Database Objects > Directory

Objects.

Để chỉnh sửa hay xóa một đối tượng thư mục, chọn đối tượng và nhấn vào

nút thích hợp.

Tạo Đối tượng thư mục

1. Trên trang Đối tượng thư mục, click vào nút Create.

2. Nhập tên đối tượng thư mục và đường dẫn hệ điều hành.

Thư mục hệ điều hành nên được tạo sẵn trước khi sử dụng. Có thể

kiểm tra bằng cách nhấn vào nút kiểm tra hệ thống thư mục. Để kiểm

tra, phải cung cấp thông tin đăng nhập máy chủ ( có nghĩa là, người

sử dụng hệ điều hành có những đặc quyền trên thư mục hệ điều hành

này).

3. Quyền hạn trong các đối tượng thư mục không giống với quyền hệ điều

hành trong thư mục vật lý trên hệ thống tập tin máy chủ. Có thể quản lý

những đặc quyền của User trên những đối tượng thư mục cá

nhân. Trên trang Đặc quyền, click Thêm vào để chọn User mà

bạn cho đọc hoặc viết đặc quyền (hoặc cả hai).

4. Click vào chương trình SQL để xem các báo cáo cơ bản. Click Trở lại

khi kết thúc.

5. Cilck OK để tạo đối tượng.

Page 10: [Ora] Lession17

Data Pump Export and Import clients: Tổng quan

Data Pump Export là một tiện ích trong việc ngừng tải dữ liệu và siêu dữ liệu

vào một tập hợp các tập tin hệ điều hành được gọi là tập hợp tập tin kết xuất.

Data Pump Import được sử dụng để tải siêu dữ liệu và dữ liệu được lưu trữ

trong tập hợp tâp tin kết xuất thành một hệ thống mục tiêu.

Data Pump API truy cập các tập tin của mình trên máy chủ thay vì trên máy

khách.

Những tiện ích này còn có thề được sử dụng để xuất trực tiếp một cơ sở dữ

liệu từ xa vào tập hợp tập tin kết xuất, hoặc để tải cơ sở dữ liệu mục tiêu mà

không có tập tin trung gian. Như thế này được gọi là phương thức mạng.

Phương thức này đặc biệt hữu ích để xuất dữ liệu từ cơ sở dữ liệu nguồn chỉ

đọc.

Tại trung tâm của mỗi hoạt động Data Pump là bảng tổng thể (MT), đó là

bảng được tạo ra trong lược đồ của người dùng đang chạy Data Pump. Bảng

tổng thể duy trì tất cả các khía cạnh của công việc. Bảng tổng thề được xây

dựng trong suốt quá trình xuất dữ liệu và được ghi vào tập hợp kết xuất dữ

liệu như bước cuối cùng. Ngược lại, việc tải bảng tổng thể vào lược đồ của

người dùng hiện hành là bước đầu tiên trong hoạt động nhập dữ liệu và được

sử dụng để liên tiếp tạo ra tất cả các dữ liệu được nhập.

Lưu ý: Bảng tổng thể là chìa khóa cho khả năng khởi động lại của Data Pump

trong trường hợp ngừng hoạt động trong hoặc ngoài kế hoạch. Bảng tổng thể

dừng lại khi hoạt động Data Pump kết thúc một cách bình thường.

Page 11: [Ora] Lession17

Tiện ích Data Pump: Giao diện và phương thức

Giao diện nhập và xuất Data Pump:

Dòng lệnh

Tập tin tham số

Tương tác dòng lệnh

Enterprise Manager

Phương thức nhập và xuất Data Pump:

Đầy đủ

Lược đồ

Bảng

Tablespace

Di chuyển Tablespace

Bạn có thể tương tác với việc nhập và xuất Data Pump bằng cách sử dụng

một trong các giao diện sau:

Giao diện dòng lệnh: Cho phép bạn xác định trực tiếp hầu hết các

thông số xuất trên dòng lệnh.

Giao diện tập tin tham số: Cho phép bạn xác định tất cả các tham số

dòng lệnh trong tập tin tham số. Ngoại lệ duy nhất là tham số PARFILE.

Giao diện tương tác dòng lệnh: Ngăn chặn đăng nhập vào thiết bị cuối

và hiển thị dấu nhắc nhập hay xuất, nơi bạn có thể nhập vào dòng lệnh

khác nhau. Chế độ này được kích hoạt bằng cách nhấn [Ctr] + [C] trong

suốt quá trình xuất có nghĩa là nó đã được bắt đầu bởi giao diện dòng

lệnh hay giao diện tập tin tham số. Chế độ tương tác dòng lệnh này

Page 12: [Ora] Lession17

cũng được cho phép khi bạn đính kèm một hoạt động đang thực hiện

hoặc đã ngừng hẳn.

Giao diện Web: Trong trang chủ của Database Control, click vào tab

Data Movement, chọn một trong những đường dẫn từ miền Move Row

Data: Export to Export Files, Import from Export Files, or Import from

Database.

Nhập và xuất Data Pump cung cấp những phương thức khác nhau trong việc

tải và ngừng tải những phần khác nhau của cơ sở dữ liệu. Phương thức này

được xác định trong dòng lệnh bằng cách sử dụng tham số thích hợp. Những

phương thức này được liệt kê sẵn trong slide và giống như những tiện ích

nhập và xuất gốc.

Xuất Data Pump bằng cách sử dụng Database Control

Enterprise Manager Database control cung cấp một thuật sĩ để hướng dẫn

bạn thông qua tiến trình thực hiện thủ tục nhập và xuất Data Pump. Ví dụ ở

trên mô tả hoạt động xuất Data Pump.

Từ trang chủ Databse Instance, click vào tab Data Movement, xác định lựa

chọn nhập và xuất Data Pump dưới mục “Move Row Data” của trang web.

Click “Export to Export Files” để tạo ra một phiên xuất Data Pump.

Cửa sổ tiếp theo xuất hiện để lựa chọn loại xuất. Trường hợp một người dùng

đặc quyền kết nối với cơ sở dữ liệu, sau đó sẽ xuất hiện các loại xuất bao

gồm:

Cơ sở dữ liệu

Page 13: [Ora] Lession17

Lược đồ

Bảng

Tablespace

Nếu một tài khoản phi hành chính được sử dụng, danh sách loại xuất sẽ bị

hạn chế bao gồm:

Lược đồ

Bảng

Click Tiếp tục để tiến hành xuất.

Hương:Dumpfile: chứa cấu trúc các bảng, csdl. Nó thường được dùng cho việc sao lưu

csdl để phòng trong trường hợp mất mát dữ liệu, import dữ liệu cực nhanh

Export Dumpfile (trang 116)

Biến Dumpfile dùng để xác định tên và thư mục chứa các tập tin dump file. Các

thông số kĩ thuật trong dumpfile được ngăn cách bởi dấu phẩy. Tên file có thể

chứa 1 biến thay thế %U, có nghĩa là nhiều tập tin có thể được tạo ra. Mỗi tập tin

được tạo ra sẽ có 2 kí tự, chiều rộng cố định, bắt đầu tăng từ 01. Nếu Dumpfile

không được chỉ định thì nó mặc định là expdat.dmp. Tạo các file dump thì tự động

mở rộng.

Nếu FILESIZE (kích cỡ) được chỉ định dung lượng và không được phép tự động

mở rộng. (Xác định kích thước của mỗi dumpfile trong đơn vị byte). Nếu có nhiều

không gian cho dump thì được yêu cầu và một tập tin mới được tạo ra với

FILESIZE, nếu không người dùng sẽ nhận được một tin nhắn báo cần tạo thêm 1

file mới.

Page 14: [Ora] Lession17

Nếu một mẫu với% U được xác định, số lượng các tập tin được tạo ra ban đầu

bằng với tham số Parallel.

Mặc định, Từ trước các tập tin phù hợp với tên tập tin kết quả thì không ghi đè .

Thay vào đó, chúng gây ra một lỗi và làm cho công việc phải được hủy bỏ. Nếu

bạn muốn các tập tin được ghi đè thì thiết lập REUSE_DUMPFILES = Y. Kích

Next để tiếp tục export.

Note:Nếu tập tin dump nhiều mẫu được cung cấp, chúng được sử dụng để tạo ra

các tập tin dump trong một hình tròn

Bạn không cần phải tạo ra một đối tượng thư mục thủ công trước khi sử dụng Data

Pump Export. Một đối tượng thư mục mặc định có tên DATA_PUMP_DIR được

tạo cho mỗi cơ sở dữ liệu, cho dù mới được tạo ra hoặc upgrated bởi một tập lệnh

trên UNIX hay Windows. Truy cập vào các thư mục DATA_PUMP_DIR được

cấp tự động cho EXP_FULL _DATABASE và vai trò IMP_FULL_DATABASE.

Thư mục DATA_PUMP_DIR được tạo ra và nằm ở những nơi sau:

<ORCLE_BASE>/admin/DB_UNIQUE_NAME/dpdump

<ORCLE_HOME>/admin/DB_UNIQUE_NAME/dpdump

Hướng chính xác của con đường đặc điểm kĩ thuật cho DATA_PUMP_DIR thay

đổi phụ thuộc tùy theo giá trị của ORCLE_BASE và hệ thống ORCLE_HOME

các biến hệ thống môi trường và về sự tồn tại của thư mục con

DATA_PUMP_DIR . Nếu ORACLE_BASE được định nghĩa trên hệ thống mục

tiêu, giá trị được sử dụng. Nếu không, giá trị của ORACLE_HOME được sử dụng.

Nếu thư mục con DATA_PUMP_DIR là vì một lý do không tìm thấy, đường dẫn

mặc định sau đây được sử dụng:

ORACLE_HOME / rdbms / log

Note: Trong mọi trường hợp, bạn phải có quyền truy cập với đối tượng thư mục

cho các hoạt động cố gắng. Đối với export, bạn cần truy cập đọc cho các tập tin

dump và viết truy cập cho các tập tin đăng nhập và các tập tin SQL

Data Pump Export Example: Schedule (118)

Page 15: [Ora] Lession17

Data Pump (tạo ra thông qua thủ thuật này) có thể được hoạch định như việc lặp

lại bởi Enterprise Manager Database Control. Nếu tên công việc không được xác

định, một tên hệ thống tạo chung ra sẽ được sử dụng. Nhấn Next để tiếp tục với

việc xuất khẩu

Data Pump Export Example: Review (119)

Các trang Review "giá" hiển thị một bản tóm tắt các thông tin nhập vào và cho

phép bạn xem thủ tục sysntax PL / SQL sẽ được sử dụng cho việc export. Nhấp

vào nút "Gửi công việc" để tiếp tục. Một khi công việc được gửi, nó không thể bị

hủy bỏ và nó là an toàn để đóng trình duyệt:

Data Pump Import Example: impdp

Data Pump có thể được gọi trên dòng lệnh để cho phép thêm các dòng lệnh tùy

chọn được xác định

Data Pump cung cấp cho khách hàng dòng lệnh cho các hoạt động import và

export. Ví dụ trên minh họa một Data Pump import bằng cách sử dụng tiện ích

impdp. Khi chạy Data Pump bằng cách sử dụng dòng lệnh, nhiều lựa chọn cũng

được cung cấp. Đối với một danh sách đầy đủ các tùy chọn, xin vui lòng tham

khảo hướng dẫn tài liệu

Data Pump Import: Transformations

Bạn có thể remap:

- Tập tin dữ liệu bằng cách sử dụng REMAP_DATAFILE

- không gian bảng bằng cách sử dụng REMAP_TABLESPACE

- Lược đồ bằng cách sử dụng REMAP_SCHEMA

- Bảng bằng cách sử dụng REMAP_TABLE

- Dữ liệu bằng cách sử dụng REMAP_DATA

Data Pump Import: Transformations

Bởi vì siêu dữ liệu được lưu trữ như XML trong các dump file, nó rất dễ dàng để

chuyển đổi khi DDL được hình thành trong quá trình import. Data Pump Import

hỗ trợ một số chuyển đổi:

REMAP_DATAFILE rất hữu ích khi di chuyển cơ sở dữ liệu trên nền tảng có ngữ

Page 16: [Ora] Lession17

nghĩa tập tin hệ thống khác nhau

REMAP_TABLESPACE cho phép các đối tượng được di chuyển từ một bảng

khác

REMAP_SCHEMA cung cấp PROMUSER / TOUSER khả năng cũ để thay đổi

quyền sở hữu đối tượng

REMAP_TABLE cung cấp khả năng đổi tên toàn bộ bảng

REMAP_DATA cung cấp khả năng remap dữ liệu khi nó đang được chèn

Oracle Data Pump: Công cụ load dữ liệu cực nhanh

Because the dump files are written by the server, rather than by the client, the data

base administrator (DBA) must create directory objects.

Bởi vì các tập tin dump được viết bởi các máy chủ, chứ không phải là của khách

hàng, quản trị cơ sở dữ liệu (DBA) phải tạo các đối tượng thư mục.

Ngọc:Slide 1: using enterprise manager to monitor data pump jobs: sử dụng

enterprise manager để quản lý data pump jobs.

Bạn có thể sử dụng (giao diện đồ họa dành cho người dùng) Enterprise manager

để quản lý tất cả các Data Pump jobs, bao gồm những gì (ở đây để chỉ data pump

jobs) được tạo ra khi sử dụng lệnh expdp hoặc impdp ở giao diện dòng (tui đoán là

cái giao diện sql plus) hay sử dụng gói DBMS_DATAPUMP.

Bạn có thể xem trạng thái hiện tại của công việc hoặc thay đổi tình trạng đó thành

execute, stop hay suspend.

Để truy cập vào gói “export and import jobs”, click vào monitor export and import

jobs ở mục Move row data trong gói maintenance

Slide 2: migration with data pump legacy mode

Chuyển đổi với data pump legacy mode.

- Hỗ trợ chuyển đổi từ imp và exp sang impdb và expdb

- Data pump trong chế đổ kế thừa:

Page 17: [Ora] Lession17

1. Encounter unique imp or exp parameter and enters legacy

mode

2. Cố gắng kết nối cú pháp cũ với cú pháp mới

3. Thể hiện cú pháp mới

4. Thoát khỏi chế đố legacy mode.

Lời khuyên khi thực hiện: oracle khuyến nghị người dùng nên xem cú pháp mới

và thực hiện thay đổi các script ngay thời gian cho phép.

Bởi vì việc mở rộng các script import và export, oracle R2 cung cấp chức năng hỗ

trợ chuyển đổi Data Pump legacy mode. Các tiện ích của data pump gồm:

1. Thực hiện chế độ kế thừa nếu như tham số duy nhất để exp/imp đang hiện

hành, hoặc đang hiện hành ở dòng lệnh hoặc trong script.

2. Kết nối chính xác tham số cũ với tham số expdb hay impdp tương đương

(nếu có thể)

3. Hiển thị câu lệnh chuyển đổi, để người dùng xem cú pháp mới và thực hiện

thay đổi script ngay thời gian cho phép của họ.

4. Thoát khỏi chế độ legacy mode, nếu tham số hiện hành có sự pha trộn giữa

cái cũ và mới (nguyên nhân việc pha trộn tham số với tham số cũ là do

thoát mà không thực hiện tác vụ mong muốn)

Slide 3: Data pump legacy mode

Các tiện ích export và import của data pump:

- Chỉ đọc và ghi file ở định dạng data pump

- Chấp nhận câu lệnh exp và imp ở chế độ legacy mode

- Gồm các tham số như là:

+ Có thể tương đồng với cú pháp mới:(câu lệnh vd trong slide)

+ Có thể được giống như: (câu lệnh vd trong slide)

+ Được bỏ qua khi câu lệnh superceded (cái nỳ hình như có ý là

mức độ ưu tiên kém hơn) bởi data pump mặc định

+ Nguyên nhân lỗi khi cú pháp cũ và mới lẫn lộn.

Page 18: [Ora] Lession17

Data pump legacy mode:

Các tiện ích data pump chỉ hoạt động với files định dạng data pump (những file

được tạo bởi tiện ích exp phải được đọc bởi tiện ích imp). Data pump legacy mode

cho phép bạn tiếp tục việc sử dụng các script của bạn với các tiện ích data pump.

Nhưng bạn phải dùng cú pháp mới nếu bạn muốn truy cập những đặc tính mới của

cơ sở dữ liệu.

Khi các tiện ích tìm thấy tham số exp hoặc imp, chúng thực hiện lagacy mode:

- Các tham số tương đồng được dùng không thay đổi. ví dụ…. tham số chỉ

định kích thước tối đa của a dump file.

- Tham số query = query_clause không chuyển đổi, nhưng cần chú ý rằng

câu truy vấn thực hiện expdp ít bị hạn chế hơn yêu cầu export. Vì thế kết

quả truy vấn của bạn có thể khác đôi chút.

- Một vài tham số bị bỏ qua, bởi vỉ chúng superceted bởi mặc định của

chúng. Ví dụ như:

+ tham số buffer = interger bị bỏ qua bởi vì expdp không có conventional

path mode.

+Tham số compress={y|n} bỉ bỏ qua vì tiện ích expdp xác định được nếu

yêu cầu export sử dụng đường dẫn trực tiếp hoặc chế độ bảng ngoài

- Một sự pha lẫn giữa exp/imp là nguyên nhân công việc không được hoàn

thành.

- Tham số legacy mode:

+ được nối với tham số data pump, nếu có thể:

+có thể tương tự, nhưng không được giống hệt nhau.

+nguyên nhân lỗi khi không tương thích với data pump mới

Data pump legacy mode(tt)

Sử dụng data pump legacy mode để chuyển đổi các script bị từ chối thành phiên

bản hiện tại. Một vài tham số có thể được nối với cú pháp mới:

Page 19: [Ora] Lession17

- Data pump biết thời gian hiện tại và nối tham số consistent={y|n} với

tham số flashback_time.

- Tham số grants=n được nối lại với exclude = grant

- Tham số indexex = n được map với exclude = index.

- Tham số Log = filename =>logfile = filename. Nội dung của log file

(thông tin và thông báo lỗi) là định dạng expdp.

- Tham số file = filename map lại với dumpfile = directory-

object:filename. Nhưng nếu như tiện ích expdp không thể tìm thấy đường

dẫn thư mục thì nó sẽ bị hủy bỏ.

Một tham số có thể được map, nhưng một hàm mới thì khác. Tham số feedback

=interger được map lại với status. Nó không trực tiếp map bởi vì trạng thái của

hoạt động export được trả về (không chỉ là số dòng được processed).

Một tham số có thể là nguyên nhân jobs bị hủy, bởi vì nó không tương thích với

data pump. Tham số volsize = interger của tiện ích exp chỉ định khối lượng kich

cỡ. Data pump không làm việc với tape drives. Oracle secure backup quản lý

tapes.

Slide 4: managing file location:

- Tiện ích exp và imp bản gốc: toàn bộ điều kiện tên file.

- Thư mục chứa data pump;

+ Mặc định (trong các phiên bản trước) tham số data_pump_dir

+ Lựa chọn mới data_pump_dir_schema-name

+ Quản lý với create directory và câu lệnh grant

+ Địa chỉ mặc định ( không phụ thuộc vào legacy mode), khi mà:

Dòng lệnh không có tham số directory

User không được cấp quyền exp_full_database.

Managing file location:

Bản gốc và data pump khác nhau trong việc xử lý file location bởi vì bản gốc dựa

trên client (tất cả tên file được hội đủ điều kiện)

Page 20: [Ora] Lession17

Data pump dựa trên server. Chúng yêu cầu thư mục được sử dụng khi chỉ định file

location. Thư mục phải được truy cập vào schema. Địa chỉ mặc định trong các

phiên bản trước đó là tham số khởi tạo data_pump_dir

Chức năng này không được đưa ra các tác vụ bắt buộc của dba. Nó đưa ra thư mục

data_pump_dir<schema-name> tối ưu. Nếu bạn lựa chọn thư mục này và viết câu

lệnh grant, bạn cho phép schema được chỉ định một khả năng để sử dụng data

pump export hoặc import (cái mà sẽ được tác động trên nguồn tài nguyên server

như cpu, bộ nhớ hay dung lượng đĩa cứng)

Data pump sử dụng thư mục trên khi dòng lệnh không chỉ định và khi user không

được cấp quyền exp_full_database. Nó không phụ thuộc vào legacy mode.

Slide 5: sql loader

Sql loader load dữ liệu từ file bên ngoài vào trong các bảng của csdl. Nó có công

cụ phân tích cú pháp rất tốt cái mà đặt giới hạn định dạng cảu dữ liệu.

Sql loader sử dụng các file sau:

- Input data files: sql loader đọc dữ liệu từ 1 hoặc nhiều files đã được chỉ

định trong control file. Từ góc độ của sql loader, dữ liệu trong file dữ liệu

được tổ chức như là các dòng. Một file dữ liệu riêng có thể ở dạng định

dạng cố định, định dạng thay đổi hoặc định dạng luồng. một định dạng

của dòng có thể được chỉ định trong control file với tham số infile. Nếu

không có định dạng dòng nào được chỉ định,thì mặc định là stream record

format.

- Control file: control file là một text file viết bằng ngôn ngữ mà sql

loadeer có thể hiểu được. control file chỉ cho sql loader nơi có thể tìm

thấy dữ liệu, làm thế nào để phân tích dữ liệu, nơi để chèn dữ liệu … mặc

dù không xác định chính xác, control file có thể được đề cập để cho thấy

3 phần:

+ Phần đầu tiên thông tin mở rộng :

Các lựa chọn toàn cục, như là tên của file dữ liệu đầu vào, các dòng

được giữ lại.

Page 21: [Ora] Lession17

Mệnh đề infile để chỉ ra địa chỉ của dữ liệu đầu vào

Dữ liệu được load vào.

+ Phần thứ hai gồm 1 hoặc nhiều into table blocks. Mỗi một block chứa

thông tin về bảng ( như tên bảng, các côt của bảng) mà dữ liệu được load

vào.

+ Phần thứ ba là tùy chọn và nội dung dữ liệu đầu vào nếu được trình

bày

- Log file:khi sql loader bắt đầu thực hiện, nó tạo ra một lg file. Nếu không

thể tạo được, việc thực thi sẽ chấm dứt. log file chứa nội dung chi tiết

việc load, bao gồm một mô tả bất kì lỗi xảy ra trong khi load.

- Bad file: badfile chứa những dòng bị từ chối bởi sql loader hoặc bởi

oracle database. Những dòng dữ liệu bị từ chối bởi sql loader khi định

dạng đầu vào không phù hợp. Sau khi dòng dữ liệu được sql loader chấp

nhận, nó được gửi cho oracle database để insert vào bảng dữ liệu. nếu

oracle database xác định dòng này là hợp lệ thì nó sẽ được insert vào

bảng, ngược lại dòng này bị từ chối và sql loader sẽ đưa nó vào ba file.

- Discard file: tập tin này chỉ được tạo khi cần và chỉ trong trường hợp bạn

chỉ định discard file là enable. Discard file chứa nội dung các dòng được

lọc loại ra khỏi dữ liệu được load bởi vì chúng không phù hợp với tiêu chí

chọn lựa được chỉ định trong control file.

Thạch:[Là công cụ được sử dụng để load dữ liệu vào table trong oracle database sử dụng

các file dữ liệu bên ngoài, công cụ này thường dùng chuyển dữ liệu từ hệ thống

khác (access for example) vào trong Oracle]

Sql*loader: tổng quan

Page 22: [Ora] Lession17

Sql*loader tải dữ liệu từ những tập tin bên ngoài (external files) vào những bảng

của cơ sở dữ liệu Oracle.

Nó là một công cụ phân tích dữ liệu mạnh mẽ mà đặt ít giới hạn về định dạng của

các tập tin dữ liệu đưa vào.

Sql*loader sử dụng những files sau đây:

Files đầu vào (input data files): Sql*loader đọc dữ liệu từ 1 or nhiều files được chỉ

định trong control file. Từ khía cạnh sql*loader, dữ liệu trong data file được tổ

chức như những records. Q datafile cụ thể có thể được định dạng trong 1 record

cố định. Định dạng của record được chỉ định, mặc định là định dạng stream

reacord.

Control file: là1 file text được viết trong 1 ngôn ngữ nào đó mà sql*record có thể

hiểu được. control file chỉ cho sql*loader nơi để tìm dữ liệu, nơi để chèn dữ liệu,

… mặc dù không xác định chính xác, một control file có thể được cho là có 3

phần:

Phần đầu tiên bao gồm những thông tin về toàn bộ phiên làm việc như

sau:

Những lựa chọn toàn cục, như là tên file đầu vào và những records

được bỏ qua.

Mệnh đề INFILE để xác định nơi dữ liệu đầu vào nằm ở đâu ?

Dữ liệu được tải (nạp)?

Phần thứ 2 bao gồm 1 hoặc hiều INTOTABLE blocks (những khối

INTOTABLE). Mỗi khối chứa thông tin về bảng (như là tên bảng và những

cột trong bảng) mà dựa vào đó dữ liệu sẽ được nạp.

Phần thứ 3 là những tùy chọn

Page 23: [Ora] Lession17

Log file: khi sql*loader bắt đầu thực hiện, nó sẽ tạo ra 1 log file. Nếu nó không

thể tạo ra 1 log file, thì lệnh thi hành sẽ chấm dứt. 1 log file bao gồm bảng

tóm tắt chi tiết của việc load, bao gồm mô tả về bất cứ lỗi nào xãy ra trong quá

trình load dữ liệu.

Bad file: 1 bad file bao gồm các records mà bị từ chối bởi sql*loader hoặc bởi

Oracle Database. Những record data file bị từ chối bởi sql*loader khi định dạng

file đầu vào không hợp lệ. Sau khi 1 data file record được chấp nhận bởi

sql*loader, nó được gửi đến Oracle database chèn vào 1 bảng như 1 dòng. Nếu

oracle database xác định rằng hàng đó hợp lệ, thì dòng được chèn chính thức vào

bảng. Nếu dòng được xác định là không hợp lệ, records bị từ chối và sql*loader

đặt nó trong các tập tin bad file.

Discard file: tập tin này được tạo ra chỉ khi cần thiết và chỉ khi bạn xác định rằng

discard file phải được kích hoạt. discard file bao gồm các records mà được loại bỏ

trong quá trình tải dữ liệu vì nó không phù hợp với bất kỳ tiêu chí được đưa ra

trong control file.

Loading data with sql*loader

Sử dụng “Load Data from User files wizard” để tải dữ liệu từ 1 “flat file” (file cờ)

vào cơ sở dữ liệu Oracle.

Để hiển thị cộng cụ này, chọn Enterprise Manager Data Movement > Move row

data > Load data from User files

Sql*loader control file

Sql*Loader control file chỉ định về:

Vị trí các dữ liệu được nạp

Định dạng dữ liệu

Page 24: [Ora] Lession17

Cấu hình chi tiết:

Quản lý bộ nhớ

Ghi lại những từ chối

Chi tiết về gián đoạn trong quá trình load dữ liệu

Chi tiết về thao tác dữ liệu

Sql*loader control file là một file text bao gồm các cấu trúc DDL. DDL được sử

dụng để kiểm soát các khía cạnh sau của một phiên sql*loader:

Nơi nào sql*loader có thể tìm dữ liệu để tải

Làm thế nào sql*loader tin rằng dữ liệu đó được định dạng đúng

Làm thế nào sql*loader được cấu hình (bao gồm quản lý bộ nhớ, lựa chọn

và các tiêu chuẩn từ chối, gián đoạn…) như khi nó load dữ liệu.

Làm thế nào sql*loader có thể thao tác trên các dữ liệu được nạp.

Sql*loader control file (continued)

1 --This is a sample control file

2 LOAD DATA

3 INFILE ’SAMPLE.DAT’

4 BADFILE ’sample.bad’

5 DISCARDFILE ’sample.dsc’

6 APPEND

7 INTO TABLE emp

8 WHEN (57) = ’.’

Page 25: [Ora] Lession17

9 TRAILING NULLCOLS

10 (hiredate SYSDATE,

deptno POSITION(1:2) INTEGER EXTERNAL(3)

NULLIF deptno=BLANKS,

job POSITION(7:14) CHAR TERMINATED BY WHITESPACE

NULLIF job=BLANKS "UPPER(:job)",

mgr POSITION(28:31) INTEGER EXTERNAL

TERMINATED BY WHITESPACE, NULLIF mgr=BLANKS,

ename POSITION(34:41) CHAR

TERMINATED BY WHITESPACE "UPPER(:ename)",

empno POSITION(45) INTEGER EXTERNAL

TERMINATED BY WHITESPACE,

sal POSITION(51) CHAR TERMINATED BY WHITESPACE

"TO_NUMBER(:sal,’$99,999.99’)",

comm INTEGER EXTERNAL ENCLOSED BY ’(’ AND ’%’

":comm * 100"

)

Giải thích ví dụ trên (theo số thứ tự 1-10)

1 – comment: không giải thích gì nhiều hơn

Page 26: [Ora] Lession17

2 – trạng thái LOADDATA chỉ ra bắt đầu load dữ liệu mới. Nếu bạn muốn tiếp tục

1 phiên tải dữ liệu mà đã bị gián đoạn trong tiến trình, sử dụng câu truy vấn

CONTINUELOADDATA

3 - từ khóa INFILE chỉ định tên của một data file chứa dữ liệu mà bạn muốn tải

4 – từ khóa BADFILE chỉ định tên của 1 tập tin mà những records bị từ chối được

ghi vào.

5 – từ khóa DISCARDFILE, tương tự BADFILE

6 – từ khóa APPEND là một trong những OPTION mà bạn có thể sử dụng khi tải

dữ liệu vào một bảng mà bảng đó không trống. để tải dữ liệu lên 1 bảng trống, sử

dụng từ khóa INSERT

7 – từ khóa INTOTABLE cho phép xác định các bạn, các trường và kiểu dữ liệu.

nó xác định mối quan hệ giữa các records trong data file và những bảng trong cơ

sở dữ liệu.

8 – Từ khóa WHEN chỉ định 1 hoặc nhiều điều kiện của trường mà mỗi bản ghi

phải phù hợp trước khi sql*loader tải dữ liệu. Trong ví dụ này, sql*loader record

mà kí tự thứ 57 là 1 dấu thập phân.

9 – từ khóa TRAILINGNULLCOLS nhắc SQL*loader xử lý bất kỳ vị trí cột

tương đối mà không tồn tại trong record như những cột null.

10 – phần còn lại của control file bao gồm danh sách các trường, cung cấp thông

tin về định dạng cột trong bảng đang được nạp.

Loading Methods

Tải thông thường Tải trực tiếp

Sử dụng lênh COMMIT Sử dụng Data save (nhanh hơn)

Luôn phát sinh redo entries Chỉ phát sinh redo trong điều kiện cụ thể

Page 27: [Ora] Lession17

Thực thi tất cả các ràng buộc Thực thi chỉ bao gồm Primary key, unique,

and NOT NULL

<fires INSERT triggers> not

Có thể tải lên một nhóm bảng Không thể tải lên 1 nhóm bảng

Cho phép người dùng khác chỉnh sửa

những bảng trong suốt quá trình tải

Ngăn cản

Duy trì index cho mỗi lần insert Hợp nhất những index mới cuối quá trình

tải

So sánh tải trực tiếp và tải đường dẫn thông thường

Phương pháp lưu trữ dữ liệu

Một đường tải thông thường thực thi câu lệnh sql Insert để đưa các bảng trong cơ

sở dữ liệu Oracle. Một tải trực tiếp loại bỏ nhiều cơ sở dữ liệu Oracle bằng cách

định dạng khối dữ liệu Oracle và viết các khối dữ liệu trực tiếp vào data files. Một

tải trực tiếp không không xung đột với người dùng khác cho nguồn cơ sở dữ liệu.

vì vậy nó có thể tải dữ liệu với tốc độ gần với tốc độ đĩa. Tải thông thường sử

dụng quy trình sql và toán tử COMMIT cho việc lưu trữ dữ liệu. Mỗi dữ liệu tải có

thể bao gồm một số giao dịch.

Tải trực tiếp dùng dữ liệu lưu để viết vào những khối dữ liệu của Oracle data files.

Đây là lý do tại sao tải trực tiếp lại nhanh hơn phương pháp thông thường. những

đặc điểm khác nhau của việc lưu dữ liệu từ COMMIT:

Trong thời gian ghi lại dữ liệu, chỉ có khối cơ sở dữ liệu được ghi vào cơ sở

dữ liệu

Những khối dữ liệu được viết sau khi <HWM – high-watermark) của bảng

Sau khi lưu trữ dữ liệu, HWM được chuyển đi.

Các nguồn lực nội bộ không được giải phóng sau khi dữ liệu lưu trữ.

Page 28: [Ora] Lession17

Một dữ liệu lưu trữ không kết thúc vào cuối transaction

Indexes không cập nhật tại mỗi phiên lưu trữ dữ liệu.

External tables

Là các file được lueu trữ bên ngoài cơ sở dữ liệu mà oracle xem nó như là 1 bảng.

Dữ liệu thường là read only và không có index. Quyền trong các table thường là

read directory và select table

Bảng dữ liệu ngoài truy cập dữ liệu từ nguồn bên ngoài như thể nó là 1 bảng trong

cơ sở dữ liệu. bạn có thể kết nối tới cơ sở dữ liệu và tạo metadata cho bảng ngoài

bằng cách sử dụng câu lệnh DDL. DDL cho bảng bên ngoài bao gồm 2 phần:

Mô tả kiểu cột trong csdl Oracle

Mô tả mô tả bản đồ của những dữ liệu bên ngoài vào những cột trong csdl

oracle

Một bảng dữ liệu ngoài không mô tả bất cứ dữ liệu được lưu trong cơ sở dữ liệu.

nó cũng không mô tả dữ liệu được lưu trữ như thế nào. Thay vào đó, nó mô tả các

lớp của bảng dữ liệu ngoài phải trình bày dữ liệu đến máy chủ như thế nào. Đó là

nhiệm vụ của trình điều khiển và các lớp của bảng dữ liệu ngoài phải phải thực

hiện những chuyển đổi cần thiết trong dữ liệu bên ngoài để nó phù hợp với định

nghĩa bảng bên ngoài.

Bảng bên ngoài chỉ có thể đọc, do vậy không câu lệnh DML nào là khả dụng và

không index nào có thể được tạo ra.

Có 2 truy cập sử dụng bảng dữ liệu ngoài. Oracle_loader có thể được sử dụng để

đọc bảng dữ liệu từ bảng dữ liệu ngoài và tải nó vào cơ sở dữ liệu. nó sử dụng các

file văn bảng như nguồn dữ liệu. Oracle_datapump có thể tải dữ liệu từ bảng dữ

liệu từ bảng dữ liệu từ bảng dữ liệu ngoài và cũng có thể không tải dữ liệu từ cơ sở

dữ liệu từ file ngoài. Nó sử dụng tập tin nhị phân như tập tin ngoài. Những tập tin

Page 29: [Ora] Lession17

nhị phân có cùng định dạng như tập tin được sử dụng như công cụ impdp và

expdp và có thể trao đổi với họ.

External table benefits – những lợi ích của bảng ngoài

Dữ liệu có thể được sử dụng trực tiếp từ những tập tin ngoài hoặc được tải

từ những cơ sở dữ liệu khác.’

Dữ liệu bên ngoài có thể được truy vấn và kết trực tiếp song song với bảng

cố định trong cơ sở dữ liệu, mà không yêu cầu nó được tải đầu tiên.

Các kết quả được truy vấn phức tạp có thể không cần tải vào dữ liệu bên

ngoài.

Bạn có thể kết hợp các tập tin được tạo ra từ những nguồn khác cho mục

đích tải dữ liệu.

Tập tin dữ liệu được tạo cho bảng ngoài có thể được di chuyển và được sử dụng

như những tập tin dữ liệu cho những bảng ngoài khác trong cùng 1 csdl hoặc csdl

khác nhau. Dữ liệu bên ngoài có thể được truy vấn và kết trực tiếp song song với

những bảng cố định trong csdl, mà không yêu cầu dữ liệu được tải đầu tiên. Bạn

có thể chọn để các ứng dụng của bạn trực tiếp truy cập vào bảng bên ngoài với câu

lệnh SELECT, hoặc bạn có thể chọn để dữ liệu được nạp đầu tiên vào một csdl

được chỉ định. Kết quả của câu lệnh truy vấn phức tạp có thể được unloaded vào 1

tập tin bên ngoài sử dụng oracle_datapump.

Những tập tin dữ liệu được populated (ghi ngoài) bởi những bảng ngoài, có thể chỉ

định bởi mệnh đề LOCATION của bảng ngoài khác. Nó cung cấp phương cách dễ

dàng tổng hợp số liệu từ nhiều nguồn. Hạn chế duy nhất là metadata cho tất cả các

bảng ngoài phải giống nhau chính xác tuyệt đối!

Page 30: [Ora] Lession17

Trang:Định nghĩa:

- sql*loader: tiện ích sử dụng để nạp các file vào bảng oracle

-external table: là các file được lưu trữ bên ngoài CSDL mà Oracle xem nó như 1

bảng. Dữ liệu thường là readonly và không có index trong đó. quyền trên các table

thường là read directory và select table

Defining an External Tables with ORACLE_LOADER

(xác định bảng bên ngoài với oracle_loader)

- các siêu dữ liệu của các bảng bên ngoài được tạo khi sử dụng ngôn ngữ SQL

trong CSDL. điều khiển truy cập Oracle_loader sử dụng SQL*LOADER để xác

định các bảng bên ngoài. lệnh này không tạo các tập tin văn bản bên ngoài

- ví dụ trên biểu diễn 3 đối tượng trong directory (extab_dat_dir, extab_bad_dir,

and extab_log_dir), những bảng này được tạo và ánh xạ đến directory tồn tại trong

hệ điều hành hiện tại mà user có quyền truy cập

- khi bảng extab_employees được tạo thành công, SQL*Loader sẽ load bảng đó

đồng thời các instance log file và bad file cũng được tạo

- nếu có nhiều dữ liệu để load, sử dụng câu lệnh ALTER SESSION ENABLE

PARALLEL DML để mở chức năng PARALLEL

---------------------------------------------------------------------------------------------------

---------

External Table Population with ORACLE_DATAPUMP

Định nghĩa: ORACLE_DATAPUMP là phiên bản mới hơn, nhanh hơn, linh hoạt

hơn thay thế cho các tiện ích exp và imp trong orcl. ngoài việc exp và imp,

orcl_datapump cung cấp API và hỗ trợ các bảng ngoài PL/SQL

- bởi vì ex table có thể lớn, bạn có thể sử dụng câu lệnh PARALLEL để không

load dữ liệu vào bảng external. trái vs câu truy vấn PARALLEL từ external table,

mức độ truy vấn song song của populate operation bị ràng buộc bởi số lượng file

Page 31: [Ora] Lession17

hiện hành, có thể ghi nhận vào điều khiển truy cập, chỉ có duy nhất 1 máy chủ

thực hiện lệnh PARALLEL và ghi vào 1 file tại thời điểm cụ thể

- số lượng fikle trong mệnh đề LOCATION phải phù hợp vs mức độ tuy vấn song

song bởi vì mỗi I/O server process yêu cầu tập tin của chính nó. bất kì 1 tập tin

bên ngoài được chỉ định đều bị bỏ qua, nếu không đủ file cho truy vấn song song

thì I/O server process sẽ tự hạ xuống để phù hợp vs file trong mệnh đề

LOCATION

- ex table chỉ đọc sau khi thực hiện populate, câu lệnh select có thể phức hợp, cho

phép những thông tin cụ thể được populate ở ex table. ex table có cấu trúc file

tương tự như file data pump nhị phân, có thể dc chuyển đến hệ thống khác và imp

vs tiện ích IMPDP hoặc đọc ex table

---------------------------------------------------------------------------------------------------

-------

Using External Tables

-Querying and external table:

SQL> SELECT * FROM extab_employees;

----> ex table dc truy vấn giống như bảng nội bộ. câu truy vấn chỉ hiển thị kết quả

của bảng và kết quả đó không được lưu trữ trong CSDL

-Querying and joining an external table with an internal table

SQL> SELECT e.employee_id, e.first_name, e.last_name, d.department_name

FROM departments d, extab_employees e

WHERE d.department_id = e.department_id;

-----> truy vấn nối bảng ex vs bảng in

-Appending data to an internal table from an external table

SQL> INSERT /*+ APPEND */ INTO hr.employees

SELECT *

FROM extab_employees;

-----> thêm bảng dữ liệu trực tiếp vào bảng nội bộ từ ex table

Page 32: [Ora] Lession17

---------------------------------------------------------------------------------------------------

--

DATA DICTIONARY

-[DBA| ALL| USER]_EXTERNAL_TABLES: các thuộc tính cụ thể của ex trong

CSDL

-[DBA| ALL| USER]_EXTERNAL_LOCATIONS: dữ liệu của ex table

[DBA| ALL| USER]_TABLES: mô tả mối quan hệ của các bảng trong CSDL

-[DBA| ALL| USER]_TAB_COLUMNS: mô tả các cột của bảng, view và cụm

trong CSDL

-[DBA| ALL]_DIRECTORIES: mô tả đối tượng trong directory trong CSDL

---------------------------------------------------------------------------------------------------

---------

TÓM TẮT

- mô tả cách di chuyển dữ liệu

- tạo và sử dụng các đối tượng trong directory (hoặc file user)

- sử dụng SLQ*Loader để load dữ liệu từ CSDL non-oracle

- sử dụng ex table để di chuyển dữ liệu thông qua file platform độc lập

- giải thicchs cấu trúc chung của orcl data pump

- sử dụng orcl pump export và import để chuyển dữ liệu giữa các CSDL trong

oracle

---------------------------------------------------------------------------------------------------

--------

KHÁI QUÁT

- sử dụng data pump export wizard chọn CSDL để export

- theo dõi data pump export

- sử dụng Data Pump Import Wizard để import dữ liệu vào CSDL

- sử dụng Load Data Wizard để load dữ liệu trong CSDL

- sử dụng command line để load dữ liệu