SQL Server配置读写分享 注意事项

来源:互联网 发布:艾瑞数据分析 编辑:程序博客网 时间:2024/05/22 14:57

最近在做业务数据库的读写分离,业务场景主要是读的压力实在太大,而写操作偶尔也会很频繁,在流量大的时候,就经常出现死锁。

虽然说死锁,跟业务逻辑层设计有关,但在没办法完全重构业务逻辑层的情况下,尝试读写分离,也是另外一种尝试。

1。在阿里云购买两台ECS,通过内网联通,要确保相互之间用"计算名”能ping通

      我配置的时候,内网IP能ping通,但计算机名ping不通,这时候,通过修改hosts文件,加上对方的计算机名和IP的对应关系,然后计算机名也可以ping通了

 

2。配置sqlserver代理的启动用户,为具体管理员权限的帐户,不能是内置帐户(如:local, network_service,system等)

     这里我是直接创建了一个系统管理员的帐户给sqlserver代理


3。使用sqlserver的发布、订阅机制

      这里在“新建发布”的时候,我选择的是“事务发布”,过程中会需要指定一个RelpData文件夹路径,用于存放数据库同步一些事务文件,这个文件夹需要给sqlserver代理的启用户以读写权限,否则在订阅的时候有可能会出现“没有权限,XXX。。。。”

      在另外一台服务器做“新建订阅”的时候,选择“分发代理位置”,这里我选择的是第1项,在分发服务器上运行所有代理。这里如果我选择第2项,不知是什么配置问题,最后总会出现“无法连接到Distributor”


 

4。 另外,如果在安装了sqlserver之后,改了计算机名,这里面一定要把sqlserver的 @@ServerName 这个变量也给修改掉,否则用计算机名连接时会显示不上

      这个变量是在安装的时候就设置好的,不会自动同步,需要自己执行命令修改

sql命令转载如下:

--修改数据库服务器名称
sp_dropserver 'old_servername'
sp_addserver 'new_servername','local'


参考资料:

SQL Server订阅与发布 [进程无法连接到 Distributor]:http://blog.csdn.net/ljsql/article/details/7743048/

0 0