DB2 9.7 Chạy các ứng dụng Oracle trên DB2 9.7 cho Linux, UNIX và Windows

DB2 9.7 cung cấp cho các ứng dụng đã phát triển trên Oracle một sự gắn kết chặt

chẽ với sự hỗ trợ PL/SQL và nhiều hơn nữa

Serge Rielau, Kiến trúc sư SQL, STSM, IBM Toronto Lab

Tóm tắt: IBM® DB2® 9.7 cho Linux®, UNIX® và Windows® có s ự hỗ trợ sẵn

sàng cho các phương ngữ SQL của Oracle và PL/SQL. Điều này cho phép nhiều

ứng dụng đã viết theo Oracle được thực hiện theo DB2. Trong bài viết này, hãy

đón nhận một tổng quan mức cao về khả năng tương thích Oracle có nghĩa là gì

trong DB2. Cho dù bạn muốn chuyển ứng dụng tùy chỉnh của bạn sang DB2 hoặc

mở rộng sự hỗ trợ của nhà cung cấp DBMS của bạn sang DB2, thì bây giờ là lúc

của bạn.

pdf33 trang | Chuyên mục: Oracle | Chia sẻ: dkS00TYs | Lượt xem: 2204 | Lượt tải: 3download
Tóm tắt nội dung DB2 9.7 Chạy các ứng dụng Oracle trên DB2 9.7 cho Linux, UNIX và Windows, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
Các dạng khác nhau cho các vòng lặp (phạm vi, con trỏ và truy vấn). 
 %TYPE and %ROWTYPE giữ chặt các biến và các tham số cho các đối 
tượng khác. 
 Các giao dịch #PRAGMA AUTONOMOUS, cho phép các thủ tục nào thực 
thi trong một giao dịch riêng. 
Hỗ trợ đối tượng PL/SQL 
Có thể sử dụng PL/SQL trong các đối tượng khác nhau cho phép logic thủ tục: 
 Các hàm vô hướng. 
 Trước các bộ kích hoạt của mỗi hàng. 
 Sau các bộ kích hoạt của mỗi hàng. 
 Các thủ tục. 
 Các khối ẩn danh. 
 Các gói PL/SQL. 
Hỗ trợ các gói PL/SQL 
Hầu hết PL/SQL trong các ứng dụng Oracle được chứa trong cái gọi là Các gói 
(PACKAGE). Một gói PL/SQL —không lẫn với một gói DB2— là một bộ sưu tập 
của các đối tượng riêng với khả năng phân biệt giữa các đối tượng có thể truy cập 
bên ngoài và những đối tượng chỉ là các trình trợ giúp để sử dụng bên trong gói. 
ANSI SQL tương đương với một gói được gọi là MODULE. Bây giờ DB2 cung 
cấp hỗ trợ cho các mô đun SQL ANSI cũng như các gói PL/SQL. Đặc biệt, cung 
cấp các khả năng sau đây: 
 GÓI TẠO [HOẶC THAY THẾ] (CREATE [OR REPLACE] PACKAGE), 
xác định các mẫu ban đầu cho các thường trình nhìn thấy bên ngoài. Nó 
cũng xác định tất cả các đối tượng không theo thủ tục, nhìn thấy bên ngoài, 
như các biến và các kiểu. 
 THÂN GÓI TẠO [HOẶC THAY THẾ] (CREATE [OR REPLACE] 
PACKAGE BODY), triển khai thực hiện tất cả các thường trình riêng và 
chung cũng như tất cả các đối tượng riêng khác. 
 Trong một gói hoặc thân gói, các đối tượng sau đây có thể được định nghĩa: 
o Các biến và các hằng số. 
o Các kiểu dữ liệu. 
o Các ngoại lệ. 
o Các hàm vô hướng. 
o Các thủ tục. 
o Các con trỏ. 
 Khởi tạo gói. 
 Các từ đồng nghĩa chung trên các gói. 
