SQL备份还是复制?

时间:2010-09-15 18:41:21

标签: sql sql-server sql-server-2005

我有一个SQL服务器,它有我编写的测试页。如果SQL服务器损坏或有人做了一些愚蠢的事情,我担心会丢失数据(以及用户输入数据的时间)。

我正在考虑我有哪些选项可以将夜间备份作为维护计划,以及我可以做什么,只要将数据库复制到另一个SQL服务器框。

有什么利弊?这里最好的做法是什么?

5 个答案:

答案 0 :(得分:0)

如果您只需要保留数据库的结构和内容,那么最好是数据库备份。

如果您需要使用数据库的副本,请考虑复制。复制需要更多的工作来维护,如果仅出于备份原因,则不提供简单的恢复功能。

答案 1 :(得分:0)

自动备份已解答here

答案 2 :(得分:0)

  1. 我想你应该结合完整 备份+转换日志备份。
  2. 这类问题应该是 在serverfault.com上制作 - 事实上 还有一个类似的问题 here

答案 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"