Tải bản đầy đủ (.pdf) (67 trang)

Chuẩn bị kỳ thi số 731 lấy chứng chỉ DBA (Quản trị cơ sở dữ liệu) DB2 9, Phần 5: Các tiện ích của DB2 pptx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (313 KB, 67 trang )

Chuẩn bị kỳ thi số 731 lấy chứng chỉ DBA (Quản trị cơ sở dữ liệu) DB2 9,
Phần 5: Các tiện ích của DB2
Sẵn sàng cho kỳ thi
Clara Liu, Giám đốc sản phẩm DB2, IBM
Tóm tắt: Học các kỹ năng giúp bạn quản lý đúng cách các máy chủ cơ sở dữ liệu
DB2 của bạn. Đây là phần thứ năm trong loạt bài hướng dẫn gồm bảy phần để
giúp bạn chuẩn bị kỳ thi lấy Chứng chỉ quản trị cơ sở dữ liệu của DB2® 9 cho
Linux®, UNIX® và Windows™ (Kỳ thi 731).
Trước khi bạn bắt đầu
Về loạt bài hướng dẫn này
Nếu bạn đang chuẩn bị dự kỳ thi 731 lấy chứng chỉ quản trị cơ sở dữ liệu (DBA)
DB2, bạn đã đến đúng chỗ đây là một kiểu phòng tự học. Loạt bảy bài hướng
dẫn chuẩn bị lấy chứng chỉ DB2 này gồm các khái niệm chính mà bạn cần biết để
làm bài kiểm tra. Hãy làm bài tập ở nhà của bạn ở đây và giảm bớt căng thẳng
trong ngày thi.
Về bài hướng dẫn này
Bài hướng dẫn này giới thiệu các kỹ năng mà bạn phải có để quản lý đúng cách
một máy chủ DB2. Đây là phần thứ năm trong loạt bài hướng dẫn gồm bảy phần
để giúp bạn chuẩn bị kỳ thi lấy Chứng chỉ quản trị cơ sở dữ liệu DB2 9 cho Linux,
UNIX và Windows (Kỳ thi 731).


Các mục tiêu của bài viết
Trong hướng dẫn này, bạn sẽ:
 Học cách làm thế nào để trích xuất dữ liệu bằng cách sử dụng tiện ích
EXPORT
 Học cách làm thế nào để điền dữ liệu vào bảng bằng các tiện ích IMPORT
và LOAD
 Xem xét các lợi thế và bất lợi của việc sử dụng tiện ích IMPORT và LOAD
 Biết khi nào và làm thế nào để sử dụng các lệnh db2move, db2look và
db2batch


 Học cách làm thế nào để sử dụng các tiện ích RUNSTATS, REORG,
REORGCHK và REBIND và câu lệnh FLUSH PACKAGE CACHE
 Tìm hiểu có thể làm những gì với Trung tâm điều khiển (Control Center)
của DB2
 Biết khi nào và làm thế nào để sử dụng trình cố vấn thiết kế (Design
Advisor) của DB2


Điều kiện cần có trước
Để được tham dự kỳ thi DB2 9 DBA bạn phải đã vượt qua kỳ thi 730 Cơ bản về
DB2 9. Chúng tôi khuyên bạn nên xem loại bài hướng dẫn Cơ bản về DB2 trước
khi bắt đầu loạt bài hướng dẫn này.
Hướng dẫn này là một trong những công cụ để giúp bạn chuẩn bị cho kỳ thi 731.
Bạn cũng nên xem lại các tài nguyên ở phần cuối hướng dẫn này để biết thêm về
các tiện ích của DB2 (xem mục Tài nguyên).
Mặc dù không phải tất cả các tư liệu được thảo luận trong loạt bài hướng dẫn Cơ
bản về DB2 đều cần thiết để hiểu các khái niệm được mô tả trong hướng dẫn này,
ít nhất bạn nên có kiến thức cơ bản về:
 Các sản phẩm của DB2
 Các công cụ của DB2
 Các cá thể DB2
 Các cơ sở dữ liệu
 Các đối tượng của cơ sở dữ liệu


Yêu cầu về hệ thống
Bạn không cần một bản sao của DB2 để hoàn thành hướng dẫn này. Tuy nhiên,
bạn sẽ học được nhiều hơn từ hướng dẫn này, nếu bạn tải về phiên bản dùng thử
miễn phí của DB2 9 của IBM để làm theo bài hướng dẫn này.


Các tiện ích di chuyển dữ liệu
Các tiện ích và định dạng tệp tin
Ba tiện ích để di chuyển dữ liệu có sẵn trong DB2:
 EXPORT
 IMPORT
 LOAD
