Qui Truong

Ngày Đăng:

08/06/2023 21:33

Ngày Cập Nhật:

08/06/2023 21:33

Tác giả: Qui Truong
Ngày đăng: 08/06/2023 21:33

Chào mừng đến với bài blog “Sao lưu và phục hồi dữ liệu trong Oracle Database: Tiến hành backup dữ liệu”. Trong bài viết này, chúng ta sẽ tìm hiểu về quá trình sao lưu và phục hồi dữ liệu trong Oracle Database và cách thực hiện sao lưu dữ liệu một cách hiệu quả.

Bài viết này nhằm mục đích giúp bạn:

  • Tạo sao lưu cơ sở dữ liệu nhất quán.
  • Sao lưu cơ sở dữ liệu mà không cần tắt hệ thống.
  • Tạo sao lưu tăng dần.
  • Tự động hóa quá trình sao lưu cơ sở dữ liệu.
  • Quản lý các bản sao lưu.

Sau khi hoàn thành bài viết này, bạn sẽ có kiến thức để thực hiện sao lưu và phục hồi dữ liệu trong Oracle Database một cách hiệu quả.

Giải pháp backup Oracle Datbase: Tổng quan

backup oracle database

Recovery Manager (RMAN) là phương pháp được khuyến nghị để sao lưu cơ sở dữ liệu Oracle của bạn. Bạn có thể sử dụng nó để sao lưu vào đĩa hoặc vào một kênh sao lưu hệ thống lưu trữ trên băng (SBT). Oracle khuyến nghị rằng sao lưu đĩa nên được lưu trữ trong khu vực phục hồi nhanh (FRA).

Oracle Secure Backup bổ sung các chức năng hiện có bằng cách thêm chức năng sao lưu vào băng và sao lưu dữ liệu hệ thống tệp. Nó tương tác một cách trong suốt với RMAN. Các trình quản lý phương tiện bên thứ ba cũng có thể được sử dụng để sao lưu vào băng.

Các sao lưu do người dùng quản lý là các sao lưu không phải là RMAN, ví dụ như sử dụng tiện ích hệ điều hành. Thông thường, chúng dựa trên các tập lệnh mà một DBA phải viết. Tuy nhiên, tùy chọn này đang bị loại bỏ dần vì nó tốn nhiều công sức lao động hơn.

Oracle Secure Backup: Quản lý phương tiện và backup oracle database đa nền tảng

Sản phẩm sao lưu và phục hồi hiện tại của Oracle cho cơ sở dữ liệu là Recovery Manager (RMAN). Oracle Secure Backup bổ sung các chức năng hiện có như sau:

  • Giải pháp sao lưu đầy đủ: Oracle Secure Backup cung cấp bảo vệ dữ liệu cho cơ sở dữ liệu và dữ liệu không thuộc cơ sở dữ liệu để bảo vệ toàn bộ môi trường Oracle.
  • Quản lý phương tiện truyền thông: Oracle Secure Backup cung cấp lớp quản lý phương tiện cho các sao lưu cơ sở dữ liệu bằng RMAN. Trước khi có Oracle Secure Backup, khách hàng phải mua các sản phẩm quản lý phương tiện truyền thông của bên thứ ba đắt đỏ để tích hợp với sao lưu RMAN.
  • Sao lưu ở bất kỳ nơi nào trên mạng: Oracle Secure Backup sao lưu dữ liệu từ nhiều hệ thống máy tính kết nối mạng đến các nguồn tài nguyên lưu trữ bên thứ ba trên mạng. Oracle Secure Backup hỗ trợ các cấu hình đa dạng của máy chủ, máy khách, máy chủ lưu trữ gắn kết mạng (NAS) và thiết bị lưu trữ bên thứ ba và bảo vệ môi trường lưu trữ mạng.

Sự kết hợp giữa RMAN và Oracle Secure Backup cung cấp một giải pháp sao lưu toàn diện hoàn toàn. Giải pháp này tạo điều kiện hỗ trợ khách hàng tốt hơn vì Oracle Corporation chịu trách nhiệm cho toàn bộ giải pháp sao lưu.

Quản lý sao lưu do người dùng: Tạo và thực thi tập lệnh backup oracle DB

Sao lưu do người dùng quản lý có thể được thực hiện một cách tương tác. Tuy nhiên, thường thì nó đòi hỏi viết các tập lệnh để thực hiện sao lưu. Có một số kịch bản có thể chạy và cần viết các tập lệnh để xử lý chúng. Dưới đây là một số hành động mà các tập lệnh phải thực hiện:

  • Truy vấn V$DATAFILE để xác định các tệp dữ liệu cần được sao lưu và trạng thái hiện tại của chúng.
  • Truy vấn V$LOGFILE để xác định các tệp redo log trực tuyến.
  • Truy vấn V$CONTROLFILE để xác định tệp điều khiển cần được sao lưu.
  • Đưa mỗi tablespace vào chế độ sao lưu trực tuyến.
  • Truy vấn V$BACKUP để xem các tệp dữ liệu nằm trong một tablespace đã được đưa vào chế độ sao lưu trực tuyến.
  • Thực hiện các lệnh sao chép hệ điều hành để sao chép các tệp dữ liệu đến vị trí sao lưu.
  • Đưa mỗi tablespace ra khỏi chế độ sao lưu trực tuyến.

Các thuật ngữ thường dùng trong backup oracle database

  1. Chiến lược sao lưu có thể bao gồm:
    • Sao lưu toàn bộ cơ sở dữ liệu (Full)
    • Sao lưu một phần của cơ sở dữ liệu (Partial)
  2. Loại sao lưu có thể chỉ ra việc bao gồm:
    • Tất cả các khối dữ liệu trong các tệp đã chọn (đầy đủ)
    • Chỉ thông tin đã thay đổi kể từ một lần sao lưu trước đó (tăng dần)
    • Sao lưu tích lũy (thay đổi kể từ lần sao lưu cấp 0 trước đó)
    • Sao lưu khác biệt (thay đổi kể từ sao lưu tăng dần trước đó)
  3. Chế độ sao lưu có thể là:
    • Sao lưu ngoại tuyến (nhất quán, lạnh)
    • Sao lưu trực tuyến (mất nhất quán, nóng)

Sao lưu toàn bộ cơ sở dữ liệu – Whole database backup: Bao gồm tất cả các tệp dữ liệu và ít nhất một tệp điều khiển – control file (Hãy nhớ rằng tất cả các control file trong cơ sở dữ liệu là giống nhau.)

Sao lưu một phần cơ sở dữ liệu – Partial database backup: Có thể bao gồm không hoặc nhiều tablespace và không hoặc nhiều tệp dữ liệu – Data file; có thể bao gồm hoặc không bao gồm tệp điều khiển.

Sao lưu đầy đủ – Full backup: Tạo bản sao của mỗi khối dữ liệu chứa dữ liệu và nằm trong các tệp đang được sao lưu.

Sao lưu tăng dần -Incremental backup : Tạo bản sao của tất cả các khối dữ liệu đã thay đổi kể từ lần sao lưu trước đó. Oracle Database hỗ trợ hai cấp độ sao lưu tăng dần (0 và 1).

Sao lưu tăng dần cấp 1 có thể là một trong hai loại: tích lũy hoặc khác biệt. Sao lưu tích lũy sao lưu tất cả các thay đổi kể từ lần sao lưu cấp 0 trước đó.

Sao lưu khác biệt sao lưu tất cả các thay đổi kể từ lần sao lưu tăng dần trước đó (có thể là sao lưu cấp 0 hoặc cấp 1). Sử dụng RMAN để Theo dõi Thay đổi hỗ trợ sao lưu tăng dần.

