2025/12/04
Share
Dự án chuyển đổi cơ sở dữ liệu từ Oracle sang PostgreSQL cho hệ thống quản lý kinh doanh công ty điện lực
Dự án chuyển đổi cơ sở dữ liệu hệ thống quản lý kinh doanh từ Oracle sang PostgreSQL
Chúng tôi đã thực hiện dự án chuyển đổi cơ sở dữ liệu từ Oracle sang PostgreSQL cho hệ thống quản lý kinh doanh nhằm tối ưu hóa chi phí và hệ thống.
Hệ thống này có quy mô lớn với nhiều chức năng nghiệp vụ được xây dựng bằng Java và .NET như lập kế hoạch kinh doanh, tài chính – kế toán, quản lý vận hành và giám sát hạ tầng.
Chúng tôi đã xây dựng kế hoạch chuyển đổi nhằm tận dụng tối đa tài sản ứng dụng hiện có đồng thời giảm thiểu rủi ro khi thay đổi công cụ cơ sở dữ liệu. Kết quả là chúng tôi đã giảm đáng kể chi phí bản quyền và hoàn tất việc chuyển đổi sang môi trường mới ổn định mà không làm ảnh hưởng đến logic nghiệp vụ hay hiệu năng của hệ thống hiện tại.
Stack kỹ thuật đã sử dụng và tool phát triển
- Ngôn ngữ lập trình: Java, .NET
- Database: Oracle, PostgreSQL
- Tool quản lý task: Excel
- Communication tool: Email/Zoom
- AI tool: AI
Vấn đề cần giải quyết của khách hàng
- Tăng chi phí bản quyền và nhu cầu tối ưu hóa chi phí vận hànhCơ sở dữ liệu Oracle mà khách hàng sử dụng lâu năm có chi phí bản quyền cao, gây trở ngại lớn cho mục tiêu cắt giảm chi phí vận hành toàn công ty. Để đảm bảo vận hành ổn định trong tương lai, nhu cầu chuyển đổi sang PostgreSQL – một cơ sở dữ liệu mã nguồn mở có hiệu quả chi phí cao hơn nhưng vẫn duy trì được chức năng và hiệu suất – trở nên cấp thiết. Tuy nhiên, vì đây là hệ thống hỗ trợ nghiệp vụ cốt lõi, việc đánh đổi chất lượng lấy cắt giảm chi phí là điều không thể chấp nhận.
- Đổi mới nền tảng nhưng hạn chế ảnh hưởng đến hệ thống hiện tạiKhi thay đổi nền tảng cơ sở dữ liệu, điều kiện tiên quyết là không được gây ra bất kỳ tác động tiêu cực nào đến hiệu suất, tính toàn vẹn dữ liệu và hoạt động nghiệp vụ hàng ngày. Với nhiều ứng dụng Java và .NET đang hoạt động, yêu cầu đặt ra là phải thay thế cơ sở dữ liệu backend một cách an toàn mà không cần sửa đổi hoặc chỉ sửa đổi tối thiểu logic của các ứng dụng đó. Đây là một nhiệm vụ chuyển đổi có độ khó cực kỳ cao.
- Đảm bảo an toàn tuyệt đối và khả năng kiểm chứngTrong dự án chuyển đổi, việc mất dữ liệu hay ngừng hệ thống là không được phép xảy ra. Do đó, toàn bộ quy trình chuyển đổi cần phải minh bạch, an toàn và mọi kết quả chuyển đổi đều phải có khả năng kiểm chứng. Không chỉ đơn thuần là chuyển đổi dữ liệu, chúng tôi cần chứng minh khách quan rằng logic nghiệp vụ vẫn hoạt động y hệt như trước, đảm bảo quá trình chuyển đổi diễn ra suôn sẻ mà không làm gián đoạn công việc của người dùng.
Yêu cầu của khách hàng
- Chuyển đổi toàn bộ DB Objects và đảm bảo tính tương thíchYêu cầu đặt ra là phải chuyển đổi toàn bộ DB Objects đang hoạt động trên môi trường Oracle sang môi trường PostgreSQL mà không được bỏ sót. Không chỉ là sao chép dữ liệu, chúng tôi cần viết lại chính xác logic của các hàm (function) và thủ tục (procedure) đặc thù của Oracle để phù hợp với đặc tả của PostgreSQL, đồng thời tái định nghĩa cấu trúc để đảm bảo các chức năng hoạt động tương tự trên môi trường mới.
- Chỉnh sửa code ứng dụng và đảm bảo hoạt độngCùng với việc thay đổi cơ sở dữ liệu, source code Java và .NET phía ứng dụng cũng cần được chỉnh sửa để tránh sự không tương thích trong phần gọi SQL và xử lý kết nối DB. Yêu cầu không chỉ là giải quyết lỗi biên dịch mà còn phải xử lý các khác biệt về hành vi do sự khác nhau của trình điều khiển cơ sở dữ liệu (DB driver), đảm bảo toàn bộ ứng dụng có thể liên kết liền mạch với PostgreSQL.
- Review SQL nghiêm ngặt và thực hiện test tích hợpKhách hàng yêu cầu rà soát và chỉnh sửa chi tiết các câu lệnh SQL đã chuyển đổi để đảm bảo chúng hoạt động đúng theo quy tắc cú pháp và logic của PostgreSQL. Thêm vào đó, chúng tôi phải thực hiện test tích hợp dựa trên checklist chi tiết do khách hàng cung cấp và chứng minh bằng bằng chứng cụ thể rằng hệ thống hoạt động hoàn toàn giống như trước khi chuyển đổi.
Đề xuất và cách tiếp cận từ phía chúng tôi
- Phân tích hệ thống toàn diện và xác định các mối quan hệ phụ thuộcKhi bắt đầu dự án, để nắm bắt toàn bộ hệ thống, chúng tôi đã tiến hành thu thập và phân tích triệt để tất cả DB objects, các câu lệnh SQL được thực thi cũng như source code phụ thuộc vào cơ sở dữ liệu. Nhờ đó, chúng tôi có thể trực quan hóa các điểm cần chuyển đổi và rủi ro tiềm ẩn ngay từ giai đoạn đầu, xác định chính xác phạm vi ảnh hưởng và lập kế hoạch chuyển đổi chắc chắn, tránh việc phải làm lại.
- Tự động hóa và nâng cao hiệu quả chuyển đổi bằng AI tạo sinhĐể tránh sai sót do chuyển đổi thủ công một lượng lớn DB objects và SQL, chúng tôi đã áp dụng quy trình chuyển đổi tự động sử dụng AI. Việc giao phó các chuyển đổi cú pháp định hình cho AI giúp giảm đáng kể công sức thao tác đồng thời nâng cao độ chính xác. Các kỹ sư có thể tập trung vào việc điều chỉnh các logic nghiệp vụ phức tạp và xử lý các trường hợp ngoại lệ, giúp hiện thực hóa việc chuyển đổi chất lượng cao trong thời gian ngắn.
- Kiểm chứng nghiêm ngặt bằng cách vận hành song song môi trường cũ và mớiĐể đảm bảo độ tin cậy của việc chuyển đổi, chúng tôi đã xây dựng hai môi trường test: bản sao môi trường hiện tại sử dụng Oracle và môi trường mới sử dụng PostgreSQL, sau đó tiến hành test song song. Bằng cách so sánh kết quả của cả hai môi trường trong thời gian thực với cùng một dữ liệu và điều kiện đầu vào, chúng tôi có thể phát hiện ngay lập tức những khác biệt nhỏ về hành vi hay sự không nhất quán của dữ liệu và thiết lập cơ chế sửa chữa nhanh chóng.
- Test tích hợp nghiệp vụ triệt để dựa trên bằng chứng (evidence)Không dừng lại ở unit test cho từng SQL đơn lẻ, chúng tôi đã thực hiện test tích hợp ở cấp độ kịch bản nghiệp vụ dựa trên checklist khách hàng cung cấp. Điểm đặc biệt là chúng tôi thực hiện cùng một thao tác trên cả môi trường cũ và mới, sau đó thu thập và so sánh kết quả (bằng chứng như chụp màn hình, log). Điều này giúp đảm bảo tính thao tác và kết quả hoàn toàn không thay đổi so với trước khi chuyển đổi đối với người dùng cuối sử dụng hệ thống.
Related Case Studies