设为首页 加入收藏

TOP

Red Hat Enterprise Linux上为SQL Server配置共享磁盘集群
2017-06-22 10:23:37 】 浏览:4592
Tags:Red Hat Enterprise Linux 上为 SQL Server 配置 共享 磁盘 集群

微软官方配置文档:https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-shared-disk-cluster-red-hat-7-configure


Linux Cluster结构图如下:



具体配置步骤如下:


b)      在Secondary端停掉并禁用SQL Server服务:


c)      备份同步Server Master Key(由于Linux中SQL Server是以本地用户mssql运行的,因此不同的节点无法识别别的节点的认证,所以需要备份同步加密key从Primary端到其它节点上以便于能够成功解密Server Master Key):


 


d)      在Primary端为Pacemaker程序创建一个SQL登录用户,并给足足够的权限运行sp_server_diagnostics。


先开启SQL Server服务:


连接到SQL Server上:


执行以下SQL语句创建用户并赋予权限:


退出sqlcmd:


e)      在Primary端停掉并禁用SQL Server服务:


f)        配置每一个节点的hosts文件,保证互相能够识别。


下图是配置完成后的例子:



有很多种提供共享磁盘的解决方案。下面简单介绍配置NFS的共享磁盘。推荐使用Kerberos去配置NFS以提高安全性:https://www.certdepot.net/rhel7-use-kerberos-control-access-nfs-network-shares/。这里仅介绍最简单的方式用于简单测试和学习。


找另一个RHEL系统机器作为NFS Server,执行如下命令(由于仅是测试研究,这里选用Cluster的一个节点作为NFS Server也可):


a)      安装NFS软件包:


b)      启用并开启rpcbind服务:


c)      启用并开启nfs-server服务:


d)      编辑/etc/exports文件去设置想要共享的存储路径,注意每一个共享是一行:


设置完的例子如下:



e)      导出共享并确定是否成功:


 


f)        在SELinux中添加异常设置:


g)      防火墙中允许相关服务通信:


在所有的Cluster节点机器上执行如下命令,确保能访问NFS共享磁盘:


a)      安装NFS软件包:


b)      防火墙中允许相关服务通信:


c)      确认是否可以看到NFS共享:


更多关于NFS的文档资源参考以下站点:


转移数据库文件到共享磁盘上:


a)      在Primary节点上先把数据库文件保存到临时路径/var/opt/mssql/tmp下,


b)      在所有节点上编辑/etc/fstab文件,保证重启系统后自动挂载NFS共享磁盘:


例子如下:



Note(摘自微软):



关于如何配置Fencing,请参考How To Configure VMware fencing using fence_vmware_soap in RHEL High Availability Add On(RHEL Pacemaker中配置STONITH)


c)      挂载刚刚配置的NFS存储:


可以执行mount命令检测是否已经成功挂载:



d)      在Primary节点上把临时路径下的数据库文件复制到新挂载的路径下,并保证mssql这个本地用户有??写权限:


e)      在Primary节点上开启SQL Server服务验证是否成功,这时SQL Server已经使用NFS服务器上的共享磁盘了:


f)        在其它非Primary节点上依次开启SQL Server服务验证是否成功。


Note:目前所有节点的SQL Server都使用这个NFS服务器共享磁盘了,根据微软推荐,为了防止冲突,需要使用一个File System Cluster资源来防止一个共享路径被挂载多次。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Red Hat Enterprise Linux上安装.. 下一篇一键帮你收缩所有DB文件大小(Shr..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目