SQL SERVER の Transact-SQL にて、データーベースのバックアップを簡単に取る方法を記載します。
USE データーベース名;
BACKUP DATABASE データーベース名 TO DISK = 'ファイルパス' WITH NAME = '任意の名称';
とします。例えば、
USE master;
BACKUP DATABASE master TO DISK = 'Z:\SQLBACKUP\masterdb.sqlbak' WITH NAME = 'masterdb';
のようにします。
バックアップされたファイルをリストア(復元)するには、
RESTORE DATABASE データーベース名 FROM DISK = 'ファイルパス';
のようにします。上書きする場合は、
RESTORE DATABASE データーベース名 FROM DISK = 'ファイルパス' WITH REPLACE;
とします。
データーベース名に空白文字が含まれる場合は、[ ] で囲みます。
DB 1 というデーターベースの場合、
USE [DB 1];
BACKUP DATABASE [DB 1] TO DISK = 'Z:\SQLBACKUP\masterdb.sqlbak' WITH NAME = 'masterdb';
のようにします。更に、データーベース名に元々 [ や ] が含まれる場合は、名称中の ] を二重にします。
DB [1] というデーターベースの場合、
USE [DB [1]]];
BACKUP DATABASE [DB [1]]] TO DISK = 'Z:\SQLBACKUP\masterdb.sqlbak' WITH NAME = 'masterdb';
とします。
バッチファイルにて実行する場合は、上記のスクリプトを任意のファイル名にて
テキストファイルとして保存し、
SQLCMD -S サーバー名 -U ユーザー名 -P パスワード -i スクリプトファイル名
とします。例えば、
SQLCMD -S localhost\SQLSV,1433 -U sa -P 3h3x#drz -i "C:\sql\backupscript01.txt"
のようにします。
因みに、データーベースの一覧を得るには、
select name from sys.databases
というクエリを実行します。
以上で、説明は終了です。
|