Saya terlalu lalai dalam melakukan backup DB di server internal kami.
Apakah ada program baris perintah sederhana yang dapat saya gunakan untuk membuat cadangan database tertentu di SQL Server 2005? Atau apakah ada VBScript sederhana?
sql-server
command-line
scripting
backup
Frank Krueger
sumber
sumber
Jawaban:
Untuk mencadangkan database tunggal dari baris perintah, gunakan osql atau sqlcmd .
Anda juga ingin membaca dokumentasi tentang CADANGAN dan KEMBALIKAN dan prosedur umum .
sumber
WITH FORMAT
memformat media penyimpanan: " Opsi FORMAT membatalkan seluruh konten media, mengabaikan konten yang ada. " Pastikan ini yang Anda inginkan.osql.exe
berada diC:\Program Files\Microsoft SQL Server\140\Tools\Binn\OSQL.EXE
Saya menggunakan ExpressMaint .
Untuk mencadangkan semua database pengguna yang saya lakukan misalnya:
sumber
Jadwalkan hal berikut untuk mencadangkan semua Database:
Ada juga detail lebih lanjut di blog saya: cara Mengotomatiskan Pencadangan SQL Server Express .
sumber
Saya menemukan ini di halaman Dukungan Microsoft http://support.microsoft.com/kb/2019698 .
Ini bekerja dengan baik! Dan karena ini berasal dari Microsoft, saya merasa ini cukup sah.
Pada dasarnya ada dua langkah.
Jadwalkan pencadangan dari penjadwal tugas Anda. Anda mungkin ingin memasukkan file .bat atau .cmd terlebih dahulu dan kemudian menjadwalkan file itu.
Jelas ganti YOUR_SERVER_NAME dengan nama komputer Anda atau secara opsional coba. \ SQLEXPRESS dan pastikan folder cadangan ada. Dalam hal ini mencoba untuk meletakkannya di c: \ SQL_Backup
sumber
Anda dapat menggunakan aplikasi backup oleh ApexSQL. Meskipun ini adalah aplikasi GUI, semua fiturnya didukung di CLI. Dimungkinkan untuk melakukan operasi pencadangan satu kali, atau membuat pekerjaan yang akan mencadangkan database tertentu secara teratur. Anda dapat memeriksa aturan sakelar dan dicontohkan di artikel:
sumber
Saya menggunakan tsql pada infrastruktur Linux / UNIX untuk mengakses database MSSQL. Berikut ini skrip shell sederhana untuk membuang tabel ke file:
sumber
Akhirnya jika Anda tidak memiliki koneksi tepercaya seperti yang dideklarasikan oleh sakelar –E
Gunakan baris perintah berikut
"[program dir]\[sql server version]\Tools\Binn\osql.exe" -Q "BACKUP DATABASE mydatabase TO DISK='C:\tmp\db.bak'" -S [server] –U [login id] -P [password]
Dimana
[program dir] adalah direktori tempat osql.exe berada
[versi server sql] server sql Anda versi 110 atau 100 atau 90 atau 80 dimulai dengan angka terbesar
[server] nama server atau ip server Anda
[login id] nama login pengguna server ms-sql Anda
[sandi] sandi login yang diperlukan
sumber
C:\tmp
adalah jalur di server atau lokal ?Jawaban Microsoft untuk mencadangkan semua database pengguna di SQL Express ada di sini :
Prosesnya adalah: salin, tempel, dan jalankan kode mereka (lihat di bawah. Saya telah mengomentari beberapa baris aneh yang tidak diberi komentar di bagian atas) sebagai kueri di server database Anda. Itu berarti Anda harus menginstal SQL Server Management Studio terlebih dahulu (atau terhubung ke server database Anda dengan SSMS). Eksekusi kode ini akan membuat prosedur tersimpan di server database Anda.
Buat file batch untuk menjalankan prosedur yang tersimpan, kemudian gunakan Penjadwal Tugas untuk menjadwalkan proses berkala (misalnya setiap malam) dari file batch ini. Kode saya (yang berfungsi) adalah versi yang sedikit dimodifikasi dari contoh pertama mereka:
Ini berhasil untuk saya, dan saya menyukainya. Setiap kali Anda menjalankannya, file cadangan baru dibuat. Anda harus merancang metode untuk menghapus file cadangan lama secara rutin. Saya sudah memiliki rutinitas yang melakukan hal semacam itu, jadi saya akan menyimpan cadangan selama beberapa hari di disk (cukup lama bagi mereka untuk dicadangkan oleh rutinitas pencadangan normal saya), lalu saya akan menghapusnya. Dengan kata lain, saya akan selalu memiliki cadangan selama beberapa hari tanpa harus memulihkan dari sistem cadangan saya.
Saya akan menempelkan skrip pembuatan prosedur tersimpan Microsoft di bawah ini:
sumber
Anda dapat menggunakan Skrip VB yang saya tulis persis untuk tujuan ini: https://github.com/ezrarieben/mssql-backup-vbs/
Jadwalkan tugas di "Penjadwal Tugas" untuk menjalankan skrip sesuka Anda dan ini akan mencadangkan seluruh DB ke file BAK dan menyimpannya di mana pun Anda tentukan.
sumber
sumber
Jika Anda dapat menemukan file DB ... "cp DBFiles backup /"
Hampir pasti tidak dianjurkan dalam banyak kasus , tetapi itu sederhana seperti semua getup.
sumber