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

Di chuyển một ứng dụng PHP từ MySQL sang DB2 Phần 2: Di trú dữ liệu của bạn ppt

17 472 0

Đ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

Định dạng
Số trang 17
Dung lượng 307,92 KB

Nội dung

Di chuyển một ứng dụng PHP từ MySQL sang DB2 Phần 2: Di trú dữ liệu của bạn Giới thiệu về loạt bài này MySQL hiện là máy chủ cơ sở dữ liệu phổ biến nhất được sử dụng với ngôn ngữ lập tr

Trang 1

Di chuyển một ứng dụng PHP từ MySQL sang DB2

Phần 2: Di trú dữ liệu của bạn

Giới thiệu về loạt bài này

MySQL hiện là máy chủ cơ sở dữ liệu phổ biến nhất được sử dụng với ngôn ngữ lập trình PHP

để xây dựng các ứng dụng web động Tuy nhiên, DB2 là một cơ sở dữ liệu phổ biến khác được PHP hỗ trợ đầy đủ và cung cấp các lợi thế hấp dẫn hơn so với MySQL, làm cho nó trở thành một

sự lựa chọn lý tưởng cho nhiều ứng dụng

Loạt bài này mô tả tại sao việc di chuyển một ứng dụng PHP sang DB2 lại có ý nghĩa, cách chuẩn bị cho việc di trú, cách thực hiện nó, cách hỗ trợ nó và cách xử lý các rủi ro tiềm năng dựa trên kinh nghiệm của các tác giả với cuộc di trú mới nhất Nhiều mẫu mã và mẫu cấu hình được cung cấp, cũng như các chỉ dẫn tài nguyên để giúp cho dự án chạy trơn tru

Với các ví dụ và các bài học thu được từ một cuộc chuyển đổi thực tế thành công, bạn sẽ thấy đây có thể là một dự án đơn giản, có đủ tài liệu và cung cấp các lợi ích hấp dẫn

Loạt bài bốn phần này chia sẻ các bài học nhận được từ cuộc di trú MySQL-sang-DB2 thành công cho một ứng dụng mạng nội bộ PHP chủ yếu, cấp độ sản xuất, được 4.000 người dùng toàn cầu trong IBM sử dụng để hỗ trợ sản xuất nội dung cho ibm.com

 Phần 1 mô tả các bước cần thực hiện để chuẩn bị cho việc di trú

 Phần 2 mô tả các bước cần thực hiện để di trú cơ sở dữ liệu

 Phần 3 mô tả các bước cần thực hiện để chuyển đổi mã PHP

 Phần 4 mô tả các bước cần thực hiện để triển khai và hỗ trợ ứng dụng

Bạn sẽ học được điều gì

Mục đích của loạt bài này là cho bạn hiểu những gì cần thiết nói chung để di trú một ứng dụng PHP từ MySQL sang DB2, những tài nguyên nào có sẵn để trợ giúp bạn và một nhóm dự án của IBM đã thực hiện nhiệm vụ này vào đầu năm 2010 như thế nào

Nếu bạn đã nghiên cứu một cuộc di trú từ MySQL sang DB2, bạn có thể đã thấy những giá trị

mà DB2 cung cấp dựa trên tài liệu sản phẩm, các đánh giá tiêu chuẩn về hiệu năng, các tính năng

mà bạn đã đọc trong tài liệu DB2 hoặc các so sánh trong các Sách Đỏ của IBM (IBM

Redbooks®) dành riêng cho nhiệm vụ này, bao gồm sách Hướng dẫn chuyển đổi MySQL sang DB2 (xem phần Tài nguyên)

Bạn có lẽ cũng biết rằng DB2 Express-C là một máy chủ dữ liệu quan hệ chức năng đầy đủ, miễn phí có thể dễ dàng được cài đặt hoặc được đánh giá bằng cách sử dụng IBM Smart Business Development and Test on the Cloud (Phát triển nghiệp vụ thông minh và Thử nghiệm trên Đám mây của IBM hoặc Amazon EC2) Các liên kết đến các tài nguyên này có sẵn trong phần Tài nguyên

Trang 2

Loạt bài này cung cấp cho bạn một ví dụ cụ thể về cuộc di trú thực tế đã được thực hiện thành công như thế nào trong năm 2010 cho một ứng dụng mạng nội bộ PHP được sử dụng rất nhiều trong IBM để hỗ trợ quản lý nội dung hàng ngày được công bố trên nhiều phần của trang Web ibm.com

