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

Fra*_*ger 90 sql-server backup scripting command-line

我在内部服务器上执行数据库备份时过于宽松.

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

Cra*_*der 103

要从命令行备份单个数据库,请使用osqlsqlcmd.

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

您还需要阅读有关BACKUPRESTORE以及常规过程的文档.

  • 文档说"WITH FORMAT"格式化存储介质:"_ FORMAT选项使整个媒体内容无效,忽略任何现有内容."确保这是你想要的. (6认同)
  • @Tjaart,这就是我说首先阅读文档的原因.如果您不使用WITH FORMAT并选择现有备份文件,则新备份将附加到文件中的现有备份,这可能不是您想要的. (4认同)
  • 有一个很好的脚本可以一次性备份所有用户数据库:http://www.mssqltips.com/tip.asp?tt = 1070 (3认同)
  • 在我的安装中,“osql.exe”位于“C:\Program Files\Microsoft SQL Server\140\Tools\Binn\OSQL.EXE”中 (2认同)

Mar*_*ger 9

我使用ExpressMaint.

要备份我所做的所有用户数据库,例如:

C:\>ExpressMaint.exe -S (local)\sqlexpress -D ALL_USER -T DB -BU HOURS -BV 1 -B c:\backupdir\ -DS
Run Code Online (Sandbox Code Playgroud)


Gat*_*ler 8

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

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)
Run Code Online (Sandbox Code Playgroud)

我的博客上还有更多详细信息:如何自动执行SQL Server Express备份.


小智 5

我在 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}
Run Code Online (Sandbox Code Playgroud)


Joh*_* W. 5

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

它很棒!而且由于它来自微软,我觉得它非常合法.

基本上有两个步骤.

  1. 在主数据库中创建存储过程.请参阅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            
    
    Run Code Online (Sandbox Code Playgroud)

显然,将YOUR_SERVER_NAME替换为您的计算机名称,或者选择尝试.\ SQLEXPRESS,并确保备份文件夹存在.在这种情况下,它试图将它放入c:\ SQL_Backup


小智 5

您可以使用ApexSQL的备份应用程序.虽然它是一个GUI应用程序,但它具有CLI支持的所有功能.可以执行一次性备份操作,也可以创建可以定期备份指定数据库的作业.您可以检查文章中的切换规则和示例: