首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何进行数据库的部分备份和恢复?

如何进行数据库的部分备份和恢复?
EN

Stack Overflow用户
提问于 2010-05-12 14:39:25
回答 3查看 2.7K关注 0票数 1

简单的问题。我正在处理一个SQL Server数据库,该数据库在多个办公室之间共享。每个办公室在这个数据库中都有自己的模式,因此将数据库划分为逻辑部分。(外加一个在多个办公室之间共享的架构。)数据库存储在专用服务器上,我们使用单个数据库来简化备份/恢复过程。

然而,问题是,会计处可能正在修改大量数据,然后局长办公室犯了一个错误,需要恢复备份。不幸的是,恢复备份意味着Accounting将丢失他们最近添加的数据。

因此,另一种解决方案是将备份恢复到新数据库中,从旧记帐方案中删除数据,并仅从备份顶部的原始数据库中移动记帐数据。这是当前的解决方案,既耗时又容易出错。

那么,有没有一种方法可以备份单个模式,可能是通过代码?然后恢复该模式,可能也是通过代码?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-05-12 21:09:44

您可以创建一个脚本,将每个模式复制到一个单独的数据库(backup_Accounting、backup_Secretary、backup_Shared),然后为每个数据库创建一个备份文件。如果需要进行恢复,可以将备份文件恢复到相应的数据库中,然后运行脚本将数据复制回主数据库中。

票数 1
EN

Stack Overflow用户

发布于 2010-05-12 21:17:13

您可以使用文件组和部分备份命令。

您需要将每个模式移动到不同的文件组,然后根据需要使用部分备份/恢复。

有关部分备份的信息,请参阅此处:http://msdn.microsoft.com/en-us/library/ms191539.aspx

有关文件组的信息,请参阅此处:http://msdn.microsoft.com/en-us/library/ms179316.aspx

有关逐段还原的信息,请参阅此处:http://msdn.microsoft.com/en-us/library/ms177425.aspx

票数 1
EN

Stack Overflow用户

发布于 2010-05-12 20:59:22

无法仅备份和恢复单个架构。

但是,您可以尝试这种方法:将整个数据库(所有模式)恢复到一个不同的数据库xyz_OLD或类似的东西。

然后,您可以使用如下脚本修复数据:

代码语言:javascript
复制
UPDATE y
    SET col1=o.col1
    FROM xyz.YourTable y
        INNER JOIN xyz_Old.xyz.YourTable o ON y.PK=o.PK

INSERT INTO xyz.YourTable
        (col1, col2, col3,...)
    SELECT
        col1, col2, col3,...
        FROM xyz_Old.xyz.YourTable o
        WHERE NOT EXISTS (SELECT 1 FROM xyz.YourTable y WHERE o.PK=y.Pk)

etc...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2816491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档