Sao lưu ngoại tuyến (còn được gọi là sao lưu “Lạnh – Cold” hoặc nhất quán – consistent ): Thực hiện khi cơ sở dữ liệu không được mở. Chúng là nhất quán vì, tại thời điểm sao lưu, số thứ tự thay đổi hệ thống (SCN) trong tiêu đề các tệp dữ liệu khớp với SCN trong tệp điều khiển.

Sao lưu trực tuyến (còn được gọi là sao lưu “nóng – Hot” hoặc không nhất quán – inconsistent): Thực hiện khi cơ sở dữ liệu đang mở. Chúng không nhất quán vì, khi cơ sở dữ liệu đang mở, không đảm bảo rằng các tệp dữ liệu được đồng bộ với tệp điều khiển.

Các loại backup dữ liệu trong Oracle Database

backup oracle database

Sao chép Image (Image copies): Là bản sao của dữ liệu hoặc các tệp log đã được lưu trữ (tương tự như việc sao chép đơn giản các tệp bằng cách sử dụng các lệnh hệ điều hành).

Tập tin sao lưu – Backup sets: Là các tập hợp gồm một hoặc nhiều tệp nhị phân chứa một hoặc nhiều tệp dữ liệu, tệp điều khiển, tệp tham số máy chủ hoặc tệp log đã được lưu trữ.

Với các tập tin sao lưu, các khối dữ liệu trống không được lưu trữ, do đó tập tin sao lưu sử dụng ít không gian trên đĩa hoặc băng. Các tập tin sao lưu có thể được nén để tiết kiệm không gian yêu cầu của sao lưu.

Sao chép hình ảnh phải được sao lưu lên đĩa. Các tập tin sao lưu có thể được gửi đến đĩa hoặc trực tiếp đến băng.Tiện ích của việc tạo sao lưu dưới dạng sao chép hình ảnh là cải thiện tính chi tiết của hoạt động khôi phục.

Với sao chép hình ảnh, chỉ cần khôi phục lại tệp hoặc các tệp từ vị trí sao lưu của bạn. Với các tập tin sao lưu, toàn bộ tập tin sao lưu phải được khôi phục lại từ vị trí sao lưu của bạn trước khi bạn trích xuất tệp hoặc các tệp cần thiết.

Lợi ích của việc tạo sao lưu dưới dạng tập tin sao lưu là sử dụng không gian tốt hơn. Trong hầu hết các cơ sở dữ liệu, 20% hoặc hơn các khối dữ liệu là các khối trống.

Sao chép hình ảnh sao lưu từng khối dữ liệu, ngay cả khi khối dữ liệu là trống. Các tập tin sao lưu giảm đáng kể không gian yêu cầu của sao lưu. Trong hầu hết các hệ thống, lợi ích của các tập tin sao lưu vượt trội hơn so với sao chép hình ảnh.

Các loại backup data oracle trong RMAN

backup oracle database

Full Backups

Một sao lưu đầy đủ khác biệt với một sao lưu toàn bộ cơ sở dữ liệu. Một sao lưu đầy đủ của tệp dữ liệu là một sao lưu bao gồm mọi khối dữ liệu đã được sử dụng trong tệp đó.

RMAN sao chép tất cả các khối vào tập tin sao lưu hoặc sao chép hình ảnh, chỉ bỏ qua những khối tệp dữ liệu không thuộc phần của một đoạn hiện có. Đối với một sao chép hình ảnh đầy đủ, toàn bộ nội dung tệp được tái sản xuất chính xác.

Một sao lưu đầy đủ không thể là một phần của chiến lược sao lưu tăng dần; nó không thể là cha cho một sao lưu tăng dần sau đó.

Incremental Backups

Một sao lưu tăng dần có thể là một sao lưu cấp 0, bao gồm mọi khối trong các tệp dữ liệu trừ các khối chưa bao giờ được sử dụng, hoặc là một sao lưu cấp 1, bao gồm chỉ các khối đã được thay đổi kể từ khi một sao lưu trước đó được thực hiện.

