<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="id">
	<id>https://cbtlmsts.my.id/wikits/index.php?action=history&amp;feed=atom&amp;title=Penanganan_kegagalan_dan_pemulihan</id>
	<title>Penanganan kegagalan dan pemulihan - Riwayat revisi</title>
	<link rel="self" type="application/atom+xml" href="https://cbtlmsts.my.id/wikits/index.php?action=history&amp;feed=atom&amp;title=Penanganan_kegagalan_dan_pemulihan"/>
	<link rel="alternate" type="text/html" href="https://cbtlmsts.my.id/wikits/index.php?title=Penanganan_kegagalan_dan_pemulihan&amp;action=history"/>
	<updated>2026-08-29T16:45:43Z</updated>
	<subtitle>Riwayat revisi halaman ini di wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://cbtlmsts.my.id/wikits/index.php?title=Penanganan_kegagalan_dan_pemulihan&amp;diff=208&amp;oldid=prev</id>
		<title>Admin: ←Membuat halaman berisi &#039;==Tujuan Pembelajaran== Setelah mempelajari bagian ini, mahasiswa diharapkan mampu: * Menjelaskan jenis kegagalan dalam transaksi database. * Memahami strategi pemulihan menggunakan fitur MySQL. * Mengimplementasikan pemulihan dengan rollback dan log transaksi (binlog) pada MySQL.  ==Jenis Kegagalan dalam Transaksi==  * &#039;&#039;&#039;Kegagalan Sistem (System Crash)&#039;&#039;&#039; - Mati listrik, reboot sistem, atau server MySQL tidak responsif. * &#039;&#039;&#039;Kegagalan Transaksi (Logical Failure...&#039;</title>
		<link rel="alternate" type="text/html" href="https://cbtlmsts.my.id/wikits/index.php?title=Penanganan_kegagalan_dan_pemulihan&amp;diff=208&amp;oldid=prev"/>
		<updated>2025-05-12T17:46:33Z</updated>

		<summary type="html">&lt;p&gt;←Membuat halaman berisi &amp;#039;==Tujuan Pembelajaran== Setelah mempelajari bagian ini, mahasiswa diharapkan mampu: * Menjelaskan jenis kegagalan dalam transaksi database. * Memahami strategi pemulihan menggunakan fitur MySQL. * Mengimplementasikan pemulihan dengan rollback dan log transaksi (binlog) pada MySQL.  ==Jenis Kegagalan dalam Transaksi==  * &amp;#039;&amp;#039;&amp;#039;Kegagalan Sistem (System Crash)&amp;#039;&amp;#039;&amp;#039; - Mati listrik, reboot sistem, atau server MySQL tidak responsif. * &amp;#039;&amp;#039;&amp;#039;Kegagalan Transaksi (Logical Failure...&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Halaman baru&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Tujuan Pembelajaran==&lt;br /&gt;
Setelah mempelajari bagian ini, mahasiswa diharapkan mampu:&lt;br /&gt;
* Menjelaskan jenis kegagalan dalam transaksi database.&lt;br /&gt;
* Memahami strategi pemulihan menggunakan fitur MySQL.&lt;br /&gt;
* Mengimplementasikan pemulihan dengan rollback dan log transaksi (binlog) pada MySQL.&lt;br /&gt;
&lt;br /&gt;
==Jenis Kegagalan dalam Transaksi==&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Kegagalan Sistem (System Crash)&amp;#039;&amp;#039;&amp;#039; - Mati listrik, reboot sistem, atau server MySQL tidak responsif.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Kegagalan Transaksi (Logical Failure)&amp;#039;&amp;#039;&amp;#039; - Kesalahan perhitungan, query salah tulis, atau data tidak valid.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Kegagalan Disk (Disk Failure)&amp;#039;&amp;#039;&amp;#039; - Kerusakan hardware seperti hard disk crash atau corrupt file system.&lt;br /&gt;
&lt;br /&gt;
==Penanganan Kegagalan: &amp;#039;&amp;#039;&amp;#039;ROLLBACK&amp;#039;&amp;#039;&amp;#039;==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Contoh Kegagalan Transaksi dan ROLLBACK&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Misalkan Anda ingin memindahkan uang antar dua rekening:&lt;br /&gt;
&lt;br /&gt;
 START TRANSACTION;&lt;br /&gt;
 &lt;br /&gt;
 UPDATE rekening SET saldo = saldo - 20000 WHERE id = 1;&lt;br /&gt;
 &lt;br /&gt;
 -- Simulasi kesalahan (misalnya tabel tidak ada atau salah ketik)&lt;br /&gt;
 UPDATE rekeningsalah SET saldo = saldo + 20000 WHERE id = 2;&lt;br /&gt;
 &lt;br /&gt;
 -- Karena baris kedua gagal, gunakan rollback:&lt;br /&gt;
 ROLLBACK;&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Hasilnya: Tidak ada perubahan saldo. Transaksi dibatalkan sepenuhnya (atomicity dijaga).&lt;br /&gt;
