Что такое простая программа командной строки или сценарий для резервного копирования баз данных SQL server?



Я был слишком слаб с выполнением резервного копирования БД на наших внутренних серверах.



есть ли простая программа командной строки, которую я могу использовать для резервного копирования определенных баз данных в SQL Server 2005? Или есть простой VBScript?

725   10  

10 ответов:

резервное копирование одной базы данных из командной строки, используйте программы или sqlcmd.

"C:\Program Files\Microsoft SQL Server\Tools\Binn\osql.exe" 
    -E -Q "BACKUP DATABASE mydatabase TO DISK='C:\tmp\db.bak' WITH FORMAT"

вы также хотите прочитать документацию по резервное копирование и восстановить и общие правила.

расписание следующее для резервного копирования всех баз данных:

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)

есть также более подробная информация в моем блоге: как автоматизация резервного копирования SQL Server Express.

Я использую ExpressMaint.

для резервного копирования всех пользовательских баз данных, я делаю например:

C:>ExpressMaint.EXE-файл -s (локально)\именем sqlexpress -Д ALL_USER -Т ДБ -БУ часов -БВ 1 -Б c:\backupdir\ -ДС

Я нашел это на странице поддержки Microsoft http://support.microsoft.com/kb/2019698.

Он отлично работает! И поскольку он пришел из Microsoft, я чувствую, что это довольно правдоподобно.

в основном есть два шага.

  1. создайте хранимую процедуру в главной БД. Смотрите ссылку msft или если она сломана попробуйте здесь:http://pastebin.com/svRLkqnq
  2. запланируйте резервное копирование из планировщика задач. Вы возможно, захотите положить в А.летучая мышь или. сначала файл cmd, а затем запланируйте этот файл.

    sqlcmd -S YOUR_SERVER_NAME\SQLEXPRESS -E -Q "EXEC sp_BackupDatabases @backupLocation='C:\SQL_Backup\', @backupType='F'"  1>c:\SQL_Backup\backup.log            
    

очевидно, замените YOUR_SERVER_NAME на имя Вашего компьютера или, возможно, попробуйте .\SQLEXPRESS и убедитесь, что папка резервного копирования существует. В этом случае он пытается положить его в c:\SQL_Backup

вы можете использовать приложение резервного копирования, ApexSQL. Хотя это приложение GUI, оно имеет все свои функции, поддерживаемые в CLI. Можно либо выполнить разовые операции резервного копирования, либо создать задание, которое будет выполнять резервное копирование указанных баз данных на регулярной основе. Вы можете проверить правила переключения и примеры в статьях:

Я использую tsql в инфраструктуре Linux/UNIX для доступа к базам данных 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.ехе существует

On 32bit OS c:\Program Files\Microsoft SQL Server\
On 64bit OS c:\Program Files (x86)\Microsoft SQL Server\

[версия sql server] ваша версия sql server 110 или 100 или 90 или 80 начинается с самого большого числа

[сервер] ваше имя сервера или ip сервера

[login id] ваш пользователь ms-sql server имя пользователя

[пароль] необходимый пароль для входа

Ниже приведен простой скрипт для резервного копирования базы данных.

DECLARE @name VARCHAR(50) -- database name  
DECLARE @path VARCHAR(256) -- path for backup files  
DECLARE @fileName VARCHAR(256) -- filename for backup  
DECLARE @fileDate VARCHAR(20) -- used for file name


-- specify database backup directory
SET @path = 'C:\Backup\'  


-- specify filename format
SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112) 


DECLARE db_cursor CURSOR FOR  
SELECT name 
FROM master.dbo.sysdatabases 
WHERE name NOT IN ('master','model','msdb','tempdb')  -- exclude these databases


OPEN db_cursor   
FETCH NEXT FROM db_cursor INTO @name   


WHILE @@FETCH_STATUS = 0   
BEGIN   
       SET @fileName = @path + @name + '_' + @fileDate + '.BAK'  
       BACKUP DATABASE @name TO DISK = @fileName  


       FETCH NEXT FROM db_cursor INTO @name   
END   


CLOSE db_cursor   
DEALLOCATE db_cursor

вы можете использовать сценарий VB, который я написал именно для этой цели: https://github.com/ezrarieben/mssql-backup-vbs/

запланируйте задачу в "планировщике задач", чтобы выполнить сценарий так, как вам нравится, и он будет создавать резервную копию всей БД в файл BAK и сохранять его везде, где вы укажете.

Если вы можете найти файлы БД... "CP DBFiles backup/"

почти наверняка не рекомендуется в большинстве случаев, но это просто, как наряд.

Comments

    Ничего не найдено.