1. Trang chủ
  2. » Công Nghệ Thông Tin

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

67 292 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Các tiện ích của DB2
Trường học Trường Đại học Công Nghệ Thông Tin - Đại Học Quốc Gia Hà Nội
Chuyên ngành Quản trị cơ sở dữ liệu
Thể loại Hướng dẫn
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 67
Dung lượng 313 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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ằ

Trang 1

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)

Trang 2

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

Trang 3

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 tiện ích di chuyển dữ liệu

Các tiện ích và định dạng tệp tin

Trang 4

Ba tiện ích để di chuyển dữ liệu có sẵn trong DB2:

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

Trang 5

Đị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

Trang 6

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

Trang 7

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

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ụ:

Trang 8

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

Trang 9

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

Trang 10

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

Trang 11

 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

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ế

Trang 12

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,

Trang 13

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

Trang 14

 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

Trang 15

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ế

Trang 16

 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

Trang 17

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

Trang 18

đâ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

Trang 20

 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

Trang 21

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

Trang 22

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

Trang 23

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

Trang 24

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

đồ XML trong các tài liệu XML nguồn

IMPORT FROM myfile.ixf OF IXF

Trang 25

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

Trang 26

 Hoạt động nhập khẩu được bắt đầu từ bản ghi 30.001 30.000 bản ghi đầu tiên được bỏ qua

 Mọi thông báo lỗi, cảnh báo, và thông điệp báo tin đều được ghi vào tệp tin msg.out

Dữ liệu mới được chèn (hoặc được nối vào cuối) vào newtable

Ví dụ này chỉ mang đến cho bạn một số ý tưởng về cách mà tài liệu XML được nhập khẩu có thể được xác nhận hợp lệ như thế nào Có rất nhiều ví dụ ở Trung tâm thông tin của DB2 chứng minh sức mạnh của tùy chọn XMLVALIDATE

Biến tố kiểu tệp tin

Tiện ích IMPORT cũng hỗ trợ các biến tố kiểu tệp tin để tùy chỉnh hoạt động nhập

khẩu Bạn có thể tìm thấy một danh sách đầy đủ các biến tố này trong DB2

Command Reference, mục IMPORT Ở đây phác thảo một vài biến tố:

Trang 27

o Lược bớt bất kỳ khoảng trống sau đuôi nào khi nạp dữ liệu vào một trường có độ dài biến đổi

 lobsinfile

o Biểu thị rằng dữ liệu LOB đang được nhập khẩu Tiện ích sẽ kiểm tra mệnh đề LOBS FROM để có đường dẫn của các tệp tin LOB đầu vào

Dưới đây là một ví dụ về sử dụng các biến tố kiểu tệp tin ấy:

IMPORT FOR inputfile.asc OF ASC

LOBS FROM /u/db2load/lob1, /u/db2load/lob2

MODIFIED BY compount=5 lobinsfile

INSERT INTO newtable

Nhập khẩu bằng cách sử dụng Trung tâm điều khiển

Trung tâm điều khiển cung cấp các giao diện đồ họa dễ sử dụng để thực hiện các hoạt động nhập khẩu dữ liệu Tất cả các tùy chọn nhập khẩu và các biến tố tệp tin được thảo luận trong phần trước cũng có sẵn trong giao diện này

Trang 28

Tiện ích LOAD của DB2

Tổng quan về tiện ích LOAD

Tiện ích LOAD là một phương thức khác để điền dữ liệu vào bảng Các trang được định dạng được ghi trực tiếp vào cơ sở dữ liệu Cơ chế này cho phép di chuyển dữ liệu hiệu quả hơn so với tiện ích IMPORT Tuy nhiên, một số hoạt động, chẳng hạn như kiểm tra tham chiếu hoặc kiểm tra các ràng buộc của bảng và gọi ra các kích hoạt (triggers) không được thực hiện bởi tiện ích LOAD

Dưới đây là cốt lõi của lệnh LOAD, các tùy chọn và biến tố khác được hỗ trợ và sẽ được giới thiệu trong phần tiếp theo của bài hướng dẫn này Để thi hành thành công lệnh này, bạn phải có các quyền như SYSADM, DBADM hoặc LOAD, hoặc các đặc quyền INSERT và/hoặc DELETE trên bảng tham gia vào việc nạp dữ liệu

