(5.1.5)引擎管理——多服务器管理之中央管理服务器(CMS)
关键词:中央管理服务器,CMS,多服务器管理
中央管理服务器
【1】打开
视图-》已注册的服务器
【2】注册中央管理服务器
右击中央管理器-》注册中央管理服务器
这里输入IP、主机名都可以
【3】建立文件夹等相关操作
【4】新建服务器注册
什么意思呢,就是建立被管理的服务器连接,在它下面建立的都会被该中央服务器给管理到
恶心的地方来了,这里只支持windows身份验证
这意味着什么
(1)所有的账户必须都是注册服务器登录的当前windows登录名(比如我这里用sqladmin的windows账户登录winodws 操作系统)
(2)所有被注册的服务器都需要有这个用户,且在其所在实例上有以该windows账户建立登录名,且构建中央管理服务器时需要用这个windows账户登录操作系统
【5】批量查询
直接右击中央服务器-》新建查询
然后会显示下面有多少个已注册服务器连接上来了,如下图,显示已注册服务器的的总数和当前连接数;我注册了2个,就出现了 已连接2
然后执行SQL查询,这里的操作就可以应用到该中央服务器下的所有注册服务器(注意,该查询执行不包含中央服务器本身的)
【6】核验
查看已注册服务器,成功~~~
查看本机,发现并没有执行,所以我们上面说的这句【(注意,该查询执行不包含中央服务器本身的)】是正确的
【最佳实践】
(0)限制与前提
《1》恶心的地方来了,这里只支持windows身份验证
《2》同一个查询下的被分发服务器所有库表必须一样,否则语句分发下去某些服务器就会失败
(1)准备
(2)查询
(3)如果有些执行成功,有些执行失败怎么显示?
《查询》
比如,我在 192.168.191.81 上有 test1表,其他机器上没有 test1表
那么,我现在把 192.168.191.80 master库上加上 test1表,但表结构不同,看看查询会是什么情况
use master; create table test1(id int ,id3 int) insert into test1 values(1,1)
创建后执行,如下图:
我们可以发现虽然有表之后,两个都执行成功了!
但是表结构不一样,只会显示第一个开始查询的表数据;
《增删改》
我们根据上面的案例可以发现,192.168.191.81 和 192.168.191.80 两个表结构不同,但都有 id3字段,这个时候我们插入一下会怎么样呢?
如下图:
我们发现,各个实例反馈各不相同,互不影响;要的就是这个效果
(4)可以根据服务器组来分发
如下,我们只在test1组下面注册了一个服务器,右击这个服务器组,然后新建查询,连接的就只是这个服务器组下的所有服务器