Sqlserver tablediff的简单使用
1. 先列举一下自己简单的比较语句
tablediff -sourceserver 10.24.160.73 -sourcedatabase cwbasemi70 -sourceschema lcmi709999 -sourcetable gspuser -destinationserver 10.24.160.94 -destinationdatabase cwbasemi70 -destinationschema lcmi709999 -destinationtable gspuser -strict
效果为:
如果简单对比的话 可以使用:
注意一下官网的说明:
tablediff 实用工具
- 2017/03/06
- 作者
tablediff 实用工具用于比较两个非收敛表中的数据,它对于排除复制拓扑中的非收敛故障非常有用。 可以从命令提示符或在批处理文件中使用该实用工具执行以下任务:
在充当复制发布服务器的 Microsoft SQL Server 实例中的源表与充当复制订阅服务器的一个或多个 SQL Server 实例中的目标表之间进行逐行比较。
通过只比较行数和架构可以执行快速比较。
执行列级比较。
生成 Transact-SQL 脚本,用以修复目标服务器中的差异,以使源表和目标表实现收敛。
将结果记录到输出文件或目标数据库的表中。
语法
tablediff
[ -? ] |
{
-sourceserversource_server_name[\instance_name]
-sourcedatabasesource_database-sourcetablesource_table_name
[ -sourceschemasource_schema_name ]
[ -sourcepasswordsource_password ]
[ -sourceusersource_login ]
[ -sourcelocked ]
-destinationserverdestination_server_name[\instance_name]
-destinationdatabasesubscription_database-destinationtabledestination_table
[ -destinationschemadestination_schema_name ]
[ -destinationpassworddestination_password ]
[ -destinationuserdestination_login ]
[ -destinationlocked ]
[ -blarge_object_bytes ]
[ -bfnumber_of_statements ]
[ -c ]
[ -dt ]
[ -ettable_name ]
[ -f [ file_name ] ]
[ -ooutput_file_name ]
[ -q ]
[ -rcnumber_of_retries ]
[ -riretry_interval ]
[ -strict ]
[ -tconnection_timeouts ]
}
参数
[ -? ]
返回支持参数的列表。
-sourceserver source_server_name[\instance_name]
源服务器的名称。 指定_源_服务器_名称_的默认实例为SQL Server。 指定_源_服务器_名称_\_实例_名称_对于命名实例的SQL Server.
-sourcedatabase source_database
源数据库的名称。
-sourcetable source_table_name
正在检查的源表的名称。
-sourceschema source_schema_name
源表的架构所有者。 默认情况下,表所有者假定为 dbo。
-sourcepassword source_password
使用 SQL Server 身份验证连接到源服务器时所使用的登录帐户的密码。
重要
可能的话,请在运行时提供安全凭据。 如果必须在脚本文件中存储凭据,则应保护文件以防止未经授权的访问。
-sourceuser source_login
使用 SQL Server 身份验证连接到源服务器时所使用的登录帐户。 如果未提供 source_login ,则连接到源服务器时使用 Windows 身份验证。 请尽可能使用 Windows 身份验证。
-sourcelocked
在使用 TABLOCK 和 HOLDLOCK 表提示的比较过程中锁定源表。
-destinationserver destination_server_name[\实例_名称]
目标服务器的名称。 指定 destination_server_name source_server_name SQL Server。 指定_目标_服务器_名称_\_实例_名称_对于命名实例的SQL Server.
-destinationdatabase subscription_database
目标数据库的名称。
-destinationtable destination_table
目标表的名称。
-destinationschema destination_schema_name
目标表的架构所有者。 默认情况下,表所有者假定为 dbo。
-destinationpassword destination_password
使用 SQL Server 身份验证连接到目标服务器时所使用的登录帐户的密码。
重要
可能的话,请在运行时提供安全凭据。 如果必须在脚本文件中存储凭据,则应保护文件以防止未经授权的访问。
-destinationuser destination_login
使用 SQL Server 身份验证连接到目标服务器时所使用的登录帐户。 如果未提供 destination_login ,则连接到该服务器时使用 Windows 身份验证。 请尽可能使用 Windows 身份验证。
-destinationlocked
在使用 TABLOCK 和 HOLDLOCK 表提示的比较过程中锁定目标表。
-b large_object_bytes
大型对象数据类型列中要比较的字节数,这些数据类型包括:text
、ntext
、image
、varchar(max)
、nvarchar(max)
和 varbinary(max)
。 large_object_bytes 默认为列的大小。 任何大于 large_object_bytes 的数据不会进行比较。
-bf number_of_statements
使用 Transact-SQL -f Transact-SQL 选项时要写入到当前 脚本文件中的 语句数。 当 Transact-SQL 语句数超过 number_of_statements时,将创建一个新的 Transact-SQL 脚本文件。
-c
比较列级差异。
-dt
删除 table_name指定的结果表(如果该表已经存在)。
-et table_name
指定要创建的结果表的名称。 如果该表已经存在,则必须使用 -DT ,否则操作将失败。
-f [ file_name ]
生成 Transact-SQL 脚本,以使目标服务器中的表与源服务器中的表实现收敛。 (可选)可以指定生成的 Transact-SQL 脚本文件的名称和路径。 如果未指定 file_name ,则会在运行实用工具的目录中生成 Transact-SQL 脚本文件。
-o output_file_name
输出文件的完整名称和路径。
-q
通过只比较行数和架构可以执行快速比较。
-rc number_of_retries
实用工具重试失败操作的次数。
-ri retry_interval
两次重试之间的等待间隔(秒)。
-strict
对源架构和目标架构进行严格比较。
-t connection_timeouts
设置与源服务器和目标服务器连接时的连接超时时间(秒)。
返回值
ReplTest1 | Description |
---|---|
0 | 成功 |
1 | 严重错误 |
2 | 存在表差异 |
备注
tablediff 实用工具不能用于非SQL Server 服务器。
不支持包含 sql_variant
数据类型列的表。
默认情况下, tablediff 实用工具支持源列和目标列之间的以下数据类型映射。
源数据类型 | 目标数据类型 |
---|---|
tinyint |
smallint 、int 或 bigint |
smallint |
int 或 bigint |
int |
bigint |
timestamp |
varbinary |
varchar(max) |
text |
nvarchar(max) |
ntext |
varbinary(max) |
image |
text |
varchar(max) |
ntext |
nvarchar(max) |
image |
varbinary(max) |
使用 -strict 选项可禁止这些映射,并执行严格验证。
进行比较的源表必须至少包含一个主键、标识或 ROWGUID 列。 使用 -strict 选项时,目标表也必须具有一个主键、标识或 ROWGUID 列。
所生成的使目标表实现收敛的 Transact-SQL 脚本不包括下列数据类型:
varchar(max)
nvarchar(max)
varbinary(max)
timestamp
xml
text
ntext
image
权限
若要比较表,您必须有要比较的表对象的 SELECT ALL 权限。
若要使用 -et 选项,必须是 db_owner 固定数据库角色的成员,或者在订阅数据库中至少拥有 CREATE TABLE 权限,并且对目标服务器中的目标所有者架构拥有 ALTER 权限。
若要使用 -dt 选项,必须是 db_owner 固定数据库角色的成员,或者至少对目标服务器中的目标所有者架构拥有 ALTER 权限。
若要使用 -o 或 -f 选项,必须对指定的文件目录位置拥有写入权限。
Sqlserver tablediff的简单使用的更多相关文章
- SQLSERVER性能计数器的简单剖析
SQLSERVER性能计数器的简单剖析 今晚看了这篇文章:SQL Server 2012新performance counter:非常实用的Batch Resp Statistics 文章里介绍到SQ ...
- 原创SQlServer数据库生成简单的说明文档小工具(附源码)
这是一款简单的数据库文档生成工具,主要实现了SQlServer生成说明文档的小工具,目前不够完善,主要可以把数据库的表以及表的详细字段信息,导出到 Word中,可以方便开发人员了解数据库的信息或写技术 ...
- 创建并在项目中调用SQLSERVER存储过程的简单示例
使用SQLSERVER存储过程可以很大的提高程序运行速度,简化编程维护难度,现已得到广泛应用.创建存储过程 和数据表一样,在使用之前需要创建存储过程,它的简明语法是: 引用: Create PROC ...
- 原创SQlServer数据库生成简单的说明文档包含(存储过程、视图、数据库批量备份)小工具(附源码)
这是一款简单的数据库文档生成工具,主要实现了SQlServer生成说明文档的小工具,目前不够完善,主要可以把数据库的表以及表的详细字段信息,导出到 Word中,可以方便开发人员了解数据库的信息或写技术 ...
- sqlserver tablediff 实用工具
tablediff 是sqlserver自带的实用工具 sqlserver 2012 在110目录下,sqlserver2008在100目录下 官方参考文档如下: https://docs.micro ...
- 使用asp.net mvc + entityframework + sqlServer 搭建一个简单的code first项目
步骤: 1. 创建一个asp.net mvc 项目 1.1 项目创建好结构如下 2 通过vs安装EntityFramework框架 install-package entityframework 3. ...
- Linux 下面 Sqlserver 2017 的简单安装
1. 公司网络太烂 yum 在线安装失败 2. 解决方法 找微软的官网 百度网盘 离线下载rpm包. https://packages.microsoft.com/rhel/7/mssql-serve ...
- Sqlserver 系统视图简单说明
1. 查看系统视图的sql语句 select * from sys.system_views 2. 查看所有的 dynamic management 视图的sql select * from sys. ...
- SQLserver 一种简单的GUI方式创建DBlink copy 表数据的方法
1. 在sqlserver 上面使用GUI的方式创建dblink 首先打开查询分析器 在如下的位置处右键 -新建连接服务器 输入需要copy数据的服务器 输入ip地址 然后建立连接 在打开查询分析器进 ...
随机推荐
- 【Linux基础】Linux更改系统IP
1.SUSE系统 (1)设置IP cd /etc/sysconfig/network/ vi ifcfg-eth0 BOOTPROTO='static' #静态IPBROADCAST='192.1 ...
- ES5-ES6-ES7_async函数
async 函数概述 async/await应该是目前最简单的异步方案,ES7 中新增了 async/await 两个关键词. async 可以声明一个异步函数,此函数需要返回一个 Promise 对 ...
- 定时器 setTimeout()超时调用和 setInterval()间歇调用
JavaScript是单线程语言,但它允许通过设置定时器,也就是设置超时值和间歇时间来调度代码在特定的时刻执行.前者是在指定的时间过后执行代码,而后者则是每隔指定的时间就执行一次代码. 超时调用需要使 ...
- WPF 样式(定义样式、引用样式、样式作用域、Trigger触发器)
1.定义 资源字典 <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presenta ...
- 转://Oracle 高可用技术与云基础架构
众所周知Oracle云基础架构已经在越来越多的行业里应用.大家了解云基础架构是如何演进的嘛?可能有人会说Oracle高可用技术是组成云架构的基础,那它们的关系是怎么样的?大家又了解Oracle高可用技 ...
- bzoj2721 [Violet5]樱花
bzoj2721 [Violet 5]樱花 给出 \(n\) 求 \(\frac{1}{x}+\frac{1}{y}=\frac{1}{n!}\) 的正整数解数量 \(\bmod (10^9+7)\) ...
- 初学Python——字典
一.定义 什么是字典? 字典是一种数据类型,是一系列数据的组合. 每一个数据单元都分为key和value,key也称主键,具有唯一性,不可重复.value可以理解成是key对应的值. info={ 1 ...
- 面试笔记--HashMap扩容机制
转载请注明出处 http://www.cnblogs.com/yanzige/p/8392142.html 扩容必须满足两个条件: 1. 存放新值的时候当前已有元素的个数必须大于等于阈值 2. 存放新 ...
- python调用数据返回字典dict数据的现象1
python调用数据返回字典dict数据的现象1 思考: 可以看到这两种情况,区别在于构造函数make()里赋值给字典dict的方式不同.使用相同的调用方式,而结果却完全不同.可以看到第二种情况才是我 ...
- 负载(Load)分析及问题排查
平常的工作中,在衡量服务器的性能时,经常会涉及到几个指标,load.cpu.mem.qps.rt等.每个指标都有其独特的意义,很多时候在线上出现问题时,往往会伴随着某些指标的异常.大部分情况下,在问题 ...