DB2 cung cấp các gói lập sẵn phổ biến 
Một số các ứng dụng Oracle sử dụng các gói do RDBMS cung cấp. Đặc biệt, các 
thư viện cung cấp việc tạo báo cáo, e-mail hoặc truyền thông chéo có thể rất phổ 
biến. Để tạo điều kiện hỗ trợ các ứng dụng này cho DB2, DB2 cung cấp các gói 
được liệt kê trong Bảng 7: 
Bảng 7. DB2 cung cấp các gói kèm theo 
Gói Mô tả 
DBMS_OUTPUT 
Cung cấp các khả năng lập báo cáo cơ bản có thể bật hoặc tắt từ 
dòng lệnh. 
UTL_FILE Một mô-đun cho phép làm việc với các tệp trên máy chủ DB2. 
DBMS_SQL 
Một gói cung cấp một SQL API để thực hiện SQL động ngoài 
các câu lệnh hiện có EXECUTE và EXECUTE IMMEDIATE. 
UTL_MAIL Một mô-đun cho phép gửi các thông báo e-mail từ SQL. 
UTL_SMTP 
Một mức API thấp hơn tương tự như UTL_MAIL tạo ra sự tích 
hợp SMTP. 
DBMS_ALERT 
Một gói, khi được sử dụng, cho phép các phiên làm việc khác 
nhau truyền tin bằng cờ hiệu với nhau. 
DBMS_PIPE 
Một mô-đun cho phép các phiên làm việc gửi từng dữ liệu khác 
nhau. 
DBMS_JOB 
Cung cấp một API tương thích tích hợp với bộ xếp lịch các 
nhiệm vụ của DB2. 
DBMS_LOB 
Một API của Oracle để xử lý LOB báo hiệu các hàm LOB lập 
sẵn của DB2. 
DBMS_UTILITY 
Một bộ sưu tập các thủ tục khác nhau được sử dụng trong các 
ứng dụng. 
Các phần mở rộng JDBC cho riêng Oracle 
JDBC là một giao diện khách hàng Java chuẩn. Tuy nhiên, có các phần mở rộng 
đã được thêm vào trình điều khiển JDBC của Oracle để hỗ trợ các kiểu dữ liệu 
không theo tiêu chuẩn riêng. 
Để tối đa hóa mức độ tương thích với các ứng dụng dựa trên công nghệ Java, trình 
điều khiển DB2 9.7 JDBC cung cấp cùng với vài thứ khác, sự hỗ trợ cho các thủ 
tục gọi với con trỏ tham chiếu và các tham số VARRAY. 
Sự hỗ trợ của kịch bản lệnh SQL*Plus khi sử dụng CLPPlus 
Đôi khi các kịch bản lệnh DDL và ngay cả các báo cáo được viết bằng cách sử 
dụng bộ xử lý dòng lệnh SQL*Plus. Để thuận tiện cho việc chuyển các kịch bản 
lệnh này cũng như các kỹ năng của người phát triển đang viết chúng, DB2 cung 
cấp một bộ xử lý dòng lệnh tương thích-SQL*Plus, được gọi là CLPPlus. Công cụ 
này có các chức năng sau: 
 Các tuỳ chọn lệnh tương thích-SQL*Plus. 
 Thay thế biến. 
 Tạo định dạng cột. 
 Các hàm lập báo cáo. 
 Các biến điều khiển. 
 Hình 5. Công cụ CLPLus tương thích-SQL*Plus 