Một sao lưu tăng dần cấp 0 về mặt vật lý giống như một sao lưu đầy đủ. Sự khác biệt duy nhất là sao lưu cấp 0 (cũng như sao chép hình ảnh) có thể được sử dụng làm cơ sở cho một sao lưu cấp 1, nhưng một sao lưu đầy đủ không bao giờ có thể được sử dụng làm cơ sở cho một sao lưu cấp 1.

Sao lưu tăng dần được chỉ định bằng từ khóa INCREMENTAL của lệnh BACKUP. Bạn chỉ định INCREMENTAL LEVEL [0 | 1].

RMAN có thể tạo các sao lưu tăng dần đa cấp như sau:

  • Sao lưu khác biệt – Differential: Là loại sao lưu tăng dần mặc định sao lưu tất cả các khối đã thay đổi sau sao lưu tăng dần gần đây nhất ở cấp độ 1 hoặc cấp độ 0.
  • Sao lưu tích lũy – Cumulative: Sao lưu tất cả các khối đã thay đổi sau sao lưu gần đây nhất ở cấp độ 0.

Ví dụ:

Để thực hiện một sao lưu tăng dần cấp 0, sử dụng lệnh sau:

RMAN> BACKUP INCREMENTAL LEVEL 0 DATABASE;

Để thực hiện một sao lưu tăng dần khác biệt, sử dụng lệnh sau:

RMAN> BACKUP INCREMENTAL LEVEL 1 DATABASE;

Để thực hiện một sao lưu tăng dần tích lũy, sử dụng lệnh sau:

RMAN> BACKUP INCREMENTAL LEVEL 1 CUMULATIVE DATABASE;

RMAN tạo sao lưu đầy đủ theo mặc định nếu không có từ khóa FULL hoặc INCREMENTAL được chỉ định. Nén khối không sử dụng khi sao lưu tệp dữ liệu vào tập tin sao lưu, ngay cả đối với sao lưu đầy đủ, sẽ gây bỏ qua các khối chưa được ghi khi sao lưu.

Một sao lưu đầy đủ không ảnh hưởng đến các sao lưu tăng dần sau này và không được coi là một phần của chiến lược sao lưu tăng dần nào, mặc dù một sao chép hình ảnh đầy đủ có thể được cập nhật tăng dần bằng cách áp dụng sao lưu tăng dần với lệnh RECOVER.

Lưu ý: Có thể thực hiện bất kỳ loại sao lưu nào (đầy đủ hoặc tăng dần) của cơ sở dữ liệu ở chế độ NOARCHIVELOG – tất nhiên, nếu cơ sở dữ liệu không mở.

Lưu ý rằng khôi phục giới hạn trong khoảng thời gian của sao lưu cuối cùng. Cơ sở dữ liệu chỉ có thể khôi phục đến transaction được commit cuối cùng khi cơ sở dữ liệu ở chế độ ARCHIVELOG.

Sử dụng RMAN để phục hồi dữ liệu trong Oracle Database

using rman to backup oracle database

RMAN là thành phần của máy chủ Oracle Database được sử dụng để thực hiện các hoạt động sao lưu và khôi phục. Nó có thể được sử dụng để thực hiện sao lưu nhất quán và không nhất quán, thực hiện sao lưu tăng dần và đầy đủ, và sao lưu toàn bộ cơ sở dữ liệu hoặc một phần của nó.

RMAN sử dụng ngôn ngữ điều khiển công việc và kịch bản mạnh mẽ riêng của nó, cũng như một API được công bố liên kết RMAN với nhiều giải pháp phần mềm sao lưu phổ biến.

RMAN có thể lưu trữ các bản sao lưu trên đĩa để khôi phục nhanh chóng hoặc đặt chúng trên băng cho việc lưu trữ dài hạn. Để RMAN lưu trữ các bản sao lưu trên băng, bạn phải sử dụng Oracle Secure Backup hoặc cấu hình một giao diện với thiết bị băng được biết đến là thư viện quản lý phương tiện (MML).

Enterprise Manager Cloud Control cung cấp giao diện đồ họa cho các chức năng RMAN được sử dụng phổ biến nhất. Các hoạt động sao lưu và khôi phục nâng cao có thể được truy cập thông qua công cụ dòng lệnh của RMAN.

Setting Cấu hình Backup

Để cấu hình quản lý cài đặt sao lưu bằng các lệnh RMAN, bạn có thể sử dụng các lệnh sau:

1. Đặt cài đặt đa luồng (parallelism):

CONFIGURE DEVICE TYPE DISK PARALLELISM <value>;

Trong đó, `<value>` là số lượng luồng sao lưu riêng biệt mà bạn muốn tạo. Giá trị này phụ thuộc vào phần cứng và tài nguyên của hệ thống.

2. Đặt vị trí sao lưu trên đĩa (disk backup location):

CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '<location>';

Trong đó, `<location>` là đường dẫn tới vị trí mà bạn muốn lưu trữ sao lưu trên đĩa.

3. Đặt loại sao lưu trên đĩa (disk backup type):

CONFIGURE DEFAULT DEVICE TYPE TO DISK;
CONFIGURE BACKUP OPTIMIZATION ON;

Điều này sẽ đặt mặc định sử dụng sao lưu trên đĩa và bật tối ưu hóa sao lưu.

4. Đặt kích thước tối đa của các phần sao lưu (maximum backup piece size):

CONFIGURE MAXSETSIZE TO <value> G;

Trong đó, `<value>` là kích thước tối đa của mỗi phần sao lưu, được chỉ định theo đơn vị GB.

5. Đặt thuật toán nén cho sao lưu (backup compression algorithm):

CONFIGURE DEFAULT DEVICE TYPE TO DISK;
CONFIGURE COMPRESSION ALGORITHM '<algorithm>';

Trong đó, `<algorithm>` là thuật toán nén mà bạn muốn sử dụng cho sao lưu, ví dụ như `BASIC`, `LOW`, `MEDIUM`, `HIGH`.

6. Đặt độ dư thừa cho sao lưu băng (tape backup redundancy):

CONFIGURE DEFAULT DEVICE TYPE TO SBT;
CONFIGURE BACKUP OPTIMIZATION OFF;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE SBT TO '<format>';

Trong đó, `<format>` là định dạng tên tệp cho sao lưu tự động của tệp điều khiển trên băng.

Lưu ý rằng bạn cần đăng nhập vào RMAN với đủ đặc quyền (như SYSDBA) để thực hiện các lệnh cấu hình sao lưu này.

Để đăng nhập vào RMAN với quyền SYSDBA, bạn có thể tuân theo các bước sau:

1. Mở cửa sổ command prompt hoặc terminal trên máy chủ Oracle Database.

2. Gõ lệnh sau để bắt đầu phiên làm việc RMAN:

rman target /

Lệnh trên sẽ tự động đăng nhập vào RMAN với quyền SYSDBA và mục tiêu (target) là cơ sở dữ liệu hiện tại.

3. Nếu yêu cầu, nhập mật khẩu của người dùng SYS (hoặc người dùng khác có quyền SYSDBA) và nhấn Enter.

4. Bạn đã đăng nhập thành công vào RMAN với quyền SYSDBA và có thể thực hiện các lệnh RMAN liên quan đến sao lưu và khôi phục cơ sở dữ liệu.

Lưu ý rằng quyền SYSDBA cung cấp quyền cao nhất trong hệ thống Oracle Database và yêu cầu cẩn thận khi sử dụng. Hãy chắc chắn chỉ sử dụng quyền SYSDBA khi cần thiết và tuân thủ các quy tắc an ninh hệ thống.

Hướng dẫn backup control file và trace file bằng RMAN

Để sao lưu tệp điều khiển (control file) và tệp trace bằng lệnh RMAN, bạn có thể làm theo các bước sau:

1. Mở cửa sổ command prompt hoặc terminal trên máy chủ Oracle Database.

2. Gõ lệnh sau để bắt đầu phiên làm việc RMAN:

rman target /

Lệnh trên sẽ tự động đăng nhập vào RMAN với quyền SYSDBA và mục tiêu (target) là cơ sở dữ liệu hiện tại.

3. Để sao lưu control file, gõ lệnh sau trong RMAN:

BACKUP CURRENT CONTROLFILE;

Lệnh trên sẽ tạo một bản sao của tệp điều khiển hiện tại và lưu nó vào vị trí sao lưu được cấu hình trước đó.

4. Để sao lưu tệp trace, gõ lệnh sau trong RMAN:

BACKUP TRACE;

Lệnh trên sẽ sao lưu tất cả các tệp trace trong cơ sở dữ liệu.

5. Chờ RMAN hoàn thành quá trình sao lưu. Khi quá trình hoàn thành, bạn sẽ nhận được thông báo thành công.

Lưu ý: rằng việc sao lưu tệp điều khiển và tệp trace là quan trọng để đảm bảo khả năng khôi phục cơ sở dữ liệu. Hãy chắc chắn thực hiện sao lưu định kỳ và lưu trữ sao lưu ở nơi an toàn và có thể phục hồi được khi cần thiết.

Hướng dẫn quản lý Backup bằng RMAN

Để quản lý các tệp sao lưu bằng RMAN, bạn có thể sử dụng các lệnh sau:

1. Xem danh sách các tệp sao lưu hiện có:

RMAN> LIST BACKUP;

2. Xem thông tin chi tiết về một tệp sao lưu cụ thể:

RMAN> LIST BACKUPSET <backupset_id>;
RMAN> LIST COPY <copy_id>;

3. Xem danh sách các tệp sao lưu cho một bảng dữ liệu cụ thể:

RMAN> LIST BACKUP OF TABLESPACE <tablespace_name>;
RMAN> LIST BACKUP OF DATAFILE <datafile_number>;

4. Xem lịch sử sao lưu của một bảng dữ liệu cụ thể:

RMAN> REPORT NEED BACKUP TABLESPACE <tablespace_name>;

5. Xóa một tệp sao lưu cụ thể:

RMAN> DELETE BACKUPSET <backupset_id>;
RMAN> DELETE COPY <copy_id>;

6. Xóa tất cả các tệp sao lưu của một bảng dữ liệu cụ thể:

RMAN> DELETE BACKUP OF TABLESPACE <tablespace_name>;
RMAN> DELETE BACKUP OF DATAFILE <datafile_number>;

7. Xóa tất cả các tệp sao lưu hết hạn:

RMAN> DELETE EXPIRED BACKUP;

8. Đặt hạn chế thời gian cho các tệp sao lưu:

RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF <number_of_days> DAYS;

9. Xem thông tin chi tiết về dung lượng sao lưu sử dụng trên đĩa:

RMAN> REPORT SCHEMA;

10. Xem thông tin về không gian được sử dụng bởi các tệp sao lưu:

RMAN> REPORT NEED BACKUP REDUNDANCY;

11. Nén các tệp sao lưu:

RMAN> BACKUP AS COMPRESSED BACKUPSET <backupset_or_copy>;

12. Thực hiện sao lưu kiểm tra:

RMAN> BACKUP CHECK LOGICAL;

Chia sẽ bài viết này

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}

Qui Truong

Thông tin tác giả:

Xin chào mọi người, mình là Qui Trương. Hiện tại, ngoài công việc là một DBA thì mình còn là một người sáng tạo nội dung trên trang blog caitrang.com. Mỗi ngày, mình luôn tìm kiếm cách để chia sẻ những nội dung độc đáo, ý nghĩa và mang tính cảm hứng tới mọi người. Mình tin rằng qua từng dòng viết, mình có thể kết nối và tạo dựng một cộng đồng đọc giả thú vị và ý nghĩa.

Page [tcb_pagination_current_page] of [tcb_pagination_total_pages]

>