我有一个SQL服务器,它有我编写的测试页。如果SQL服务器损坏或有人做了一些愚蠢的事情,我担心会丢失数据(以及用户输入数据的时间)。
我正在考虑我有哪些选项可以将夜间备份作为维护计划,以及我可以做什么,只要将数据库复制到另一个SQL服务器框。
有什么利弊?这里最好的做法是什么?
答案 0 :(得分:0)
如果您只需要保留数据库的结构和内容,那么最好是数据库备份。
如果您需要使用数据库的副本,请考虑复制。复制需要更多的工作来维护,如果仅出于备份原因,则不提供简单的恢复功能。
答案 1 :(得分:0)
自动备份已解答here。
答案 2 :(得分:0)
答案 3 :(得分:0)
每日完整备份是最好的。如果数据库大小很小,则无需保留副本,因为还原时间较短。如果它是一个大型数据库,您可以考虑使用logshipping或镜像。 对于这些,您需要将数据库置于完全恢复模型中,并且必须定期设置事务日志备份。 只有当您只对几个表而不是整个数据库感兴趣时,复制才有用,并且在他的情况下它将是事务复制。 维护计划向导有助于设置定期完整备份和事务日志备份。
答案 4 :(得分:0)
你可以试试Web Deploy tool,这对于很多任务都是免费的。
您需要做的就是使用DbFullSql提供程序并为源指定连接字符串,为目标指定文件。 Web Deploy将使用SMO将数据库编写脚本到文件:
备份数据库架构和数据:
>msdeploy.exe -verb:sync -source:DbFullSql="Server=.\SQLExpress;Database=MyDatabase;Integrated Security=true" -dest:dbfullsql="d:\DbBackup.sql"
仅备份数据(设置ScriptData属性,如此article所示):
>msdeploy.exe -verb:sync -source:DbFullSql="Server=.\SQLExpress;Database=MyDatabase;Integrated Security=true",ScriptSchema=false,ScriptData=true,ScriptDrops=false -dest:dbfullsql="d:\DbBackup.sql"