Panduan Lengkap untuk Pemula: cadangan Database SQL

Hai sana, para ahli basis data masa depan! Hari ini, kita akan memulai perjalanan menarik ke dunia cadangan basis data SQL. Jangan khawatir jika Anda baru saja memulai – kita akan memulai dari dasar dan maju perlahan-lahan. Pada akhir panduan ini, Anda akan dapat mencadangkan basis data seperti seorang profesional!

SQL - Backup Database

Apa Itu Cadangan Basis Data?

Sebelum kita masuk ke detailnya, mari pahami apa sebenarnya cadangan basis data. Bayangkan Anda menulis novel di komputer Anda. Anda mungkin akan menyimpan kerja Anda secara teratur, kan? Mungkin bahkan menyimpan salinan di USB? Itu sebenarnya apa yang dimaksudkan cadangan basis data – itu adalah salinan basis data Anda pada titik waktu tertentu.

Pertimbangkan itu sebagai jaring keselamatan untuk data Anda. Jika ada yang salah dengan basis data Anda yang aktif, Anda dapat mengembalikannya dari cadangan dan merasalega. Percayalah, sebagai seseorang yang telah mengajar SQL selama tahun, saya telah melihat ini menyelamatkan banyak murid (dan profesional) dari bencana!

Statement Cadangan Database SQL

Sekarang, mari kita meraba-raba sesuatu SQL yang nyata. Sintaks dasar untuk mencadangkan basis data di SQL Server adalah:

BACKUP DATABASE databasename
TO DISK = 'filepath'

mari kitauraikan ini:

  • BACKUP DATABASE adalah perintah yang memberitahu SQL Server bahwa kita ingin membuat cadangan.
  • databasename adalah nama basis data yang ingin Anda cadangkan.
  • TO DISK = 'filepath' menentukan tempat Anda ingin menyimpan berkas cadangan.

Berikut adalah contoh nyata:

BACKUP DATABASE MyAwesomeDB
TO DISK = 'C:\Backups\MyAwesomeDB.bak'

Perintah ini akan membuat cadangan basis data "MyAwesomeDB" dan menyimpannya sebagai berkas "MyAwesomeDB.bak" di folder "C:\Backups".

Jenis Cadangan di SQL

Sekarang kita telah mengetahui dasar-dasar, mari kita jelajahi jenis-jenis cadangan yang tersedia di SQL. Itu seperti memilih jenis asuransi berbeda – masing-masing memiliki tujuan dan keuntungan tersendiri.

1. Cadangan Penuh

Cadangan penuh adalah apa yang Anda pikirkan – salinan lengkap dari keseluruhan basis data Anda. Itu adalah jenis cadangan yang paling komprehensif, tetapi juga yang paling memakan waktu dan ruang penyimpanan.

BACKUP DATABASE MyAwesomeDB
TO DISK = 'C:\Backups\MyAwesomeDB_Full.bak'
WITH INIT

Klausul WITH INIT memberitahu SQL Server untuk menimpa berkas cadangan yang ada dengan nama yang sama.

2. Cadangan Diferensial

Cadangan diferensial hanya mencadangkan data yang berubah sejak cadangan penuh terakhir. Itu seperti menyimpan hanya bab-bab baru novel Anda sejak terakhir kali Anda menyimpan keseluruhan novel.

BACKUP DATABASE MyAwesomeDB
TO DISK = 'C:\Backups\MyAwesomeDB_Diff.bak'
WITH DIFFERENTIAL

3. Cadangan Log Transaksi

Jenis ini mencadangkan log transaksi, yang mencatat semua transaksi dan modifikasi basis data. Itu berguna untuk pemulihan titik-waktu.

BACKUP LOG MyAwesomeDB
TO DISK = 'C:\Backups\MyAwesomeDB_Log.bak'

Berikut adalah tabel praktis yang menyummarisakan jenis-jenis cadangan ini:

Jenis Cadangan Apa yang Itu Cadangkan Kapan Digunakan
Penuh Keseluruhan basis data Secara berkala (misalnya, mingguan)
Diferensial Perubahan sejak cadangan penuh terakhir Lebih sering (misalnya, harian)
Log Transaksi Log transaksi Paling sering (misalnya, setiap jam)

Memulihkan Basis Data dari Cadangan

Membuat cadangan adalah hal yang bagus, tapi mengetahui cara memulihkan basis data dari cadangan juga sangat penting. Itu seperti memiliki rakit di kapal – Anda berharap Anda tidak perlu menggunakannya, tapi Anda akan senang dia ada jika Anda memerlukannya!

Untuk memulihkan basis data dari cadangan penuh:

RESTORE DATABASE MyAwesomeDB
FROM DISK = 'C:\Backups\MyAwesomeDB_Full.bak'
WITH REPLACE

Opsi WITH REPLACE mengijinkan Anda menimpa basis data yang ada dengan nama yang sama.

Jika Anda memulihkan dari beberapa cadangan (seperti cadangan penuh diikuti oleh diferensial), Anda perlu memulihkannya dalam urutan:

-- Memulihkan cadangan penuh
RESTORE DATABASE MyAwesomeDB
FROM DISK = 'C:\Backups\MyAwesomeDB_Full.bak'
WITH NORECOVERY

-- Memulihkan cadangan diferensial
RESTORE DATABASE MyAwesomeDB
FROM DISK = 'C:\Backups\MyAwesomeDB_Diff.bak'
WITH RECOVERY

Opsi WITH NORECOVERY menjaga basis data dalam keadaan pemulihan, memungkinkan Anda untuk menerapkan cadangan tambahan. WITH RECOVERY terakhir menghidupkan basis data.

Cadangan dan Pemulihan Database MySQL dan MS SQL

Hingga saat ini, kita telah fokus utama pada Microsoft SQL Server. Tetapi apa tentang MySQL, Anda bertanya? Jangan khawatir, saya belum lupa tentang itu!

Cadangan MySQL

Di MySQL, Anda dapat menggunakan alat perintah mysqldump untuk membuat cadangan:

mysqldump -u username -p databasename > backup.sql

Ini akan membuat berkas SQL yang berisi semua perintah yang diperlukan untuk merecreate basis data Anda.

Pemulihan MySQL

Untuk memulihkan basis data MySQL dari cadangan:

mysql -u username -p databasename < backup.sql

Ini akan membaca berkas SQL dan menjalankan semua perintah untuk membangun kembali basis data Anda.

SQL Server Management Studio

Untuk mereka yang lebih suka menggunakan antarmuka grafis, SQL Server Management Studio (SSMS) menyediakan wizard cadangan dan pemulihan yang mudah digunakan. Klik kanan pada basis data Anda, pilih "Tasks", kemudian "Back Up..." atau "Restore..." untuk mengakses fitur ini.

Kesimpulan

Dan itu adalah dia, teman-teman! Kita telah menjelajahi negeri cadangan basis data SQL, dari dasar hingga konsep yang lebih maju. Ingat, cadangan secara teratur adalah seperti flossing – mungkin terlihat membosankan, tapi Anda akan senang Anda melakukan itu ketika waktu datang!

Latih perintah ini, eksperimen dengan jenis cadangan yang berbeda, dan segera Anda akan menjadi orang pertama yang dihubungi untuk segala hal cadangan basis data. Dan siapa tahu? Mungkin suatu hari Anda akan menulis panduan Anda sendiri, berbagi kebijaksanaan Anda yang kerasaihkan dengan generasi berikutnya penggemar basis data.

Sampai saat itu, terus mencadangkan, tetap ciekaw-mencari, dan semoga basis data Anda selalu utuh!

Credits: Image by storyset