Thứ Năm, 30 tháng 8, 2018

Quy trình khôi phục cơ sở dữ liệu Oracle 11g sau thảm họa

Khôi phục thảm họa bao gồm khôi phục và khôi phục cơ sở dữ liệu đích sau khi mất toàn bộ cơ sở dữ liệu đích, tất cả các control file hiện tại, tất cả các online redo log file, tất cả các pfile và cơ sở dữ liệu recovery catalog (nếu có).
Để thực hiện khắc phục thảm họa, các bản sao lưu sau được yêu cầu tối thiểu:
• Sao lưu các tệp dữ liệu (data file)
• Archived redo log tương ứng được tạo sau thời gian sao lưu
• Ít nhất một autobackup của tệp điều khiển (control file)

Quy trình thực hiện khắc phục thảm họa:
• Khôi phục  tệp tham số (pfile) máy chủ từ autobackup
• Bắt đầu cơ sở dữ liệu đích.
• Khôi phục tập tin điều khiển (control file) từ autobackup.
• Gắn (mount) cơ sở dữ liệu.
• Khôi phục các tệp dữ liệu (data file)
• Khôi phục các tập tin dữ liệu (data file)
• Mở cơ sở dữ liệu với tùy chọn RESETLOGS

Thực hiện các bước được liệt kê trên trang này và tiếp theo trên máy chủ khôi phục để khôi phục cơ sở dữ liệu.
1. Cấu hình biến môi trường ORACLE_SID như trong ví dụ sau:
$ setenv ORACLE_SID orcl
2. Bắt đầu RMAN và kết nối với instance đích. Không kết nối với recovery catalog như được hiển thị trong ví dụ sau:
$ rman TARGET /
3. Đặt định danh cơ sở dữ liệu (DBID). Bạn có thể tìm thấy DBID của cơ sở dữ liệu nguồn của mình bằng cách truy vấn cột DBID trong V$DATABASE.
RMAN> SET DBID 1090770270;
4. Bắt đầu instance trong chế độ NOMOUNT:
RMAN> STARTUP NOMOUNT
Bạn sẽ nhận được một lỗi tương tự như sau vì tệp tham số máy chủ (pfile) chưa được khôi phục. RMAN sử dụng một tệp tham số của "dummy" để bắt đầu instance. Khởi động thất bại: ORA-01078: lỗi trong hệ thống xử lý
Thông số
5. Khôi phục tệp tham số máy chủ từ các bộ sao lưu và tắt instance như trong ví dụ:
RESTORE SPFILE TO PFILE '?/oradata/test/initorcl.ora' FROM AUTOBACKUP;
6. Tắt instance:
SHUTDOWN IMMEDIATE;
7. Chỉnh sửa tệp tham số khởi tạo được khôi phục để thay đổi bất kỳ tham số cụ thể theo vị trí nào, chẳng hạn như những người kết thúc bằng _DEST, để phản ánh cấu trúc thư mục mới.
8. Bắt đầu instance trong chế độ NOMOUNT bằng tệp tham số khởi tạo văn bản đã chỉnh sửa của bạn.
RMAN> STARTUP NOMOUNT
> PFILE='?/oradata/test/initorcl.ora';
.
Khôi phục cơ sở dữ liệu về máy chủ mới (tiếp theo)
9. Tạo khối RUN để khôi phục tệp điều khiển từ tự động đóng gói và gắn cơ sở dữ liệu dưới dạng
thể hiện trong ví dụ:
RUN
{
RESTORE CONTROLFILE FROM AUTOBACKUP;
ALTER DATABASE MOUNT;
}
10. Truy vấn V$DATAFILE trên máy chủ mới của bạn để xác định tên tệp cơ sở dữ liệu như được ghi trong control fileTạo tập lệnh khôi phục RMAN để khôi phục và khôi phục cơ sở dữ liệu, bao gồm các bước sau đây khi thích hợp:
a. Sử dụng lệnh SET NEWNAME để chỉ định đường dẫn trên máy chủ mới của bạn cho mỗi
các tệp dữ liệu (data file) được khôi phục đến một đích khác với trên máy chủ gốc.
b. Sử dụng lệnh SQL ALTER DATABASE RENAME FILE để chỉ định đường dẫn cho
online redo log file.
c. Bao gồm lệnh SET UNTIL để giới hạn phục hồi đến cuối archived redo log file.
d. Bao gồm lệnh SWITCH để control file nhận ra tên đường dẫn mới là
tên chính xác cho các tập tin dữ liệu (data file)
Một ví dụ về tập lệnh khôi phục như sau:
RUN
{
SET NEWNAME FOR DATAFILE 1 TO '?/oradata/test/system01.dbf';
SET NEWNAME FOR DATAFILE 2 TO '?/oradata/test/undotbs01.dbf';
SET NEWNAME FOR DATAFILE 3 TO '?/oradata/test/sysaux.dbf';
SET NEWNAME FOR DATAFILE 4 TO '?/oradata/test/users01.dbf';
SET NEWNAME FOR DATAFILE 5 TO '?/oradata/test/example01.dbf';
SQL "ALTER DATABASE RENAME FILE
''/u01/app/oracle/oradata/orcl/redo01.log''
TO ''?/oradata/test/redo01.log'' ";
SQL "ALTER DATABASE RENAME FILE
''/u01/app/oracle/oradata/orcl/redo02.log''
TO ''?/oradata/test/redo02.log'' ";
SQL "ALTER DATABASE RENAME FILE
''/u01/app/oracle/oradata/orcl/redo03.log''
TO ''?/oradata/test/redo03.log'' ";
SET UNTIL SCN 4545727;
RESTORE DATABASE;
SWITCH DATAFILE ALL;
RECOVER DATABASE;
}
11. Thực thi script trên
12. Mở với option RESETLOGS:
RMAN> ALTER DATABASE OPEN RESETLOGS;
Sau khi hoàn thành bài kiểm tra của mình, bạn có thể tắt phiên bản cơ sở dữ liệu kiểm tra và xóa bài kiểm tra cơ sở dữ liệu với tất cả các tập tin của nó.

#oracle_recovery_database



ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master