Điều quan trọng là phải đảm bảo rằng các dữ liệu bạn muốn chuyển giao phải
tương thích với cả nền tảng nguồn lẫn nền tảng đích. Định dạng tệp tin được hỗ trợ
bởi các tiện ích là:
 ASCII không có dấu phân cách hoặc có độ dài cố định (ASC): Như tên
của nó hàm ý, kiểu tệp tin này chứa dữ liệu ASCII có độ dài cố định để
dóng thẳng với dữ liệu cột. Mỗi tệp tin ASC là một luồng ký tự ASCII bao
gồm giá trị dữ liệu theo trật tự hàng và cột. Các hàng trong luồng dữ liệu
được ngăn cách bởi các dấu phân cách hàng, được giả sử là ký tự xuống
dòng (newline).
 ASCII có dấu phân cách (DEL): Đây là định dạng tệp tin phổ biến nhất
được sử dụng bởi nhiều nhà quản lý cơ sở dữ liệu để trao đổi dữ liệu. Nó
chứa dữ liệu ASCII và sử dụng các ký tự dấu phân cách đặc biệt để tách các
giá trị cột. Các hàng trong luồng dữ liệu được phân cách bằng các ký tự
xuống dòng (newline) như là dấu phân cách hàng.
 Phiên bản PC của định dạng trao đổi tích hợp (Intergrated Exchange
Format) (PC/IXF): Đây là một mô tả có cấu trúc của một bảng cơ sở dữ
liệu. Định dạng tệp tin này có thể được sử dụng không chỉ để nhập khẩu dữ
liệu mà còn để tạo ra một bảng chưa tồn tại trong cơ sở dữ liệu đích.
 Định dạng tờ bảng tính (Worksheet Format -WSF): Dữ liệu được lưu
trữ ở định dạng này có thể được diễn giải trong tờ bảng tính. Nó có thể
được sử dụng chỉ cho xuất khẩu và nhập khẩu dữ liệu.
 Con trỏ: Con trỏ được khai báo với truy vấn. Nó chỉ có thể được sử dụng
như là đầu vào của một hoạt động nạp.



Tiện ích EXPORT của DB2
Tổng quan về tiện ích EXPORT
Tiện ích EXPORT trích xuất dữ liệu từ các bảng cơ sở dữ liệu vào một tệp tin
bằng cách sử dụng câu lệnh SQL SELECT hoặc XQUERY. Các dữ liệu được xuất
khẩu ra có thể trong các định dạng tệp tin DEL, IXF hoặc WSF. Người ta khuyến
cáo rằng bạn nên gồm thêm mệnh đề MESSAGES vào thao tác xuất khẩu dữ liệu
để bắt các lỗi, các cảnh báo và các thông điệp thông tin trong quá trình xuất khẩu.
Để gọi thực hiện thành công tiện ích EXPORT bạn phải có các quyền SYSADM
hoặc DBADM, hoặc các đặc quyền CONTROL hoặc SELECT trên các bảng hoặc
các khung nhìn được truy cập trong lệnh EXPORT.
Với sự hỗ trợ mới để kiểm soát truy cập dựa trên nhãn (LBAC) được đưa vào
phiên bản 9.1 của DB2, bạn cần phải chú ý đến các ủy nhiệm LBAC của bạn, nó
có thể cho phép hoặc không cho phép bạn truy cập vào các hàng và/hoặc cột được
bảo vệ. Khi xuất khẩu dữ liệu từ một bảng có các hàng được bảo vệ, các ủy nhiệm
LBAC của bạn có thể giới hạn số hàng được xuất ra. Các hàng mà bạn không có
quyền truy cập đọc sẽ không được xuất khẩu ra. Không có thông báo lỗi hoặc cảnh
báo nào. Tuy nhiên, nếu ủy nhiệm LBAC của bạn không cho phép đọc từ một hay
nhiều cột được bảo vệ bao gồm trong lệnh xuất khẩu, lệnh xuất sẽ thất bại và báo
lỗi.
Chúng ta hãy xem xét một ví dụ xuất khẩu đơn giản. Lệnh dưới đây xuất kết quả
của câu lệnh SELECT vào một tệp tin có định dạng DEL. Tệp tin thông điệp
msg.out ghi lại các thông tin hữu ích cũng như bất kỳ lỗi hay cảnh báo nào gặp
phải :
EXPORT TO myfile.del OF DEL
MESSAGES msg.out
SELECT staff.name, staff.dept, org.location
FROM org, staff
WHERE org.deptnumb = staff.dept;