Sau khi bạn đọc xong loạt bài này, bạn sẽ có thể tạo một trường hợp di trú tương tự, hiểu được thời hạn và các phụ thuộc của các mục công việc cần được thực hiện, dự kiến các rủi ro tiềm năng và biết nơi để tìm kiếm sự hỗ trợ cho từng bước trên đường đi Tất cả điều này sẽ cho bạn

sự tự tin hơn để lựa chọn DB2 và sử dụng nó một cách tốt nhất cho các ứng dụng PHP của bạn hiện đang được phát triển trên MySQL

Những gì không được trình bày

Loạt bài này nhằm chia sẻ các bài học thu được từ một cuộc di trú nội bộ IBM từ MySQL sang DB2 và cung cấp cho bạn thông tin về tài nguyên có sẵn để thực hiện một công cuộc tương tự Loạt bài này không phải là một hướng dẫn toàn diện về di trú để có thể áp dụng được cho tất cả các kịch bản

Để xác định một cách tiếp cận phù hợp với bạn, hãy tham khảo Hướng dẫn chuyển đổi MySQL sang DB2 hoặc liên hệ với SMPO (Software Migration Project Office - Văn phòng dự án di trú

phần mềm) để đánh giá di trú miễn phí Các liên kết này được cung cấp trong phần Tài nguyên

Về đầu trang

Giới thiệu về việc di trú cơ sở dữ liệu

Bài viết này trình bày bốn bước chính để di trú cơ sở dữ liệu từ MySQL sang DB2 Nếu cần thiết, hãy tham khảo Phần 1 của loạt bài này để xem lịch trình của các bước này trong toàn bộ quá trình di trú trước khi bắt đầu di trú

Bước 1: Chuyển đổi cấu trúc cơ sở dữ liệu MySQL sang định dạng DB2

 Tạo một cơ sở dữ liệu mới trong DB2

 Trích xuất cấu trúc cơ sở dữ liệu MySQL nguồn

 Kỹ thuật dịch ngược cơ sở dữ liệu để nhận được một sơ đồ quan hệ-thực thể

 Cải tiến và sửa đổi cấu trúc mô hình dữ liệu

 Chuyển đổi các đối tượng cơ sở dữ liệu khác

Bước 2: Di chuyển dữ liệu MySQL vào cơ sở dữ liệu DB2

 Loại bỏ các bảng và dữ liệu không cần thiết

 Chuyển đổi bất kỳ dữ liệu nào trong cơ sở dữ liệu nguồn có thể không phù hợp với các kiểu dữ liệu DB2 đích

 Trích xuất dữ liệu từ MySQL

 Nạp dữ liệu vào DB2

 Thiết lập lại các gia số cột mã định danh (ID) đã tạo ra

Trang 3

Bước 3: Tạo lại các quyền hạn người dùng và cấu hình quản trị cơ sở dữ liệu

 Thiết lập các tài khoản người dùng cần thiết và gán cho họ các các quyền hạn thích hợp

 Triển khai sao lưu cơ sở dữ liệu và kế hoạch khắc phục thảm họa

 Cấu hình sao chép để tạo ra một hệ thống ảnh gương mà cơ chế báo cáo Cognos

có thể sử dụng

Bước 4: Kiểm lại bước khởi đầu di trú cơ sở dữ liệu

 Đảm bảo rằng việc di trú cơ sở dữ liệu đã xong Nếu không, thực hiện lại các Bước 1-3 cho đến khi việc di trú hoàn thành, như cho thấy trong Hình 1 của Phần 1

 Sao lưu hệ thống

 Chuẩn bị chuyển đổi ứng dụng

Về đầu trang

Tìm hiểu nghiên cứu sâu về ví dụ cơ sở dữ liệu MySQL PTT hiện có

Nhắc nhở

Nếu cần thiết, hãy tự mình tìm hiểu phần Tài nguyên có thể giúp ích trong việc di trú của bạn Các tài nguyên sau có thể đặc biệt có ích cho bước này:

Chương 6, 7 và 9 trong Sách Đỏ của IBM miễn phí (IBM Redbook®) Hướng dẫn chuyển đổi MySQL sang DB2

 Bài viết trên developerWorks "Danh sách khuyến khích đọc: Quản trị cơ sở dữ liệu DB2 cho Linux, UNIX và Windows"

 Loạt bài viết trên developerWorks "Sử dụng các kỹ năng MySQL để tìm hiểu DB2 Express"

