我们有两个虚拟机,其中一个是系统的实时版本,其中一个是开发环境。问题是,当开发人员想要从实时机器备份和恢复数据库到开发机器时,有一些敏感数据,如姓名,姓氏,姓名,出生日期,地址等。我不想备份用户的由于GDPR,某些表上的敏感数据。
那么在这种情况下如何备份和恢复数据库呢?假设表名是Users。我只想恢复除Users表数据之外的所有数据库。但是,开发人员帐户也存储在那里,因此我需要在Users表上备份某些ID。我基本上是通过SQL Server Management Studio上的GUI备份和恢复数据库,但是我需要为它编写一些脚本。
BACKUP DATABASE [DB_NAME] TO DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\Backup\DB_NAME_Date.bak' WITH NOFORMAT, NOINIT, NAME = N'DB_NAME-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO
答案 0 :(得分:0)
本机MSSQL中没有这样的选项来备份和恢复选择性表。但是,您可以编写脚本(尽管可能很复杂)来从prod-> dev移动数据。如:
使用BCP(BULK COPY PROGRAM)
https://docs.microsoft.com/en-us/sql/tools/bcp-utility?view=sql-server-2017
使用SELECT INTO
复制表格使用数据生成表脚本
使用任务 - >导出/导入
使用选择性复制
https://serverfault.com/questions/213612/selective-replication-in-sql-server
另一种选择,执行还原,然后自动清除您不想要的内容。这感觉就像一盒蠕虫。
有一个商业产品有对象级别的恢复,但它不是免费的:https://documentation.red-gate.com/sbu7/object-level-recovery我过去曾经使用过它并且它确实运行良好。
答案 1 :(得分:0)
您可以编写数据更改脚本以运行恢复后。创建一些测试数据并编写脚本,将生产数据替换为测试数据,作为还原作业的一部分。
有第三方备份工具可以执行表级备份和还原,例如Commvault。您也可以查看这些内容。
我知道Commvault会进行表级还原。我也知道Netbackup和Veeam。我认为Netbackup的最新版本可能会进行对象级备份/恢复但不确定。从未使用Veeam备份,但我听说过有关它们的好东西,而且其他产品非常好。我使用过Commvault,但没有使用表级恢复选项。否则Commvault很棒。
答案 2 :(得分:0)
我们做了电信会计系统,我们需要一个与生产数据库类似的很多方面的数据库。
我可以解释一下我们是如何解决这个问题的。
非技术方面:
我们与{c}达成了MUST
:与我们的客户达成的完全协议。
他们的安全性和他们的DBA审查了我们的流程。
我们的流程:
第1步:部分备份 - 我们不需要多年的通话记录
第2步:在客户服务器上恢复
第3步:匿名脚本
第4步:审查匿名数据
第5步:创建db的备份
匿名处理:
最后的想法:
我没有听说过为此类任务准备好的解决方案。
如果你找到一个可以像我们那样进行匿名化的工具 - 请分享你的知识。
这就是我在这个话题上所能说的一切。
决定自己如何满足您的要求。