Cho phép DB2 kéo và thả càng dễ dàng càng tốt 
Do sự liên kết chặt chẽ của DB2 với PL/SQL và Oracle SQL, bây giờ không cần 
thiết có một bộ công cụ chuyển dịch phức tạp. Thay vào đó, bạn có thể sử dụng 
Công cụ dịch chuyển dữ liệu của IBM (IBM Data Movement Tool) để đơn giản 
kéo và thả các bảng, các gói hoặc toàn bộ các lược đồ từ Oracle sang DB2. Chỉ 
cần các điều chỉnh tối thiểu trên cơ sở ngoại lệ hoặc di chuyển một ứng dụng sang 
DB2, hoặc sửa đổi một ứng dụng sao cho cùng một nguồn có thể hoạt động dựa 
vào cả DB2 và cả Oracle. 
Các bước có thể đơn giản như: 
1. Thiết lập các biến đăng ký cần thiết: 
o db2set DB2_COMPATIBILITY_VECTOR=ORA 
o db2set DB2_DEFERRED_PREPARE_SEMANTICS=YES 
2. Khởi động lại trình quản lý cơ sở dữ liệu: 
o db2stop 
o db2start 
3. Tạo ra một cơ sở dữ liệu tương thích-Oracle: 
o db2 create database mydb pagesize 32 K 
o db2 update db cfg for mydb using auto_reval deferred_force 
4. Khởi động IBM Data Movement Tool và kết nối vào cơ sở dữ liệu Oracle 
và DB2 (xem Hình 6). Một khi kết nối được thiết lập, bạn có thể chọn lấy 
ra chỉ DDL hoặc cả hai DDL và dữ liệu. Cuối cùng, bạn có hai lựa chọn: 
hoặc bạn triển khai trực tiếp bằng cách thực hiện các kịch bản lệnh đã tạo ra 
hoặc bạn tiếp tục với ô triển khai tương tác. (Cái sau được khuyến cáo cho 
hầu hết các ứng dụng không quan trọng). 
Hình 6. Kéo và thả các lược đồ Oracle vào DB2 khi sử dụng IBM Data 
Movement Tool 
5. Di chuyển các lược đồ dự kiến từ Oracle sang DB2 khi sử dụng triển khai 
tương tác (xem Hình 7). Trong chế độ triển khai tương tác, bạn thấy một 
cây-dẫn hướng (nav-tree) hiển thị tất cả các đối tượng được trích ra từ cơ sở 
dữ liệu Oracle. Chọn tất cả các đối tượng và thực hiện tùy chọn trình đơn 
triển khai. Kết quả là, công cụ sẽ sao chép các đối tượng qua DB2 và ghi lại 
sự phát triển của nó. Một số đối tượng có thể không triển khai thành công 
và công cụ này cho phép bạn tùy chọn để làm việc với những đối tượng đó. 
Khi lựa chọn một đối tượng, bạn sẽ thấy DDL cùng với lỗi DB2 gặp phải. 
Lúc này bạn có thể sửa định nghĩa khi cần và triển khai lại bằng cách sử 
dụng trình soạn thảo lập sẵn. Mục đích là để chuyển dịch tương tác tất cả 
các đối tượng sang DB2 trên một cơ sở ngoại lệ. 
Hình 7. Kéo và thả các lược đồ Oracle vào DB2 khi sử dụng IBM Data 
Movement Tool 
Đánh giá sự hỗ trợ cho DB2 
Để cho phép ứng dụng của bạn chuyển sang DB2 9.7 dễ dàng vậy sao? Câu trả lời 
đương nhiên là, còn tùy. IBM có một công cụ bên trong có tên là MEET DB2, có 
thể phân tích tất cả các đối tượng trong cơ sở dữ liệu Oracle của bạn và cho điểm 
nó. Nó tạo một báo cáo về cái sẽ thực hiện và nơi cần điều chỉnh. Đại diện tài 
khoản IBM của bạn hoặc đầu mối bán hàng có thể chạy tiện ích này để giúp cung 
cấp nhanh chóng một đánh giá về khả năng tương thích của cơ sở dữ liệu Oracle 
hiện tại của bạn với DB2. 
 Hình 8. Công cụ báo cáo MEET DB2 cho việc đánh giá 
Trong giai đoạn thử nghiệm beta một năm của bản DB2 9.7, nhiều ứng dụng với 
hơn 750.000 dòng mã PL/SQL đã được phân tích chi tiết với tỷ lệ chuyển đổi sử 
dụng được ngay trung bình là 90 đến 99%. 
 Hình 9. Tỷ lệ trung bình 98% cho các câu lệnh được hỗ trợ 