Tất nhiên, tài liệu sản phẩm cho các công cụ thường dùng để di trú cơ sở dữ liệu là IBM Data Movement Tool (Công cụ di chuyển dữ liệu của IBM) và Rational Software Architect (Kiến trúc

sư phần mềm Rational) cũng rất quan trọng

Một lựa chọn khác là sử dụng đám mây cho quá trình di trú Bạn có thể sử dụng Amazon EC2 Linux và các AMI của DB2, hoặc đăng ký dùng IBM Development and Test on the IBM Cloud (Phát triển và thử nghiệm của IBM trên đám mây của IBM) (xem phần Tài nguyên)

Để làm cơ sở dữ liệu ví dụ cho bài viết này, chúng tôi sử dụng cơ sở dữ liệu MySQL nguồn cho PTT (Công cụ theo dõi dự án) chứa 150 bảng, trung bình mỗi bảng có 6 cột và lưu trữ tổng cộng khoảng 10 GB dữ liệu văn bản PTT ban đầu được xây dựng dựa trên MySQL phiên bản 3.23 và

đã di trú đến phiên bản 5.0 trong quá trình bảy năm Tất cả các bảng đã sử dụng kiểu máy

MyISAM mặc định

Trang 4

Cơ sở dữ liệu PTT được dùng cho nhiều chức năng khác nhau để hỗ trợ dòng công việc công bố thông tin trên ibm.com Ứng dụng này xử lý các tệp nhị phân, như các ảnh sản phẩm và tài liệu chào bán sản phẩm, nhưng các tệp được lưu trên hệ thống tệp với một liên kết logic chứa trong một cột trong cơ sở dữ liệu chứ không phải lưu trữ tệp trong chính cơ sở dữ liệu đó như là dữ liệu nhị phân

Hơn 4.000 người dùng trên toàn thế giới truy cập và sửa đổi cơ sở dữ liệu này thông qua xử lý trước web PHP Tại bất kỳ thời điểm nào đều có vài trăm người dùng đang hoạt động đồng thời trên hệ thống

Dữ liệu được cung cấp từ chỉ một máy chủ MySQL chính, được sử dụng cho cả đọc và viết Một

cơ sở dữ liệu bản sao được duy trì đồng bộ và được sử dụng để tạo báo cáo chỉ đọc và các truy vấn không dự tính trước Dữ liệu được sao lưu và lưu trữ hàng đêm

Bài này mô tả cách tạo một cấu hình tương tự trên một hệ thống DB2 mới Bạn cũng sẽ tối ưu hóa thiết kế cơ sở dữ liệu của bạn, cải thiện tính toàn vẹn và chất lượng dữ liệu của nó và loại bỏ các cấu trúc không sử dụng hoặc đã lỗi thời Điều này sẽ giúp bạn đơn giản hóa việc di trú bằng cách giảm số lượng các đối tượng được di chuyển, tiết kiệm không gian lưu trữ bằng cách giảm kích thước của dữ liệu được di trú và làm giảm khả năng nhầm lẫn phát sinh từ sự tồn tại của dữ liệu không sử dụng

Về đầu trang

Cài đặt phần mềm di trú

Để chuẩn bị cho việc di trú cơ sở dữ liệu ví dụ, hãy cài đặt các thành phần sau đây trên một máy trạm Windows được dùng để thực hiện các bước di trú

Một phiên bản của bản sao MySQL của cơ sở dữ liệu nguồn

Việc di trú cơ sở dữ liệu là một quá trình lặp lại, vì vậy cài đặt một bản sao của cơ sở dữ liệu MySQL nguồn trên máy trạm để truy cập dễ dàng Điều này cho phép hiệu năng trong quá trình di trú tốt hơn so với nếu cài đặt nó trên một hệ thống từ xa và nó cho phép

tự do sửa đổi cơ sở dữ liệu nguồn nếu cần thiết khi bạn thực hiện các bước di trú

Một phiên bản của DB2

Cài đặt DB2 để tạo ra cơ sở dữ liệu đích mới trên máy trạm Nói chung, bản cài đặt này không nhất thiết phải là cùng ấn bản như cơ sở dữ liệu được sử dụng trong sản xuất, nhưng để tương thích tính năng đầy đủ, chọn cùng ấn bản là một ý tưởng tốt Để làm theo các ví dụ trong bài viết này, hãy cài đặt DB2 Enterprise Server Edition (Ấn bản máy chủ doanh nghiệp DB2) Phiên bản 9.7.2

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

