您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > 配置SQLServer镜像—非域环境
[置顶]第三篇——第二部分——第四文配置SQLServer镜像——非域环境分类:数据库管理企业管理镜像高可用DBA2014-05-3010:511846人阅读评论(5)收藏举报dbadatabase镜像sqlserver证书目录(?)[+]本文为非域环境搭建镜像演示,对于域环境搭建,可参照上文:原文出处:前面已经演示了域环境下的镜像搭建,本文将使用非域环境来搭建镜像,同样,先按照不带见证服务器的高安全模式(同步)的方式搭建,然后演示异步模式,最后会演示带有见证服务器的高安全模式。准备条件服务器服务器角色机器名/实例名版本IP主体服务器RepAWindowsServer2008R2英文x64192.168.1.2镜像服务器RepBWindowsServer2008R2英文x64192.168.1.3见证服务器Win7Win7企业版192.168.1.4注:Rep是Replication(复制)的缩写,RepA和RepB一开始是搭建来做复制演示,本文借用这3台服务器。SQLServer均使用SQLServer2008R2企业版英文X64演示数据库AdventureWorks2008R2第一步:检查环境由于在非域环境内,所以需要做的检查相对来说多很多,下面按照演示环境,逐个测试下面的条件:1.Windows账号。2.网络是否能联通,并且端口可用。3.主体服务器和镜像服务器的磁盘配置是否正确。4.SQLServer版本、补丁是否满足镜像要求。5.SQLServer数据库的恢复模式、兼容级别。6.SQLServer上是否有常规的备份作业,特别是日志备份。7.主体服务器和镜像服务器的SQLServer能否互通。8.主体服务器和镜像服务器中是否有共享文件夹。Windows账号:搭建镜像中,涉及Windows账号的主要是在共享文件夹中,非域环境下需要证书来搭建镜像,另外对于小库,一般使用备份还原的方式,也就是说,需要把主体数据库上的备份文件传输到镜像服务器上,这些都需要用到Windows账号操作共享文件夹。本文为了演示方便,使用了Administrator作为Windows的账号,作为最佳实践,建议真正搭建时使用专用的Windows账号,并且保证有足够的权限。网络是否联通,并且端口可用:非单机下的高可用都严重依赖网络,网络不通,一切都白搭。所以首先要确保网络是能互访的。下面测试一下本例中使用的主体服务器和镜像服务器是否能互访:在RepA上pingRepB(本例IP地址192.168.1.3)在RepB上pingRepA(本例IP地址192.168.1.2)可见是能ping通的,为了方便,本例已关闭防火墙,所以端口问题不需要检查,如果在生产环境,就需要和网络管理员确认端口是否已经开启。检查端口可以用Telnet命令。如果输入Telnet后出现下面的错误:英文:‘telnet’isnotrecognizedasaninternalorexternalcommand,operableprogramorbatchfile.中文:'telnet'不是内部或外部命令,也不是可运行的程序或批处理文件。可以在“开始”→“控制面板”→“程序”,“在程序和功能”找到并点击“打开或关闭Windows功能”进入Windows功能设置对话框。找到并勾选“Telnet客户端”和“Telnet服务器”,最后“确定”。依据版本不同,开启方式也会不同,具体版本请自行查找搜索引擎的方案。主体服务器和镜像服务器的磁盘配置是否正确:在正式环境中,往往不会只有一个磁盘,本例由于实体机的资源限制,所以只保留系统盘,即C盘做演示。下面先检查主体服务器(RepA)上演示库(AdventureWorks2008R2)的数据文件和日志文件所在的盘符和目录:[sql]viewplaincopyprint?1.USEmaster2.go3.SELECTphysical_name--物理文件路径4.FROMsys.master_files5.WHEREdatabase_id=DB_ID('AdventureWorks2008R2')本例结果如下:接下来到镜像服务器,也就是RepB上检查是否存在这个盘符和目录,如果不存在,要手动创建。下面是手动创建后的文件夹:要注意,后续还原的时候,要检查还原时文件路径是否也指向相同的目录。文件名也要一致。SQLServer版本、补丁是否满足镜像要求:本例使用相同的安装文件,且均为2008R2(OS和SQL),并且没有联网更新,所以基本上可以确保版本和补丁一致。如果是正式环境,需要考虑,虽然从2005SP1开始就支持镜像,但是真正完整支持镜像功能的还是从2005SP2开始,另外除了SQLServer版本之外,Windows的版本、补丁也要检查,虽然没有很确切指定OS也必须完全一致,但是一致的版本会比较少异常。SQLServer数据库的恢复模式、兼容级别:检查恢复模式和兼容级别,可以使用下面的语句实现:[sql]viewplaincopyprint?1.USEmaster2.go3.SELECTname[数据库名],4.recovery_model_desc[恢复模式],5.CASEWHEN[compatibility_level]=90THEN'2005'6.WHEN[compatibility_level]=100THEN'2008'7.WHEN[compatibility_level]100THEN'2008+'8.ELSE'2000orlowerversion'9.END[兼容级别]10.FROMsys.databases11.WHEREname='AdventureWorks2008R2'在本例中,演示库为简单模式,所以用SSMS或者命令修改:SSMS修改:T-SQL修改:[sql]viewplaincopyprint?1.USE[master]2.GO3.ALTERDATABASE[AdventureWorks2008R2]SETRECOVERYFULLWITHNO_WAIT4.GO本人建议使用T-SQL修改,因为在服务器比较繁忙的时候,使用图形化界面操作会很慢甚至超时。并且一个DBA应该会使用这些T-SQL命令。否则就太不专业了。再次执行检查脚本,可见恢复模式已经变回了Full:SQLServer上是否有常规的备份作业,特别是日志备份:这一步就不做演示了,打开SQLServerAgent即可检查,另外搭建镜像的人应该具有会看是否有常规备份的能力。主体服务器和镜像服务器的SQLServer能否互通:在前面的第二步中,主要是检查OS的网络,但是OS能连通不代表SQLServer能连通,所以有必要检查SQLServer是否能互联。方法很简单,分别打开SSMS,并且输入伙伴服务器的SQLServerIP/实例名。本例先使用SA来检查:在RepA上连接RepB:在RepB上连接RepA:主体服务器和镜像服务器中是否有共享文件夹:前面说过,对非域环境下,需要使用证书来搭建镜像,另外需要对备份文件进行传输,这些都会使用到共享文件夹,当然可以用别的方式实现,不过共享文件夹可能是最为简单的方式。本例中,我将在主体服务器(RepA)上建立一个共享文件夹,以便RepB能访问。不过如果条件允许,我更建议在有容错能力的磁盘上(比如RAID、SAN等)创建共享文件夹,这样即使主体服务器崩溃,也不至于影响镜像服务器对共享文件夹的操作。现在来简单操作一下:创建文件夹:授予Everyone读写权限:再次提醒,针对正式环境,强烈建议使用专用账号,并且适当控制权限,比如对文件夹在搭建过程中允许完全控制,但是在正式运行时只允许“读”操作等。搭建成功:检查是否能访问:这一步可以在RepB中,输入UNC路径,如本例的:\\RepA\ShareFolders到目前为止,准备工作已经完毕。下面开始第二步。第二步:使用证书配置镜像,并备份还原数据库在这一步中,我们将做两件事,第一件是使用证书来配置镜像,第二件是备份还原数据库。在非域环境下,必须使用证书来搭建镜像,所以我把搭建证书放在第一步。有些资料上会把备份还原操作放在证书搭建之前,但是根据个人经验,当磁盘IO、网络性能不佳的时候,备份、传输、还原都会浪费大量的时间(个人操作过2个小时),并且期间服务器几乎不能操作。这种时候,我会选择先搭建好,再还原,然后马上进行同步。创建证书:如果服务器使用LocalSystem作为SQLServer服务账号,就需要使用证书授权。证书授权同时也可以在你的服务器不能通过其他服务器的账号访问对方服务器或者你不想授权给Windows登录时使用。使用证书搭建镜像的步骤如下:1.创建数据库主密钥(如果主密钥不存在)。2.在Master数据库中创建证书并用主密钥加密。3.使用证书授权创建端点(endpoint)。4.备份证书成为证书文件。5.在服务器上创建登录账号,用于提供其他实例访问。6.在master库中创建用户,并映射到上一步的登录账号中。7.把证书授权给这些用户。8.在端点上授权。9.设置主体服务器的镜像伙伴。10.设置镜像服务器的主体伙伴。11.配置见证服务器。Step1:创建数据库主密钥主密钥的用处在这里是用于加密证书,当然主密钥不仅仅只有这个作用。对数据库主密钥的密码及存储保护要小心,这是实力级别的对象,影响面非常广。可以使用下面语句来创建:[sql]viewplaincopyprint?1.USEmaster2.GO3.CREATEMASTERKEYENCRYPTIONBYPASSWORD='Pa$$w0rd';4.5./*6.--删除主密钥7.USEmaster;8.DROPMASTERKEY9.*/使用相同方式在镜像服务器创建数据库主密钥。Step2:创建证书,并用主密钥加密创建证书时,默认在创建日期开始一年后过期,所以针对证书的创建,要注意其过期时间。下面是在“主体服务器”上创建HOST_A_cert证书的创建[sql]viewplaincopyprint?1.USEmaster2.GO3.CREATECERTIFICATEHost_A_Cert4.WITHSubject='Host_ACertificate',5.Expiry_Date='2015-1-1';--过期日期6.7./*8.--删除证书9.USEmaster;10.DROPCERTIFICATEHOST_A_cert11.*/使用相同的方法在镜像服务器上实现对HOST_B_cert证书的创建Step3:创建端点可以使用下面的代码在主体服务器中创建端点,并且指定使用5022,端口,端口在镜像配置过程中不强制使用特定端口(被占用或者特定端口如1433除外)。[sql]viewplaincopyprint?1.--使用Host_A_Cert证书创建端点2.IFNOTEXISTS(SELECT13.FROMsys.database_mirroring_endpoints)4.BEGIN5.CREATEENDPOINT[DatabaseMirroring]STATE=STARTEDASTCP(LISTENER_PORT=5022,6.LISTENER_IP=ALL)FORDATABASE_MIRRORING(AUTHENTICATION=7.CERTIFICATEHost_A_Cert,ENCRYPTION=REQUIREDAlgorithmAES,ROLE=8.ALL);9.END在镜像服务器对证书名稍作修改,创建镜像服务器的端点。Step4:备份证书备份证书的目的是发送到别的服务器并导入证书,以便别的服务器能通过证书访问这台服务器(主体服务器)。[sql]viewplaincopyprint?1.BACKU
本文标题:配置SQLServer镜像—非域环境
链接地址:https://www.777doc.com/doc-2012855 .html