如何在共享托管服务器上自动执行SQL备份?

时间:2008-12-08 05:02:18

标签: sql sql-server backup

我正在使用托管服务,它允许我备份我的SQL 2008数据库并仅通过Web界面下载BAK文件 - 我可以通过Management Studio访问数据库。我可以从Management Studio执行备份命令,但我没有权限访问备份所在的路径。有没有办法通过SQL或脚本来下载数据库的完整副本 - 我可以使用代码生成重新创建数据库所需的脚本吗?它只有几千条记录。

感谢。

5 个答案:

答案 0 :(得分:2)

如果您可以通过Management Studio进行访问,为什么不将托管数据库复制到本地计算机上(任务>复制数据库)?

一旦它恢复到本地系统,你可以做任何你想做的事。

答案 1 :(得分:2)

免费SqlBackupAndFTP允许使用脚本

进行远程备份

答案 2 :(得分:2)

将此处留下作为答案(将整个数据库脚本编写为.sql文件(包括数据),然后使用winrar压缩它。)

我创建了这个解决方案,每天从任务调度程序运行一次,这就是为什么它只降低到每日水平。如果你想更多地运行(例如,每半小时一次),你需要编辑“%date:〜-4,4 %% date:〜-7,2 %% date:〜-10,2 %“字段下降到一小时/分钟/秒级别,具体取决于您需要的是什么。

注意:SQL发布向导&需要安装Winrar

begin.bat - 用于保存日志文件记录的包装器。这是任务计划程序

要调用的批处理文件
::Run dbbackup.bat and append all output to log.txt

md C:\[directory]\%date:~-4,4%%date:~-7,2%%date:~-10,2%

"dbbackup.bat" >> "C:\[Directory]\%date:~-4,4%%date:~-7,2%%date:~-10,2%\log.txt"

dbbackup.bat - 备份数据库

echo off
cls
echo %date% %time%
echo ***************************************************************************
echo ** Script all objects in databases and save them in 'yyyymmdd' folder  **
echo ***************************************************************************
cd C:\[directory]\%date:~-4,4%%date:~-7,2%%date:~-10,2%
"C:\Program Files\Microsoft SQL Server\90\Tools\Publishing\sqlpubwiz.exe" script -C "[ConnectionString]" [dbname]_%date:~-4,4%%date:~-7,2%%date:~-10,2%.sql
echo ***************************************************************************
echo ** RAR compress all .sql script files                                    **
echo ***************************************************************************
"C:\Program Files\WinRAR\WinRAR.exe" -ibck a [dbname]_%date:~-4,4%%date:~-7,2%%date:~-10,2%.rar [dbname]_%date:~-4,4%%date:~-7,2%%date:~-10,2%.sql
echo WinRAR has completed execution
echo ***************************************************************************
echo ** Delete all .sql script files                                          **
echo ***************************************************************************
del *.sql
echo .SQL files deleted

只需创建一个计划任务即可运行begin.bat以在您需要的任何时间间隔运行,并且数据库备份将与日志文件一起编写脚本。

答案 3 :(得分:1)

如果主机没有提供简单的方法来获取数据库的异地备份(自动化 - 并告诉您如何操作),您应该找到另一个。

答案 4 :(得分:0)

一种方法是编写db结构脚本,并使用此SSMS插件为整个数据库生成插入语句 http://www.ssmstoolspack.com/