2016-05-24 1 views
0

Я мог бы успешно архивировать базу данных с помощью командлета Backup-Sqldatabase в один файл .bak. Однако я хотел бы создать разделенные файлы резервных копий для базы данных. Возможно ли это с помощью командлета?Можно ли использовать командлет Backup-Sqldatabase в powershell для создания разделенной резервной копии?

+0

Вы уверены, что striped backups - это то, что вам действительно нужно? – vonPryz

ответ

1

У cmdlet есть параметр -backupFile, который устанавливает массив имен файлов. По крайней мере, с параметром -Script испускаемый TSQL выглядит разумным, поэтому он должен работать. Таким образом,

PS SQLSERVER:\> Backup-SqlDatabase -Script -ServerInstance ".\sqli001" -Database TestDB -BackupFile @("c:\temp\1.bak", "c:\temp\2.bak") 

BACKUP DATABASE [TestDB] TO DISK = N'c:\temp\1.bak', DISK = N'c:\temp\2.bak' WITH NOFORMAT, NOINIT, NOSKIP, REWIND, NOUNLOAD, STATS = 10 
GO 
+0

Спасибо! Это сработало :) – Kelsey

0

Это приведет к генерации кода для резервного копирования.

Используйте приведенный ниже сценарий PowerShell для выполнения резервного копирования, и я предоставил способ передать динамическое значение в путь к файлу резервной копии, как показано ниже.

$path = 'D:\BackupFolder\TestDB.Bak,E:\BackupFolder\TestDB.Bak' 

$QUERY = Backup-SqlDatabase -Script -ServerInstance ServerName -Database TestDB -BackupFile @($path.split(',')) 

invoke-sqlcmd -query "$QUERY" -ServerInstance "SQLInstanceName"