12/08/2018, 15:08

Kiểm tra và Xác thực việc Sao lưu và Phục hồi CSDL

Trong công việc phát triển phần mềm, đôi khi ta gặp những dự án convert hoặc phát triển mở rộng, do đó việc phải giữ được Database cũ là 1 điều hiển nhiên cần thiết Trong bài này, tôi sẽ nói về Cơ sở dữ liệu Oracle Chúng ta cần hiểu: Sao lưu là gì? Tại sao cần sao lưu? Sao lưu như thê ...

Trong công việc phát triển phần mềm, đôi khi ta gặp những dự án convert hoặc phát triển mở rộng, do đó việc phải giữ được Database cũ là 1 điều hiển nhiên cần thiết

Trong bài này, tôi sẽ nói về Cơ sở dữ liệu Oracle Chúng ta cần hiểu:

  • Sao lưu là gì?
  • Tại sao cần sao lưu?
  • Sao lưu như thê nào?
  • Làm thế nào để kiểm tra/ xác nhận việc sao lưu cơ sở dữ liệu - Chiến lược phục hồi?

1. Sao lưu là gì?

  • Trước khi chúng ta bắt đầu tìm hiểu thêm về sao lưu, chúng ta cần phải hiểu Dữ liệu là tài sản quan trọng nhất của bất kỳ một tổ chức, doanh nghiệp nào.

  • Dữ liệu của một tổ chức là một phần không thể tách rời. Hãy xem xét ví dụ như một công ty bán lẻ, hay một ngân hàng. Tất cả chúng đều có lượng dữ liệu khổng lồ như người dùng, hệ thống,….

  • Là một quản trị viên cơ sở dữ liệu, Quản trị hệ thống hoặc bất kỳ nhân viên nào được giao nhiệm vụ bảo vệ dữ liệu này cần phải biết sự quan trọng của dữ liệu đối với một tổ chức. Làm thế nào để đảm bảo dữ liệu luôn sẵn có? Đó chính là việc Sao lưu dữ liệu này.

  • Sao lưu là một bản sao chính xác của cơ sở dữ liệu, nó có thể giúp bạn tái tạo lại dữ liệu của bạn trong trường hợp mất dữ liệu.

2. Tại sao cần sao lưu?

  • Chúng ta xem xét một trường hợp đơn giản mà ngân hàng của bạn có dữ liệu về hàng triệu khách hàng gồm: số tài khoản, tên, chức vụ, số dư tài khoản… và tổ chức đã đánh mất tất cả dữ liệu, làm thế nào để khách hàng phản hồi lại? Tổ chức sẽ đối phó với áp lực mất dữ liệu như thế nào? Làm thế nào họ có thể chịu trách nhiệm đối với rất nhiều khách hàng không hài lòng?

  • Đây là lý do tại sao chúng ta sao lưu dữ liệu này để trong trường hợp có bất kỳ sự bất thường nào của bộ lưu trữ, bộ điều khiển đĩa (bộ điều khiển lưu trữ) chúng ta luôn có thể dựa vào bản sao lưu đã tạo để có thể khôi phục nó vào cơ sở dữ liệu, tránh mất bất kỳ dữ liệu của họ.

  • Theo giả thuyết, giả sử có hàng triệu khách hàng và mỗi người trong số họ thực hiện hàng triệu giao dịch và cơ sở dữ liệu tình cờ gặp sự cố và mất dữ liệu, liệu chúng ta có yêu cầu tất cả các khách hàng này nhập lại dữ liệu của họ không? Làm thế nào để đối phó với mất rất nhiều dữ liệu như thế? Điều đó sẽ không chấp nhận được.

  • Tương tự, hãy xem xét một công ty viễn thông hỗ trợ hàng triệu khách hàng và có tất cả dữ liệu của họ về: số điện thoại, địa chỉ, tín dụng, khoản thanh toán trả góp. Nếu chúng tôi mất tất cả dữ liệu thì sao? Công ty đang phải chịu số phận và sẽ phải chịu chi phí rất lớn tiềm ẩn việc tổ chức bị đình trệ. Nó chắc chắn sẽ là một thảm hoạ lớn.

3. Sao lưu như thế nào?

Để sao lưu dữ liệu trong Cơ sở dữ liệu Oracle, chúng tôi có một số phương pháp. Chúng có thể được phân loại rộng rãi như các sao lưu vật lý và logic a. Phương pháp 1. Sao lưu vật lý:

  • Sao lưu thông qua bên thứ ba - chẳng hạn như Veritas NetBackup, SAP, IBM Tivoli Manager, EMC, HP

  • User quản lý sao lưu - Sao lưu cơ sở dữ liệu sử dụng các tiện ích hệ điều hành như sao chép (window), lệnh (unix).

  • Dịch vụ Oracle Secure Backup

  • Tiện ích tôi yêu thích nhất đó là - Recover Manager (RMAN).

b. Phương pháp 2. Sao lưu logic:

Các tiện ích xuất / nhập thông thường và tiện ích Datapump. Sao lưu logic là sao lưu các đối tượng dữ liệu lôgíc như các bảng, các chỉ mục vv là các thành phần của một cơ sở dữ liệu độc lập với vị trí của các đối tượng trên

Phương pháp nào tốt nhất để sao lưu cơ sở dữ liệu?

  • Mỗi chiến lược sao lưu có ưu và nhược điểm riêng, Tôi sẽ không giải thích quá nhiều trong bài viết này.

  • Chúng ta cần phải hiểu rằng trừ khi bạn có một bản sao lưu vật lý tại chỗ, việc sao lưu không phải lúc nào cũng an toàn đối với những dữ liệu vật lý bị hư hỏng, các vấn đề về ổ đĩa cứng lưu trữ. Có một bản sao lưu vật lý hợp lệ, có giá trị chính là chiến lược sao lưu và phục hồi tốt. Luôn đảm bảo bạn có một bản sao lưu vật lý tại chỗ.

  • Trong thực tế, chúng ta có thể sử dụng bất kỳ phương pháp nào ở trên nhưng chúng tai luôn cần đảm bảo có một chiến lược sao lưu và phục hồi tốt nhằm tránh những trục trặc không cần thiết trong suốt quá trình hoạt động của cơ sở dữ liệu. Chiến lược thử nghiệm khôi phục và phục hồi dữ liệu trên hệ thống thử nghiệm được nhân đôi luôn được khuyến cáo để chúng ta có thể dự đoán thời lượng cần thiết để cơ sở dữ liệu chạy và chạy trong trường hợp có bất kỳ tình huống mà ta không lường trước được.

Trong bài này, chúng ta sẽ chủ yếu tập trung vào sao lưu sử dụng RMAN. Điều này mang lại cho chúng ta biết sao lưu như thế nào là chính xác.

4. Làm thế nào để sao lưu cơ sở dữ liệu Oracle?

Chúng ta có thể sao lưu dữ liệu hoặc với sự trợ giúp của chế độ Enterprise Manager (GUI) hoặc thông qua dòng lệnh của hệ điều hành.

RMAN là một công cụ mạnh mẽ, tinh vi được cung cấp bởi Oracle để thực hiện sao lưu và phục hồi.

RMAN được tự động cài đặt khi bạn cài đặt cơ sở dữ liệu Oracle vì vậy không có yêu cầu cài đặt thêm nào để sử dụng RMAN.

