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

Cara mengembalikan patch setelah fase cutover gagal di R12.2

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//cutover_ / untuk id sesi Anda saat ini.

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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana mendokumentasikan database

  2. Cara bekerja dengan Fungsi tanggal di Oracle sql

  3. Dapatkan amplop, yaitu rentang waktu yang tumpang tindih

  4. GATHER_PLAN_STATISTICS tidak menghasilkan statistik rencana dasar

  5. Hubungan pendek Oracle CASE tidak bekerja dalam grup oleh