【问题标题】:SQL backup or replication?SQL 备份或复制?
【发布时间】:2023-03-06 02:45:01
【问题描述】:

我有一个 SQL 服务器,其中包含我编写的测试 pp。这件事越来越受到关注,如果 SQL 服务器损坏或有人做了一些愚蠢的事情,我担心会丢失数据(以及用户输入数据所花费的时间)。

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

有什么好处和坏处?这里的最佳做法是什么?

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 关于我如何获得每天两次备份数据库及其所有数据的日常工作的任何消息?
    • 您可以创建启动备份的 SQL Server 计划作业。有几种方法可以安排这项工作每天两次。例如,您可以安排它每 12 小时运行一次,并设置它首次运行的时间。
    【解决方案2】:

    自动备份已回复here

    【讨论】:

      【解决方案3】:
      1. 我想你应该结合完整 备份 + 事务日志备份。
      2. 这种问题应该是 在 serverfault.com 上制作 - 事实上 有一个类似的问题 here

      【讨论】:

        【解决方案4】:

        每日完整备份是最好的。如果数据库很小,则不需要保留副本,因为还原时间更短。如果它是一个大型数据库,您可以考虑 logshipping 或 mirroring 。 对于这些,您需要使数据库处于完全恢复模式,并且必须定期设置事务日志备份。 仅当您只对少数表而不是整个数据库感兴趣时,复制才有用,并且在他的情况下它将是事务复制。 维护计划向导有助于设置定期完整备份以及事务日志备份。

        【讨论】:

          【解决方案5】:

          你可以试试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"

          【讨论】:

            猜你喜欢
            • 2011-10-28
            • 1970-01-01
            • 2013-03-28
            • 2013-03-31
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多