Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

cách khôi phục cơ sở dữ liệu dự phòng từ nhật ký lưu trữ bị thiếu

Cơ sở dữ liệu Dự phòng Vật lý dựa vào ứng dụng liên tục của các bản ghi lưu trữ từ Cơ sở dữ liệu Chính để đồng bộ với nó. Trong các phiên bản Cơ sở dữ liệu Oracle trước 10g, trong trường hợp nhật ký lưu trữ bị thiếu hoặc bị hỏng, bạn phải xây dựng lại cơ sở dữ liệu dự phòng từ đầu. Từ 10g, bạn có thể sử dụng bản sao lưu gia tăng từ SCN và khôi phục chế độ chờ bằng cách sử dụng tương tự để bù đắp cho các nhật ký lưu trữ bị thiếu.

Vì vậy, đây là các bước về cách khôi phục cơ sở dữ liệu dự phòng từ nhật ký lưu trữ bị thiếu

Bước 1:

Trên cơ sở dữ liệu dự phòng, hãy kiểm tra SCN hiện tại

sqlplus "/ as sysdba"
SQL>set numwidth 30;
SQL>select current_scn from v$database;
CURRENT_SCN
-----------
6746747647647

Bước 2 :

Trên cơ sở dữ liệu chính, hãy tạo bản sao lưu gia tăng cần thiết từ SCN ở trên

rman target /
RMAN> {
allocate channel c1 type disk;
BACKUP INCREMENTAL FROM SCN 6746747647647 DATABASE
FORMAT /tmp/inc_standby_%U';
}

Chúng tôi có thể sử dụng công nhân song song để tăng tốc độ tạo bản sao lưu nếu cơ sở dữ liệu đã tạo ra nhiều thay đổi

run
{allocate channel d1 type disk;
allocate channel d2 type disk;
allocate channel d3 type disk;
allocate channel d4 type disk;
allocate channel d5 type disk;
allocate channel d6 type disk;
allocate channel d7 type disk;
allocate channel d8 type disk;
allocate channel d9 type disk;
allocate channel d10 type disk;
BACKUP INCREMENTAL FROM SCN 6746747647647 DATABASE
FORMAT /tmp/inc_standby_%U';
}

Bước 3:

Hủy khôi phục được quản lý tại cơ sở dữ liệu dự phòng

sqlplus "/ as sysdba"
SQL>alter database recover managed standby database cancel;
Media recovery complete.

Bước 4:

  • chuyển các tệp sao lưu sang máy chủ dự phòng vào thư mục / tmp.
  • Lập danh mục các Tệp Sao lưu Gia tăng tại Cơ sở dữ liệu Dự phòng
rman target /
RMAN> CATALOG START WITH '/tmp/';
searching for all files that match the pattern /tmp/
List of Files Unknown to the Database
=====================================……
Do you really want to catalog the above files (enter YES or NO)? YES
cataloging files…
cataloging done

Bước 5:

Áp dụng Sao lưu tăng dần cho Cơ sở dữ liệu dự phòng

rman target /
RMAN>RECOVER DATABASE NOREDO;

Bước 6:

Đặt cơ sở dữ liệu dự phòng trở lại chế độ khôi phục được quản lý.

sqlplus "/ as sysdba"
SQL>recover managed standby database disconnect;
Media recovery complete.

Từ alert.log, bạn sẽ nhận thấy rằng cơ sở dữ liệu chờ vẫn đang tìm kiếm các tệp nhật ký cũ

FAL[client]: Failed to request gap sequence
GAP - thread 1 sequence ….

Điều này là do tệp điều khiển chưa được cập nhật. Do đó, tệp điều khiển dự phòng phải được tạo lại

Bước 7:

Trên tệp chính, tạo tệp điều khiển dự phòng mới

sqlplus "/ as sysdba"
SQL> alter database create standby controlfile as ‘/tmp/standby01.ctl’;
System altered.

Bước 8:

Chụp thông tin tệp dữ liệu trong cơ sở dữ liệu STANDBY.
Tệp điều khiển dự phòng sẽ cần được làm mới từ bản sao lưu được thực hiện ở bước # 7. Vì tên tệp dữ liệu có thể khác với tên chính, hãy lưu tên của tên tệp dữ liệu dự phòng của bạn để tham khảo sau khi khôi phục tệp điều khiển từ bản sao lưu chính. Chạy truy vấn dưới đây trong cơ sở dữ liệu dự phòng và lưu kết quả để sử dụng thêm.

spool standby_datafile_names.txt
set pagesize 1000;
set lines 200
col name format a60
select file#, name from v$datafile order by file# ;
spool off

Bước 9:

Sao chép tệp điều khiển chế độ chờ vào trang web chờ. Tắt cơ sở dữ liệu dự phòng và thay thế các tệp điều khiển dự phòng và khởi động lại cơ sở dữ liệu dự phòng ở chế độ khôi phục được quản lý bằng cách sử dụng lệnh dưới đây