Tải về và giải nén phiên bản mới nhất của IBM Data Movement Tool (Công cụ di chuyển

dữ liệu của IBM) (xem phần Tài nguyên), mà bạn có thể sử dụng để trích xuất cơ sở dữ liệu từ MySQL và nhập khẩu nó vào DB2

Một môi trường phát triển tích hợp (IDE) dựa trên Eclipse của IBM với một phối cảnh dữ liệu (tùy chọn)

Trang 5

Bạn có thể sử dụng một bản phân phối Rational® Software Architect hiện có, vì nó là một công cụ phát triển tất cả-trong-một có thể được sử dụng để hiển thị trực quan và chỉnh sửa các mô hình cơ sở dữ liệu Bạn có thể tìm thấy một liên kết đến Rational

Software Architect và các công cụ tương tự như InfoSphere™ Data Architect và Optim™ Development Studio trong phần Tài nguyên

Hãy chắc chắn ghi lại chi tiết các quyết định cấu hình của bạn và các bài học thu được một cách cẩn thận để bạn có thể lặp lại các bước khi triển khai Xem xét việc lưu trữ một bản chụp của hệ điều hành Windows với một ảnh ảo tại các cột mốc chủ yếu khi đạt được các mục tiêu quan trọng để dùng như các bản sao lưu cấu hình và các vạch khởi đầu để so sánh cải thiện cơ sở dữ liệu thêm nữa

Nếu bạn muốn chụp một ảnh của một cấu hình máy vật lý, bạn có thể làm như vậy với VMware vCenter Converter miễn phí Một cách thay thế khác là xem xét dùng đám mây để làm các thay đổi năng động này Bạn có thể sử dụng các AMI DB2 của Amazon EC2, hoặc bạn có thể đăng

ký dùng Phát triển của IBM và thử nghiệm trên đám mây của IBM (IBM Development and Test

on the IBM Cloud) Với các máy tính ảo, bạn sẽ có thể tránh được các cố gắng ban đầu để mua phần cứng máy chủ và cài đặt một hệ điều hành và DB2 Nó cũng sẽ tiết kiệm thời gian, tăng tốc

độ di trú và cung cấp cho bạn sự tự tin để thí nghiệm với cấu hình phù hợp nhất với các nhu cầu của bạn Có thể tìm thấy các liên kết đến tất cả các sản phẩm này trong phần Tài nguyên

Về đầu trang

Bước 1 Chuyển đổi cấu trúc cơ sở dữ liệu MySQL sang định dạng DB2

Một khi bạn thiết lập phần mềm cần phải có trước trên máy trạm, bước quan trọng đầu tiên là trích xuất các bảng từ cơ sở dữ liệu MySQL của chúng ta và tạo lại chúng trong cơ sở dữ liệu DB2 mới Bước này liên quan đến việc hoàn thành các bước con sau đây:

 Tạo một cơ sở dữ liệu mới trong DB2

 Trích xuất cấu trúc cơ sở dữ liệu MySQL nguồn

 Kỹ thuật dịch ngược cơ sở dữ liệu để nhận được một sơ đồ quan hệ-thực thể

 Cải tiến và sửa đổi cấu trúc mô hình dữ liệu

 Chuyển đổi các đối tượng cơ sở dữ liệu khác

Tạo một cơ sở dữ liệu mới trong DB2

Ứng dụng PTT hỗ trợ những người dùng trên toàn cầu, vì vậy ngay từ đầu điều quan trọng là đảm bảo rằng cơ sở dữ liệu DB2 mới có thể hỗ trợ một số ngôn ngữ và các bộ ký tự khác nhau

Để hỗ trợ yêu cầu này, tạo một cơ sở dữ liệu với bộ mã UTF-8

Cùng với việc lựa chọn một bộ mã, hãy đánh giá thuật toán thứ tự chữ cái nào sẽ thích hợp cho

các mục đích của bạn Việc thiết lập thứ tự chữ cái xác định cách DB2 sắp xếp và tính toán dữ

liệu văn bản trong cơ sở dữ liệu của bạn, và nó có thể ảnh hưởng đến hiệu năng so sánh chuỗi ký

tự

Trang 6

Để bảo toàn hành vi không phân biệt dữ liệu chữ hoa chữ thường khi hệ thống dựa trên MySQL của bạn xử lý dữ liệu, hãy chọn thuật toán thứ tự chữ cái Unicode UCA500R1_S1

(UCA500R1_S1 Unicode Collation Algorithm), xử lý chữ hoa chữ thường và sắp xếp ngang

nhau Với cấu hình này, các chuỗi ký tự role, Role, và rôle được sắp xếp và so sánh bằng nhau

Sau khi bạn chọn các yêu cầu bộ mã ký tự và thứ tự chữ cái, lệnh để tạo cơ sở dữ liệu DB2 mới được hiển thị trong Liệt kê 1 Bạn có thể chạy lệnh này trong bộ xử lý dòng lệnh đi kèm với DB2 Các ngắt dòng được thêm vào cho dễ đọc

Liệt kê 1 Lệnh được sử dụng để tạo ra cơ sở dữ liệu DB2 mới

CREATE DATABASE PTT

USING CODESET UTF-8

TERRITORY US

COLLATE USING UCA500R1_S1

PAGESIZE 4096;

Bạn có thể chấp nhận một số giá trị mặc định khi tạo cơ sở dữ liệu, cho phép DB2 tự lo một số nhiệm vụ bảo trì tự động bằng cách sử dụng các tính năng tự trị dựng sẵn Ví dụ, lưu trữ tự động theo mặc định và kích hoạt trình quản lý bộ nhớ tự điều chỉnh

Có rất nhiều tùy chọn khác mà bạn có thể quy định vào lúc tạo cơ sở dữ liệu Thật hợp lý để nghiên cứu các giá trị thiết lập, vì cấu hình đúng cơ sở dữ liệu của bạn ngay từ đầu sẽ sáng suốt

hơn là áp dụng các thiết lập sau đó Mục 6.2.1 trong Hướng dẫn chuyển đổi MySQL sang DB2

(xem phần Tài nguyên) trình bày chi tiết về nhiều tùy chọn này

Trích xuất cấu trúc cơ sở dữ liệu MySQL nguồn

Nhiệm vụ tiếp theo là trích xuất cấu trúc cơ sở dữ liệu từ MySQL và nạp nó vào DB2 Nếu bạn

có một cơ sở dữ liệu nhỏ, bạn có thể sử dụng tiện ích mysqldump để trích xuất DDL nguồn của bạn từ MySQL và sửa đổi nó thủ công để phù hợp với cú pháp DB2 tương đương Phần 6.1 của

Hướng dẫn chuyển đổi MySQL sang DB2 (xem phần Tài nguyên) cung cấp một mô tả về từng

kiểu dữ liệu và một bảng cho thấy cách chúng có thể được ánh xạ với nhau

Với cơ sở dữ liệu lớn hơn, như ví dụ cho bài này có chứa 150 bảng, hãy xem xét việc tự động hoá trích xuất cấu trúc cơ sở dữ liệu bằng cách sử dụng Data Movement Tool của IBM Data Movement Tool của IBM cung cấp một giao diện người dùng đơn giản được cấu hình để kết nối với cả hai cơ sở dữ liệu MySQL cục bộ và cơ sở dữ liệu DB2 mới được tạo ra Xem phần Tài nguyên để biết các hướng dẫn chi tiết về cách sử dụng Data Movement Tool của IBM để trích xuất cấu trúc cơ sở dữ liệu trong bước này

Với ví dụ này, chỉ đánh dấu chọn hộp kiểm tra Data và nhấn vào Extract DDL/Data, như hiển

thị trong

Trang 7

Hình 1 Trích xuất DDL

Sau khi Data Movement Tool của IBM trích xuất cấu trúc cơ sở dữ liệu, bạn có một danh sách các tệp DDL trong thư mục migr Một số các tệp có thể rỗng Ví dụ, vì không có hàm nào do người dùng định nghĩa trong cơ sở dữ liệu MySQL nguồn ví dụ, nên tệp db2udf.sql không có nội dung nào

Nạp các DDL vào cơ sở dữ liệu DB2 cục bộ bằng cách thi hành tệp bó db2ddl.cmd nằm trong

cùng thư mục với các tệp DDL

Kỹ thuật dịch ngược cơ sở dữ liệu để nhận được một sơ đồ quan hệ-thực thể

Một khi các DDL được nạp vào DB2, hãy sử dụng RSA để dịch ngược cấu trúc cơ sở dữ liệu khi

nó tồn tại trong DB2 Kết nối đến cơ sở dữ liệu DB2 mới được tạo ra và trích xuất một mô hình

trực quan của nó bằng cách sử dụng Rational Software Architect Quá trình này, được gọi là kỹ thuật dịch ngược, biến đổi cơ sở dữ liệu thành một sơ đồ quan hệ-thực thể (ER), cho thấy các

bảng, các cột của chúng, và các sự liên kết giữa chúng

Bước này loại bỏ bất kỳ các bảng không sử dụng nào, làm thay đổi các kiểu dữ liệu của một số cột nhất định, và thêm khóa chính và khóa ngoại Đây là một nhiệm vụ tùy chọn, nhưng nó mang lại một cơ hội tốt để tổ chức lại cấu trúc dữ liệu của bạn cho phù hợp tốt hơn với các nhu cầu hiện tại của bạn

Một lần nữa, bạn có thể quyết định thay đổi mô hình dữ liệu của bạn bằng cách chỉnh sửa thủ công DDL cho phù hợp với cú pháp DB2, nhưng việc tạo một mô hình trực quan dưới dạng một

sơ đồ ER là có ích để xem, ghi lại và duy trì cấu trúc dữ liệu của bạn Sơ đồ ER này có thể dùng làm tài liệu hướng dẫn cho nhóm kỹ thuật cũng như các bên liên quan của doanh nghiệp

Trang 8

Bạn có thể tạo sơ đồ và thực hiện các nhiệm vụ liên quan sau đây để đạt được những lợi ích được liệt kê

Xây dựng các mối quan hệ giữa các bảng hoặc các khung nhìn

Điều này giúp ích để hiểu cách các bảng trong cơ sở dữ liệu quan hệ làm việc với nhau

Tô màu các bảng dùng cho một chức năng chung

Trong ví dụ này, các bảng USER, ACL và ROLE làm việc với nhau để xử lý xác thực và

ủy quyền, vì vậy bạn có thể gắn kết lô gic các bảng này bằng cách áp dụng cho chúng một màu nền chung trong mô hình

Làm nổi bật các cột đã được sửa đổi trong quá trình di trú cấu trúc dữ liệu và thêm các chú thích giải thích tại sao chúng đã được thay đổi

Điều này có ích để theo dõi các cột và bảng nào đã được sửa đổi trong quá trình thực hiện

Bạn có thể tìm hiểu thêm về kỹ thuật dịch ngược một cơ sở dữ liệu hiện có thành một mô hình

dữ liệu bằng cách đọc xem việc này được thực hiện như thế nào trong InfoSphere Data Architect (xem phần Tài nguyên) Các chỉ dẫn này là giống nhau khi thực hiện trên bất kỳ các IDE dựa trên Eclipse nào của IBM được xây dựng trên nền tảng các công cụ dữ liệu của Eclipse (Eclipse Data Tools Platform) Thay vì sử dụng cơ sở dữ liệu Derby của Apache đã dùng như một ví dụ trong hướng dẫn, bạn sẽ cần kết nối đến cơ sở dữ liệu DB2 của bạn

Cải tiến và sửa đổi cấu trúc mô hình dữ liệu

Bất kể bạn đã tạo ra một sơ đồ ER hay chưa, bạn có thể bắt đầu cải tiến cấu trúc dữ liệu tại thời điểm này Xem xét việc thực hiện các thay đổi này với cấu trúc được sử dụng trong ví dụ này

Hãy chắc chắn rằng các kiểu dữ liệu là nhất quán giữa khóa chính và bất kỳ các khóa ngoại dựa vào chúng

Ví dụ, kiểu dữ liệu của khóa chính là SMALLINT trong bảng USER, nhưng khóa ngoại USER_ID, tham chiếu logic đến khóa chính này trong bảng khác, lại là một kiểu dữ liệu

số INTEGER lớn hơn Bạn có thể thường xuyên thấy điều này trong cấu trúc cơ sở dữ liệu MySQL của bạn, vì kiểu dữ liệu ban đầu đã được tạo ra trong một phiên bản của MySQL không hỗ trợ việc bắt buộc các khóa ngoại, đòi hỏi hai kiểu dữ liệu phải nhất quán

Tăng thêm kích thước tối đa của các cột mã định danh (ID) nếu cần

Nếu ứng dụng của bạn đã chạy trong một thời gian dài, các giá trị trong cột mã định danh (ID) có thể bắt đầu tiến gần đến giới hạn tối đa đã quy định của chúng Việc di trú cung cấp cho bạn một cơ hội tốt để giải quyết vấn đề tiềm năng này Ví dụ, nếu ID của một bảng USER được quy định là SMALLINT và số lượng người dùng có thể vượt quá 32.767 trong tương lai, thì bây giờ bạn nên mở rộng ID thành kiểu INTEGER lớn hơn để

hỗ trợ lên đến 2 tỷ người dùng trong tương lai

Thay đổi các trường TEXT của MySQL từ các kiểu đối tượng văn bản CLOB của DB2 thành các kiểu ký tự VARCHAR mỗi khi có thể

Có một số hạn chế về các CLOB trong DB2 Các CLOB không thể được dùng để tìm các giá trị DISTINCT và chúng không thể được nạp vào các nhóm bộ đệm Vì vậy, các CLOB có thể không làm việc được vì chúng không thể lợi dụng việc nhớ sẵn các trang

Trang 9

(page cache) Nếu có thể, bạn nên xem xét thay đổi các trường TEXT thành các trường VARCHAR Vì vùng bảng nằm bên dưới xác định kích thước tối đa của cột VARCHAR, chỉ có thể lưu văn bản lên đến 32KB

Xoá cột đã lỗi thời hoặc không sử dụng

Ví dụ, một số ứng dụng có cách tiếp cận khác nhau để lưu trữ các báo cáo, vì vậy bạn có thể có một số các bảng di sản lớn nắm giữ một khối lượng dữ liệu lớn không còn giá trị nữa và thường gây nhầm lẫn cho những người phát triển mới của nhóm Hãy lợi dụng cơ hội này để lưu trữ dữ liệu này và loại bỏ nó khỏi cơ sở dữ liệu hoạt động

Thêm các khóa chính hoặc các ràng buộc duy nhất nếu cần thiết

Ngoài tính toàn vẹn dữ liệu mà các ràng buộc khóa mang lại, việc này rất quan trọng để tạo bản sao DB2 Mỗi bảng đòi hỏi một khóa chính hoặc khóa duy nhất để chuyển giao các giá trị duy nhất tới cơ sở dữ liệu sao lưu

Định nghĩa và áp đặt các khóa ngoại mới

Trong cơ sở dữ liệu MySQL ví dụ, không có các khóa ngoại nào vì ứng dụng ban đầu đã được tạo ra với máy lưu trữ MyISAM mặc định không hỗ trợ chúng Trong giai đoạn chuyển đổi dữ liệu, thêm các khóa ngoại cần thiết để cải thiện tính nhất quán của dữ liệu,

ví dụ như duy trì bảng USER được liên kết với bảng TASK_HISTORY, do đó đảm bảo rằng các bản ghi kiểm toán đang liên kết các thay đổi với những người dùng không bị ngắt

Chuyển đổi hoặc thêm các đối tượng khác, như các chỉ mục, các khung nhìn, các thủ tục đã lưu và các hàm

Việc hiển thị trực quan cấu trúc dữ liệu của bạn có thể giúp ích cho việc hiểu các mối quan hệ giữa các bảng, tầm quan trọng tương đối của chúng và tần số truy cập của chúng,

có thể ảnh hưởng đến hiệu năng Điều này có thể giúp bạn hiểu rõ hơn các ràng buộc nên được áp đặt ở đâu và các hành động liên quan nên được nhóm lại với nhau ở đâu để cải thiện chất lượng và tốc độ đọc dữ liệu

Nếu bạn có một mô hình cấu trúc dữ liệu mới được định nghĩa trong RSA, thì bạn có thể xuất khẩu nó như là một tệp DDL đơn lẻ để từ đó xây dựng cơ sở dữ liệu DB2 mới của bạn Tùy thuộc vào sự phức tạp của cấu trúc cơ sở dữ liệu của bạn, bạn cũng có thể xem xét việc tạo ra các tệp DDL riêng cho các kiểu đối tượng khác nhau để giữ mọi thứ được tổ chức hợp lý

Ví dụ, một cách tiếp cận được khuyến cáo để di trú lặp lại là tạo DDL cho các bảng trong một tệp, tạo DDL cho các chỉ mục riêng ra và tạo DDL cho các khóa ngoại riêng ra Cách tiếp cận này sẽ giúp phân chia một cách logic cấu trúc dữ liệu thành các mảnh có liên quan một cách logic Cách tiếp cận này cung cấp tài liệu tham khảo nếu bạn muốn xem danh sách các chỉ mục hiện tại (thay đổi theo thời gian) hơn là tìm kiếm chúng trong tệp DDL cùng với định nghĩa các đối tượng khác, cố định hơn ví dụ như các bảng và các khung nhìn

Cũng giống như nhiệm vụ kỹ thuật dịch ngược trước đó, bạn có thể xem phần Tài nguyên để tìm hiểu cách chỉnh sửa và xuất khẩu một mô hình dữ liệu bằng các công cụ dựa trên Eclipse của IBM bằng cách đọc một hướng dẫn về cách chuyển đổi một mô hình dữ liệu vật lý thành DDL trong tài liệu InfoSphere

Chuyển đổi các đối tượng cơ sở dữ liệu khác

Trang 10

Data Movement Tool của IBM có thể tự động chuyển đổi hầu hết các đối tượng cơ sở dữ liệu, ví

dụ như các bảng, các khóa, các chỉ mục và các vùng bảng, nhưng có các đối tượng khác bạn cần chuyển đổi thủ công nếu chúng đã có mặt trong cơ sở dữ liệu MySQL nguồn của bạn Chúng gồm các khung nhìn, các thủ tục đã lưu, các hàm do người dùng định nghĩa (UDF) và các tri gơ Các đối tượng này không khó để di trú thủ công, vì cả MySQL lẫn DB2 đều tuân thủ cú pháp thủ tục lưu trữ SQL:2003 Và vì chức năng tri gơ DB2 cung cấp nhiều hơn những gì có sẵn trong

MySQL, bạn có thể dễ dàng tạo lại các tri gơ Chương 6 của Sách Đỏ IBM về Phát triển các ứng dụng PHP cho Các máy chủ dữ liệu IBM (Developing PHP Applications for IBM Data Servers)

mô tả chi tiết bất kỳ các khác biệt nào mà bạn cần hiểu rõ

Như một lựa chọn, để tránh các lỗi trong lúc di trú dữ liệu ở bước 2, bạn có thể lui lại nhiệm vụ này lại cho đến khi dữ liệu đã được nạp vào DB2 và quay lại với nó trong một lần lặp khác trong giai đoạn di trú này khi bạn tinh chỉnh cơ sở dữ liệu của bạn

Về đầu trang

Bước 2 Di chuyển dữ liệu MySQL vào cơ sở dữ liệu DB2

Trong bước này, bạn sẽ trích xuất dữ liệu từ cơ sở dữ liệu MySQL và tải nó vào DB2 Quá trình này cũng cho bạn một cơ hội để cải thiện chất lượng dữ liệu của bạn Bước này liên quan đến việc hoàn thành các bước sau đây:

 Loại bỏ các bảng và dữ liệu không cần thiết

 Chuyển đổi dữ liệu MySQL không hợp với DB2

 Trích xuất dữ liệu từ MySQL

 Nạp dữ liệu vào DB2

 Thiết lập lại các gia số cột mã định danh (ID) đã tạo ra

Loại bỏ các bảng và dữ liệu không cần thiết

Data Movement Tool (Công cụ di chuyển dữ liệu) của IBM tạo ra một tệp tên bảng.tables nói rõ

dữ liệu nào cần trích xuất từ cơ sở dữ liệu nguồn bằng cách chỉ rõ một truy vấn SELECT cho mỗi bảng cơ sở dữ liệu Ví dụ, chỉ bao gồm các nhiệm vụ nào dưới bốn năm tuổi Nói chung bạn cần phải loại bỏ một số dòng và xác định các dòng khác có đủ điều kiện bằng một câu lệnh WHERE để lọc số lượng dữ liệu được di chuyển

Nếu bạn không muốn di chuyển một bảng từ MySQL sang DB2, bạn nên loại bỏ nó hoàn toàn khỏi tệp này Nếu bạn muốn di chuyển một tập con dữ liệu, bạn nên sửa đổi mệnh đề SELECT cho phù hợp Ví dụ, ngăn không cho bảng WORK_TMP di trú sang DB2 bằng cách xóa các dòng được hiển thị trong

Liệt kê 2 Một dòng đã bị xóa khỏi tệp timetrac.tables

"timetrac"."work_tmp":SELECT * FROM "timetrac"."work_tmp"

Ngày đăng: 24/03/2014, 06:20

HÌNH ẢNH LIÊN QUAN

Hình 1. Trích xuất DDL - Di chuyển một ứng dụng PHP từ MySQL sang DB2 Phần 2: Di trú dữ liệu của bạn ppt
Hình 1. Trích xuất DDL (Trang 7)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w