Các hạn chế 
PL/SQL, thư viện gói kèm theo và CLPPlus hiện nay không có sẵn cho 
DB2Express, DB2 Express-C và DB2 Personal Editions (các ấn bản dành cho 
DB2 cá nhân). 
Tóm tắt 
Nhờ trợ giúp của SQL nhiều phương ngữ vốn có, DB2 9.7 cho phép hỗ trợ dễ 
dàng các ứng dụng Oracle chuyển sang DB2. Các nhà cung cấp các ứng dụng 
đóng gói có thể đưa ra các ứng dụng của họ trên cả Oracle lẫn DB2 với chi phí 
phát sinh tối thiểu. Các khách hàng có thể tự do lựa chọn nhà cung cấp công nghệ 
họ cần, mà không bị hạn chế bởi các sự lựa chọn trong quá khứ. 
Để thử nghiệm các tính năng này, bạn có thể tải về một phiên bản dùng thử của 
DB2 9.7 (xem Tài nguyên). 
Câu hỏi thường gặp 
Phiên bản nào của Oracle có hỗ trợ DB2 9.7? 
Mức độ bao phủ được tạo ra cho các phương ngữ SQL và PL/SQL hoàn toàn dựa 
vào những gì đang được các ứng dụng sử dụng. Có những tính năng đã được giới 
thiệu trong các bản phát hành gần đây như là Oracle 11g được hỗ trợ, trong khi 
một số cấu trúc có sẵn trong Oracle 8i không được hỗ trợ. Trong một nghiên cứu 
về 18 ứng dụng tổng cộng có trên 750,000 dòng, 90 đến 99% mã được chuyển 
sang DB2 mà không thay đổi. Nhiều việc điều chỉnh còn lại có thể được thực hiện 
tự động hoặc nếu không thì bằng tay. 
Ứng dụng Oracle của tôi sẽ chạy trên DB2 nhanh như thế nào? 
Đó là câu hỏi đáng giá triệu đô la! Thật không may, các điều khoản cấp phép của 
Oracle cấm bất cứ ai công bố kết quả thử nghiệm khi chưa được sự đồng ý trước 
bằng văn bản. Khỏi cần phải nói, chúng tôi đã không bận tâm phải hỏi. Tuy nhiên, 
bằng cách thiết kế riêng của mình và được xác nhận bằng việc kiểm tra so sánh 
bảo đảm chất lượng , một ứng dụng được viết dựa vào PL/SQL trên DB2 cũng 
nhanh như một ứng dụng được viết dựa vào SQL PL trên DB2. Các nhà cung cấp, 
những người đã qua qui trình hỗ trợ này đã ngạc nhiên vui vẻ. 
Nó đã cung cấp các tính năng này cho bao nhiêu công việc? 
Không giống nhiều như người ta có thể nghĩ. Một số công việc khởi đầu, như 
CONNECT BY và NUMBER, đã làm việc với DB2 9.5 theo kiểu chiến thuật. Một 
cách nghiêm túc, nỗ lực này đã được hoàn thành trong vòng ít hơn 18 tháng. 
Những khó khăn chung trong việc cho phép chuyển từ Oracle sang DB2 là gì? 
Tính tương thích của DB2 không rõ ràng 100%. Như vậy có khả năng sẽ có một số 
trục trặc khi lần đầu tiên bạn chuyển sang DB2. Tất nhiên, nhiều khó khăn không 
quan trọng và dễ dàng sửa chữa. Ví dụ, DB2 hỗ trợ các bộ kích hoạt PL/SQL, 
nhưng không cho phép kết hợp các hành động của bộ kích hoạt. Đó là, một bộ 
kích hoạt được chia sẻ cho các hoạt động UPDATE, DELETE và INSERT. Bây 
giờ, hãy đưa ra một bộ kích hoạt nhiều hoạt động PL/SQL, thật khá dễ dàng để sao 
chép nó thành ba bộ kích hoạt DB2 PL/SQL khi sử dụng một biến boolean để 
INSERTED, UPDATED và DELETED. 

File đính kèm:

  • pdfDB2 9.7 Chạy các ứng dụng Oracle trên DB2 9.7 cho Linux, UNIX và .pdf
Tài liệu liên quan