Mungkin ada skenario ketika fase peralihan gagal . Hal ini dimungkinkan untuk kembali ke keadaan cutover sebelumnya (kembalikan patch), jika database flashback diaktifkan di database atau kami telah mengambil cadangan penuh sebelum cutover
Saya akan menjelaskannya sehubungan dengan Database Flashback untuk mengembalikan patch
Saya berasumsi di sini kita telah mengaktifkan Flashback di database. Kita dapat mengonfirmasinya dengan menggunakan perintah
SQL>select FLASHBACK_ON from v$database;
FLASHBACK_ON
------------
Yes
Anda dapat mempelajari lebih lanjut tentang basis data Flashback di tautan di bawah ini
Flashback Oracle Database
Cara Flashback saat kita memiliki dataguard
Direkomendasikan fase cutover Patching Online harus dijadwalkan untuk waktu ketika ada beberapa transaksi online dan pemrosesan batch minimal. Anda harus mengonfirmasi bahwa permintaan bersamaan yang penting tidak dijalankan selama cutover. Anda juga harus mempertimbangkan untuk menunda permintaan bersamaan yang dijadwalkan sebelum mengeksekusi cutover karena jika tidak, fase cutover akan menunggu program selesai ditambah Anda akan kehilangan data transaksi jika terjadi kilas balik
Mari kita lihat Kasus Masalah
Kasus 1
Anda menjalankan siklus Patching Online:
$ adop phase=prepare
$ adop phase=apply patches=99999999
$ adop phase=finalize
$ adop phase=cutover
Cutover gagal, dan Anda harus kembali ke status sistem sebelum menjalankan fase cutover.
Jika Anda tidak menjalankan fase cutover, Anda akan dapat memutar kembali proses aplikasi patch dengan menjalankan fase adopsi abort. Namun, ini tidak mungkin setelah cutover dijalankan.
Ada dua bagian utama untuk mengembalikan tambalan:
(1) Pemulihan Basis Data :Flashback database adalah metode tercepat untuk mengembalikan perubahan database dan kembali ke titik waktu. Kami juga dapat menggunakan teknik pemulihan basis data tetapi itu sangat memakan waktu
Mem-flash Kembali Basis Data
a). Pertama, matikan basis data, lalu jalankan dalam status mount:
SQL>shutdown immediate Database closed. Database dismounted. ORACLE instance shut down. SQL>startup mount ORACLE instance started.
b).Kembalikan flashback ke waktu yang ditentukan.
SQL>flashback database to time to_data(<time before teh cutover>; Flashback complete.
c).Mulai database dalam mode read-only:
SQL>alter database open read only; Database altered. Check all looks as expected.
d).Matikan database, jalankan dalam keadaan mount, lalu buka dengan opsi resetlogs:
SQL>shutdown immediate Database closed. Database dismounted. ORACLE instance shut down. SQL>startup mount ORACLE instance started. Database mounted. SQL>alter database open resetlogs; Database altered.
2) Pemulihan sistem file :Tergantung pada saat cutover gagal, Anda mungkin juga perlu memulihkan sistem file tingkat aplikasi
Memulihkan Sistem File
Apakah Anda perlu melakukan langkah ini tergantung pada apakah cutover gagal sebelum sistem file dialihkan. Anda dapat mengidentifikasi kasus mana yang berlaku dengan merujuk ke log cutover di $NE_BASE/EBSapps/log/adop/
Kasus 1 – Jika pesan log menunjukkan bahwa cutover gagal sebelum sistem file dialihkan, lakukan shutdown bersih semua layanan yang sedang berjalan. Kemudian restart semua layanan menggunakan skrip startup normal,
Kasus 2 – Jika pesan log menunjukkan bahwa pengalihan gagal setelah sistem file dialihkan, ikuti langkah di bawah ini untuk mengalihkan kembali sistem file.
(a) Matikan layanan yang dimulai dari sistem file yang baru dijalankan
1.Sumber lingkungan pada sistem file yang baru dijalankan.
2.Dari $ADMIN_SCRIPTS_HOME, matikan semua layanan (menggunakan adstpall .sh di UNIX).
(b)Dalam lingkungan multi-node, ulangi dua langkah sebelumnya pada semua node, biarkan node admin sampai semua node slave.
(c) Mengganti sistem file kembali
Pada semua node di mana sistem file telah dialihkan, jalankan perintah berikut untuk mengalihkan kembali sistem file:
$ perl $AD_TOP/patch/115/bin/txkADOPCutOverPhaseCtrlScript.pl \ -action=ctxupdate \ -contextfile=<full path to new run context file> \ -patchcontextfile=<full path to new patch file system context file> \ -outdir=<full path to out directory>
(d)Mulai semua layanan dari sistem file lama (menggunakan adstrtal.sh di UNIX).
(e)Dalam lingkungan multi-node, ulangi dua langkah sebelumnya di semua node, dimulai dengan node admin dan kemudian melanjutkan ke node budak
Kesimpulan
Setelah pemulihan selesai, Anda memiliki dua opsi dasar untuk melanjutkan:
(a) Batalkan siklus tambalan saat ini, jika masalah yang mengharuskan Anda untuk memulihkan disebabkan oleh tambalan yang Anda coba terapkan.
Berikut adalah langkah-langkah untuk Membatalkan Siklus Patching Online
Jika siklus patching gagal dan masalah tidak dapat diselesaikan dengan cepat, siklus patching dapat dibatalkan dan kembali ke operasi runtime normal. Edisi tambalan akan dihapus.
Anda dapat meninggalkan siklus tambalan (tanpa menerapkan tambalan apa pun) dengan menjalankan perintah:
$ adop phase=abort
Membatalkan siklus tambalan akan menghapus edisi tambalan, tetapi Anda kemudian harus menjalankan fase pembersihan dan fs_clone sebelum memulai siklus tambalan baru. Pembersihan harus benar-benar bersih.
For example:
$ adop phase=prepare
$ adop phase=apply patches=9999999
$ adop phase=abort
$ adop phase=cleanup cleanup_mode=full
$ adop phase=fs_clone
Secara opsional, Anda dapat menggabungkan perintah abort dan cleanup sebagai berikut:
$ adop phase=abort,cleanup cleanup_mode=full
(b) Identifikasi dan perbaiki masalah lain apa pun dalam siklus penambalan saat ini, dan lanjutkan dengan penambalan.