2025/12/12

Share

  • Share on Facebook
  • Share on Twitter

Công cụ chuyển đổi dữ liệu từ Oracle sang MariaDB Công cụ chuyển đổi dữ liệu từ Oracle sang MariaDB

Khái quát dự án

Chúng tôi đã phát triển và tích hợp một công cụ hỗ trợ quy trình chuyển đổi cơ sở dữ liệu từ Oracle sang MariaDB.
Trong dự án này, mặc dù việc chuyển đổi cấu trúc và môi trường đã hoàn tất, nhưng dữ liệu thực tế vẫn chưa được chuyển đổi. Do đó, chúng tôi đã hiện thực hóa một công cụ chuyên dụng giúp chuyển đổi dữ liệu từ hệ thống cũ (Oracle) sang hệ thống mới (MariaDB) một cách chính xác và hiệu quả, nhằm hoàn tất quá trình chuyển đổi.

Stack kỹ thuật đã sử dụng và tool phát triển

  • Ngôn ngữ lập trình: PHP 7
  • Tool quản lý task: Excel

Vấn đề cần giải quyết của khách hàng

  • Thiếu giải pháp chuyển đổi dữ liệu sau khi đã chuyển đổi cấu trúc

    Khách hàng đang tiến hành dự án chuyển đổi nền tảng cơ sở dữ liệu hệ thống Web từ Oracle sang MariaDB. Mặc dù cấu trúc schema và việc xây dựng môi trường đã hoàn thành, nhưng công việc chuyển đổi dữ liệu thực tế vẫn còn tồn đọng. Các phương pháp thủ công hay các công cụ đa năng hiện có không thể đáp ứng được các yêu cầu đặc thù, dẫn đến thiếu hụt một giải pháp đảm bảo việc chuyển đổi dữ liệu được thực hiện chắc chắn.

  • Cân bằng giữa tốc độ triển khai và độ tin cậy

    Để đảm bảo tiến độ chuyển đổi toàn bộ hệ thống, khách hàng yêu cầu tốc độ phát triển và triển khai phải nhanh chóng. Đồng thời, vì xử lý dữ liệu cốt lõi, công cụ cần phải có độ tin cậy cao, tuyệt đối không được để xảy ra tình trạng sót dữ liệu hay hỏng hóc dữ liệu.

Yêu cầu của khách hàng

  • Hỗ trợ chuyển đổi toàn vẹn tất cả dữ liệu

    Khách hàng yêu cầu một công cụ chuyên dụng có khả năng chuyển đổi toàn bộ dữ liệu đang lưu trữ trong Oracle sang MariaDB mà không bị thất thoát. Không chỉ đơn thuần là sao chép, công cụ cần có chức năng xử lý sự khác biệt về kiểu dữ liệu và thông số kỹ thuật.

  • Sự tương thích với môi trường hiện tại và khả năng bảo trì

    Để giảm thiểu rào cản khi triển khai, công cụ cần dễ sử dụng và không yêu cầu thiết lập phức tạp. Ngoài ra, khách hàng cũng mong muốn công cụ có độ tương thích cao với hệ thống backend hiện tại và có cấu trúc để chính đội ngũ của khách hàng có thể tự bảo trì trong tương lai.

Đề xuất và cách tiếp cận từ phía chúng tôi

  • Phát triển command-line tool bằng PHP

    Dựa trên thực tế khách hàng là doanh nghiệp IT và hệ thống hiện hành đang vận hành bằng PHP, chúng tôi đã đề xuất phát triển công cụ dòng lệnh (CLI) bằng PHP. Điều này cho phép tận dụng nguyên vẹn môi trường server hiện có, giúp tiết kiệm chi phí đầu tư hạ tầng mới, đồng thời xây dựng được cơ chế để đội ngũ kỹ sư của khách hàng có thể bảo trì và vận hành mà không gặp trở ngại nào.

  • Tối ưu hóa thiết lập mapping dữ liệu

    Để xử lý sự chênh lệch về đặc tả giữa Oracle và MariaDB, chúng tôi đã triển khai chức năng mapping cho phép định nghĩa chi tiết mối quan hệ tương ứng giữa các bảng, cột và kiểu dữ liệu. Thay vì chỉ di chuyển dữ liệu đơn thuần, chúng tôi tích hợp các xử lý chuyển đổi dữ liệu phù hợp với mục đích sử dụng tại đích đến, giúp ngăn chặn lỗi hệ thống sau khi chuyển đổi.

  • Đảm bảo tính toàn vẹn thông qua kết nối song song Oracle và MariaDB

    Thay vì xử lý tuần tự theo kiểu trích xuất dữ liệu từ một bên rồi lưu lại sau đó mới nhập vào bên kia, chúng tôi áp dụng kiến trúc kết nối đồng thời đến cả hai cơ sở dữ liệu để xử lý song song. Việc này cho phép so sánh và kiểm chứng dữ liệu theo thời gian thực, giúp nâng cao độ chính xác của quá trình chuyển đổi và rút ngắn thời gian thực hiện.

  • Ghi log chi tiết và kiểm soát lỗi

    Để tăng tính minh bạch cho quy trình chuyển đổi, chúng tôi đã triển khai chức năng log giúp xuất ra chi tiết các nội dung như số lượng bản ghi đã xử lý, thời gian thực hiện và các lỗi phát sinh. Khi có lỗi xảy ra, hệ thống sẽ kiểm soát xử lý một cách thích hợp, giúp dễ dàng tìm ra nguyên nhân, từ đó đảm bảo tính an toàn cho công việc chuyển đổi.

  • Triển khai cấu hình linh hoạt

    Chúng tôi thiết kế đặc tả cho phép thiết lập linh hoạt các tham số biến động như thông tin kết nối hay chỉ định bảng cần chuyển đổi thông qua file bên ngoài hoặc tham số dòng lệnh. Nhờ đó, chúng tôi hiện thực hóa được khả năng vận hành cho phép phản ứng tức thì với các thay đổi về môi trường hay phạm vi đối tượng mà không cần phải chỉnh sửa mã nguồn chương trình.