Biến tố kiểu tệp tin
Trong ví dụ thảo luận ở phần trên, dữ liệu được trích xuất đến một tệp tin có định
dạng DEL. Theo mặc định, các giá trị cột được phân cách bằng dấu phẩy (,) và
chuỗi ký tự được bao bọc bằng cặp dấu nháy kép ("). Điều gì sẽ xảy ra nếu các dữ
liệu được trích xuất cũng đã có dấu phẩy và nháy kép? Tiện ích nhập khẩu và tiện
ích nạp (load) sẽ không thể xác định được ký hiệu nào là dữ liệu thực tế và ký hiệu
nào là dấu phân cách. Để tuỳ chỉnh cách tiện ích EXPORT hoạt động như thế nào,
bạn có thể sử dụng mệnh đề MODIFIED BY và chỉ rõ bạn muốn thay đổi cái gì
với các biến tố (modifiers) kiểu tệp tin. Lệnh EXPORT với mệnh đề MODIFIED
BY sẽ như sau:
EXPORT TO file_name OF file_type
MODIFIED BY file_type_modifiers
MESSAGES message_file
select_statement


Bạn có thể tìm thấy một liệt kê đầy đủ các biến tố kiểu tệp tin trong Chỉ dẫn tham
khảo lệnh (Command Reference Guide), ở mục EXPORT. Một số biến tố thường
được sử dụng được liệt kê ở đây để làm ví dụ:
 chardelx
o Xác định x là một ký tự đơn lẻ làm dấu phân cách chuỗi ký tự mới.
Giá trị mặc định là dấu nháy kép (").
 coldelx
o Xác định x là một ký tự đơn lẻ làm dấu phân cách cột mới. Giá trị
mặc định là dấu phẩy (,).
 codepage=x
o Xác định x, một chuỗi ký tự ASCII, là trang mã mới của dữ liệu đầu
ra. Trong quá trình hoạt động xuất khẩu dữ liệu, dữ liệu ký tự được

chuyển đổi từ trang mã ứng dụng tới trang mã này.
 timestampformat="x"
o x là định dạng của mốc thời gian trong bảng nguồn.
Ta hãy xem ví dụ sau:
EXPORT TO myfile.del OF DEL
MODIFIED BY chardel! coldel@ codepage=1208
timestampformat="yyyy.mm.dd hh:mm tt"
MESSAGES msg.out
SELECT * FROM schedule

Lệnh trên xuất khẩu dữ liệu từ bảng SCHEDULE theo định dạng DEL với các
hành vi sau đây:
 Các chuỗi ký tự được bao bọc bằng dấu chấm than (!)
 Các cột được phân cách bởi dấu @
 Các chuỗi ký tự sẽ được chuyển đổi tới trang mã 1208
 Mốc thời gian do người dùng định nghĩa trong bảng SCHEDULE có định
dạng yyyy.mm.dd hh:mm tt


Xuất khẩu các đối tượng lớn với biến tố LOBSINFILE
Khi xuất khẩu các bảng với các cột đối tượng lớn (LOB), theo mặc định thì chỉ có
32 KB dữ liệu LOB đầu tiên được xuất khẩu. Phần này của đối tượng được đặt
trong cùng tệp tin giống như phần còn lại của cột dữ liệu. Để xuất đầy đủ dữ liệu
LOB và lưu trữ chúng trong các tệp tin khác với các dữ liệu cột khác, bạn phải sử
dụng các tùy chọn LOB. Trong DB2 V9.1, bạn có thể chỉ rõ bạn có muốn ghép nối
nhiều giá trị LOB và xuất khẩu ra cùng một tệp tin đầu ra hay là xuất khẩu mỗi
một giá trị LOB vào một tệp tin riêng biệt.
Dưới đây là một lệnh EXPORT với biến tố LOBSINFILE ra lệnh cho tiện ích xuất
khẩu ghi nhiều giá trị LOB vào cùng một tệp tin đầu ra.
EXPORT TO file_name OF file_type

LOBS TO lobfile_directory_1, lobfile_directory_2,
LOBFILE lobfilename
MODIFIED BY LOBSINFILE
MESSAGES message_file
select_statement


Mệnh đề LOBS TO qui định các thư mục nơi mà các tệp tin LOB sẽ được lưu trữ.
Nếu không có mệnh đề LOBS TO thì dữ liệu LOB được gửi đến thư mục làm việc
hiện tại. Từ lệnh trên bạn hãy lưu ý rằng ta có thể chỉ định nhiều hơn một đường
dẫn làm các thư mục đích của tệp tin LOB. Sẽ có ít nhất một tệp tin cho mỗi
đường dẫn LOB, và mỗi tệp tin sẽ chứa ít nhất một LOB.
Có lẽ sẽ hữu ích nếu ta nhận biết các tệp tin LOBFILE đã trích xuất với các tên tệp
tin do người sử dụng định nghĩa. Mệnh đề LOBFILE có thể được sử dụng cho
mục đích này. Mỗi tệp tin LOB sẽ có một số tuần tự làm phần mở rộng của tệp tin
(ví dụ: lobfile.001, lobfile.002, lobfile.003, v.v ).
Khi một trong hai lựa chọn LOBS TO hoặc LOBFILE được chỉ định, thì hành vi
của lựa chọn LOBSINFILE sẽ được kích hoạt ngầm. Tuy nhiên, sẽ tốt hơn nếu chỉ
rõ tường minh biến tố LOBSINFILE để tránh nhầm lẫn với hành vi của biến tố
LOBSINSEPFILES sẽ được thảo luận ở phần sau.


Định tố vị trí của LOB
Khi xuất các đối tượng lớn với biến tố LOBSINFILE thì một định tố vị trí của
LOB (LLS) được tạo ra và được lưu giữ trong tệp tin xuất khẩu đầu ra. LLS là một
chuỗi được sử dụng để chỉ nơi dữ liệu LOB có thể được tìm thấy. Nó có định dạng
là filename.ext.lob.nnn.mmm/. Ta hãy xem xét định dạng này chi tiết hơn:
 filename.ext.lob là tên của tệp tin có chứa các dữ liệu LOB. ext là số tuần
tự, như được nói ở phần trên.
 nnn là khoảng chừa trống của đối tượng lớn bên trong tệp tin LOB tính

bằng byte.
 mmm là chiều dài của đối tượng lớn tính bằng byte.
Lấy ví dụ, một LLS có tên là resume.001.lob.1257.2415/ cho ta biết rằng đối
tượng lớn nằm ở tệp tin resume.001.lob, dữ liệu LOB này thực tế bắt đầu sau một
khoảng chừa trống có kích thước là 1.257 byte và nó dài 2.415 byte.
Để minh họa rõ ràng LLS được sử dụng như thế nào, bạn hãy xem ví dụ dưới đây.
EXPORT TO empresume.del DEL
LOBS TO d:\lob1\
LOBFILE resume
MODIFIED BY LOBSINFILE
MESSAGES msg.out
SELECT * FROM emp_resume



Xuất khẩu các đối tượng lớn với biến tố LOBSINSEPFILES
Như đã được đề cập ở các phần trước, bạn cũng có thể chọn để xuất dữ liệu LOB
đầy đủ và lưu trữ mỗi dữ liệu đó vào các tệp tin riêng biệt. Các tùy chọn LOB
được miêu tả ở phần trước vẫn như cũ, trừ khi biến tố LOBSINSEPFILES được sử
dụng thay thế.
Dưới đây là một ví dụ với biến tố này.
EXPORT TO empresume.del DEL
LOBS TO d:\lob1\
LOBFILE resume
MODIFIED BY LOBSINSEPFILES
MESSAGES msg.out
SELECT * FROM emp_resume


Với lệnh EXPORT này, tiện ích EXPORT sẽ ghi dữ liệu LOB vào các tệp tin với

tên resume.ext.lob (tức là resume.001.lob, resume.002.lob, resume.003.lob, v.v ),
chúng đều nằm trong đường dẫn LOB d:\lob1.


Xuất khẩu dữ liệu XML
Với việc đưa thêm hỗ trợ XML nguyên sinh vào DB2 phiên bản 9.1, tiện ích xuất
khẩu cũng được mở rộng để hỗ trợ XML. Nếu bạn định xuất khẩu một bảng (được
định nghĩa với dữ liệu XML) mà không chỉ định bất kỳ tùy chọn nào liên quan tới
XML, thì dữ liệu XML liên quan sẽ được ghi vào một tệp tin hoặc nhiều tệp tin,
tách biệt với phần còn lại của dữ liệu quan hệ được xuất khẩu. Ta hãy xem một ví
dụ. Lệnh EXPORT sau đây được phát ra trên bảng PRODUCT có định nghĩa một
cột XML:
EXPORT TO prodexport.del DEL
MESSAGES msg.out
SELECT * FROM product


Trong ví dụ này tiện ích xuất khẩu sẽ tạo ra hai tệp tin đầu ra. Một trong hai tệp tin
là prodexport.del, chứa dữ liệu quan hệ của bảng cũng như định tố dữ liệu XML
(XML data specifier - XDS).
XDS là một chuỗi ký tự được biểu diễn như một thẻ XML có tên là "XDS". Nó có
các thuộc tính mô tả các thông tin về dữ liệu XML thực tế có trong cột. Dưới đây
là các thuộc tính mà bạn có thể thấy trong một chuỗi XDS.
 FIL xác định tên của tệp tin chứa dữ liệu XML.
 OFF xác định khoảng chừa trống tính bằng byte của dữ liệu XML trong tệp
tin được đặt tên theo thuộc tính FIL.
 LEN xác định chiều dài tính bằng byte của dữ liệu XML trong tệp tin được
đặt tên theo thuộc tính FIL.
 SCH xác định mã định danh SQL phân biệt đầy đủ của lược đồ XML được
sử dụng để xác nhận hợp lệ tài liệu XML. Thuộc tính này sẽ được thảo luận

trong phần sau.
Từ nội dung của tệp tin prodexport.del ở trên, bạn có thể thấy rằng dữ liệu XML
đầu tiên được lưu giữ trong tệp tin prodexport.del.001.xml bắt đầu sau một khoảng
chừa trống có kích thước là 0 byte và nó có chiều dài là 252 byte.
Tệp tin khác được tạo ra bởi tiện ích xuất khẩu trong ví dụ này là
prodexport.del.001.xml, nó chứa nội dung XML. Mọi dữ liệu XML được xuất
khẩu được ghép nối lại và được ghi vào tệp tin này. Sau đây là nội dung của tệp tin
prodexport.del.001.xml để cung cấp cho bạn thêm hiểu biết về nó.


Xuất khẩu dữ liệu XML với tuỳ chọn và biến tố XML
Giống như xuất khẩu các đối tượng lớn, bạn có thể chỉ định một hoặc nhiều đường
dẫn, nơi các tài liệu XML được xuất khẩu sẽ được chuyển tới và phần tên cơ sở
của các tệp tin đầu ra. Ta hãy xem ví dụ sau:
EXPORT TO prodexport.del DEL
XML TO d:\xmlpath
XMLFILE proddesc
MODIFIED BY XMLINSEPFILES XMLNODECLARATION XMLCHAR
XMLSAVESCHEMA
MESSAGES msg.out
SELECT * FROM product


Ở đây các dữ liệu quan hệ của bảng PRODUCT được xuất khẩu sang tệp tin
prodexport.delfile. Sau đó mọi dữ liệu XML sẽ được ghi vào thư mục được chỉ
định trong mệnh đề XML TO d:\xmlpath. Các tệp tin với dữ liệu XML được đặt
tên là proddesc.ext.xml với ext là số tuần tự (ví dụ: proddesc.001.xml,
proddesc.002.xml, proddesc.003.xml, v.v ). Phần tên cơ sở này được định nghĩa
bởi tùy chọn XMLFILE.
Bạn cũng có thể nhận thấy rằng một vài biến tố được sử dụng trong ví dụ này. Sau

đây là bảng tóm tắt của tất cả các biến tố liên quan đến XML.
 XMLINSEPFILES làm cho tiện ích xuất khẩu ghi từng tài liệu XML được
xuất khẩu vào một tệp tin XML riêng biệt.
 XMLNODECLARATION biểu thị rằng dữ liệu XML được xuất khẩu mà
không có thẻ khai báo XML. Theo mặc định, thẻ khai báo XML được ghi
tại phần đầu của một tài liệu XML, nó bao gồm một thuộc tính về bảng mã.
 XMLCHAR biểu thị rằng dữ liệu XML được viết bằng trang mã
(codepage) ký tự. Theo mặc định, dữ liệu XML được viết bằng bộ mã
Unicode. Khi biến tố này được sử dụng, thì giá trị của biến tố kiểu tệp tin
của trang mã hoặc trang mã của ứng dụng sẽ được sử dụng thay thế.
 XMLGRAPHIC biểu thị rằng dữ liệu XML được xuất khẩu sẽ được mã hóa
bằng trang mã UTF-16, bất kể biến tố kiểu tệp tin của trang mã hoặc trang
mã của ứng dụng là gì. Bạn lưu ý rằng tùy chọn XMLGRAPHIC không
được sử dụng trong ví dụ này.
Tùy chọn cuối cùng mà chúng tôi giới thiệu ở đây là XMLSAVESCHEMA. Khi
một tài liệu XML đã được chèn vào, thì nó có thể được xác nhận hợp lệ bởi một
lược đồ XML. Tùy chọn XMLSAVESCHEMA ra lệnh cho tiện ích xuất khẩu
cũng ghi lưu các thông tin của lược đồ XML cho tất cả các dữ liệu XML được
xuất khẩu. Mã định danh SQL phân biệt đầy đủ của lược đồ đó sẽ được lưu trữ
như là một thuộc tính SCH bên trong định tố dữ liệu XML (XDS) tương ứng. Bạn
lưu ý rằng nếu tài liệu XML được xuất khẩu không được xác nhận hợp lệ bởi lược
đồ XML hoặc đối tượng lược đồ không còn tồn tại trong cơ sở dữ liệu, thuộc tính
SCH sẽ không được bao gồm trong XDS tương ứng.
Sau đây là kết quả của ví dụ về tiện ích xuất khẩu nêu trên.


Xuất khẩu dữ liệu XML bằng một truy vấn XQuery
Lệnh EXPORT cũng cho phép bạn chỉ định một câu lệnh XQuery để cho tiện ích
xuất khẩu ghi kết quả của XQuery thành một tệp tin XML. Chúng ta hãy xem xét
ví dụ sau:

EXPORT TO custexport.del DEL
XML TO d:\xmlpath
XMLFILE custphone
MODIFIED BY XMLINSEPFILES XMLNODECLARATION
MESSAGES msg.out
SELECT XMLQUERY ('$doc/customerinfo/phone' PASSING INFO AS "doc")
FROM customer


XQuery trong ví dụ trên trả về tất cả các số điện thoại của mọi khách hàng được
lưu trữ trong bảng CUSTOMER trong cột XML INFO. Tất cả các tùy chọn XML
và các biến tố đang được thảo luận áp dụng được cho câu lệnh XQuery. Do đó, ví
dụ này sẽ tạo ra các tài liệu XML riêng biệt cho mỗi kết quả của XQuery. Các tệp
tin nằm tại địa chỉ d:\xmlpath và chúng được đặt tên là custphone.ext.xml với ext
là số tuần tự. Ngoài ra, trong các tài liệu không có thẻ khai báo XML.
Sau đây là nội dung của một trong những tài liệu XML được xuất khẩu.


Xuất khẩu dữ liệu từ Trung tâm điều khiển
Ngoài việc thi hành lệnh EXPORT từ dòng lệnh của DB2, bạn có thể xuất khẩu dữ
liệu bằng cách sử dụng Trung tâm điều khiển. Với công cụ này, bạn có thể chỉ
định tất cả các tùy chọn và các mệnh đề được hỗ trợ bởi tiện ích xuất khẩu chẳng
hạn như các đối tượng lớn và dữ liệu XML. Như được minh hoạ trong hình dưới
đây, phiếu Schedule cho phép bạn tạo một tác vụ và một lịch trình mà tiện ích xuất
khẩu sẽ chạy tại một thời điểm đã cho.


Tiện ích IMPORT của DB2
Tổng quan về tiện ích IMPORT
Tiện ích IMPORT điền dữ liệu vào một bảng với một tệp tin đầu vào kiểu ASC,

DEL, IXF hoặc WSF. Đích có thể là một bảng, một bảng được định kiểu hoặc một
khung nhìn. Tuy nhiên, việc nhập khẩu dữ liệu vào các bảng hệ thống, bảng tạm
thời, và bảng truy vấn được vật chất hóa là không được phép. Tôi cũng khuyên
bạn nên sử dụng mệnh đề MESSAGES để cho các thông báo lỗi, các cảnh báo, các
thông điệp báo tin được ghi lại.
Để nhập khẩu thành công dữ liệu, bạn phải có quyền SYSADM hoặc DBADM,
hoặc các đặc quyền ưu tiên (SELECT, INSERT, CONTROL hoặc CREATETAB)
trên bảng đích hoặc trên cơ sở dữ liệu, tùy thuộc vào bạn sử dụng tùy chọn nào.
Để nhập khẩu dữ liệu vào một bảng có các hàng và cột được bảo vệ, bạn phải có
ủy nhiệm LBAC cho phép truy cập viết vào tất cả các dữ liệu được bảo vệ trong
bảng. Ngoài ra, việc nhập khẩu dữ liệu vào bảng với các hàng được bảo vệ đòi hỏi
rằng ủy nhiệm LBAC của bạn là một phần của chính sách bảo mật bảo vệ bảng.
Lệnh IMPORT được hiển thị dưới đây với năm tùy chọn khác nhau:
IMPORT FROM file_name OF file_type
MESSAGES message_file
[ INSERT | INSERT_UPDATE | REPLACE |
REPLACE_CREATE | CREATE ]
INTO target_table_name


 Tùy chọn INSERT chèn dữ liệu nhập khẩu vào bảng. Bảng đích đã phải tồn
tại.
 Tùy chọn INSERT_UPDATE chèn dữ liệu vào bảng, hoặc cập nhật các
hàng hiện có của bảng nếu khóa chính phù hợp. Bảng đích phải tồn tại và
có định nghĩa một khóa chính.
 Tùy chọn REPLACE xóa tất cả các dữ liệu hiện có và chèn dữ liệu nhập
khẩu vào một bảng đích đang tồn tại.
 Với tùy chọn REPLACE_CREATE nếu bảng đích tồn tại, thì tiện ích đó
xóa dữ liệu hiện có và chèn dữ liệu mới giống như khi chỉ định tùy chọn
REPLACE. Nếu bảng đích chưa được định nghĩa, thì bảng và các chỉ mục

kết hợp với bảng đó sẽ được tạo ra trước khi dữ liệu được nhập khẩu vào.
Như bạn có thể hình dung, tệp tin đầu vào phải có định dạng PC/IXF, bởi vì
định dạng này có chứa một mô tả có cấu trúc của bảng xuất khẩu. Nếu bảng
đích là một bảng cha (parent table) được tham chiếu bởi một khoá ngoài, thì
không thể sử dụng tùy chọn REPLACE_CREATE.
 Tùy chọn CREATE tạo ra bảng đích và các chỉ mục của nó, sau đó nó nhập
khẩu dữ liệu vào bảng mới. Tùy chọn này chỉ hỗ trợ định dạng tệp tin
PC/IXF. Bạn cũng có thể chỉ định tên của vùng bảng, nơi bảng mới sẽ được
tạo ra.
Ví dụ:
IMPORT FROM emp.ixf OF IXF
MESSAGES msg.out
CREATE INTO employee IN datatbsp INDEX IN indtbsp



Các tuỳ chọn IMPORT
Về cơ bản IMPORT là một tiện ích để chèn dữ liệu vào một bảng với số lượng
lớn. Hoạt động chèn dữ liệu số lượng lớn này giống như một câu lệnh chèn dữ liệu
bình thường theo nghĩa rằng các hành động được ghi nhật ký, các chỉ mục được
cập nhật, tính toàn vẹn tham chiếu được kiểm tra và các ràng buộc của bảng được
kiểm tra. Theo mặc định, tùy chọn IMPORT giao kết (commit) chỉ một lần, vào
lúc kết thúc hoạt động. Nếu một số lượng lớn hàng được nhập khẩu hoặc được
chèn vào bảng, thì đòi hỏi phải ghi nhật ký giao dịch đầy đủ để cuộn ngược lại
(rollback) và phục hồi. Bạn có thể yêu cầu giao kết từng kỳ để tránh việc các bản
ghi nhật ký bị đầy. Bằng cách giao kết đều đặn khi chèn dữ liệu, bạn cũng giảm
bớt được số lượng các hàng bị mất nếu có hỏng hóc trong quá trình hoạt động
nhập khẩu. Tùy chọn COMMITCOUNT bắt buộc phải giao kết COMMIT sau khi
một số bản ghi đã được nhập khẩu. Bạn cũng có thể chỉ định tùy chọn
AUTOMATIC tùy chọn này cho phép tiện ích IMPORT xác định một cách nội bộ

khi nào cần thực hiện một giao kết. Tiện ích sẽ xem xét và phát lệnh giao kết để
tránh tình trạng đầy nhật ký hoặc để tránh việc leo thang mức khóa. (N.D: Leo
thang mức khóa (lock escalation) là quá trình giảm số lượng khóa bằng cách
chuyển đối nhiều khóa mức chi tiết mịn hơn thành ít khóa hơn nhưng mức thô
hơn). Dưới đây là một ví dụ về cách bạn có thể sử dụng tùy chọn
COMMITCOUNT:
IMPORT FROM myfile.ixf OF IXF
COMMITCOUNT 500
MESSAGES msg.out
INSERT INTO newtable

Nếu vì một lý do nào đó mà lệnh trên không thực hiện được trong quá trình thi
hành của nó, thì bạn có thể sử dụng tệp tin thông điệp để xác định hàng cuối cùng
đã được nhập khẩu thành công và được giao kết. Sau đó bạn có thể khởi động lại
việc nhập khẩu dữ liệu với tùy chọn RESTARTCOUNT. Lưu ý rằng hành vi của
tùy chọn SKIPCOUNT là giống với hành vi của tùy chọn RESTARTCOUNT.
Trong lệnh bên dưới, tiện ích sẽ bỏ qua 30.000 bản ghi đầu tiên trước khi bắt đầu
hoạt động nhập khẩu dữ liệu.
IMPORT FROM myfile.ixf OF IXF
COMMITCOUNT 500 RESTARTCOUNT 30000 ROWCOUNT 100000
MESSAGES msg.out
INSERT INTO newtable

Trong ví dụ này, bạn lưu ý rằng tuỳ chọn ROWCOUNT cũng được sử dụng. Nó
chỉ rõ số lượng bản ghi vật lý phải được nhập khẩu. Bởi vì tùy chọn
RESTARTCOUNT được sử dụng, nên tiện ích nhập khẩu sẽ bỏ qua 30.000 bản
ghi đầu tiên và nhập khẩu 100.000 bản ghi kế tiếp vào bảng.
Theo mặc định, tiện ích nhập khẩu sẽ giành lấy một khóa giành riêng trên bảng
đích trước khi bất kỳ hàng nào được chèn vào. Khóa giành riêng được giải phóng
ngay sau khi hoạt động nhập khẩu hoàn thành. Đây là hành vi của tùy chọn

ALLOW NO ACCESS. Để cho phép nhiều ứng dụng đồng thời truy cập được vào
bảng dữ liệu, bạn có thể sử dụng tùy chọn ALLOW WRITE ACCESS. Lưu ý rằng
tùy chọn này không tương thích với các tùy chọn nhập khẩu REPLACE, CREATE
hoặc REPLACE_CREATE. Dưới đây là một ví dụ về tùy chọn ALLOW WRITE
ACCESS.
IMPORT FROM myfile.ixf OF IXF
ALLOW WRITE ACCESS
MESSAGES msg.out
INSERT INTO newtable



Nhập khẩu dữ liệu XML
Để nhập khẩu tệp tin XML, hãy sử dụng tùy chọn XML FROM để chỉ định một
hoặc nhiều đường dẫn đến nơi các tệp tin XML được lưu trữ. Nếu không, tiện ích
nhập khẩu sẽ tìm kiếm các tệp tin XML trong thư mục hiện hành. Bạn có thể chọn
cách thức phân tích cú pháp các tài liệu XML như thế nào; loại bỏ khoảng trống
hay giữ nguyên khoảng trống. Nếu tùy chọn XMLPARSE không được chỉ rõ, thì
hành vi phân tích cú pháp các tài liệu XML sẽ được quyết định bởi mục đăng ký
đặc biệt CURRENT XMLPARSE OPTION. Dưới đây là một ví dụ của các tuỳ
chọn XML FROM và XMLPARSE.
IMPORT FROM myfile.ixf OF IXF
XML FROM d:\xmlpath
XMLPARSE PRESERVE WHITESPACE
MESSAGES msg.out
INSERT INTO newtable

Khi bạn chèn hoặc cập nhật một tài liệu XML, có thể bạn muốn xác định xem liệu
cấu trúc, nội dung, và các kiểu dữ liệu của các tài liệu XML có hợp lệ không. Tiện
ích nhập khẩu cũng hỗ trợ xác nhận hợp lệ tài liệu XML thông qua việc sử dụng

tùy chọn XMLVALIDATE. Có ba phương pháp có thể dùng:
 USING XDS - Bạn hãy nhớ lại rằng bạn có thể xuất khẩu thông tin về lược
đồ XML và lưu nó vào trong thuộc tính SCH của định tố dữ liệu XML
(XML Data Specifier -XDS). Giá trị của thuộc tính SCH sẽ được sử dụng
để thực hiện xác nhận hợp lệ. Nếu không có thuộc tính SCH trong XDS, thì
một trong các tùy chọn DEFAULT, IGNORE hoặc MAP sẽ được xem xét
để sử dụng.
 USING SCHEMA schema-sqlid - Sử dụng lược đồ XML được chỉ rõ trong
mệnh đề này.
 USING SCHEMALOCATION HINTS - Xác nhận tính hợp lệ của các tài
liệu XML đối với các lược đồ được xác định bởi các gợi ý về vị trí của lược
đồ XML trong các tài liệu XML nguồn.
IMPORT FROM myfile.ixf OF IXF
XML FROM d:\xmlpath
XMLPARSE PRESERVE WHITESPACE
XMLVALIDATE USING XDS
DEFAULT S1.SCHEMA_A
IGNORE (S1.SCHEMA_X, S1.SCHEMA_Y, S1.SCHEMA_Z)
MAP (S1.SCHEMA_A, S1.SCHEMA_B)
COMMITCOUNT 500 RESTARTCOUNT 30000
MESSAGES msg.out
INSERT INTO newtable

Câu lệnh IMPORT trên sẽ:
 Chèn dữ liệu từ myfile.ixf và tệp tin XML ở địa chỉ d:\xmlpath.
 Giữ nguyên các khoảng trống khi phân tích cú pháp tài liệu XML.
 Mỗi tài liệu XML được xác nhận hợp lệ bằng cách sử dụng các thông tin
của lược đồ được xác định trong thuộc tính SCH của XDS. Tuy nhiên, nếu
XDS cho bất kỳ hàng cụ thể nào không chứa thuộc tính SCH, thì lược đồ
S1.SCHEMA_A sẽ được sử dụng để thay thế.

 Đối với thuộc tính SCH được chỉ rõ là S1.SCHEMA_X, hoặc
S1.SCHEMA_Y, hoặc S1.SCHEMA_Z, thì việc xác nhận hợp lệ sẽ không
được thực hiện đối với các tài liệu XML nhập khẩu.
 Nếu thuộc tính SCH được chỉ rõ là S1.SCHEMA_A, thì nó sẽ được ánh xạ
tới S1.SCHEMA_B. Lưu ý rằng mặc dù mệnh đề DEFAULT xác định
S1.SCHEMA_A, nhưng bất kỳ ánh xạ tiếp theo nào sẽ không được thực
hiện.
 Tiện ích nhập khẩu sẽ phát lệnh giao kết sau mỗi 500 hàng được nhập khẩu.

×