上一页 1 2 3 4 5 6 7 ··· 18 下一页
摘要: 与大多数语言一样,SQL语言也有一个执行顺序,只是在大多数编程语言中,代码是按照编写顺序来处理的,而在SQL中则不是,下图为SQL 执行顺序。(5) SELECT ( 5-2 ) [ ALL | DISTINCT ] (5- 3) [TOP ( expression ) [PERCENT] [ WITH TIES ] (5- 1) --[ INTO new_table ](1) FROM ( 1-J ) join on |(1- A) apply as |(1- P) PIVOT () as ... 阅读全文
posted @ 2013-08-12 16:10 _cc 阅读(1632) 评论(4) 推荐(2) 编辑
摘要: 在复制中,有的时候会出现订阅端被人修改,导致发布端插入数据的时候主键冲突,这个时候我们要做的不是直接的初始化太过暴力,而对于生产环境来说,这样的操作代价也会很大。下面会说几种方法来处理冲突:1、 查看出错的复制命令的具体内容如果在复制监视器的订阅详细信息中查看分发代理出错信息时,如果发错发生在应用复制命令时,则可以看到类似信息:尝试的命令: If @@TRANCOUNT > 0 rollback tran (事务序列号:.......) 错误消息: 违反了primary key 约束'%s'。不能在对象'%S'中插入重复键.如下例子:尝试的命令:if @@ 阅读全文
posted @ 2013-08-07 16:34 _cc 阅读(5660) 评论(0) 推荐(2) 编辑
摘要: 1. tablediff 是什么?tablediff 实用工具用于比较两个非收敛的表中的数据,它对于排除复制拓扑中的非收敛故障非常有用。2. tablediff 用哪些用法?1) . 在充当复制发布服务器的 Microsoft SQL Server 实例中的源表与充当复制订阅服务器的一个或多个 SQL Server 实例中的目标表之间进行逐行比较。2) . 通过只比较行数和架构可以执行快速比较。3) . 执行列级比较。4) . 生成 Transact-SQL 脚本,用以修复目标服务器中的差异,以使源表和目标表实现收敛。5) . 将结果记录到输出文件或目标数据库的表中。 3. tablediff 阅读全文
posted @ 2013-08-05 18:00 _cc 阅读(6706) 评论(2) 推荐(2) 编辑
摘要: bcp 实用工具可以在 Microsoft SQL Server 实例和用户指定格式的数据文件间大容量复制数据。 使用 bcp 实用工具可以将大量新行导入 SQL Server 表,或将表数据导出到数据文件。 除非与 queryout 选项一起使用,否则使用该实用工具不需要了解 Transact-SQL 知识。 若要将数据导入表中,必须使用为该表创建的格式文件,或者必须了解表的结构以及对于该表中的列有效的数据类型。BCP的所有参数:BCP可以执行的4种操作(1) 导入 这个动作使用in命令完成,后面跟需要导入的文件名。 (2) 导出 这个动作使用out命令完成,后面跟需要导出的文件名。 (.. 阅读全文
posted @ 2013-07-31 17:14 _cc 阅读(66971) 评论(5) 推荐(5) 编辑
摘要: 对于大批量的更新操作 又涉及同步,如果可以:a) 最好是使用最小粒度的维护,可以减少每次维护的工作量,也减少备份 (建立作业JOB批量操作,定期进行删除)b) 如果是急需,又涉及到同步,那么可以把同步拿掉进行删除,完成之后再建上(避免出现线上阻塞,影响性能。同步会同步大量日志,更新完成之后再重建同步使用的不是日志同步而是快照,所以速度要比用日志同步快很多。)监控:可以用 sp_who2 或者 可以通过查询 sysprocess 获取是否有阻塞,在更新的同时,查看同步的监控通常是看SqlMonitor,以便于对当前的情况进行随时的调整。1. 我们可以通过以下查询看到目前有多少的命令没有分发出去, 阅读全文
posted @ 2013-07-24 11:27 _cc 阅读(1480) 评论(2) 推荐(2) 编辑
摘要: 复制中常用到的表:use distributiongoSELECT * FROM dbo.MSrepl_transactions WITH(NOLOCK) --表中每个重复事务占一行select * from dbo.MSrepl_commands with(nolock) --表包含复制命令行--比如一个更新语句,影响行数为行,transactions表里会有一行,commands表里多行select * from dbo.MSrepl_errors with( nolock) -- 表包含具有扩展分发代理和合并代理失败信息的行 select * fro... 阅读全文
posted @ 2013-07-24 10:48 _cc 阅读(457) 评论(0) 推荐(2) 编辑
摘要: Transact-SQL 参考sp_replication_agent_checkup检查每个分发数据库的复制代理程序,这些复制代理程序正在运行但在指定的心跳信号间隔内没有历史记录。此存储过程在分发服务器的任何数据库上执行。语法sp_replication_agent_checkup [ [ @heartbeat_interval = ] heartbeat_interval ]参数[@heartbeat_interval =] 'heartbeat_interval'是代理程序在不记录进度消息的情况下可以运行的最长分钟数。heartbeat_interval 的数据类型为 i 阅读全文
posted @ 2013-07-23 17:59 _cc 阅读(387) 评论(0) 推荐(0) 编辑
摘要: 关于同步的错误:The subscription(S) have been marked inactive and must be reinitialized. NoSync subscriptions will need to be dropped and recreated.应该是之前的同步有错误,同步的命令如果同步失败的话,会保留小时,如果一个订阅出错,72 小时内没有处理的话,就会出现这种问题因为复制的命令过期被删除,所以同步的命令有缺少,这个时候订阅需要重新做MSdistribution_history 能够查到的最早数据是日期,如果一直是报这样的错误,应该在更早之前同步有有出错了u 阅读全文
posted @ 2013-07-23 17:58 _cc 阅读(668) 评论(1) 推荐(0) 编辑
摘要: 复制代理说明: 复制代理执行许多与复制有关的任务,其中包括创建架构和数据副本、检测发布服务器或订阅服务器上的更新以及在服务器之间传播更改。 默认情况下,复制代理在 MicrosoftSQL Server 代理作业步骤下运行。 由于这些代理完全是可执行文件,因此可以从命令行和批处理脚本直接调用它们。 每个复制代理支持一组运行时参数,用于控制代理的运行方式;这些参数在代理配置文件或命令行中指定。可以通过下图来看复制代理相关的JOB与计划:清除作业说明默认调度代理历史记录清除:分发从分发数据库中删除复制代理历史记录。每十分钟运行一次分发清除:分发从分发数据库中删除复制的事务。 停用在最大分发保持期. 阅读全文
posted @ 2013-07-23 15:29 _cc 阅读(2395) 评论(2) 推荐(2) 编辑
摘要: SQL SERVER将复制方式分为三大类,每一个发布只能有一种复制类型,分别为:快照复制,事务复制和合并复制,如下图。快照复制快照复制将发布的数据库所有表的某个瞬间数据做成一个镜像,然后一次性复制到订阅服务器。中间的更新不会像其它复制类型那样自动传送到订阅服务器。由此可以看出选择快照复制的的合格环境是:1、用户允许订阅服务器使用相对己过时的数据副本并且需要复制的整体数据量较小。2、数据库在短期内出现了大量更改并且需要复制的整体数据量较小。事务复制 快照复制每次同步的是整个订阅的内容。如果发布包括非常大的表,那么势必每次同步都需要生成很大的快照文件夹并将这些快照文件夹逐一导入要订阅数据库中,因此 阅读全文
posted @ 2013-07-22 11:05 _cc 阅读(1742) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 18 下一页