什么是简单的命令行程序或脚本来备份SQL服务器数据库?

我在内部服务器上执行数据库备份过于松懈。

有没有一个简单的命令行程序,我可以用来备份SQL Server 2005中的某些数据库? 还是有一个简单的VBScript?

要从命令行备份单个数据库,请使用osql或sqlcmd 。

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

您还需要阅读有关BACKUP和RESTORE以及一般过程的文档。

安排以下内容来备份所有数据库:

 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 -D ALL_USER -T DB -BU HOURS -BV 1 -B c:\ backupdir \ -DS

我在Microsoft支持页面上find了这个http://support.microsoft.com/kb/2019698

这很好用! 而且因为它来自微软,所以我觉得这很合法。

基本上有两个步骤。

  1. 在主数据库中创build一个存储过程。 看到msft链接,或者如果它损坏尝试在这里: http : //pastebin.com/svRLkqnq
  2. 从您的任务计划程序安排备份。 您可能首先要放入.bat或.cmd文件,然后调度该文件。

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

显然用您的计算机名称replaceYOUR_SERVER_NAME,或者可以select尝试。\ SQLEXPRESS并确保备份文件夹存在。 在这种情况下,它试图把它放到c:\ SQL_Backup中

我在Linux / UNIX基础结构上使用tsql来访问MSSQL数据库。 下面是一个简单的shell脚本,用于将表转储到文件中:

 #!/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位操作系统上c:\ Program Files \ Microsoft SQL Server \ 
 在64位操作系统上c:\ Program Files(x86)\ Microsoft SQL Server \ 

[SQL服务器版本]您的SQL Server版本110或100或90或80以最大数字开头

[服务器]您的服务器名称或服务器IP

[loginID]你的MS-SQL服务器用户login名

[密码]所需的login密码

以下是进行数据库备份的简单脚本。

 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 

如果你能findDB文件…“cp DBFiles backup /”

几乎肯定不是在大多数情况下是可取的 ,但它是所有getup简单。