您的位置:首页 > 运维架构 > 网站架构

使用群集保障SQL Server 2005的高可用性(3)

2009-04-08 11:52 330 查看
如何实现SQL Server 2005群集? 安装前准备: 一个正确配置并正在运行的Windows群集 为私有网卡禁用netbios 对SQL Server可用的共享磁盘阵列 微软分布式事务协调器(MSDTC)必须安装 群集的节点上没有安装防病毒程序 群集的节点上没有安装终端服务 创建好必须的服务账户,准备好虚拟服务器名称及IP地址 创建SQL Server群集组和MSDTC群集组,为他们指定共享磁盘阵列
安装SQL Server 2005群集的步骤: 在群集中创建MSDTC资源 安装SQL Server 2005群集 安装后测试群集可用性



如何在群集中创建MSDTC资源呢? 其实很方便的 但是有一个大前提是在群集管理器中创建MSDTC资源之前是需要在群集中两个节点上面分别去启用网络DTC访问 如何启用网络DTC访问呢? 我来到Node-1(节点1)这台计算机 通过开始--设置--选择控制面板--双击添加或删除程序--按添加/删除Windows组件--按应用程序服务器--按详细信息--把启用网络DTC访问沟上--按确定 接着下一步安装就可以了



我来到Node-2(节点2)这台计算机 通过开始--设置--选择控制面板--双击添加或删除程序--按添加/删除Windows组件--按应用程序服务器--按详细信息--把启用网络DTC访问沟上--按确定 接着下一步安装就可以了



现在我就在节点1上创建msdtc的资源了 但是msdtc资源有一些依赖性 它依赖的是网络名称和磁盘资源的 磁盘资源有了是E 现在还没有网络名称资源 而网络名称资源又依赖于IP地址资源 所以我们首先需要创建一个IP地址的资源才可以 在群集管理器里面展开组--对着msdtc组右键--按新建--选择资源 名称就叫做IP地址吧 在资源类型里面选择IP地址 接着下一步



接着下一步



接着下一步



在地址里面输入192.168.10.200 子网掩码为255.255.255.0 按完成



对着msdtc组右键--按新建--选择资源 名称就叫做网络名称吧 在资源类型里面选择网络名称 接着下一步



接着下一步



把IP 地址资源从可用资源添加到资源依存里面 接着下一步



名称就叫做DTCSERVER吧 按完成



对着msdtc组右键--按新建--选择资源 名称就叫做MSDTC吧 在资源类型里面选择分布式事务协调器(DTC) 接着下一步



接着下一步



把IP 地址、磁盘 E:、网络名称从可用资源添加到资源依存里面 按完成 其实不用把IP 地址添加在资源依存里面也可以的 因为实际上MSDTC这个资源只要依赖于硬盘和网络名称这二个资源就可以了



对着msdtc组右键--选择联机



现在就可以去搭建SQL Server 2005的群集了 我来到Node-1(节点1)这台计算机--我把SQL Server 2005企业版的安装光盘插入光驱里面--在安装里面按服务器组件、工具、联机丛书和示例



把我接受许可条款和条件沟上 接着下一步



按安装 待会还需不需跑到Node-2(节点2)上也运行一次SQL Server 2005 安装程序呢? 不需要的 它现在确实只是在Node-1(节点1)进行了组件的升级把该要的都安装好 Node-2(节点2)上没有安装 但是在后面的群集的安装过程当中它会自动地帮你去配置Node-2(节点2)然后在节点2上把需要的这些组件都安装好的



接着下一步 此时会进行一个系统配置检查 这也是SQL Server 2000所不具有的 这个功能非常的好 它在安装SQL Server 2005之前会去检测当前你的系统满不满足安装要求 如果你发现有很多地方打红X 你一定要暂停 根本无法进行下一步安装的 如果是警告的话 它不会去阻止你进一步地安装 但是可能有一些性能的问题 可能SQL Server 2005某一些功能不能使用 而且它检测到群集环境之后 它不仅帮你检查Node-1(节点1)有没有满足安装的需求 它还会帮你检查Node-2(节点2)有没有满足安装的需求



接着下一步



此时可以看到它能自动检测到群集环境 可以看到NODE-1(节点1)和NODE-2(节点2)的信息 接着下一步



接着下一步



