使用数据库时,我们经常面临同步更改的任务。
即使一个公司只使用一个生产环境,仍然需要至少一个额外的测试环境。 这就需要将变更从测试环境转移到生产环境。
随着公司的发展,服务器和虚拟环境的数量增加,同步过程变得更加复杂。
一般来说,我们可以将转移和同步更改的步骤顺序安排如下:
- 开发环境之间
- 从开发环境到测试环境
- 测试环境之间
- 从测试环境到预生产环境
- 从预生产环境到生产环境,能够快速回滚更改
有多种工具可用于同步环境之间的更改,例如:
- Visual Studio比较器
- SQL Server集成服务
- 德瓦特的数据库模式比较
在本文中,我们将了解如何使用数据库模式比较来同步不同服务器之间的数据库更改。
我们将借助于嵌入在德沃特的数据库锻造工作室中的模式比较工具来完成数据库模式同步的任务。 免费试用是可用的。 为了简单起见,让我们假设一个源服务器和一个目标服务器。
在本例中,我们将使用SRV数据库,该数据库用于管理微软SQL Server RDBM。 该数据库可出于任何目的自由访问,因此您可以在此下载:
https://github。网站/工作/项目-管理系统-数据库-服务器-数据库管理员/树/主/服务
在为SQL Server打开dbForge Studio后,您需要转到“数据库同步”选项卡,并通过单击“新建连接”按钮来创建新连接:
将打开“连接设置”窗口,您应该在其中输入必要的信息,以便连接到一个微软服务器实例(源服务器)。 如您所见,除了“微软服务器”、“窗口”和“活动目录”身份验证之外,“多用户身份验证”选项现在也可用。 填写完所有必要的字段后,单击“测试连接”按钮测试连接:
一旦建立连接,将显示以下对话框:
按“确定”——首先在此框中,然后在连接设置窗口中。
现在应该添加一个新连接:
同样,我们需要连接到所有必要的微软服务器实例(在我们的例子中,这将通过创建到目标服务器的连接来实现)。
要调整数据库模式比较过程,请按“新模式比较”:
将出现一个带有模式比较设置的窗口。
我们需要在“源和目标”选项卡左窗格的“源”窗格中指定以下信息:
-
类型
-
关系
-
源数据库
在右侧的“目标”窗格中,我们将指定:
-
类型
-
关系
-
目标数据库
请记住,“数据库”不是唯一可访问的类型。 必要时,您还可以选择“脚本文件夹”、“快照”、“源代码管理”或“备份”。但是,在这种特殊情况下,我们将选择“数据库”类型。
在当前选项卡中指定所有必要的设置后,按“下一步”继续调整数据库模式同步过程的下一步。
如果正在比较两个最初相同的数据库,您syncnavigator 可以通过单击“比较”立即进入比较过程。”
如果需要,可以随时访问任何选项卡—只需单击窗口左窗格中相应的元素。
您也可以将当前设置保存为。点击窗口左下方的“保存命令行”按钮保存文件。
在大多数情况下,当在两个最初相同的数据库之间执行更改时,在此阶段按下“比较”即可。 但是,要了解该工具的全部功能,我们将按“下一步”
您可以在“选项”选项卡中调整各种设置,或者将它们保持在默认状态:
您可以在“模式映射”选项卡中按名称设置模式映射:
可以在“表映射”选项卡中设置表和列映射:
“对象过滤器”选项卡允许您设置用于比较的对象。 您也可以随时回到前面的任何步骤。
要启动数据库模式比较过程,请单击“比较:”
“数据库模式比较设置”窗口将被关闭,将出现一个带有比较过程进度条的窗口:
过程结束后,看看窗户。 您可以通过单击屏幕左上角的“编辑比较”来更改比较设置。 在这个按钮的右边,你可以看到一个带有箭头图标的圆圈——这是一个刷新按钮,当被点击时,它将再次启动微软的SQL Server模式比较过程。 另外,在稍下方,您可以找到之前注册的所有服务器:
主菜单中的“文件”选项允许您将模式比较设置保存为。scomp文件。
现在,让我们看看窗户的中央顶部。 在这里,您可以通过选择相应的复选框来选择需要同步的对象。 来自源的对象在左侧,而来自目标的对象在右侧。 下面,您可以看到这些对象的代码以类似的方式放置。 比较对象被分成4组,每组中的对象数量被相应地计数。
在这种情况下,我们查看的是位于源和目标中的特定表的代码。 这就是该对象位于“不同”组的原因:
选择此对象后,当数据库模式与目标同步时,其代码将从左侧转移到右侧。
这里,我们看的是只存在于源代码中的表示代码。 这就是为什么这个对象被放在“仅在源代码中”部分,并且在屏幕的右侧看不到它的代码:
当选择这样的对象时,将为目标生成用于创建它的代码。
在下面的例子中,我们看到的是只存在于目标中的表示的代码。 因此,该对象被放置在“仅在目标中”部分,并且在屏幕的左侧没有可见的代码:
当选择这样的对象时,将为目标生成删除它的代码。
接下来,要开始数据库模式比较过程,您需要单击以下屏幕截图中以红色突出显示的按钮之一:
在“输出”选项卡中,您需要指定如何执行同步过程。 这里最常见的选择是将脚本保存在数据库工作室中,或者保存到一个文件中。 在这种特殊情况下,我们需要前者。 在调整同步过程时,强烈建议仔细查看以下选项卡顺序:
在“选项”选项卡中,可以为数据库模式同步过程设置各种选项。
通常,需要清除“数据库备份”部分的所有选项。
在“事务”部分,选择了“使用单个事务”和“将事务隔离级别设置为可序列化”选项。 这有助于避免更改只能部分应用的情况。e.,启用这些选项后,更改将要么完全应用,要么根本不应用:
“摘要”选项卡总结并显示最终的同步设置。 如果此时需要任何更改,您可以返回到前面的任何步骤。
请记住,数据库架构同步设置可以保存为。bat文件;您可以通过按屏幕左下方的“保存命令行”按钮来完成。
要开始生成数据库模式同步脚本,请按“同步:”
该脚本将被生成并显示在新窗口中:
该脚本是我们将数据库模式更改从源转移到目标所需的代码。 它可以在目标服务器上执行,也可以保存为文件供以后使用。 通常,在任何情况下都应该保存这个脚本——这允许我们在几个不同的服务器上为同一个数据库同时运行它。 您可以通过使用SSMS的注册服务器组来实现这一点,同时将生成的脚本发送到所选组中的所有服务器:
同步完成后,所有以前选择的对象都将从模式比较窗口中消失:
如您所见,数据库锻造工作室允许快速生成数据库模式同步脚本。 与SSIS和Visual Studio Comparer相比,dbForge Studio for SQL Server更快、更容易使用g.,在设置调整过程中需要较少的点击。
来源:
- http://www .德瓦特。com/dbforge/sql/studio/
- https://docs .微软。com/en-us/previous-versions/SQL/SQL-server-data-tools/hh 272690(v = vs103)
- https://github。网站/工作/项目-管理系统-数据库-服务器-数据库管理员/树/主/服务