Bagaimana cara Backup Database SQL ke Network Share
Mencadangkan basis data SQL secara teratur adalah keharusan. Kami telah membahas cara-cara untuk dapat dengan mudah mencadangkan semua database SQL server Anda ke hard drive lokal, tetapi ini tidak melindungi terhadap drive dan / atau kegagalan sistem. Sebagai lapisan perlindungan tambahan terhadap bencana jenis ini, Anda dapat menyalin atau langsung membuat cadangan di jaringan berbagi.
Cadangkan secara lokal lalu salin ke Network Share
Cara yang lebih disukai dan paling langsung untuk menyelesaikan tugas ini adalah dengan membuat cadangan lokal dari basis data dan kemudian menyalin masing-masing file cadangan ke jaringan. Anda dapat melakukan ini dengan membuat skrip batch yang terlihat seperti ini:
SET LocalFolder = C: Program FilesMicrosoft SQL ServerMSSQL.1MSSQLBackup
SqlCmd -E -Q “Cadangkan Basis Data MyDB Ke Disk ="% LocalFolder% MyDB.bak ""
XCopy “% LocalFolder% MyDB.bak” “\ 192.168.16.55BackupDatabases” / Z / V
DEL “% LocalFolder% MyDB.bak”
Script ini melakukan hal berikut (baris demi baris):
- Setel variabel ke direktori cadangan SQL lokal.
- Membuat cadangan SQL MyDB (menggunakan Windows Authentication) ke direktori cadangan SQL lokal.
- Menyalin file cadangan lokal ke jaringan berbagi.
- Menghapus file cadangan lokal.
Sekali lagi, ini adalah metode yang disukai karena berfungsi di luar kotak dan kemungkinan kegagalan cadangan minimal karena cadangan dibuat pada disk lokal. Namun, jika Anda tidak memiliki ruang disk yang cukup untuk menyimpan salinan lokal file cadangan tindakan ini akan gagal. Dalam acara ini, Anda perlu menambahkan ruang disk tambahan atau cadangan langsung ke jaringan berbagi.
Cadangkan Langsung ke Berbagi Jaringan
Biasanya, ketika Anda mencoba membuat cadangan langsung ke jaringan bersama menggunakan perintah seperti:
SqlCmd -E -Q “Cadangkan Basis Data MyDB Ke Disk =" \ 192.168.16.55BackupDatabasesMyDB.bak ""
Anda kemungkinan besar akan mendapatkan kesalahan di sepanjang baris:
Msg 3201, Level 16, Negara 1, Server JF, Jalur 1
Tidak dapat membuka perangkat cadangan '\ 192.168.16.55PackupDatabasesMyDB.bak'. Kesalahan sistem operasi 5 (Akses ditolak.).
Msg 3013, Level 16, Status 1, Server JF, Line 1
CADANGAN CADANGAN diakhiri secara tidak normal.
Kesalahan ini terjadi meskipun Anda menjalankan perintah cadangan SQL menggunakan Windows Authentication (the -E switch) dan akun Windows sebagai kemampuan untuk mengakses dan menyalin file ke share melalui Windows Explorer.
Alasan tindakan ini gagal adalah karena perintah SQL dijalankan dalam batas-batas akun yang menjalankan layanan SQL Server. Ketika Anda melihat daftar Layanan di komputer Anda, kemungkinan besar Anda akan melihat layanan SQL Server berjalan sebagai (kolom Masuk Sebagai) baik Sistem Lokal atau Layanan Jaringan yang merupakan akun sistem yang tidak memiliki akses jaringan.
Pada sistem kami, cadangan ke perintah berbagi jaringan gagal karena kami memiliki layanan SQL Server yang berjalan sebagai Sistem Lokal yang, sekali lagi, tidak dapat mencapai sumber daya jaringan apa pun.
Untuk memungkinkan SQL untuk membuat cadangan langsung ke jaringan berbagi, kita harus menjalankan layanan SQL Server sebagai akun lokal yang memang memiliki akses ke sumber daya jaringan.
Edit properti dari layanan SQL Server dan pada tab Log On, konfigurasikan layanan untuk berjalan sebagai akun alternatif yang memiliki hak akses jaringan.
Ketika Anda mengklik OK, Anda akan mendapatkan prompt bahwa pengaturan tidak akan berlaku hingga layanan dimulai ulang.
Mulai ulang layanan.
Daftar layanan sekarang harus menunjukkan layanan SQL Server berjalan sebagai akun yang Anda konfigurasi.
Sekarang ketika Anda menjalankan perintah untuk membuat cadangan langsung ke jaringan berbagi:
SqlCmd -E -Q “Cadangkan Basis Data MyDB Ke Disk =" \ 192.168.16.55BackupDatabasesMyDB.bak ""
Anda akan melihat pesan sukses:
Diproses 152 halaman untuk database 'MyDB', file 'MyDB' pada file 1.
Diproses 2 halaman untuk database 'MyDB', file 'MyDB_log' pada file 1.
CADANGAN DATABASE berhasil memproses 154 halaman dalam 0,503 detik (2,493 MB / detik).
Dengan file cadangan sekarang di direktori berbagi jaringan:
Pertimbangan Berbagi Jaringan
Penting untuk dicatat bahwa perintah cadangan berharap untuk dapat terhubung langsung ke jaringan bersama tanpa diminta kredensial. Akun Anda telah mengkonfigurasi layanan SQL Server untuk dijalankan karena harus memiliki koneksi tepercaya dengan berbagi jaringan di mana kredensial masing-masing memungkinkan akses, jika tidak kesalahan seperti ini dapat terjadi:
Msg 3201, Level 16, Negara 1, Server JF, Jalur 1
Tidak dapat membuka perangkat cadangan '\ 192.168.16.55PackupDatabasesMyDB.bak'. Kesalahan sistem operasi 1326 (Kegagalan masuk: nama pengguna tidak dikenal atau kata sandi salah.).
Msg 3013, Level 16, Status 1, Server JF, Line 1
CADANGAN CADANGAN diakhiri secara tidak normal.
Kesalahan ini menunjukkan bahwa nama pengguna dan kata sandi akun tidak diterima oleh jaringan berbagi dan perintah gagal.
Masalah lain yang perlu diingat adalah cadangan dilakukan secara langsung ke sumber daya jaringan, sehingga cegukan dalam koneksi jaringan dapat menyebabkan cadangan Anda gagal. Karena alasan ini, Anda hanya perlu mencadangkan ke lokasi jaringan yang stabil (mis. Mungkin bukan VPN).
Implikasi Keamanan
Seperti yang disebutkan sebelumnya, menggunakan metode tempat Anda membuat cadangan secara lokal dan kemudian menyalin ke jaringan berbagi lebih disukai karena memungkinkan Anda untuk menjalankan Layanan SQL sebagai akun dengan hanya akses sistem lokal.
Dengan menjalankan layanan sebagai akun alternatif, Anda membuka pintu untuk masalah keamanan potensial. Misalnya, skrip SQL berbahaya dapat dijalankan di bawah akun alternatif dan menyerang sumber daya jaringan. Selain itu, setiap perubahan pada masing-masing akun (perubahan / kedaluwarsa kata sandi atau penghapusan / penonaktifan akun) akan menyebabkan layanan SQL Server gagal untuk memulai.
Penting untuk diingat poin-poin ini jika Anda menjalankan contoh SQL Server Anda menggunakan akun alternatif. Meskipun ini bukan penghenti jika diambil tindakan pencegahan yang tepat, Anda harus mempertimbangkan untuk menambahkan ruang hard drive tambahan dan kemudian menerapkan cadangan dan menyalin lokal sehingga Anda dapat menjalankan layanan SQL menggunakan akun lokal.