这个时候你会发现它只要检测到群集环境的话 创建SQL Server 故障转移群集和创建分析服务器故障转移群集这二项就不是灰色的了 是可以被你选的 为什么Reporting Services这一项是灰色的呢? 因为我没有安装IIS 另外Reporting Services也不支持故障转移群集的 它只能支持那种NLB的群集 按高级



默认情况下是不安装AdventureWorks数据库的 如果你需要的话可以把它选择上--展开示例数据库--按AdventureWorks示例OLTP--选择整个功能将安装到本地硬盘就可以了 接着下一步



此时保留默认实例 接着下一步



虚拟服务器名称就叫做sqlvs吧 这个sqlvs也就是应用程序要去访问的SQL Server 2005服务器的名字 这个名字是一个NetBIOS名字接着下一步



在要使用的网络里面选择公共的网络--在IP地址里面输入192.168.10.254--按添加来把它添加在所选的网络和IP地址里面 也就是说sqlvs这个服务器名称对应的IP地址是192.168.10.254 是提供给公共的网络的计算机来访问的 接着下一步



在可用群集组里面按sqlvs组 接着下一步



接着下一步



用于进行远程安装是什么意思呢? 因为我们在Node-1(节点1)上安装SQL Server 2005群集的时候 它同时会自动地配置Node-2(节点2) 虽然你在Node-2(节点2)的计算机上去看不到什么东西 你只看到网卡在不断地闪 但是它其实会同时配置Node-2(节点2)的 如果说你想在Node-2(节点2)上安装SQL Server 2005群集的话 我必然需要对Node-1(节点1)有权限并且对Node-2(节点2)也有权限 所以在这里面输入的账户对远程的Node-2(节点2)也是有管理员的权限的 在我这个环境里面没有问题 因为clusteradmin是加入到Domain Admins组里面 所以它当然可以管理域控制器1也可以管理域控制器2 它是两台域控制器的管理员 此时输入clusteradmin的密码 接着下一步



我已经提前在Active Directory用户和计算机的ServiceAccount这个OU(组织单位)里面新建一个叫做sqladmin的用户并且把这个用户添加到Domain Admins这个组里面了 这个账户也是有要求的 因为是二台域控制器 所以需要添加到域管理员组(Domain Admins)里面 如果是两台加入域的Windows Server 2003 R2服务器的话只要将sqladmin这个账户添加到两台Windows Server 2003 R2服务器的本地管理员组就可以了 在Microsoft SQL Server 2005 安装程序的用户名和密码里面输入用户名(sqladmin)和密码并且在域里面输入yejunsheng.com(域名) 接着下一步 注意: Windows Server 2003 R2群集的启用账户和SQL Server 2005群集的启用账户一定要分开来



每个群集服务的启动账户都添加到DomainName\GroupName,以设置其访问控制-->这是一个什么样的概念呢? 就是说我可以在域中创建好对应的一些组 这个组的成员就是你上一步所指定的服务的启动账户 我刚才是所有服务都使用一个账户(sqladmin)来启动的 我可以在这边创建一个组去包含sqladmin作为成员 如果刚才是每一个服务都设置一个启动账户的话 在这边也可以创建三个组分别地去包括上一步每一个服务所对应用的启动账户 这个组是干什么的呢? 主要是做权限控制的 通过这个组去控制SQL Server 2005服务的启动账户 具体能够访问到群集服务里面的那些资源 我已经提前在Active Directory 用户和计算机的ServiceAccount这个OU(组织单位)里面新建一个叫做sqlservices group的组了 现在是不是需要把sqladmin这个用户添加到sqlservices group的组里面呢? 你可以事先添加进去 如果你不事先添加的话 那么它会在群集的安装的过程当中会自动地把sqladmin这个用户添加到sqlservices group的组里面的 但是这个前提是你现在安装群集的用户应该具有把前面SQL Server 2005服务的启动账户添加到这个组里面的权限 如果你没有的话 请你先把这个服务的启动账户添加到这个组里面 因为我现在是使用clusteradmin登录系统的 它是域管理组(Domain Admins)的成员 所以我就让它待会自动添加进去 肯定是可以添加进去的 因为clusteradmin这个用户肯定具有往一组里面添加成员权限的 按SQL Server、SQL Server代理、全文搜索右边的键--在输入要选择的对象名称里面输入sql--按检查名称--按确定 接着下一步



