我正在使用托管服务,它允许我备份我的 SQL 2008 数据库并仅通过 Web 界面下载 BAK 文件——并且我可以通过 Management Studio 访问数据库。我可以从 Management Studio 执行备份命令,但我没有备份所在路径的权限。有什么方法可以通过 SQL 或脚本来下载数据库的完整副本——我可以生成使用代码重新创建数据库所需的脚本吗?它只有几千条记录。
谢谢。
我正在使用托管服务,它允许我备份我的 SQL 2008 数据库并仅通过 Web 界面下载 BAK 文件——并且我可以通过 Management Studio 访问数据库。我可以从 Management Studio 执行备份命令,但我没有备份所在路径的权限。有什么方法可以通过 SQL 或脚本来下载数据库的完整副本——我可以生成使用代码重新创建数据库所需的脚本吗?它只有几千条记录。
谢谢。
如果您可以通过 Management Studio 访问,为什么不将托管数据库复制到本地计算机(任务 > 复制数据库)?
一旦它被恢复到本地系统,你可以做任何你想做的事情。
免费的SqlBackupAndFTP允许使用脚本进行远程备份
只是将其留在这里作为答案(将整个数据库编写为 .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 以在您需要的任何时间间隔运行,数据库备份将与日志文件一起编写脚本。
如果主机没有提供一种简单的方法来获取数据库的异地备份(自动 - 并告诉你如何做),你应该找到另一个。