内部サーバーで DB バックアップを実行するのが甘すぎました。
SQL Server 2005 で特定のデータベースをバックアップするために使用できる簡単なコマンド ライン プログラムはありますか? または、単純な VBScript はありますか?
内部サーバーで DB バックアップを実行するのが甘すぎました。
SQL Server 2005 で特定のデータベースをバックアップするために使用できる簡単なコマンド ライン プログラムはありますか? または、単純な VBScript はありますか?
ExpressMaintを使用しています。
たとえば、すべてのユーザーデータベースをバックアップするには、次のようにします。
C:\>ExpressMaint.exe -S (local)\sqlexpress -D ALL_USER -T DB -BU HOURS -BV 1 -B c:\backupdir\ -DS
すべてのデータベースをバックアップするには、以下をスケジュールします。
Use Master
Declare @ToExecute VarChar(8000)
Select @ToExecute = Coalesce(@ToExecute + 'Backup Database ' + [Name] + ' To Disk = ''D:\Backups\Databases\' + [Name] + '.bak'' With Format;' + char(13),'')
From
Master..Sysdatabases
Where
[Name] Not In ('tempdb')
and databasepropertyex ([Name],'Status') = 'online'
Execute(@ToExecute)
私のブログにも詳細があります:SQLServerExpressバックアップを自動化する方法。
ApexSQLによるバックアップアプリケーションを利用できます。GUI アプリケーションですが、すべての機能が CLI でサポートされています。1 回限りのバックアップ操作を実行することも、指定したデータベースを定期的にバックアップするジョブを作成することもできます。スイッチ ルールを確認し、記事で例を示します。
Linux/UNIX インフラストラクチャで tsql を使用して MSSQL データベースにアクセスしています。テーブルをファイルにダンプする簡単なシェル スクリプトを次に示します。
#!/usr/bin/ksh
#
#.....
(
tsql -S {database} -U {user} -P {password} <<EOF
select * from {table}
go
quit
EOF
) >{output_file.dump}
–E スイッチが宣言するように、信頼できる接続がない場合は最終的に
次のコマンドラインを使用
"[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]
どこ
[program dir] は osql.exe が存在するディレクトリです
32 ビット OS の場合 c:\Program Files\Microsoft SQL Server\
64 ビット OS の場合 c:\Program Files (x86)\Microsoft SQL Server\
[SQL サーバーのバージョン] SQL サーバーのバージョン 110 または 100 または 90 または 80 は最大の数字で始まります
[サーバー] サーバー名またはサーバー IP
[ログイン ID] ms-sql サーバーのユーザー ログイン名
[password] 必要なログインパスワード
ここに例を示します。バックアップ データベースを取得し、7zip を使用して圧縮し、バックアップ ファイルを削除するため、ストレージに関連する問題も解決されます。この例では、無料の 7zip を使用しています。
@echo off
CLS
echo Running dump ...
sqlcmd -S SERVER\SQLEXPRESS -U username -P password -Q "BACKUP DATABASE master TO DISK='D:\DailyDBBackup\DB_master_%date:~-10,2%%date:~-7,2%%date:~-4,4%.bak'"
echo Zipping ...
"C:\Program Files\7-Zip\7z.exe" a -tzip "D:\DailyDBBackup\DB_master_%date:~-10,2%%date:~-7,2%%date:~-4,4%_%time:~0,2%%time:~3,2%%time:~6,2%.bak.zip" "D:\DailyDBBackup\DB_master_%date:~-10,2%%date:~-7,2%%date:~-4,4%.bak"
echo Deleting the SQL file ...
del "D:\DailyDBBackup\DB_master_%date:~-10,2%%date:~-7,2%%date:~-4,4%.bak"
echo Done!
これを sqlbackup.bat として保存し、毎日実行するようにスケジュールします。
バックアップのみを取りたい場合は、圧縮や削除を行わずにスクリプトを作成できます。
DBファイルが見つかったら...「cpDBFilesbackup/」
ほとんどの場合、ほとんどの場合お勧めできませんが、すべての起き上がりとしては簡単です。