在选择此系统要使用的身份验证模式里面选择混合模式(Windows 身份验证和SQL Server 身份验证) 在下面输入sa的登录密码 接着下一步



接着下一步



接着下一步



此时按安装就进行安装SQL Server 2005的群集了



在SQL Server 2005群集的安装过程中不仅可以看到NODE-1(节点1)的安装情况也可以看到NODE-2安装情况的 现在可以看到在NODE-1(节点1)上正在复制新文件,目录,大小:



现在可以看到在NODE-2(节点2)上正在写入系统注册表值



现在可以看到NODE-1(节点1)已经成功安装完成了 接着下一步



现在可以看到NODE-2(节点2)也成功安装完成了 接着下一步



这是安装完成SQL Server 2005群集的最后一步了 按完成就ok了
安装完成SQL Server 2005群集之后,如何测试SQL Server 2005群集的可用性呢?



怎么样知道SQL Server 2005群集没有问题呢? 我现在来到Node-1(节点1)这台计算机 打开database(F:)这块硬盘可以看到已经产生数据库文件的目录了 在C:\Program Files\Microsoft SQL Server\90\Setup Bootstrap\LOG这个路径下面存放着一个叫做Summary.txt的日志文件 双击Summary.txt这个日志文件来打开它 这个文件会告诉你当前那些组件安装好了 比如说它告诉你Node-1(节点1)和Node-2(节点2)上面的SQL Server 2005数据库引擎已经成功安装了 和群集有关的日志文件是在C:\Program Files\Microsoft SQL Server\90\Setup Bootstrap\LOG\Files这个路径里面



第三步要确认的是SQL Server 2005服务是否已经正常运行 通过开始--程序--Microsoft SQL Server 2005--配置工具--选择SQL Server Configuration Manager来打开它--按SQL Server 2005服务--可以看到这些服务都正常运行了 为什么有些服务的启动模式是手动的呢? 因为手动的服务都表示它在群集里面对应一些资源都可以通过故障转移到另外一个节点 所以这些服务是手动的 你只要确定这些服务都启动就ok了



第四步要确认的是sqladmin这个用户是否已经自动添加到sqlservices group这个组里面了 通过开始--运行--输入dsa.msc按确定来打开Active Directory 用户和计算机--展开yejunsheng.com(域名)--按ServiceAccount这个OU(组织单位)--对着sqlservices group这个组右键--选择属性--按成员--可以看到sqladmin这个用户已经被添加到sqlservices group这个组里面了



通过开始--程序--Microsoft SQL Server 2005--配置工具--选择SQL Server 外围应用配置器来打它对SQL Server 2005做一下配置 因为在默认情况下有些功能在SQL Server 2005是关掉的 可能你需要通过外围应用配置器去额外地启动一下--在配置外围应用localhost里面按更改计算机--选择远程计算机--输入sqlvs--按确定 注意: 此时不要选择本地计算机 因为这个时候你要访问的是SQL的虚拟服务器 你选择本地计算机会失败的



在配置外围应用sqlvs里面按服务和连接的外围应用配置器



在Database Engine里面按远程连接--可以看到本地连接和远程连接这一项--微软建议如果是SQL Server 2005群集环境的话请选择仅使用TCP/IP 不要再同时支持named pipes的方式去访问SQL Server 2005了 我现在就把它修改成仅使用TCP/IP了 按确定



最后一步就是测试它是否能够故障转移了 通过开始--运行--输入cmd按确定来打开命令提示符 在里面输入sqlcmd -S sqlvs -U sa -P @ye12jun按回车键之后发现可以成功地连接到SQL Server 2005群集里面的虚拟服务器了--输入use master按回车键--输入go按回车键--输入select * from sys.databases按回车键--输入go按回车键之后可以看到在master里面的信息 输入select name from sys.databases按回车键--输入go按回车键之后就可以看到架构的名称了



我现在来做一下故障转移--对着sqlvs组右键--选择移动组 这个时候SQL Server 2005群集里面的虚拟服务器会有一段时间不能访问的 在命令提示符里面输入go按回车键--输入select name from sys.databases按回车键--输入go按回车键之后可以看到有错误提示-->通讯链接失败 为什么呢? 因为此时Node-2(节点2)正在转移到Node-1(节点1)里面 表明现在已经可以成功实现群集的故障转移了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息