intTypePromotion=1

Công cụ di chuyển dữ liệu sang IBM

Chia sẻ: Nguyen Nhi | Ngày: | Loại File: PDF | Số trang:45

0
63
lượt xem
5
download

Công cụ di chuyển dữ liệu sang IBM

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Di chuyển dữ liệu từ các cơ sở dữ liệu nguồn tới DB2 theo cách dễ dàng Vikram S. Khatri, Chuyên gia tư vấn Công nghệ thông tin có chứng chỉ, IBM Tóm tắt: Bài viết này trình bày một công cụ rất đơn giản và mạnh mẽ để di chuyển (migration) dữ liệu từ nhiều nguồn khác nhau một cách dễ dàng. Công cụ này cho phép các ứng dụng từ Oracle và Sybase chạy trên DB2® phiên bản 9.7 của IBM®, cho Linux®, UNIX® và Windows® như nó vốn có, với thay đổi rất ít hoặc...

Chủ đề:
Lưu

Nội dung Text: Công cụ di chuyển dữ liệu sang IBM

  1. Công cụ di chuyển dữ liệu sang IBM Di chuyển dữ liệu từ các cơ sở dữ liệu nguồn tới DB2 theo cách dễ dàng Vikram S. Khatri, Chuyên gia tư vấn Công nghệ thông tin có chứng chỉ, IBM Tóm tắt: Bài viết này trình bày một công cụ rất đơn giản và mạnh mẽ để di chuyển (migration) dữ liệu từ nhiều nguồn khác nhau một cách dễ d àng. Công cụ này cho phép các ứng dụng từ Oracle và Sybase chạy trên DB2® phiên bản 9.7 của IBM®, cho Linux®, UNIX® và Windows® như nó vốn có, với thay đổi rất ít hoặc không cần thay đổi gì. Công cụ này cũng có thể được sử dụng để di chuyển dữ liệu từ nhiều hệ thống quản lý cơ sở dữ liệu khác nhau sang DB2 cho Linux, UNIX và Windows và DB2 cho z/OS®. Công cụ này cũng hỗ trợ di chuyển dữ liệu từ một cơ sở dữ liệu nguồn tới DB2 trong một môi trường pureScale. Mở đầu Công cụ di chuyển này có thể được sử dụng để di chuyển dữ liệu từ các nguồn dữ liệu khác nhau tới DB2 trong một môi trường pureScale. Khi bắt đầu với DB2 V9.7 cho Linux, UNIX và Windows, để sử dụng các ứng dụng từ Oracle và Sybase (sau bản Fixpack 3) trên các sản phẩm DB2 không đòi hỏi Bộ công cụ di chuyển (Migration Toolkit - MTK). Công cụ này thay thế chức năng MTK với một dòng công việc đơn giản hơn nhiều. Đối với tất cả các kịch bản khác, ví dụ, di chuyển dữ liệu từ một cơ sở dữ liệu tới DB2 cho z/OS, công cụ này hỗ trợ MTK rất nhiều trong lĩnh vực di chuyển dữ liệu tốc độ cao. Khi sử dụng công cụ này, nhiều hơn 4TB dữ liệu đã được di chuyển chỉ trong ba ngày.
  2. Công cụ này có giao diện GUI dễ sử dụng với người mới bắt đầu, trong khi người dùng cao cấp thường ưa thích dùng API dòng lệnh. Chuẩn bị Tải về Trước tiên, tải về công cụ này từ phần Tải về vào máy chủ DB2 đích của bạn. Để di chuyển dữ liệu tới DB2 cho z/OS cần các bước bổ sung thêm. (Kiểm tra phiên bản hiện có mới nhất của công cụ này.) Cài đặt Một khi bạn đã tải về tệp IBMDataMovementTool.zip, hãy trích xuất các tệp này vào một thư mục tên là IBMDataMovementTool trên máy chủ DB2 đích của bạn. Chúng tôi khuyên bạn nên cài đặt phía máy chủ (trên DB2) để đạt được hiệu năng di chuyển dữ liệu tốt nhất. Các điều kiện tiên quyết DB2 V9.7 nên được cài đặt trên máy chủ đích của bạn nếu bạn đang bật lên  một ứng dụng Oracle để chạy trên DB2 cho Linux, UNIX và Windows. Java™ phiên bản 1.5 hoặc cao hơn phải được cài đặt trên máy chủ đích của  bạn. Để kiểm tra phiên bản Java hiện tại của bạn, hãy chạy lệnh java - version. Theo mặc định, Java được cài đặt như một phần của DB2 cho Linux, UNIX và Windows trong \SQLLIB\java\jdk (Windows) or /opt/ibm/db2/V9.7/java/jdk (Linux). Bảng 1. Nơi đặt các trình điều khiển JDBC cho cơ sở dữ liệu nguồn và DB2 của bạn
  3. Các trình điều khiển JDBC Cơ sở dữ liệu ojdbc5.jar hoặc ojdbc6.jar hoặc ojdbc14.jar, xdb.jar, xmlparserv2.jar hoặc classes12.jar hoặc classes111.jar for Oracle Oracle 7 hoặc 8i sqljdbc5.jar hoặc sqljdbc.jar SQL Server jconn3.jar và antsjconn2.jar cho tính năng DB2 SKIN Sybase mysql-connector-java-5.0.8-bin.jar hoặc trình điều khiển mới MySQL nhất postgresql-8.1-405.jdbc3.jar hoặc trình điều khiển mới nhất PostgreSQL db2jcc.jar, db2jcc_license_cu.jar hoặc db2jcc4.jar, DB2 cho Linux, UNIX và Windows db2jcc4_license_cu.jar db2jcc.jar, db2jcc_license_cisuz.jar hoặc db2jcc4.jar, DB2 for z db2jcc4_license_cisuz.jar jt400.jar DB2 for i terajdbc4.jar và tdgssconfig.jar Teradatra
  4. Tùy chọn Access_JDBC30.jar MS Access Thiết lập môi trường UNIX: Đăng nhập vào máy chủ của bạn như là chủ sở hữu cá thể (instance)  DB2. Windows: Khởi chạy một cửa sổ lệnh DB2.  Chuyển đến thư mục IBMDataMovementTool. Công cụ này là một tệp  JAR có hai kịch bản lệnh của trình điều khiển để chạy công cụ này. IBMDataMovementTool.cmd - Command script to run the tool on Windows. IBMDataMovementTool.sh - Command script to run the tool on UNIX. IBMDataMovementTool.jar - JAR file of the tool. Pipe.dll - A DLL required on Windows if pipe option is used.  Tạo cơ sở dữ liệu đích DB2 Do cần một kết nối cơ sở dữ liệu tới đích để chạy công cụ này, nên cơ sở dữ liệu DB2 phải được tạo ra đầu tiên. Trên DB2 V9.7, chúng tôi khuyên bạn nên sử dụng lưu trữ tự động mặc định và chọn kích thước trang 32KB. Khi cho phép các ứng dụng được chạy trên DB2 V9.7, cá thể và cơ sở dữ liệu phải đang hoạt động trong
  5. chế độ tương thích. Cũng nên điều chỉnh hành vi làm tròn để khớp với cơ sở dữ liệu đó của Oracle. Bạn có thể triển khai các đối tượng ngoài thứ tự phụ thuộc bằng cách thiết lập ngữ nghĩa xác nhận lại hợp lệ là deferred_force. Trên các hệ thống UNIX $ db2set DB2_COMPATIBILITY_VECTOR=ORA $ db2set DB2_DEFERRED_PREPARE_SEMANTICS=YES $ db2stop force $ db2start $ db2 "create db testdb automatic storage yes on /db2data1, /db2data2,/db2data3 DBPATH ON /db2system PAGESIZE 32 K" $ db2 update db cfg for testdb using auto_reval deferred_force $ db2 update db cfg for testdb using decflt_rounding round_half_up Trên các hệ thống Windows C:\> db2set DB2_COMPATIBILITY_VECTOR=ORA C:\> db2set DB2_DEFERRED_PREPARE_SEMANTICS=YES C:\> db2stop force
  6. C:\> db2start C:\> db2 "create db testdb automatic storage yes on C:,D: DBPATH ON E: PAGESIZE 32 K" C:\> db2 update db cfg for testdb using auto_reval deferred_force C:\> db2 update db cfg for testdb using decflt_rounding round_half_up Trích xuất các đối tượng và dữ liệu Trước khi bạn chạy công cụ này, có sẵn thông tin sau đây cho máy chủ nguồn và máy chủ DB2 của bạn: Địa chỉ IP hoặc Tên máy chủ (Host Name) của các máy chủ nguồn và các  máy chủ DB2. Các số cổng kết nối.  Tên của các cơ sở dữ liệu, SID, tên hệ thống con v.v.. khi cần.  Một mã định danh người dùng (User ID) với các đặc quyền của quản trị  viên cơ sở dữ liệu (DBA) trên cơ sở dữ liệu nguồn. Mật khẩu cho người dùng đó.  Nơi đặt cơ sở dữ liệu nguồn và trình điều khiển DB2 JDBC của bạn.  Có đủ thông tin về dung lượng hoặc khối lượng/điểm lắp đặt tại nơi dữ liệu  sẽ được lưu trữ.
  7. Chạy IBMDataMovementTool.cmd trên Windows hoặc ./IBMDataMovementTool.sh trên UNIX. Công cụ này sẽ bắt đầu một GUI nếu máy chủ có khả năng hiển thị đồ họa. Nếu không nó sẽ chuyển sang chế độ d òng lệnh tương tác để thu thập đầu vào. Trên Windows: IBMDataMovementTool.cmd Trên UNIX: chmod +x IBMDataMovementTool.sh ./IBMDataMovementTool.sh DB2_COMPATIBILITY_VECTOR là gì? Dùng DB2_COMPATIBILITY_VECTOR để đặt cả hai cá thể và cơ sở dữ liệu DB2 V9.7 vào trong một chế độ tương thích với Oracle. Để biết chi tiết hãy xem Trung tâm Thông tin DB2 V9.7. Bây giờ bạn sẽ thấy một cửa sổ GUI (Giao diện đồ họa người dùng). Một số thông báo cũng sẽ xuất hiện trong cửa sổ trình vỏ (shell). Hãy xem qua các thông báo này để đảm bảo không có lỗi nào được ghi nhật ký trước khi bạn bắt đầu sử dụng GUI.
  8. Nếu bạn chưa thiết lập DB2_COMPATIBILITY_VECTOR, công cụ này sẽ đưa ra một cảnh báo. Hãy làm theo các bước sau để thiết lập vector tương thích nếu bạn vẫn chưa làm như vậy. [2010-01-10 17.08.58.578] INPUT Directory = . [2010-01-10 17.08.58.578] Configuration file loaded: 'jdbcdriver.properties' [2010-01-10 17.08.58.593] Configuration file loaded: 'IBMExtract.properties' [2010-01-10 17.08.58.593] appJar : 'C:\IBMDataMovementTool\IBMDataMovementTool.jar' [2010-01-10 17.08.59.531] DB2 PATH is C:\Program Files\IBM\SQLLIB [2010-01-10 17.35.30.015] *** WARNING ***. The DB2_COMPATIBILITY_VECTOR is not set. [2010-01-10 17.35.30.015] To set compatibility mode, discontinue this program and run the following commands [2010-01-10 17.35.30.015] db2set DB2_COMPATIBILITY_VECTOR=FFF [2010-01-10 17.35.30.015] db2stop force [2010-01-10 17.35.30.015] db2start
  9. Sử dụng giao diện người dùng đồ họa Màn hình giao diện người dùng đồ họa (GUI) như trong Hình 1 có các trường để xác định thông tin kết nối cơ sở dữ liệu nguồn và cơ sở dữ liệu DB2. Chuỗi các sự kiện trong màn hình này là: 1. Chỉ rõ thông tin kết nối nguồn và DB2. 2. Nhấn vào Connect to Oracle (Kết nối với Oracle) để kiểm tra kết nối. 3. Nhấn vào Connect to DB2 (Kết nối với DB2) để kiểm tra kết nối. 4. Chỉ rõ thư mục làm việc để trích xuất DDL và dữ liệu vào đó. 5. Chọn cái bạn muốn giữa DDL và/hoặc Dữ liệu. Nếu bạn chỉ chọn DDL, một kịch bản lệnh genddl bổ sung sẽ được tạo ra. 6. Nhấn vào nút Extract DDL/Data (Trích xuất DDL/Dữ liệu). Bạn có thể theo dõi tiến trình trong cửa sổ bàn điều khiển. 7. Sau khi hoàn thành trích xuất dữ liệu thành công, hãy xem xét kỹ các tệp đầu ra kết quả với các trạng thái về dịch chuyển dữ liệu, các c ảnh báo, các lỗi và các vấn đề tiềm năng khác. 8. Theo tùy chọn, bạn có thể nhấn vào nút View Script/Output (Xem Kịch bản lệnh/Đầu ra) để kiểm tra các kịch bản lệnh, DDL, dữ liệu hoặc tệp bản ghi nhật ký kết quả đầu ra được tạo ra. 9. Nhấn vào nút Deploy DDL/Data (Triển khai DDL/Dữ liệu) để tạo ra các bảng, các chỉ mục trong DB2 và nạp dữ liệu đã được trích xuất từ cơ sở dữ liệu nguồn.
  10. 10. Bạn có thể sử dụng Execute DB2 Script (Thực hiện Kịch bản lệnh DB2 ) để chạy các kịch bản lệnh DB2 được tạo ra thay vì chạy nó từ dòng lệnh. Việc di chuyển dữ liệu là một hành động tương tác. Nếu bạn cần hủy bỏ tất cả các bảng trước khi bạn bắt đầu làm mới, bạn có thể chọn kịch bản lệnh bảng hủy bỏ và thực hiện nó. Bạn cũng có thể sử dụng nút này để thực hiện các kịch bản lệnh theo thứ tự mà bạn muốn thực hiện chúng. Hình 1. Các tham số đầu vào cho cơ sở dữ liệu nguồn và DB2 Sau khi nhấn vào nút Extract DDL/Data, bạn sẽ nhận thấy các thông báo của công cụ trong thẻ View File (Xem tệp), như trong Hình 2:
  11. Hình 2. Trích xuất DDL và Dữ liệu Sau khi hoàn thành việc trích xuất DDL và Dữ liệu, bạn sẽ nhận thấy một số tệp mới được tạo ra trong thư mục làm việc. Có thể sử dụng những tệp này tại dòng lệnh để chạy trong DB2. Các tệp cấu hình Các kịch bản lệnh sau đây được tạo mỗi khi bạn chạy công cụ này trong chế độ GUI. Tuy nhiên, bạn có thể sử dụng các kịch bản lệnh này để thực hiện tất cả các bước di chuyển dữ liệu mà không có GUI. Điều này có ích khi bạn muốn nhúng công cụ này như là một phần của một khối xử lý để thực hiện di chuyển dữ liệu tự động. Bảng 2. Các kịch bản lệnh
  12. Tên tệp M ô tả Tệp này chứa tất cả tham số đầu vào mà bạn đã chỉ định thông qua các giá trị đầu vào GUI hoặc dòng lệnh của IBMExtract.propertiesbạn. Bạn có thể tự tay chỉnh sửa tệp này để thay đổi hoặc sửa chữa các tham số. Lưu ý: Tệp này bị ghi đè mỗi khi bạn chạy GUI này. Kịch bản lệnh này do công cụ này tạo ra. Nó tải lên dữ liệu từ máy chủ cơ sở dữ liệu nguồn đến các tệp phẳng, khi bạn đánh dấu chọn tùy chọn DDL và Dữ liệu. Kịch bản lệnh tương tự cũng chuyển dữ liệu từ cơ sở dữ liệu nguồn đến DB2 bằng cách sử dụng các đường ống, khi unload bạn đánh dấu chọn tùy chọn pipe (đường ống) trong GUI để loại bỏ các tệp phẳng trung gian. Tùy chọn đường ống này được điều khiển thông qua tùy chọn usePipe (sử dụng đường ống) trong tệp IBMExtract.properties. Kịch bản lệnh này do công cụ này tạo ra và bạn có thể chạy nó sau khi triển khai dữ liệu để kiểm tra số đếm rowcount hàng (rowcount) trong cơ sở dữ liệu nguồn và DB2.
  13. Hình 3. Các tệp được tạo ra sau khi trích xuất dữ liệu Sử dụng chế độ dòng lệnh
  14. Bạn có thể chạy công cụ này bằng cách sử dụng cụ thể chế độ dòng lệnh khi không có sẵn khả năng GUI. Công cụ này chuyển đổi tự động các chế độ khi nó không thể khởi động GUI. Nếu bạn muốn bắt buộc chạy công cụ n ày trong chế độ tương tác dòng lệnh, thì bạn có thể chỉ rõ tùy chọn -console cho lệnh IBMDataMovementTool. Trên Windows: IBMDataMovementTool -console Trên UNIX: ./IBMDataMovementTool.sh -console Bạn sẽ được giới thiệu các tùy chọn tương tác để xác định các tham số kết nối cơ sở dữ liệu nguồn và DB2 theo tiến trình từng bước một. Một đầu ra ví dụ từ cửa sổ bàn điều khiển được thể hiện như sau: [2010-01-10 20.08.05.390] INPUT Directory = . [2010-01-10 20.08.05.390] Configuration file loaded: 'jdbcdriver.properties' [2010-01-10 20.08.05.390] Configuration file loaded: 'IBMExtract.properties' [2010-01-10 20.08.05.390] appJar :
  15. 'C:\IBMDataMovementTool\IBMDataMovementTool.jar' Debug (Yes) :1 Debug (No) :2 Enter a number (Default=2) : IS TARGET DB2 LOCAL (YES) : 1 IS TARGET DB2 REMOTE (NO) : 2 Enter a number (Default=1) : Extract DDL (Yes) :1 Extract DDL (No) :2 Enter a number (Default=1) : Extract Data (Yes) :1 Extract Data (No) :2 Enter a number (Default=1) : Enter # of rows limit to extract. (Default=ALL) : Enter # of rows limit to load data in DB2. (Default= ALL) : Compress Table in DB2 (No) :1 Compress Table in DB2 (YES) :2
  16. Enter a number (Default=1) : Compress Index in DB2 (No) :1 Compress Index in DB2 (YES) :2 Enter a number (Default=1) : ******* Source database information: ***** Oracle :1 MS SQL Server :2 Sybase :3 MS Access Database :4 MySQL :5 PostgreSQL :6 DB2 z/OS :7 DB2 LUW :8 Enter a number (Default 1) : DB2 Compatibility Feature (DB2 V9.7 or later) : 1 No Compatibility feature :2 Enter compatibility feature (Default=1) :
  17. Triển khai các đối tượng và nạp dữ liệu Tạo các đối tượng đích cơ sở dữ liệu Sau khi trích xuất DDL và Dữ liệu, bạn có ba cách khác nhau để triển khai các đối tượng đã trích xuất trong DB2. Nhấn nút Deploy DDL/DATA từ màn hình GUI.  Chuyển đến thẻ Interactive Deploy ( Triển khai tương tác) và triển khai  các đối tượng theo tiến trình từng bước một. Triển khai DDL/DATA bằng kịch bản lệnh dòng lệnh db2gen  Các tùy chọn để chọn triển khai dữ liệu được dựa trên các yêu cầu di chuyển dữ liệu và các đối tượng. Nếu bạn chỉ đang di chuyển các đối tượng DDL và Dữ liệu không phải PL/SQL, thì việc sử dụng kịch bản lệnh db2gen hoặc nhấn vào nút Deploy DDL/DATA từ các GUI là đủ. Tùy chọn triển khai tương tác có thể là sự lựa chọn tốt hơn của bạn khi bạn cũng đang triển khai các đối tượng PL/SQL như các trigger, các hàm, các thủ tục và các gói PL/SQL. Sử dụng màn hình GUI, như trong Hình 4, để triển khai tương tác của DDL và các đối tượng cơ sở dữ liệu khác. Chuỗi các sự kiện trong màn hình này là: 1. Bảo đảm bạn được kết nối tới DB2 khi sử dụng thẻ Extract/Deploy (Trích xuất/Triển khai). 2. Nhấn vào thẻ Interactive Deploy (Triển khai tương tác).
  18. 3. Sử dụng nút Open Directory (Mở thư mục) để chọn thư mục làm việc có chứa các đối tượng đã trích xuất trước. Các đối tượng này được đọc và được liệt kê trong một khung nhìn dạng cây. 4. Bạn có thể triển khai tất cả các đối tượng bằng cách nhấn nút Deploy All Objects (Triển khai tất cả các đối tượng) trên thanh công cụ. Hầu hết các đối tượng sẽ triển khai thành công trong khi các đối tượng khác có thể hỏng. 5. Khi bạn nhấn vào một đối tượng đã không triển khai được trong khung nhìn dạng cây, bạn có thể xem nguồn gốc của đối tượng đó trong cửa sổ của trình soạn thảo. Lý do của sự thất bại này được liệt kê trong bản ghi nhật ký triển khai dưới đây. 6. Chế độ tương thích Oracle nói chung cho phép triển khai các đối tượng như nó vốn có. Tuy nhiên, có thể vẫn có các tính năng không được hỗ trợ ngăn cản triển khai thành công một vài đối tượng có sẵn. Khi sử dụng trình soạn thảo bạn có thể điều chỉnh mã nguồn của các đối tượng này để giải quyết bất cứ các vấn đề nào. Khi bạn triển khai đối tượng đã thay đổi, nguồn mới được lưu cùng với một sao lưu dự phòng của nguồn cũ. 7. Bạn có thể chọn một hoặc nhiều đối tượng bằng cách sử dụng phím CTRL và nhấn vào nút Deploy Selected Objects (Triển khai các đối tượng đã chọn) trên thanh công cụ để triển khai các đối tượng sau khi đã chỉnh sửa chúng. Thông thường các lỗi triển khai xảy ra theo dạng xếp tầng có nghĩa là một khi một đối tượng đã triển khai thành công thì các đối tượng khác phụ thuộc vào nó cũng sẽ triển khai được. 8. Lặp lại bước từ 5 đến 7 cho đến khi tất cả các đối tượng đã được triển khai thành công.
  19. Hình 4. Triển khai tương tác của các đối tượng So sánh các số đếm hàng Chuyển tới thư mục gốc về di chuyển dữ liệu và chạy kịch bản lệnh  rowcount (số đếm hàng). Bạn sẽ thấy một bản ghi được tạo ra trong tệp ".tables.rowcount". Bản ghi này chứa các số đếm hàng từ cả hai cơ sở dữ liệu nguồn và đích. oracle : db2 "TESTCASE"."CALL_STACKS" : 123 "TESTCASE"."CALL_STACKS" :
  20. 123 "TESTCASE"."CLASSES" : 401 "TESTCASE"."CLASSES" : 401 "TESTCASE"."DESTINATION" : 513 "TESTCASE"."DESTINATION" : 513 Sử dụng các đường ống để di chuyển dữ liệu Khi kích thước cơ sở dữ liệu nguồn quá lớn và không đủ dung lượng để giữ các tệp dữ liệu trung gian, việc sử dụng đường ống là cách được khuyên dùng để di chuyển dữ liệu. Trên các hệ thống Windows Công cụ này sử dụng Pipe.dll để tạo ra các đường ống Windows và đảm bảo rằng dll này được đặt trong cùng thư mục ở đó đặt tệp IBMDataMovementTool.jar. Trên các hệ thống UNIX Công cụ này tạo ra các đường ống UNIX bằng lệnh mkfifo dùng để di chuyển dữ liệu từ nguồn tới DB2. Trước khi bạn có thể sử dụng đường ống giữa cơ sở dữ liệu nguồn và DB2, cần phải tạo định nghĩa bảng. Hãy làm theo thủ tục sau: 1. Chỉ rõ # Extract Rows=1 trong GUI hoặc thiết lập LimitExtractRows=1 trong IBMExtract.properties, khi bạn đang sử dụng cửa sổ dòng lệnh.

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản