Xuất cơ sở dữ liệu Oracle sang MySQL

Tài liệu này là một phần của loạt bài hướng dẫn bạn cách di chuyển dữ liệu từ Oracle sang Cloud SQL cho MySQL. Các tài liệu sau đây trong loạt bài đi sâu vào chi tiết hơn

  • Di chuyển thủ tục từ Oracle sang Cloud SQL cho MySQL
  • Thiết lập Cloud SQL cho MySQL để sử dụng sản xuất

Chuẩn bị cho việc di chuyển dữ liệu

Phần này tập trung vào cách di chuyển dữ liệu từ Oracle sang Cloud SQL cho MySQL. Các điều kiện tiên quyết sau đây rất quan trọng để tránh các sự cố trong quá trình di chuyển trực tiếp

  • Chuyển đổi lược đồ từ Oracle sang Cloud SQL cho MySQL đã được thực hiện cho tất cả các đối tượng cơ sở dữ liệu, bao gồm bảng, dạng xem, thủ tục được lưu trữ và chức năng
  • Lược đồ đích đã được thử nghiệm với một số dữ liệu mẫu để đảm bảo rằng lược đồ đó có thể chứa cùng dữ liệu với lược đồ nguồn

Có hai phương pháp cơ bản để di chuyển dữ liệu. tải một lần và sao chép thời gian thực. Phương thức tải một lần là nơi bạn xuất dữ liệu hiện có từ Oracle và nhập dữ liệu đó vào MySQL. Phương pháp sao chép thời gian thực là nơi dữ liệu được sao chép ngay lập tức từ Oracle sang MySQL khi nó được tạo

Đối với phương thức tải một lần, cơ sở dữ liệu nguồn chỉ được mở để ghi trong quá trình này. Do đó, phương pháp này còn được gọi là di chuyển dữ liệu ngoại tuyến. Một trong những công cụ phổ biến nhất để xuất dữ liệu từ Oracle là Oracle SQL Developer. Công cụ này có thể xuất dữ liệu từ các bảng Oracle ở nhiều định dạng, bao gồm các câu lệnh chèn CSV và SQL. Ngoài ra, bạn có thể sử dụng SQL*Plus để chọn và định dạng dữ liệu của mình, sau đó lưu trữ dữ liệu đó vào một tệp. Khi dữ liệu đã được xuất từ ​​Oracle thành một tệp phẳng, bạn có thể tải nó vào MySQL bằng cách sử dụng lệnh LOAD DATA INFILE. Phương pháp này thường là phương pháp di chuyển ít tốn kém nhất, nhưng nó có thể yêu cầu nhiều thao tác nhập liệu thủ công hơn và chậm hơn so với sử dụng công cụ di chuyển. Nó cũng yêu cầu thời gian ngừng hoạt động của ứng dụng trong quá trình di chuyển

Ngược lại, phương pháp sao chép thời gian thực, còn được gọi là thu thập dữ liệu thay đổi, là phương pháp di chuyển dữ liệu trực tuyến. Trong quá trình sao chép dữ liệu ban đầu, cơ sở dữ liệu nguồn vẫn mở. Một sản phẩm sao chép nắm bắt các thay đổi dữ liệu khi chúng xảy ra trên cơ sở dữ liệu nguồn và vận chuyển cũng như áp dụng những thay đổi đó cho cơ sở dữ liệu đích. Đối với quá trình di chuyển dữ liệu sản xuất, bạn có thể sử dụng phương pháp này để giảm thiểu thời gian ngừng hoạt động cần thiết và đảm bảo thời gian ngừng hoạt động gần như bằng không trước khi quá trình chuyển đổi xảy ra. Phương pháp này liên quan đến việc sử dụng sản phẩm thu thập dữ liệu thay đổi (CDC) của bên thứ ba như GoldenGate, Striim hoặc Informatica's Data Replication

Để cho phép CDC từ Oracle làm cơ sở dữ liệu nguồn, chúng tôi khuyên bạn nên bật ghi nhật ký bổ sung ở cấp cơ sở dữ liệu bằng lệnh sau

SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;

Database altered.

Lệnh này khiến các tệp nhật ký làm lại ghi dữ liệu cột bổ sung ngoài khóa chính thông thường hoặc các cột chỉ mục duy nhất

Bạn có thể sử dụng sản phẩm CDC của bên thứ ba cho cả bước tải ban đầu—truyền tất cả dữ liệu hiện có (tối đa nhiều TB dữ liệu) từ môi trường cơ sở dữ liệu Oracle nguồn—và để nắm bắt mọi sửa đổi dữ liệu đang diễn ra cho đến khi cả hai môi trường được đồng bộ hóa . Một sản phẩm CDC thường cung cấp các tính năng bổ sung, chẳng hạn như chuyển đổi loại dữ liệu và các chuyển đổi đơn giản khác

Thực hiện di chuyển dữ liệu

Khi bạn di chuyển dữ liệu, hãy làm theo các nguyên tắc này, hầu hết các nguyên tắc này áp dụng cho cả phương pháp tải một lần và sao chép thời gian thực

  • Bộ nhân vật. Đảm bảo các bộ ký tự tương thích giữa cơ sở dữ liệu Oracle nguồn và cơ sở dữ liệu MySQL đích
  • khóa ngoại. Để tăng tốc độ nhập, hãy tạm thời vô hiệu hóa các ràng buộc khóa ngoài trên cơ sở dữ liệu MySQL đích. Khi quá trình tải hoàn tất, hãy bật các ràng buộc khóa ngoài
  • chỉ mục. Tương tự như khóa ngoại, chỉ mục trên cơ sở dữ liệu MySQL đích có thể làm chậm đáng kể quá trình tải ban đầu. Đảm bảo rằng các chỉ mục không được tạo trên cơ sở dữ liệu đích cho đến khi quá trình tải ban đầu hoàn tất
  • Trình tự Oracle. MySQL hỗ trợ AUTO_INCREMENT thay vì trình tự. Đảm bảo rằng các thuộc tính AUTO_INCREMENT bị vô hiệu hóa trong lần tải đầu tiên để tránh ghi đè lên các giá trị được tạo theo trình tự của Oracle. Thêm thuộc tính AUTO_INCREMENT vào cột khóa chính sau khi quá trình tải ban đầu hoàn tất
  • Mạng đã được kết nối. Nếu bạn đang sử dụng CDC, hãy đảm bảo rằng cả môi trường nguồn và đích đều có thể thiết lập kết nối mạng với sản phẩm CDC để cho phép thu thập dữ liệu ở phía Oracle và tải dữ liệu trên Cloud SQL cho phía MySQL

Trường hợp sử dụng Cổng vàng

Phần này xem xét kỹ hơn quá trình di chuyển trực tuyến sang Cloud SQL bao gồm việc sử dụng dịch vụ CDC của Oracle, GoldenGate. Bước đầu tiên là chuẩn bị môi trường cho GoldenGate bằng cách cài đặt GoldenGate trên cả hệ thống nguồn và đích. Về phía nguồn, bạn có thể cài đặt ứng dụng trên máy chủ Oracle hoặc trên máy chủ từ xa kết nối với cơ sở dữ liệu Oracle thông qua kết nối SQL*Net. Về phía mục tiêu, bạn phải sử dụng máy ảo dàn trên Google Cloud để chạy ứng dụng GoldenGate vì bạn không thể cài đặt GoldenGate trực tiếp trên máy Cloud SQL. GoldenGate cung cấp một tiện ích dòng lệnh có tên là GGSCI cho phép bạn định cấu hình và thực thi các quy trình GoldenGate khác nhau

Sau khi môi trường được thiết lập, bạn định cấu hình và thêm quy trình EXTRACT để nắm bắt các thay đổi dữ liệu. Chúng tôi làm điều này trước khi bắt đầu tải dữ liệu ban đầu để các thay đổi giao dịch đang diễn ra không bị mất trong khi tải đang chạy. Như đã đề cập trước đó, CDC yêu cầu kích hoạt ghi nhật ký bổ sung trên cơ sở dữ liệu Oracle nguồn. Các giao dịch đã cam kết được ghi lại từ nhật ký làm lại, được dịch sang logical change records (LCRs) và được ghi vào tệp theo dõi cục bộ và vào khu vực tổ chức từ xa (Google Cloud VM). Bạn sẽ cần tìm ra cách điều chỉnh kích thước tệp theo dõi sao cho chúng được lưu giữ đủ lâu mà không chiếm hết dung lượng ổ đĩa có sẵn

Bước tiếp theo là định cấu hình quy trình chụp GoldenGate được gọi là EXTRACT để thực hiện tải dữ liệu ban đầu. Điều này bao gồm việc tạo một tệp tham số chỉ định danh sách ánh xạ giữa các bảng nguồn trong Oracle và các bảng đích trong MySQL (ví dụ: MAP schema/table to TARGET database.table). Không giống như CDC, tải ban đầu sử dụng bảng nguồn chứ không phải nhật ký làm lại để lấy dữ liệu nguồn. Chúng tôi thực hiện quy trình tải ban đầu bằng cách bắt đầu quy trình EXTRACT và xác minh kết quả. Thời lượng tải ban đầu sẽ là một yếu tố của khối lượng dữ liệu và thông lượng mạng của bạn

Khi quá trình tải dữ liệu ban đầu đã hoàn tất thành công, bạn định cấu hình phân phối thay đổi, đây là quá trình áp dụng LOAD DATA INFILE1 cho cơ sở dữ liệu MySQL đích. Quá trình LOAD DATA INFILE2 đọc các bản ghi đó từ các tệp dấu vết từ xa, chuyển đổi chúng thành các câu lệnh DML và DDL, đồng thời áp dụng chúng vào cơ sở dữ liệu MySQL đích. Quy trình LOAD DATA INFILE2 có tệp tham số riêng, bao gồm một phần về cách xử lý xung đột và các ngoại lệ khác

Cách dễ nhất để xác định rằng sao chép dữ liệu đang hoạt động là chạy số lượng hàng trên bảng nguồn và so sánh kết quả với bảng đích của nó. GGSCI có lệnh báo cáo và thống kê cho phép bạn xem số liệu thống kê và lỗi sao chép

tiêu chí thành công

Việc di chuyển dữ liệu (dù ngoại tuyến hay trực tuyến) chỉ được coi là thành công nếu đáp ứng các tiêu chí sau

  • Truyền dữ liệu xảy ra mà không có lỗi hoặc lỗi quy trình
  • Nếu bạn đang sử dụng tải một lần, thời lượng tải không vượt quá cửa sổ thời gian ngừng hoạt động cho phép của doanh nghiệp bạn
  • Nếu bạn đang sử dụng CDC, người dùng ứng dụng của bạn đã không quan sát thấy hiệu suất đạt được trong lần tải đầu tiên
  • Nếu bạn đang sử dụng CDC, độ trễ sao chép sẽ nhỏ hơn theo thời gian để cơ sở dữ liệu đích cuối cùng bắt kịp với cơ sở dữ liệu nguồn

Xác minh tính toàn vẹn của dữ liệu sau khi di chuyển

Trong giai đoạn này, bạn muốn xác định bất kỳ vấn đề và sự không nhất quán nào với môi trường MySQL mục tiêu để bạn có thể nhanh chóng giải quyết mọi sự khác biệt giữa dữ liệu. Thực hiện theo các bước sau

Làm cách nào để xuất dữ liệu từ Oracle sang MySQL?

Bước 1. Đăng nhập vào MySQL bằng thông tin đăng nhập phù hợp. Bước 2. Khởi chạy tùy chọn Nguồn dữ liệu trình kết nối ODBC. Bước 3. Định cấu hình nguồn dữ liệu Oracle ODBC để kết nối với cơ sở dữ liệu MySQL của bạn. .
Bước 18. Mục nhập HS=OK trong cấu hình trước là cần thiết. .
Bước 19. Khởi động lại Oracle và Dịch vụ Trình nghe TNS

Công cụ nào chuyển Oracle sang MySQL?

Ispirer Toolkit là phần mềm cao cấp tự động chuyển Oracle sang MySQL. Nó chuyển đổi toàn bộ lược đồ cơ sở dữ liệu (bảng và đối tượng SQL), cũng như chuyển dữ liệu.

Làm cách nào để nhập bảng từ Oracle sang MySQL?

Sau khi dữ liệu đã được xuất từ ​​Oracle thành một tệp phẳng, thì dữ liệu đó có thể được tải vào MySQL. Bước này tiếp tục với kỳ vọng rằng một cấu trúc lược đồ giống hệt nhau đã được tạo trong cơ sở dữ liệu MySQL để chấp nhận dữ liệu. Phương pháp phổ biến nhất để đọc một tệp phẳng vào MySQL là sử dụng lệnh LOAD DATA INFILE .

Làm cách nào để kết nối cơ sở dữ liệu Oracle với MySQL?

Sử dụng Oracle MySQL Workbench .
Tải xuống Bàn làm việc Oracle MySQL. .
Cài đặt Workbench bằng cách nhấp vào gói cài đặt đã tải xuống
Bắt đầu bàn làm việc của MySQL
Tạo kết nối mới bằng cách Nhấp vào + Đăng nhập để có sẵn bên cạnh "Kết nối MySQL"
Cung cấp chi tiết Kết nối như Máy chủ, Cổng, Tên người dùng và Mật khẩu