Để nạp dữ liệu vào bảng có các 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 cột được bảo vệ trong bảng Để nạp dữ liệu vào một bảng có các hàng được bảo vệ, bạn phải được cấp một nhãn an ninh để truy cập viết, đó là một phần của chính sách an ninh bảo vệ bảng

LOAD FROM input_source OF input_type

MESSAGES message_file

[ INSERT | REPLACE | TERMINATE | RESTART ]

INTO target_tablename

Trang 29

Định dạng của một nguồn đầu vào cho tiện ích LOAD có thể là DEL, ASC,

PC/IXF, hoặc CURSOR Con trỏ là bộ kết quả được câu lệnh SELECT trả lại Hình sau là ví dụ của việc sử dụng CURSOR làm đầu vào nạp dữ liệu:

DECLARE mycursor CURSOR FOR SELECT col1,

col2, col3 FROM tab1;

LOAD FROM mycursor OF CURSOR INSERT INTO

newtab;

Đích để nạp dữ liệu phải tồn tại trước khi tiện ích khởi chạy Đích này có thể là một bảng, một bảng có định kiểu hoặc là bí danh của bảng Việc nạp các bảng có cột XML, các bảng hệ thống và bảng tạm thời không được hỗ trợ

Bạn sử dụng tùy chọn MESSAGES để thu giữ bất kỳ thông báo lỗi, cảnh báo, thông điệp báo tin nào trong quá trình nạp

Tiện ích LOAD có thể được thi hành trong bốn chế độ khác nhau:

Chế độ INSERT thêm dữ liệu đầu vào vào một bảng mà không thay đổi dữ

liệu bảng hiện có

Chế độ REPLACE xóa tất cả dữ liệu hiện tại tại một bảng và điền dữ liệu

đầu vào vào bảng đó

Trang 30

Chế độ TERMINATE chấm dứt một hoạt động nạp dữ liệu và cuộn ngược

trở lại thời điểm mà tại đó nó bắt đầu Một trường hợp ngoại lệ là nếu đã chỉ định chế độ REPLACE, thì bảng sẽ được cắt bớt

Chế độ RESTART được sử dụng để khởi động lại hoạt động nạp bị gián

đoạn trước đó Thao tác nạp sẽ tự động tiếp tục từ điểm nhất quán cuối cùng Để sử dụng chế độ này, bạn chỉ định các tùy chọn tương tự như trong lệnh LOAD trước đây nhưng với chế độ RESTART Nó cho phép tiện ích tìm tất cả các tệp tin tạm thời cần thiết được tạo ra trong quá trình nạp Do

đó, điều quan trọng là không được loại bỏ một cách thủ công bất kỳ tệp tin tạm thời nào được tạo ra từ hoạt động nạp trừ khi bạn chắc rằng chúng không cần thiết Sau khi hoạt động nạp hoàn tất mà không gặp lỗi, các tệp tin tạm thời sẽ tự động được loại bỏ Theo mặc định chúng được tạo ra trong thư mục làm việc hiện tại Bạn có thể chỉ định thư mục nơi tệp tin tạm thời được lưu trữ với tùy chọn TEMPFILES PATH

Bốn pha của một quá trình nạp

Một quá trình nạp hoàn chỉnh có bốn pha phân biệt

1 Pha nạp:

o Nạp dữ liệu vào bảng

o Thu thập các khóa chỉ mục và các thống kê về bảng

o Ghi lại các điểm nhất quán

Trang 31

o Khi các hàng dữ liệu không tuân theo các định nghĩa của bảng, thì chúng được coi là dữ liệu không hợp lệ và sẽ bị từ chối (không được nạp vào bảng) Bạn sử dụng biến tố tệp tin đống rác để chỉ định tên

và vị trí của một tệp tin để ghi lại bất kỳ hàng bị từ chối nào

2 Pha xây dựng:

o Tạo ra các chỉ mục dựa trên các khóa thu thập trong giai đoạn nạp Nếu tùy chọn STATISTICS USE PROFILE được chỉ định, thì các số liệu thống kê cũng được thu thập theo lược tả đã định nghĩa cho bảng đích Lược tả này phải được tạo ra trước khi hoạt động nạp được thực thi, nếu không sẽ có cảnh báo được trả lại và không có số liệu thống kê nào được thu thập

3 Pha xóa:

