[Sitecore][Back Up DB]サイトコアDBのバックアップ
今日はサイトコアのデータベースバックアップについて書きます。
普段の作業でサイトコアサイトは五つのデーだベースがあります。(Core, Master, Web, WFFM, Analytics)これにカスタムのデーだベースを加え、一つのサイトは六個のデーだベースになります。サイトをパックアップまたリストーアはSQL Server Management Studioのユーザインタェースタスクにてすればいいです。先週、会社から新しいPCをもらい、既存のサイトを新しいPCへ移しなければなりません。ざっと見れば、120以上のデータベースをバックアップ/リストーアをしなければなりません。これをManagement Studioのユーザインタフェースタスクでやれば、かなり時間がかあるので、SQLクエリを使うことにした。今回はデータベースを移すためのSQLクエリを纏めました。
データベースバックアップ
[css]
DECLARE @DBList VARCHAR(MAX)
SELECT @DBList = COALESCE(@DBList+’,’ ,”) + Name
FROM master.dbo.sysdatabases
WHERE [name] LIKE ‘%local%’
print @DBList
USE [master];
DECLARE @SQL nvarchar(255)
, @Pos INT
, @Loop BIT
, @vcDBName VARCHAR(64)
, @vcDBNames VARCHAR(1024)
, @vcBackupFileRoot varchar(125)
SET @vcBackupFileRoot = ”’C:\SQL\BackupRoot\’ + CONVERT(NVARCHAR(10), GETDATE(), 102) + ‘_’
SET @vcDBNames = @DBList
SELECT @Loop = CASE WHEN LEN(@vcDBNames) > 0 THEN 1 ELSE 0 END
WHILE (SELECT @Loop) = 1
BEGIN
SELECT @Pos = CHARINDEX(‘,’, @vcDBNames, 1)
IF @Pos > 0
BEGIN
SELECT @vcDBName = SUBSTRING(@vcDBNames, 1, @Pos – 1)
SELECT @vcDBNames = SUBSTRING(@vcDBNames, @Pos + 1, LEN(@vcDBNames) – @Pos)
print ‘Backup up DB:’ + @vcDBName
SET @SQL = ‘BACKUP DATABASE ‘ + @vcDBName + ‘ TO DISK =’ + @vcBackupFileRoot + @vcDBName + ‘.bak”’; EXEC (@SQL)
END
ELSE
BEGIN
SELECT @vcDBName = @vcDBNames
SELECT @Loop = 0
print ‘Backup up DB:’ + @vcDBName
SET @SQL = ‘BACKUP DATABASE ‘ + @vcDBName + ‘ TO DISK =’ + @vcBackupFileRoot + @vcDBName + ‘.bak”’; EXEC (@SQL)
END
END
[/css]