SQL DXP for SQL Server and MySQL提供了一个跨平台的数据库对比功能。它不仅能进行数据库间的一致性检查,还可以进行不同数据库服务器的比较,将源数据库的各种对象转化为目标数据库的兼容对象,并在不同平台间传输架构和/或数据。
SQL DXP的架构对比功能可以将源数据库的各种对象转化为目标数据库的兼容对象,以便进行一致性比较。例如,从MySQL到SQL Server的转换会将MySQL数据库转化为SQL Server的形式,使得比较能在相同的基础上进行。需要注意的是,并非所有的对象和属性都可以被转换,但源数据库的整个架构信息可以被完整保留下来展示。
数据对比功能可以更紧密地对齐跨平台的公共数据类型,为两个不同平台间的数据传输提供便利。这常被应用在将基于网络的MySQL数据回传至后端的SQL Server数据库中。
跨平台比较
SQLDXP可以对相似的数据库进行相似的比较,因此SQLServer与SQLServer之间的比较方式与SQLDelta执行比较的方式相同。此外,SQLDXP可以比较不同的数据库服务器并跨不同平台传输架构和/或数据。
架构比较
SQLDXP会将源数据库的各种对象转换为目标数据库的兼容对象。例如,MySQL到SQLServer将MySQL数据库转换为SQLServer形式,因此比较是类似的。
需要注意的是,并非所有对象和属性都可以转换。MySQL不支持SQLServer的功能集,但对象保留原样以显示源数据库的整个架构。
数据比较
给定通用数据类型,跨平台数据比较可以更紧密地对齐。数据比较提供了一种从两个不同平台传输数据的便捷方法,最常见的用途是将基于Web的MySQL数据传输回后端SQLServer数据库。
选项卡式项目
在单独的选项卡中并排运行两个或多个项目,无论是完全独立的服务器上的两个架构比较项目还是同一服务器上的架构比较和数据比较项目。
由于每个进程都在单独的线程中运行,因此您可以在等待其他比较进程完成时查看甚至运行更新脚本。
团体项目
您可以将每个项目分配到项目组,从而更轻松地组织项目。您可以将所有数据比较项目放入一个数据组中。将特定服务器项目组放在一个组下。
直接比较
比较两个数据库既快速又简单。在新项目中,选择源数据库目标,然后选择目标数据库,然后单击以运行架构比较。
SQLDelta显示源或目标中不同或不同的所有对象的概述。通过选择每个对象,您可以在架构级别看到各种差异。
综合项目选项
每个模式比较项目都有一系列选项来减少发现的共同差异。例如,具有系统名称的对象约束在源和目标之间通常是不同的,并且可以忽略这些。
模式映射
对于某些项目,您的目标架构名称(所有者)与源架构名称不同。每个比较项目都可以选择将源模式名称映射到目标模式名称。
然后,SQLDelta可以选择自动更改定义以使用正确的架构名称。例如,您的源数据库使用“dbo”,目标使用“prod”作为所有对象的架构名称。只需将dbo映射到prod,任何脚本更改都将确保目标对象是prod.object而不是dbo.object。
全面的搜索和过滤
在比较结果中,可以根据一系列选项过滤对象。例如,隐藏所有相同的对象是一个频繁的过滤器。
过滤器可以保留,因此每当您重新运行项目时,都会重新应用过滤器。这种持久性还可用于预选择或预取消选择对象,如果源中存在不应发送到目标的对象,这会很方便。
过滤架构加载
您可以对架构加载应用过滤器以从加载中排除对象。例如,您可能拥有一组属于源数据库一部分的函数,但它们永远不属于目标数据库。通过添加负载过滤器,您可以从负载中排除这些函数,从而从比较中排除。
双击同步
显示架构比较选项卡后,只需单击“脚本”即可生成部署脚本,然后单击“执行”以应用于目标。
比较报告
SQLDelta可以生成架构比较的HTML报告,突出显示整个架构中的对象差异。
部署前修改脚本
有时,能够更改脚本或将脚本添加到最终部署脚本中是件好事。同步脚本是完全可编辑的,并且在项目选项中,您可以添加自定义脚本,该脚本将添加到每个部署的同步脚本中。
它是如何工作的
数据比较使用一个或多个索引列(通常是主键)来确定源中的行是否与目标表中的行匹配。如果找到匹配,则数据比较扫描每列以查找差异。
配置全面
默认情况下,数据比较非常简单,选择源数据库和目标数据库并运行比较。SQLDelta自动确定具有主键和匹配列名的表并执行比较。
如果您希望获得更精细的信息,您可以选择要比较的表、定义自己的索引列,甚至定义要比较的列。
表和列映射
有时,源数据库中的表与目标数据库中的表具有不同的名称。数据比较可以将源表名映射到目标表名。这同样适用于源列可以映射到目标列的列。数据比较负责处理部署脚本内的名称更改。
数据过滤
可以过滤表数据以在加载期间排除特定行,并且过滤器使用标准where子句格式。
列转换
可以将列配置为应用转换以进行比较或同时进行比较和脚本编写。
例如,您可能想要比较存储到小数点后两位(货币值)的数字列,但在这种情况下,只有整数对您有意义。
您可以对列应用round(..)转换,这将删除小数值并比较整数。
数据过滤
可以过滤表数据以在加载期间排除特定行,并且过滤器使用标准where子句格式。
数据比较视图
可以选择将视图作为数据比较的一部分包含在内。
源视图可用于映射到目标表,提供从视图填充目标表的方法。
导出数据比较脚本
数据比较脚本可能会很大,并且会在脚本编写过程中自动保存到文件中。
数据比较脚本显示可以显示数百万行代码,因此您甚至可以查看最大的部署脚本。
差异报告
生成HTML报告,显示数据比较的差异摘要。
查看您的数据库
模式视图是一种编辑器功能,可显示数据库的整个模式。
对于表和视图等对象,您还可以查看表或视图中的数据。
搜索
在您的数据库中寻找某些内容?架构视图可以过滤到对象的定义级别,以便您可以快速找到数据库中的元素。
动态查询
对数据库运行DML或DDL查询。
审查
例如,架构比较可能显示源表发生意外更改,并且您想要查看与源数据库和目标数据库相关的数据和其他信息。
从项目管理器中复制您的比较项目,将其切换到模式视图项目并运行它。您现在可以在表和视图中查看原始架构和数据。也许数据解释了表中的变化或注释提供了更多信息。
评论(0)