Môi trường RMAN bao gồm hai thành phần:

  1. Cơ sở dữ liệu đichs (cơ sở dữ liệu mà bạn sẽ sao lưu, thực hiện phục hồi và

  2. Máy khách RMAN, là khách hàng giải thích lệnh của người dùng và thực hiện thay cho người dùng trong khi kết nối với Cơ sở dữ liệu đích

Một lệnh đơn giản để kết nối với cơ sở dữ liệu bằng cách sử dụng RMAN như sau:

DBID ở đây là mã nhận dạng duy nhất, là duy nhất cho mỗi cơ sở dữ liệu chúng ta đang có kế hoạch để làm việc. Trong ví dụ này, chúng ta đang làm việc với cơ sở dữ liệu có tên ORCL.

Chúng ta sẽ sao lưu dữ liệu thuộc cơ sở dữ liệu ORCL.

Vì sao lưu là một bản sao vật lý của cơ sở dữ liệu, nên chúng ta cần một thư mục / nơi chúng ta có thể lưu chúng.

Để đạt được điều này, chúng ta có thể sử dụng một thư mục đặc biệt có tên là db_recovery_file_dest phục vụ như một vị trí sao lưu. Xác định kích thước của tham số này với db_recovery_file_dest_size đánh dấu kích thước của vị trí sao lưu này.

Mặc dù có một số cách để nén các bản sao lưu và một số kỹ thuật có thể làm giảm kích thước của một bản sao lưu, cố gắng thiết lập ít nhất kích thước cho DB_RECOVERY_FILE_DEST_SIZE của dữ liệu thực tế. Đảm bảo rằng bạn cũng có tài khoản cho các bản ghi lưu trữ nhưng không phải là nhật ký làm lại ngoại tuyến ghi lại các thay đổi cho khối dữ liệu của bạn.

Chiến lược sao lưu sẽ bao gồm tất cả các tệp liên quan đến cơ sở dữ liệu như tệp dữ liệu, tập tin điều khiển, tệp tham số, tệp tin liên quan đến mạng, các tệp bản ghi lưu lại.

RMAN hoặc bất kỳ công cụ sao lưu vật lý nào khác có thể sao lưu dữ liệu, tập tin điều khiển, các tệp tham số, các tệp bản ghi lưu lại. Các tệp liên quan đến mạng cần được sao lưu theo cách thủ công bằng các tiện ích của hệ điều hành như mã lệnh hoặc tạo bản sao.

Để sao lưu cơ sở dữ liệu chúng ta sử dụng:

"Sao lưu cơ sở dữ liệu" - nó đơn giản như vậy. Vì vậy, chúng ta hãy bắt đầu sao lưu cơ sở dữ liệu ORCL của chúng ta.

Vì chúng ta đã kết nối với cơ sở dữ liệu đích (ORCL) nên chúng ta sẽ kích hoạt lệnh "backup database".

Ở đây, chúng ta quan sát thấy rằng việc sao lưu tất cả các tệp tin liên quan của cơ sở dữ liệu - tập tin dữ liệu, tập tin điều khiển, tệp tham số đã được hoàn thành. Quá trình sao lưu mất khoảng 4 phút 27 giây (Thời gian đã trôi qua). Đây là một cơ sở dữ liệu thử nghiệm nhỏ với chỉ 5 datafiles nên mất rất ít thời gian để sao lưu.

Trong trường hợp chúng ta muốn sao lưu dữ liệu của cơ sở dữ liệu của các tổ chức khổng lồ thì có thể có hàng trăm tệp dữ liệu và mỗi tệp dữ liệu có thể có kích thước terabyte và sao lưu cơ sở dữ liệu hoàn chỉnh có thể sẽ mất nhiều giờ.

Để biết chi tiết về sao lưu mà chúng ta vừa tạo, chúng ta sẽ thực hiện: RMAN> list backup;

Bản sao lưu này được đặt trong file DB_RECOVERY_FILE_DEST được định nghĩa là D: APP1 SUNTYADA FLASH_RECOVERY_AREA Kích thước được xác định cho vị trí sao lưu của chúng tai là 3912 MB.

Làm thế nào để kiểm tra / xác nhận sao lưu cơ sở dữ liệu của bạn - Chiến lược Phục hồi?

Bây giờ, khi chúng ta sao lưu cơ sở dữ liệu của chúng ta, làm thế nào để ta kiểm tra hoặc xác nhận rằng ta có thể phục hồi cơ sở dữ liệu của chúng ta trong bất kỳ sự biến đổi nào?

Nếu do lỗi phần cứng hoặc do hỏng ổ đĩa của bạn, chúng ta cần một bản sao lưu tốt để phục hồi dữ liệu bị hỏng này để chúng ta không mất bất kỳ dữ liệu nào thuộc về các tệp lưu trữ đó.

Tất cả phụ thuộc vào cách bạn thiết kế việc sao lưu, khoảng thời gian sao lưu dự phòng, cho dù bạn thực hiện sao lưu đầy đủ và sao lưu gia tăng.

Trong trường hợp lỗi do người dùng - chẳng hạn như thao tác dữ liệu không cần thiết, chúng ta có thể khôi phục các phần dữ liệu hoặc tất cả dữ liệu đã được thay đổi thông qua sao lưu lo gíc.

Trong thực tế, chúng ta nên biết và dự đoán được bất kỳ sai sót nào có thể xảy ra trong tương lai và kiểm tra mọi chiến lược để tránh để xẩy ra những lỗi đó.

Để xác nhận bản sao lưu, chúng ta có thể sử dụng lệnh: RMAN> BACKUP VALIDATE DATABASE;

Như bạn có thể quan sát ở trên Trạng thái của mỗi tập tin là "OK" có nghĩa là có thể sử dụng được và có thể được sử dụng để khôi phục lại các tập tin tại bất kỳ điểm nào.

Chúng ta có thể thực hiện một bản xem trước của khôi phục lại cơ sở dữ liệu. Điều này cung cấp cho bạn một danh sách tỉ mỉ của các tập tin và tính sẵn sàng của chúng mà không thực sự khôi phục được các tập tin.

RMAN> RESTORE DATABASE PREVIEW;

Kết luận

Trên đây chỉ là những kỹ thuật đơn giản để xác minh và kiểm tra các bản sao lưu của bạn.

Mặc dù trong trường hợp thực tế dựa trên kích thước của dữ liệu, chúng tôi có thể có hàng trăm tệp dữ liệu và chúng tôi cần phải đảm bảo chúng tôi sao lưu mỗi và mọi filei trong đó đều có chiến lược sao lưu dự phòng phù hợp. Cũng kiểm tra sự phục hồi trên các hệ thống kiểm tra để đảm bảo bạn có thể sử dụng các kỹ thuật tương tự trên sản phẩm.

Chúng tôi đã xử lý các phương thức khác nhau để sao lưu các cơ sở dữ liệu quan trọng / kiểm tra cơ sở dữ liệu và các phương thức khác nhau để kiểm tra chúng. Như đã đề xuất rất nhiều lần, có một chiến lược sao lưu và phục hồi tốt sẽ giúp bạn tiết kiệm công việc và tổ chức của bạn.

0