a) Khái niệm
Sao lưu, khôi phục dựa ở mức hệ điều hành có nghĩa là sao lưu tất cả các tệp (file) vật lý liên quan đến cơ sở dữ liệu ra thiết bị lưu trữ.
b) Kiến trúc hệ thống, nguyên tắc hoạt động:
Mỗi cơ sở dữ liệu sẽ bao gồm nhiều tệp vật lý được chứa trên thiết bị lưu trữ. Hệ điều hành sẽ thực hiện quá trình sao lưu các tệp vật lý này ra các thiết bị lưu trữ. Như vậy để sao lưu, khôi phục cơ sở dữ liệu mức hệ điều hành đòi hỏi phải biết được cấu trúc vật lý của cơ sở dữ liệu cần sao lưu. Thông thường nó gồm 3 loại tệp:
- Tệp dữ liệu (data file): chứa dữ liệu thực sự trong cơ sở dữ liệu (CSDL). Có hai loại tệp dữ liệu: tệp dữ liệu người dùng và tệp dữ liệu hệ thống. Dữ liệu hệ thống cho biết người dùng đúng của cơ sỏ dữ liệu và nơi các tệp dữ liệu này được định vị. Dữ liệu người dùng được lưu trữ trong những bảng do người dùng định nghĩa, nhưng chúng cũng chứa từ điển dữ liệu và những kiểu cấu trúc khác. Một cơ sở dữ liệu có ít nhất một tệp dữ liệu.
- Tệp nhật ký khôi phục (Redo log) : những tệp này chứa thông tin ghi nhận những thay đổi đã làm trên CSDL để có thể khôi phục trong trường hợp có lỗi xảy ra.
- Tệp điều khiển (Control file): Những tệp này chứa thông tin cần thiết để duy trì và kiểm tra tính toàn vẹn CSDL.
c) Đánh giá
Ưu điểm:
- Dữ liệu đảm bảo tuyệt đối an toàn, khi có sự cố đảm bảo khôi phục chính xác dữ liệu tại thời điểm sao lưu.
Nhược điểm:
- Không kiểm tra các lỗi logic trong cơ sở dữ liệu (như dữ liệu bị sửa đổi, mất, ghi sai vị trí) vì dù bản dữ liệu đó đúng hay sai thì cũng đều là một tệp vật lý.
- Không cho phép sao lưu một phần của cơ sở dữ liệu (không thể sao lưu một bảng hay một hàm trong cơ sở dữ liệu) mà phải sao lưu toàn bộ cơ sở dữ liệu do vậy sẽ tốn không gian lưu trữ.
2.2.2 Sao lƣu, khôi phục dựa vào hệ quản trị cơ sở dữ liệu
a) Khái niệm
Sao lưu, khôi phục cơ sở dữ liệu dựa vào hệ quản trị cơ sở dữ liệu là hình thức tạo bản sao của cơ sở dữ liệu được thực hiện bởi sự kết hợp một tập hợp các hàm do cơ sở dữ liệu hỗ trợ trong giao diện không thân thiện cho người thực hiện sao lưu.
b) Kiến trúc, nguyên tắc hoạt động
Các cơ sở dữ liệu được tạo ra từ nhiều hệ quản trị cơ sở dữ liệu khác nhau nên không thể truy cập trực tiếp chúng mà thông qua các bộ máy cơ sở dữ liệu khác nhau. Các bộ máy này đóng vai trò trung gian trong quá trình truy cập vào cơ sở dữ liệu.
Hầu hết các cơ sở dữ liệu đều cung cấp phương pháp sao lưu cho chính cơ sở dữ liệu đó. Người quản trị phải chạy một tập hợp các câu lệnh mà hệ quản trị cơ sở dữ liệu cung cấp. Phần lớn công việc này phải thực hiện tại máy có cài đặt cơ sở dữ liệu và người quản trị phải có kiến thức nhất định về cơ sở dữ liệu mà mình định sao lưu, khôi phục. Với mỗi loại cơ sở dữ liệu khác nhau thì cú pháp thực hiện sao lưu cũng khác nhau.
b) Đánh giá:
Ưu điểm:
- Hệ quản trị cung cấp các hàm có sẵn để phục vụ việc sao lưu, khôi phục dữ liệu.
- Có thể sao lưu, khôi phục một phần của cơ sở dữ liệu, ví dụ như sao lưu một bảng trong cơ sở dữ liệu.
Nhược điểm:
- Người quản trị mạng phải có kỹ năng nhất định về cơ sở dữ liệu mình quản lý, các cơ sở dữ liệu khác nhau có các cú pháp và câu lệnh để sao lưu khác nhau.
- Việc thực hiện sao lưu, khôi phục được thực hiện dưới dạng câu lệnh sql phức tạp tùy từng cơ sở dữ liệu.
2.2.3 Sao lƣu, khôi phục mức ứng dụng
a) Khái niệm:
Sao lưu, khôi phục cơ sở dữ liệu mức ứng dụng là hình thức dựa vào một phần mềm trung gian có nhiều tính năng ưu việt (giao diện thân thiện với người dùng, tự động sao lưu theo thời gian định trước, sao lưu gia tăng, …) để thực hiện sao lưu, khôi phục cơ sở dữ liệu.
b) Kiến trúc hệ thống, nguyên tắc hoạt động
Hình 15. Sao lưu, khôi phục cơ sở dữ liệu mức ứng dụng
Việc sao lưu cơ sở dữ liệu thông qua chương trình ứng dụng. Chương trình ứng dụng kết nối vào cơ sở dữ liệu thông qua bộ máy cơ sở dữ liệu, sau đó thực hiện sao lưu cơ sở dữ liệu ra các thiết bị lưu trữ. Một ứng dụng có thể
sao lưu một cơ sở dữ liệu hoặc nhiều cơ sở dữ liệu tuỳ thuộc vào tính năng của ứng dụng.
Hiện nay trên thế giới có rất nhiều hãng phần mềm nổi tiếng đầu tư vào việc phát triển các phần mềm giúp cho việc sao lưu, khôi phục dữ liệu. Đặc điểm nổi bật của các phần mềm này là cung cấp cho người dùng một giao diện thân thiện; cho phép người quản trị có thể dễ dàng sao lưu, khôi phục các cơ sở dữ liệu của mình mà không cần biết nhiều đến cơ sỏ dữ liệu đó như thế nào. Các phần mềm này còn hỗ trợ nhiều tính năng ưu việt như: đặt chế độ sao lưu tự động, sao lưu toàn bộ cơ sở dữ liệu hay chỉ sao lưu những dữ liệu thay đổi, …
c) Đánh giá
Ưu điểm:
- Giao diện thân thiện.
- Có thể sao lưu một phần dữ liệu như sao lưu một bảng trong cơ sở dữ liệu.
- Đặt thời gian sao lưu theo lịch đặt trước.
Nhược điểm:
- Giá thành sản phẩm cao.
- Các sản phẩm thường chỉ áp dụng để sao lưu một cơ sở dữ liệu và hầu hết các sản phẩm này chỉ chạy trên một hệ điều hành nhất định. Do vậy, nếu cơ quan có nhiều ứng dụng trên các cơ sở dữ liệu khác nhau phải mua các phần mềm sao lưu khác nhau và việc sao lưu, khôi phục dữ liệu không được tập trung.
2.3 Đánh giá các phương pháp sao lưu, khôi phục dữ liệu
Từ những phân tích các phương pháp sao lưu, khôi phục dữ liệu ở trên ta thấy mỗi phương pháp có những ưu điểm và nhược điểm riêng.
Sao lưu, khôi phục dữ liệu mức hệ điều hành Sao lưu, khôi phục dữ liệu mức hệ quản trị cơ sở dữ liệu
Sao lưu, khôi phục dữ liệu mức ứng dụng
Ưu điểm - Đảm bảo tính sẵn sàng cao. - Dữ liệu tuyệt đối an toàn
- Chức năng sẵn có trong cơ sở dữ liệu.
- Việc sao lưu tiến hành dễ dàng, đơn giản đối với người quản trị
- Có nhiều tính năng ưu việt trong việc đặt lịch tự động sao lưu.
Nhược điểm - Không sao lưu, khôi phục được một phần trong cơ sở dữ liệu mà phải sao lưu hoặc khôi phục toàn bộ cơ sở dữ liệu.
- Nếu có nhiều dữ liệu phân tán ở nhiều nơi việc sao lưu mất nhiều công sức
- Chỉ thực hiện khi sao lưu một bản chạy tốt, nếu bản đó bị lỗi về mặt dữ liệu thì việc sao lưu không có tác dụng. - Người quản trị phải có kỹ năng nhất định về cơ sở dữ liệu - Nếu có nhiều dữ liệu phân tán ở nhiều nơi việc sao lưu mất nhiều công sức
- Giá thành cao - Thường chỉ có tác dụng với một loại cơ sở dữ liệu nhất định
Tuỳ mức độ quan trọng, tính sẵn sàng của dữ liệu, yêu cầu về thời gian sao lưu, khôi phục, trình độ người quản trị mạng mà ta chọn các phương pháp thích hợp hoặc có thể kết hợp các phương pháp đó lại thành một giải pháp tổng thể. Trong các phương pháp trên thì phương pháp sao lưu, khôi phục mức ứng dụng có nhiều tính năng vượt trội hơn cả. Tuy nhiên, phương pháp này có nhược điểm rất lớn đó là chi phí rất cao, chưa có chức năng cho phép sao lưu, khôi phục các cơ sở dữ liệu một cách tập trung, chạy trên một hệ điều hành nhất định.
Từ những nhược điểm của các phương pháp này, luận văn đã tiến hành nghiên cứu và đề xuất giải pháp Sao lưu, khôi phục dữ liệu mức ứng dụng, trong đó cho phép sao lưu, khôi phục các cơ sở dữ liệu một cách tập trung, chạy trên mọi hệ điều hành (Windows, Linux, …) hỗ trợ máy ảo Java. Giải pháp này được trình bày chi tiết ở chương III.
Chƣơng 3: ĐỀ XUẤT GIẢI PHÁP SAO LƢU KHÔI PHỤC CÁC CƠ SỞ DỮ LIỆU
3.1. Mục tiêu, yêu cầu
Mục tiêu:
Xây dựng giải pháp sao lưu, khôi phục dữ liệu ở mức ứng dụng, trong đó cho phép sao lưu, khôi phục các cơ sở dữ liệu một cách tập trung thông qua giao diện Web Browser, đồng thời có thể chạy trên mọi hệ điều hành (Windows, Linux, …).
Yêu cầu :
- Cho phép chạy được trên các hệ điều hành: Windows, Linux, Solaris.
- Có chế độ sao lưu tự động theo lịch trình cho trước.
- Có giao diện thân thiện với người sử dụng.
- Cho phép sao lưu, phục hồi các cơ sở dữ liệu một cách tập trung.
3.2. Kiến trúc hệ thống, nguyên tắc hoạt động
3.2.1. Kiến trúc hệ thống [35]
Để đáp ứng mục tiêu, yêu cầu đặt ra giải pháp đề xuất là xây dựng một phần mềm ứng dụng để thực hiện việc sao lưu, khôi phục dữ liệu một cách tập trung thông qua giao diện Web Browser, đồng thời có thể chạy trên mọi hệ điều hành (Windows, Linux…) dựa trên công nghệ J2EE (Java 2 Platform, Enterprise Edition), trong đó ngôn ngữ sử dụng viết chương trình là java có thể chạy trên mọi hệ điều hành (Unix, Windows…) có hỗ trợ máy ảo java.
Phần mềm sao lưu, khôi phục dữ liệu phát triển dựa trên mô hình kiến trúc đa tầng trên nền Java, nhằm tách biệt các tầng xử lý nghiệp vụ, tầng truy nhập hệ thống dữ liệu và tầng trình diễn. Kiến trúc này có những lợi ích đáng kể so với kiến trúc client/server hai tầng và do đó cho phép các ứng dụng chạy nhanh hơn, có khả khả năng mở rộng và liên tác cao hơn.
Việc kết nối vào các cơ sở dữ liệu như Posgesql, MySQL, Microsoft SQL được thực hiện thông qua chuẩn JDBC.
Với kiến trúc này ta có một số ưu việt sau:
+ Khả năng mở rộng: Máy chủ ứng dụng hỗ trợ chia xẻ ứng dụng và cung cấp khả năng mở rộng tối đa. Mỗi máy chủ ứng dụng với hệ thống nhiều bộ vi xử lý hoặc cluster máy chủ ứng dụng có thể hỗ trợ một số lượng lớn các giao dịch, không phụ thuộc vào nền phần cứng, hệ điều hành và cấu hình hệ thống. Máy chủ ứng dụng được thiết kế trong môi trường phân tán gồm các truy xuất dữ liệu tốc độ cao, các giao tác với khối lượng lớn và khả năng mở rộng ứng dụng. Nhờ phân hoạch ứng dụng, máy chủ ứng dụng cung cấp giải pháp có thể mở rộng cho một số lượng lớn người dùng và giao tác. Khả năng mở rộng đạt được trong một hệ thống máy chủ nhờ thêm vào các bộ vi xử lý (CPU) hay các hệ thống chạy trên mạng. Kiến trúc chức năng (module) của máy chủ ứng dụng còn cho phép dễ dàng mở rộng hệ thống và chức năng của ứng dụng ở mọi thời điểm. Nhờ việc cài đặt những module mới, những ứng dụng có thể được cung cấp những chức năng mới. Những đặc trưng này làm cho phần mềm trên máy chủ ứng dụng có khả năng thích nghi cao với sự thay đổi môi trường hoạt động. + Khả năng quản lý theo nhu cầu công việc. Với khả năng quản lý theo trạng thái và theo phiên làm việc, máy chủ ứng dụng hỗ trợ những yêu cầu phức tạp, nhiều bước. Hệ thống quản lý sẽ hỗ trợ quản lý tài nguyên, dữ liệu, giao tác, tự động xác nhận truy vấn quay vòng, xác nhận thành công để không thực hiện lại nhiều lần. Máy chủ ứng dụng cung cấp khả năng truy xuất dữ liệu dùng chung và truy xuất một cách thống nhất các tác vụ dựa trên giao tiếp chuẩn tới những hệ thống dữ liệu không đồng nhất. + Khả năng triển khai nhanh và sử dụng lại mã nguồn: Với kiến trúc máy chủ mở rộng, người phát triển có thể thiết kế các ứng dụng nhằm đáp ứng
nhu cầu triển khai ban đầu và phát triển sau đó mà không cần viết lại mã nguồn hay sửa đổi các chi tiết kỹ thuật ứng dụng. Khả năng sắp xếp có hiệu quả tạo cho máy chủ ứng dụng một giải pháp tối ưu cho các ứng dụng yêu cầu hỗ trợ giải quyết khối lượng lớn công việc.
+ Hiệu năng cao và khả năng chịu lỗi. Máy chủ ứng dụng hỗ trợ các đặc trưng chính bao gồm đa luồng, quản lý đối tượng và cân bằng tải động ở mức độ thấp, thông qua việc cung cấp truy xuất dữ liệu hiệu quả và thời gian đáp ứng nhanh do sử dụng các dịch vụ hệ thống như quản lý hàng đợi. Nhiều thực thể (instance) của máy chủ ứng dụng có thể được cài đặt thêm trên hệ thống khi cần thiết. Nhờ kiến trúc dựa vào thành phần và khả năng cân bằng tải động và theo dõi tải, việc xử lý yêu cầu được cân bằng trên các máy chủ ứng dụng, đảm bảo tính sẵn sàng cao, thậm chí ngay cả khi khi nếu một máy chủ bị lỗi. Với khả năng phục vụ trực tuyến, các thành phần máy chủ và ứng dụng có thể được cấu hình lại, thêm hoặc bớt mà không cần tắt hệ thống.
+ Tính bảo mật. Máy chủ ứng dụng cung cấp các đặc trưng bảo mật từ A đến Z cho việc triển khai ứng dụng. Máy chủ ứng dụng cung cấp truyền thông bảo mật với máy chủ Web như hỗ trợ SSL, HTTPS và xác thực qua HTTP. Ðể làm cầu nối giữa trình duyệt và nguồn dữ liệu an toàn, máy chủ ứng dụng cung cấp khả năng xác thực người sử dụng, khả năng làm việc với cookies và điều khiển truy nhập dữ liệu đối với các giao tác an toàn. Việc ghi nhận và theo vết các sự kiện cho phép bảo vệ chống lại các truy nhập không hợp lệ và cho phép người quản trị phát hiện các hành động chủ quan, khách quan ảnh hưởng đến bảo mật.
Giải pháp xây dựng phần mềm ứng dụng để thực hiện việc sao lưu, khôi phục dữ liệu một cách tập trung thông qua giao diện Web Browser, đồng thời có thể chạy trên mọi hệ điều hành (Windows, Linux…) dựa trên công nghệ J2EE được thiết kế chi tiết như sau:
Hình 15. Mô hình các chức năng cơ bản của chương trình Giải thích:
Người dùng truy cập hệ thống: Người sử dụng chỉ cần dùng một màn hình duy nhất (trình duyệt Web) để truy cập thông tin và sử dụng các công cụ có trong hệ thống.
Hệ thống cơ sở dữ liệu: Bao gồm các cơ sở dữ liệu như MySQL, Posgresql, MircoSoft SQL, …
Hệ thống các dịch vụ của hệ thống: Bao gồm 3 chức năng (modul) chính đó là modul kết nối, modul sao lưu và modul khôi phục. Trong đó:
- Modul kết nối đảm bảo việc kết nối đến các loại cơ sở dữ liệu thông qua cơ chế JDBC. Trong đó JDBC là một cơ sở dữ liệu API chuẩn. JDBC API định nghĩa các lớp Java để đưa ra các kết nối CSDL, các câu lệnh SQL, các tập hợp kết quả, các siêu dữ liệu,... Nó cho phép một người lập trình Java đưa ra các câu lệnh SQL và xử lý các kết quả được trả về. JDBC API được