&lt;br /&gt;
==Fitur Pemulihan MySQL: Binary Log==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Binary Log (binlog)&amp;#039;&amp;#039;&amp;#039; menyimpan semua statement yang mengubah data (DML) dan dapat digunakan untuk:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Recovery&amp;#039;&amp;#039;&amp;#039; data setelah crash&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Replikasi&amp;#039;&amp;#039;&amp;#039; antar server&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Audit log transaksi&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Mengecek Status Binary Log&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 sudo mysql -u root -p&lt;br /&gt;
 SHOW VARIABLES LIKE &amp;#039;log_bin&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
Jika belum aktif, aktifkan di file konfigurasi:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Aktifkan Binary Log di Ubuntu 24.04&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Edit `/etc/mysql/mysql.conf.d/mysqld.cnf`:&lt;br /&gt;
&lt;br /&gt;
 ini&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 server-id       = 1&lt;br /&gt;
 log_bin         = /var/log/mysql/mysql-bin.log&lt;br /&gt;
 binlog_format   = ROW&lt;br /&gt;
&lt;br /&gt;
Kemudian restart MySQL:&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart mysql&lt;br /&gt;
&lt;br /&gt;
==Pemulihan dengan Binary Log==&lt;br /&gt;
&lt;br /&gt;
Jika terjadi crash, Anda bisa:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Restore backup&amp;#039;&amp;#039;&amp;#039; terakhir&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Re-apply log&amp;#039;&amp;#039;&amp;#039; dari binary log menggunakan:&lt;br /&gt;
&lt;br /&gt;
 mysqlbinlog /var/log/mysql/mysql-bin.000001 | mysql -u root -p&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Ini akan memutar ulang semua transaksi yang sudah di-*commit* sebelum crash.&lt;br /&gt;
&lt;br /&gt;
==Autocommit dan Crash Protection==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Cek Autocommit:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 SHOW VARIABLES LIKE &amp;#039;autocommit&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
Jika `ON`, setiap perintah `INSERT`, `UPDATE`, `DELETE` langsung *commit* otomatis.&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Untuk transaksi yang aman, &amp;#039;&amp;#039;&amp;#039;`START TRANSACTION`&amp;#039;&amp;#039;&amp;#039; dan &amp;#039;&amp;#039;&amp;#039;`COMMIT`/`ROLLBACK`&amp;#039;&amp;#039;&amp;#039; manual, agar bisa dikontrol.&lt;br /&gt;
&lt;br /&gt;
==Kesimpulan==&lt;br /&gt;
&lt;br /&gt;
* Transaksi harus mampu pulih dari kegagalan demi menjaga integritas data.&lt;br /&gt;
* MySQL mendukung pemulihan transaksi menggunakan `ROLLBACK` dan fitur `binary log`.&lt;br /&gt;
* Binary log harus diaktifkan secara manual untuk mendukung &amp;#039;&amp;#039;&amp;#039;point-in-time recovery&amp;#039;&amp;#039;&amp;#039; dan replikasi.&lt;br /&gt;
* Selalu gunakan `START TRANSACTION` untuk transaksi kritis agar dapat dikendalikan secara eksplisit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Pranala Menarik==&lt;br /&gt;
&lt;br /&gt;
* [[Database: Kuliah]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>