RMAN> SHUTDOWN IMMEDIATE ;
RMAN> STARTUP NOMOUNT;
RMAN> RESTORE STANDBY CONTROLFILE FROM '/tmp/standby01.ctl';

Bước 10:

Gắn kết ở chế độ chờ

RMAN> ALTER DATABASE MOUNT;

Bước 11:

Bước này là bắt buộc nếu vị trí của các tệp dữ liệu khác nhau ở chế độ chờ và chính

Nếu chính và dự phòng có cấu trúc và tên tệp dữ liệu giống hệt nhau thì có thể bỏ qua bước này.

Oracle khuyên bạn nên kiểm tra hiện thân cho chính và chế độ chờ trước khi hoàn thành bước này.

example:  
RMAN> list incarnation; 

Vì chúng tôi đã khôi phục tệp điều khiển từ CHÍNH, nên tên vị trí tệp dữ liệu trong tệp điều khiển STANDBY được khôi phục này sẽ giống với tên của cơ sở dữ liệu CHÍNH. Nếu cấu trúc thư mục khác nhau giữa cơ sở dữ liệu dự phòng và cơ sở dữ liệu chính hoặc nếu bạn đang sử dụng tên tệp được quản lý của Oracle là OMF thì nó sẽ không thể xác định được các tệp ở chế độ chờ. Vì vậy, chúng ta có thể lập danh mục các tệp dữ liệu STANDBY với RMAN để thực hiện thao tác đổi tên.

Thực hiện bước dưới đây trong STANDBY cho từng nhóm (hoặc thư mục) nơi chứa các tệp dữ liệu dự phòng.

RMAN> CATALOG START WITH '+DATA/STBY/datafile/';

Nếu bất kỳ tệp dữ liệu nào đã được thêm vào chính SAU KHI SCN sao lưu (trong ví dụ của chúng tôi, scn 6746747647647) thì các tệp dữ liệu đó sẽ không được tạo tự động trên máy chủ dự phòng bất kể cài đặt thông số standby_file_management. Các tệp dữ liệu đã thêm sẽ phải được khôi phục vào máy chủ dự phòng. Để xác định xem có tệp nào đã được thêm vào Chính kể từ SCN hiện tại ở chế độ chờ không

SQL>SELECT FILE#, NAME FROM V$DATAFILE WHERE CREATION_CHANGE# > 6746747647647

Nếu nó trả về bất kỳ hàng nào, thì chúng tôi phải khôi phục các tệp đó từ chính sang chế độ chờ

RMAN> backup datafile <missing-1>,<missing-2> ,<missing-3> , format '/tmp/ForStandby_%U' tag 'FORSTANDBY';

Sao chép chúng vào chế độ chờ, sau đó lập danh mục và khôi phục chúng

CATALOG START WITH '/tmp/ForStandby';
run
{
set newname for datafile X to '+DISKGROUP';
set newname for datafile Y to '+DISKGROUP';
set newname for datafile Z to '+DISKGROUP';
etc.
restore datafile x,y,z,….;
}

Bây giờ chúng ta có thể chuyển cơ sở dữ liệu sang sao chép

RMAN> SWITCH DATABASE TO COPY;

Nếu truy vấn trên trả về 0 hàng không

RMAN> SWITCH DATABASE TO COPY;

Bước 11

Trên STANDBY cơ sở dữ liệu, xóa tất cả các nhóm nhật ký làm lại ở chế độ chờ:

SQL> chọn GROUP # từ v $ logfile trong đó TYPE ='STANDBY' nhóm theo GROUP #;
SQL> ALTER DATABASE CLEAR LOGFILE GROUP 1;
SQL> ALTER DATABASE CLEAR LOGFILE GROUP 2;
SQL> ALTER DATABASE XÓA LOGFILE NHÓM 3;
….

Bước 12

Bây giờ bạn có thể bắt đầu MRP

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;

Hy vọng bạn thích các bước chi tiết này về cách khôi phục cơ sở dữ liệu dự phòng từ nhật ký lưu trữ bị thiếu. Vui lòng cung cấp thông tin phản hồi. Có thể có sai sót.

Cũng đã đọc
Non ASM thành ASM
cách tìm số thứ tự nhật ký lưu trữ trong oracle
cách kiểm tra lỗi nhật ký cảnh báo trong oracle
lệnh sao lưu RMAN
RMAN Danh sách lệnh sao lưu
Các bước cần thực hiện để Chuyển tiếp Cơ sở dữ liệu Dự phòng Vật lý bằng cách sử dụng Sao lưu gia tăng RMAN. (Mã tài liệu 836986.1)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Các kế hoạch thực thi của Oracle khi sử dụng toán tử LIKE với hàm DETERMINISTIC

  2. Oracle Streams Step by Step Replication Ví dụ

  3. ORA-01264:Không thể tạo tên tệp logfile

  4. Tạo ứng dụng Java trong Oracle JDeveloper, Phần 1

  5. Phát hiện chu kỳ với tính toán truy vấn con đệ quy