Batch Script untuk Mencadangkan Semua Database Server SQL Anda

Daftar Isi:

Batch Script untuk Mencadangkan Semua Database Server SQL Anda
Batch Script untuk Mencadangkan Semua Database Server SQL Anda

Video: Batch Script untuk Mencadangkan Semua Database Server SQL Anda

Video: Batch Script untuk Mencadangkan Semua Database Server SQL Anda
Video: How to Jailbreak iOS 6 on iPhone 4, 3Gs and iPod Touch 4 (Easy Way) - YouTube 2024, April
Anonim

Kami telah membahas cara mem-backup database SQL Server dari baris perintah, jadi bagaimana jika Anda ingin membuat cadangan semua basis data Anda sekaligus? Anda bisa membuat skrip batch yang menjalankan perintah cadangan untuk setiap database, tetapi skrip ini harus diperbarui setiap kali database ditambahkan atau dihapus. Selain itu, backup database semua akan ditambahkan ke satu file yang akan tumbuh dengan ukuran cadangan baru setiap kali dijalankan. Sebagai gantinya, dalam mode "atur dan lupakan" yang sebenarnya, kita akan membuat skrip batch yang akan beradaptasi dengan SQL Server Anda saat database baru ditambahkan dan dihapus.

Untuk langsung ke intinya, ini adalah skrip cadangan:

@ECHO OFF SETLOCAL

REM Get date in format YYYY-MM-DD (assumes the locale is the United States) FOR /F “tokens=1,2,3,4 delims=/” %%A IN (‘Date /T’) DO SET NowDate=%%D-%%B-%%C

REM Build a list of databases to backup SET DBList=%SystemDrive%SQLDBList.txt SqlCmd -E -S MyServer -h-1 -W -Q “SET NoCount ON; SELECT Name FROM master.dbo.sysDatabases WHERE [Name] NOT IN (‘master’,’model’,’msdb’,’tempdb’)” > “%DBList%”

REM Backup each database, prepending the date to the filename FOR /F “tokens=*” %%I IN (%DBList%) DO ( ECHO Backing up database: %%I SqlCmd -E -S MyServer -Q “BACKUP DATABASE [%%I] TO Disk=’D:Backup%NowDate%_%%I.bak'” ECHO. )

REM Clean up the temp file IF EXIST “%DBList%” DEL /F /Q “%DBList%”

ENDLOCAL

Dengan asumsi tanggal adalah 1/13/2009 dan Anda memiliki 3 basis data bernama ‘MyDB’, ‘AnotherDB’, dan ‘Nama DB dengan Spaces’, skrip akan menghasilkan 3 file di lokasi cadangan yang ditentukan:

  • 2009-01-13_AnotherDB.bak
  • Nama 2009-01-13_DB dengan Spaces.bak
  • 2009-01-13_MyDB.bak

Menyesuaikan dan Menjalankan Skrip Batch

Tentu saja, Anda akan ingin menyesuaikan skrip ke lingkungan Anda jadi di sini adalah apa yang perlu Anda lakukan:

  • Jika perangkat lokal Anda tidak diatur ke AS, perintah 'Tanggal / T' tidak dapat mengembalikan tanggal dalam format “Selasa 13/1/2009”. Jika ini kasus, variabel NowDate tidak akan menghasilkan format yang diinginkan dan harus disesuaikan. (1 tempat)
  • Ubah ‘MyServer’ menjadi nama Server SQL Anda (tambahkan nama instan jika berlaku). (2 tempat)
  • Basis data bernama ‘master’, ‘model’, ‘msdb’ dan ‘tempdb’ adalah basis data yang dikirimkan dengan SQL Server. Anda dapat menambahkan nama database tambahan ke daftar ini jika Anda tidak ingin mereka dicadangkan. (1 tempat)
  • Ubah lokasi cadangan dari ‘D: Backup’ ke lokasi tempat Anda menyimpan file cadangan basis data.

Setelah Anda menyesuaikan skrip batch, jadwalkan untuk dijalankan melalui Windows Task Scheduler sebagai pengguna dengan hak Administrator dan Anda sudah siap.

Direkomendasikan: