Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

bagaimana memulihkan database siaga dari log arsip yang hilang

Basis data Siaga Fisik bergantung pada aplikasi log arsip yang berkelanjutan dari Basis Data Utama agar sinkron dengannya. Dalam versi Oracle Database sebelum 10g jika log arsip hilang atau rusak, Anda harus membangun kembali database siaga dari awal. Dari 10g Anda dapat menggunakan cadangan tambahan dari SCN dan memulihkan siaga menggunakan yang sama untuk mengkompensasi log arsip yang hilang. Dalam hal ini, kita akan melihat cara memulihkan database siaga dari log arsip yang hilang

Jadi, inilah langkah-langkah untuk memulihkan database siaga dari log arsip yang hilang

Langkah 1:

Di database siaga, periksa SCN saat ini

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

Langkah 2 :

Pada database utama, buat cadangan tambahan yang diperlukan dari SCN di atas

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

Kita dapat menggunakan pekerja paralel untuk mempercepat pembuatan cadangan jika database telah menghasilkan banyak perubahan

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';
}

Langkah 3:

Batalkan pemulihan terkelola di database siaga

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

Langkah 4:

  • scp file backup ke server standby ke folder /tmp.
  • Katalogkan File Cadangan Tambahan di Basis Data Siaga
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

Langkah 5:

Terapkan Pencadangan Inkremental ke Basis Data Siaga

rman target /
RMAN>RECOVER DATABASE NOREDO;

Langkah 6:

Kembalikan database siaga ke mode pemulihan terkelola.

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

Dari alert.log Anda akan melihat bahwa database standby masih mencari file log lama

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

Ini karena file kontrol belum diperbarui. Oleh karena itu, file kendali siaga harus dibuat ulang

Langkah 7:

Pada file utama, buat file kontrol siaga baru

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

Langkah 8:

Tangkap informasi file data dalam database STANDBY.
File kontrol siaga perlu di-refresh dari cadangan yang diambil pada langkah #7. Karena nama file data mungkin berbeda dari yang utama, simpan nama nama file data standby Anda untuk referensi setelah memulihkan file kontrol dari cadangan utama. Jalankan kueri di bawah ini dalam database siaga dan simpan hasilnya untuk digunakan lebih lanjut.

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

Langkah 9:

Salin file kontrol siaga ke situs siaga. Matikan database siaga dan ganti file kontrol siaga dan mulai ulang database siaga dalam mode pemulihan terkelola menggunakan perintah di bawah ini

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

Langkah 10:

Pasang siaga

RMAN> ALTER DATABASE MOUNT;

Langkah 11:

Langkah ini diperlukan jika lokasi file data berbeda di standby dan Primer

Jika primer dan standby memiliki struktur dan nama file data yang identik, langkah ini dapat dilewati.

Oracle merekomendasikan untuk memeriksa inkarnasi untuk primer dan siaga sebelum menyelesaikan langkah ini.

example:  
RMAN> list incarnation; 

Karena kami telah memulihkan file kontrol dari PRIMARY, nama lokasi file data di file kontrol STANDBY yang dipulihkan ini akan sama dengan nama database PRIMARY. Jika struktur direktori berbeda antara database siaga dan utama atau jika Anda menggunakan nama file yang dikelola Oracle OMF maka tidak akan dapat mengidentifikasi file siaga. Jadi kita bisa membuat katalog file data STANDBY dengan RMAN untuk menjalankan operasi rename.

Lakukan langkah di bawah dalam STANDBY untuk setiap grup disk (atau direktori) tempat file data standby berada.

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

Jika ada file data yang telah ditambahkan ke primer SETELAH SCN cadangan (dalam contoh kami, scn 6746747647647) file data tersebut tidak akan dibuat di server siaga secara otomatis terlepas dari setelan parameter standby_file_management. File data yang ditambahkan harus dikembalikan ke server siaga. Untuk menentukan apakah ada file yang telah ditambahkan ke Primer sejak SCN standby saat ini

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

Jika mengembalikan baris apa pun, maka kita harus mengembalikan file-file itu dari primer ke standby

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

Salin ini ke standby lalu katalog dan pulihkan

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,….;
}

Sekarang kita dapat mengganti database untuk menyalin

RMAN> SWITCH DATABASE TO COPY;

Jika kueri di atas kembali dengan 0 baris nol

RMAN> SWITCH DATABASE TO COPY;

Langkah 11

Saat SIGAI  database, hapus semua grup redo log standby:

SQL> pilih GROUP# dari v$logfile dimana TYPE='STANDBY' group by GROUP#;
SQL> ALTER DATABASE CLEAR LOGFILE GROUP 1;
SQL> ALTER DATABASE CLEAR LOGFILE GROUP 2;
SQL> ALTER DATABASE CLEAR LOGFILE GROUP 3;
….

Langkah 12

Sekarang Anda dapat memulai MRP

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;

Semoga Anda menyukai langkah-langkah terperinci ini tentang cara memulihkan database siaga dari log arsip yang hilang. Tolong berikan umpan balik. Mungkin ada kesalahan.

Juga Dibaca
Non ASM ke ASM
cara menemukan nomor urut log arsip di oracle
cara memeriksa kesalahan log peringatan di oracle
perintah pencadangan RMAN
RMAN Mencantumkan perintah pencadangan
Langkah-langkah untuk melakukan Rolling Forward Database Siaga Fisik menggunakan RMAN Incremental Backup. (ID Dokumen 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. Instal Oracle Database Client Langkah demi Langkah

  2. Menggunakan Dapper dengan prosedur tersimpan Oracle yang mengembalikan kursor

  3. oracle - mengonversi banyak format tanggal menjadi satu tanggal yang diformat

  4. Cadangan Online Vs Offline

  5. Audit di Oracle