Template information

Rabu, 08 Oktober 2014

2 tekhnik kesalahan dalam melakukan RECOVERY

DEFFERED UPDATE

DEFFERED UPDATE adalah untuk menunda atau menunda setiap pembaruan yang sebenarnya ke database sampai transaksi selesai pelaksanaannya sukses dan mencapai titik commit (Catatan 4). Selama eksekusi transaksi, update dicatat hanya dalam log dan dalam buffer cache yang. Setelah transaksi mencapai commit titik dan log adalah force ditulis ke disk, update dicatat dalam database. Jika transaksi gagal sebelum mencapai titik commit, tidak perlu untuk membatalkan operasi apapun, karena transaksi tidak mempengaruhi database pada disk dengan cara apapun. Meskipun hal ini mungkin menyederhanakan pemulihan, tidak dapat digunakan dalam praktek kecuali transaksi yang pendek dan setiap transaksi perubahan beberapa item. Untuk jenis transaksi lainnya, ada potensi untuk kehabisan ruang buffer karena perubahan transaksi harus diadakan di buffer cache yang sampai komit titik.
Kita bisa menyatakan protokol pembaruan tangguhan khas sebagai berikut:
 
1 Sebuah transaksi tidak dapat mengubah database pada disk hingga mencapai titik yang melakukan.
 
2 Sebuah transaksi tidak mencapai titik commit sampai semua operasi update yang dicatat dalam log dan log adalah force ditulis ke disk.
 
Pemulihan Menggunakan tangguhan Update di Lingkungan Single-User
 
PROSEDUR RDU_S: Gunakan dua daftar transaksi: transaksi berkomitmen sejak pos pemeriksaan terakhir, dan transaksi aktif (paling banyak satu transaksi akan jatuh dalam kategori ini, karena sistem ini single-user). Terapkan operasi Redo untuk semua operasi write_item dari transaksi yang dilakukan dari log dalam urutan di mana mereka ditulis ke log. Restart transaksi aktif.

Redo (WRITE_OP): Mengulangi sebuah WRITE_OP operasi write_item terdiri dari memeriksa entri log [write_item, T, X, new_value] dan pengaturan nilai barang X dalam database untuk NEW_VALUE, yang setelah gambar (Afim).

Operasi Redo diwajibkan untuk idempoten -yaitu adalah, melaksanakan berulang setara dengan mengeksekusi sekali saja. Bahkan, proses pemulihan keseluruhan harus idempoten. Hal ini karena, jika sistem yang gagal selama proses pemulihan, upaya pemulihan berikutnya mungkin mengulang operasi write_item tertentu yang sudah direnovasi selama proses pemulihan pertama. Hasil pemulihan dari sistem crash selama pemulihan harus sama sebagai hasil dari pemulihan ketika tidak ada kecelakaan selama pemulihan!
 
Perbarui tangguhan dengan Eksekusi Concurrent dalam Lingkungan Multiuser
 
PROSEDUR RDU_M (dengan poin-poin): Gunakan dua daftar transaksi dikelola oleh sistem: transaksi berkomitmen T sejak pemeriksaan terakhir (daftar komit), dan transaksi aktif T (daftar aktif). Redo semua operasi MENULIS transaksi berkomitmen dari log, dalam urutan di mana mereka ditulis ke dalam log. Transaksi yang aktif dan tidak melakukan secara efektif dibatalkan dan harus dikirim ulang.

Jika transaksi dibatalkan untuk alasan apapun (misalnya, dengan metode deteksi kebuntuan), itu hanya dikirimkan kembali, karena tidak berubah database pada disk. Kelemahan dari metode yang dijelaskan di sini adalah bahwa hal itu membatasi eksekusi konkuren transaksi karena semua item tetap terkunci sampai transaksi mencapai titik yang melakukan. Selain itu, mungkin memerlukan ruang buffer yang berlebihan untuk menampung semua item diperbarui sampai transaksi berkomitmen. Manfaat utama metode ini adalah bahwa operasi transaksi tidak perlu dibatalkan, karena dua alasan:
 
1 Sebuah transaksi tidak merekam setiap perubahan dalam database pada disk sampai setelah mencapai nya komit titik-yaitu, sampai selesai pelaksanaannya berhasil. Oleh karena itu, transaksi tidak pernah digulung kembali karena kegagalan selama eksekusi transaksi.
 
2 Sebuah transaksi tidak akan pernah membaca nilai dari item yang ditulis oleh transaksi tidak mengikat, karena item tetap terkunci sampai transaksi mencapai titik yang komit. Oleh karena itu, tidak ada Cascading rollback akan terjadi.
 
Tindakan Transaksi Yang Tidak Mempengaruhi Database
 
