SQLServer DBA 三十问(第11~20题) (二)

2014-11-24 09:55:30 · 作者: · 浏览: 1
骤,Mirroring三种模式区别,Mirroring 中同步和异步的原理和要求,

搭建了Mirroring后,需要对数据库日志做什么处理;

答:这个搭建步骤还是查资料比较可靠。

三种模式,高安全(带自动故障转移)同步传输高安全(不带自动故障转移)同步传输,高性能,异步传输数据,

同步就是主库要等待镜像库的回应消息才会提交事务,异步就是不等待回应消息就已经提交日志,因为等待消息需要时间,

所以不等待性能会更高,但不是很安全,镜像数据库的数据有可能和主库的数据不一致。

需要对数据库日志做什么处理?没看懂这句;

18. Replication配置和使用场景;Replication有哪几种模式;PUSH和PULL有啥区别;搭建Replication后会产生一个什么库;

报错时用什么来查看报错的具体语句,清理掉某个库的Replication使用什么语句,查看同步链信息主要通过哪些表;

答:配置的步骤足够写一篇博客,大概的步骤如下:1. 标识分发服务器;2. 在此分发服务器上创建分发数据库;

3. 启用将使用此分发服务器的发布服务器;4. 启用发布数据库;

5. 启用将接收发布数据的订阅服务器;其实里面很多细节要注意,可以google得到不错的教程,然后手动操作一遍就知道了,没什么难度。

场景:一般都是作为数据同步用;有推和拉模式,分发代理程序在分发服务器上运行即推,在订阅服务器上运行即拉;

会产生一个distribution库;

报错的话,一般监视器里面都有优红X的,如果觉得这样看太麻烦,可以直接查 distribution库的dbo.MSdistribution_history表,

所有分发相关的信息都保存在了distrition库;

清理replication看似简单,其实还分很多情况的,比如push,pull模式,还是日志,快照,合并模式,因这些不同,

都需要执行不同的系统存储过程,既然ms给我们提供的好用的企业管理器,我们大可以用他来简化我们的工作,

如果一定要脚本,那就找吧,系统存储过程一般以 sp_ 打头,清楚一般包含 "del","drop","remove" 等关键字,

比如我通过 select * from master..sysobjects

where xtype = 'p' and name like '%repl%' and name like '%remove%',sql2000下可以查到相关的过程和用法;
说实话谁也不能保证自己什么都会,不会应该保证在遇到问题的时候能马上找到解决的办法,这比死记硬背答案要来的有效些;

在distribution.dbo.MSarticles 可以查看同步链;

19. Replication发布端的表能truncate吗,为什么;Replication Identity列如何处理、缺失字段错误如何处理、

主键冲突错误如何处理、如何跳过指定的错误、订阅端表被删除了如何处理、大规模改动数据如何处理;

某条同步链因为其中的某个表一次性改动数据很大造成同步链的严重延时,要求尽快恢复同步链,如何处理。

答:不能truncate,具体见我的另外一篇:

DBA之问:Replication发布端的表能truncate吗,为什么;

发布的时候默认情况下,目标表不会建立identity字段,也的确不该建立;

缺失字段这种情况不应该发生,如果发生了是技术人员的操作失败,如果此列不许发布,去掉就可以了,

如果要在发布之后再对列进行添加或者删除,可以参考 sp_repladdcolumn , sp_repldropcolumn 这两个系统存储过程;

主键冲突,首先忽略,然后再检查两个表数据量是否一样,发生这种问题可能是有技术人员违规在订阅库上修改了表,

这是不被允许的,订阅库的库只适合做查询用,不应该人为手动更新;

订阅端表被删除,这样监视器是会提示错误的,应该重新初始化数据;

不建议同事进行大规模的数据改动,因为这会导致同步太频繁,而没一个同步动作都需要等待发布端服务器的确认,

如果生产数据库需要不断的等待确认,那等于降低了并发量,如果等待队列和时间都太长有可能导致数据库太慢而停止服务,我们遇到过类似情况。

20. SSB(Service Broker)使用场景,如何创建,都会创建些什么对象,有啥优缺点,

主要通过什么方式实现不同服务器之间的消息传递;可以通过哪些方式排错;

答:这是sql2005以后新增的功能,一直用的2000,对这个还没认真研究过,只知道可以用来做分布式的数据同步,而且是异步实现的。

-----------------------------------------------

后语: 这中间的10题比之前的10题难度提高了不少,有些问题在这之前我只是用他们来干活,并没具体研究他们怎么干活的,

通过这10题我对sqlserver的了解又加深了一步,而且很多问题,都是抱着追究本质的态度。在这些题目里面,

有些是sqlserver2005新增的功能,因为本人实在没用过,所以不敢妄给答案,以免误人子弟。知识无限,能力有限,

文中难免存在不对的地方,本人秉承着相互交流的态度,若哪位仁兄发现不对,敬请指出,本人也很乐意和从事sqlserver工作的兄弟们交流。

作者 鸽子飞扬