o Xóa các hàng vi phạm quy tắc khóa duy nhất và đặt chúng vào bảng ngoại lệ Ngoài các dữ liệu chỉ là không phù hợp với định nghĩa của bảng đích như được mô tả ở trên, có thể có dữ liệu mà vượt qua được giai đoạn nạp nhưng vi phạm một ràng buộc duy nhất được định nghĩa trong bảng Lưu ý rằng ở đây chỉ có các hàng vi phạm quy tắc khóa duy nhất là được coi là dữ liệu sai; các ràng buộc khác không được kiểm tra vào lúc này Vì rằng loại dữ liệu đã được nạp vào bảng, nên tiện ích LOAD sẽ xóa các hàng vi phạm ở pha này Bảng ngoại lệ có thể được dùng để lưu trữ các hàng đã được xóa để bạn có thể quyết định sẽ làm gì với chúng sau khi hoạt động nạp hoàn tất Nếu không có bảng ngoại lệ được chỉ định, thì các hàng vi phạm sẽ bị xóa mà không còn dấu vết gì Bảng ngoại lệ sẽ được thảo luận chi tiết hơn ở phần dưới đây

o Ghi lại các thông điệp trong tệp tin thông điệp

Trang 32

4 Pha sao chép chỉ mục:

o Nếu tùy chọn ALLOW READ ACCESS được chỉ định với tùy chọn USE TABLESPACE thì dữ liệu chỉ mục được sao chép từ vùng bảng tạm thời của hệ thống đến vùng bảng nơi chỉ mục sẽ nằm ở đó

Bảng ngoại lệ là bảng do người dùng định nghĩa, bảng này phải có cùng định

nghĩa cột như của bảng đích đang được nạp Nếu ít nhất một trong các cột đó không có mặt trong bảng ngoại lệ, thì các hàng vi phạm sẽ bị hủy Chỉ có thể được thêm vào hai cột bổ sung ở phần cuối của bảng: một cột mốc thời gian để ghi lại khi nào hàng được chèn vào, và một cột CLOB để lưu trữ các lý do (hoặc thông điệp) tại sao dòng đó bị coi là sai

Bạn sẽ nhận thấy rằng một số khái niệm trình bày tại phần này không được chi tiết Chúng ta sẽ sử dụng một số ví dụ và ghép chúng cùng với nhau trong phần còn lại của mục này

Ví dụ về nạp dữ liệu

Ta hãy xem xét một ví dụ để minh họa các bước của một quá trình nạp:

LOAD FROM emp.ixf OF IXF

MESSAGES msg.out

MODIFIED BY DUMPFILE=c:\emp.dmp

Trang 33

TEMPFILES PATH d:\tmp

INSERT INTO employee

FOR EXCEPTION empexp

 Trong sơ đồ trên, mục (1) cho thấy nội dung của tệp tin nguồn đầu vào

 Bảng đích EMPLOYEE hiển thị trong mục (2) được tạo ra với định nghĩa cột sau đây:

o Cột đầu tiên phải là duy nhất

o Cột cuối cùng là một cột số và không được gán giá trị NULL

 Bảng ngoại lệ, EMPEXP tại mục (3), được tạo ra với cùng các cột như của bảng EMPLOYEE cũng như với các cột mốc thời gian và thông điệp

Ở pha nạp, tất cả các dữ liệu từ tệp tin đầu vào được nạp vào bảng đích

EMPLOYEE - ngoại trừ hai dòng đánh dấu màu hồng, vì chúng không phù hợp với định nghĩa cột NOT NULL và NUMERIC Vì biến tố DUMPFILE được chỉ

rõ, nên chúng được ghi lại vào tệp tin C:\emp.dmp

Ở pha xóa, hai hàng được đánh dấu màu vàng được xóa khỏi bảng đích

EMPLOYEE và được chèn vào bảng ngoại lệ EMPEXP Điều này xảy ra do sự vi phạm quy tắc duy nhất của cột đầu tiên trong bảng đích EMPLOYEE

Tại phần cuối của pha nạp, bạn nên kiểm tra các tệp tin thông điệp, tệp đống rác và bảng ngoại lệ, sau đó quyết định cách để xử lý các hàng bị từ chối Nếu quá trình nạp hoàn tất, thì các tệp tin tạm thời được tạo ra tại địa chỉ D:\tmp được xóa đi

Ngày đăng: 07/08/2014, 09:23

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w