Secara umum, transaksi akan memiliki tindakan yang tidak mempengaruhi database, seperti menghasilkan dan mencetak pesan atau laporan dari informasi yang diambil dari database. Jika transaksi gagal sebelum selesai, kita mungkin tidak ingin pengguna untuk mendapatkan laporan ini, karena transaksi telah gagal untuk menyelesaikan. Jika laporan yang keliru tersebut diproduksi, bagian dari proses pemulihan harus menginformasikan pengguna bahwa laporan tersebut salah, karena pengguna dapat mengambil tindakan berdasarkan laporan-laporan ini yang mempengaruhi database. Oleh karena itu, laporan tersebut harus dihasilkan hanya setelah transaksi mencapai titik commit. Metode yang umum untuk menangani tindakan tersebut adalah untuk menjalankan perintah yang menghasilkan laporan tapi tetap mereka sebagai pekerjaan batch, yang dijalankan hanya setelah transaksi mencapai nya komit titik. Jika transaksi gagal, pekerjaan batch dibatalkan.

Konsep:
          Tidak ada undo transaksi apa pun diperlukan karena transaksi tidak mempengaruhi database sampai dilakukan
          Karena semua kunci dilepaskan hanya setelah komit, tidak ada transaksi dapat membaca elemen data yang sedang dimodifikasi oleh transaksi lain
          Oleh karena itu tidak ada kemungkinan rollbacks Cascading
          Namun, operasi disk berpotensi berat selama komit.
  
 


IMMEDIETED UPDATE
Ide umum:
1.        Database diperbarui oleh transaksi dan ketika mereka mengeksekusi.
2.        Update database dilakukan setelah update dicatat dalam log dan log ditulis ke disk (tidak-perlu memaksa ditulis).
3.        Membatalkan semua transaksi yang belum selesai sejak pemeriksaan terakhir.
4.        Redo semua transaksi yang dilakukan sejak pemeriksaan terakhir.
 
Undo Operasi
          Perlu dilakukan untuk semua transaksi yang belum selesai
          Log masuk untuk menulis:
-          [Write_item, T, X, OLD_VALUE, new_value]
          Urungkan operasi dilakukan dengan membaca log dalam urutan terbalik.
          Log entri dirancang sedemikian rupa sehingga membatalkan dan mengulang operasi adalah idempoten.
UNDO / REDO Pemulihan Berdasarkan Segera Update di Lingkungan Single-User
 
PROSEDUR RIU_S
1.Gunakan dua daftar transaksi dikelola oleh sistem: transaksi berkomitmen sejak pemeriksaan terakhir dan transaksi aktif (paling banyak satu transaksi akan jatuh dalam kategori ini, karena sistem ini single-user).
2 Undo semua operasi write_item dari transaksi aktif dari log, dengan menggunakan prosedur UNDO dijelaskan di bawah ini.
3 Redo operasi write_item dari transaksi yang dilakukan dari log, dalam urutan di mana mereka ditulis dalam log, dengan menggunakan prosedur Redo dijelaskan sebelumnya.
 
Prosedur UNDO didefinisikan sebagai berikut:
 
UNDO (WRITE_OP): Membatalkan sebuah WRITE_OP operasi write_item terdiri dari memeriksa entri log [write_item, T, X, OLD_VALUE, new_value] dan pengaturan nilai barang X dalam database untuk OLD_VALUE yang merupakan gambar sebelum (BFIM). Membatalkan sejumlah operasi write_item dari satu atau lebih transaksi dari log harus melanjutkan dalam urutan terbalik dari urutan operasi ditulis dalam log.
Langkah
Gunakan dua daftar transaksi: daftar semua transaksi yang dilakukan sejak pemeriksaan terakhir dan, daftar semua transaksi aktif sejak pos pemeriksaan terakhir
Undo menulis semua transaksi aktif menggunakan kebijakan undo
Redo operasi menulis semua transaksi yang dilakukan
Menyerahkan semua transaksi aktif kembali ke DBMS
 
  UNDO / REDO Pemulihan Berdasarkan Perbarui Segera Eksekusi dengan Concurrent
 
PROSEDUR RIU_M
 
1.Gunakan dua daftar transaksi dikelola oleh sistem: transaksi berkomitmen sejak pemeriksaan terakhir dan transaksi aktif.
2 Undo semua operasi write_item dari aktif (uncommitted) transaksi, menggunakan prosedur UNDO. Operasi harus dibatalkan dalam kebalikan dari urutan di mana mereka ditulis ke dalam log.
3 Redo semua operasi write_item dari transaksi yang dilakukan dari log, dalam urutan di mana mereka ditulis ke dalam log.
 
Langkah
Gunakan 2PL ketat sehingga tidak ada kunci dilepaskan sampai transaksi berkomitmen.
          Gunakan dua daftar transaksi: transaksi yang dilakukan dan aktif sejak pemeriksaan terakhir
          Undo menulis semua transaksi aktif menggunakan kebijakan undo
          Redo operasi menulis semua transaksi yang dilakukan
          Melepaskan kunci dan menyerahkan semua transaksi aktif kembali ke DBMS

0 komentar:

Posting Komentar