SQLServer2008证书镜像(不含见证)
同在一个域中的sql server镜像配置是很简单的,直接在sql管理器- 数据库属性- 镜像- 配置安全性,一路回车到底就行,本文探讨的是没加域、或者不在一个可信的域中镜像的创建,在这种情况下,必须用证书创建才能成功。
实验环境:
数据库主体192.168.1.1 需要同步的数据库:test
数据库镜像192.168.1.2
见证服务器无,有见证服务器也可参考本文
1、删除以前配置过的镜像、证书等
解释:如果之前配过镜像没成功,或者成功了却因为各种原因镜像不能启动,你在重新创建的时候最好把之前的镜像、证书等信息都删掉,如果是全新安装的数据库,忽略此步骤。
1-1 select * from master.sys.endpoints //查看之前创建过的镜像名
1-2 select * from master.sys.certificates //查看之前创建过的证书
根据上面查询的数据做以下删除操作
1-3 DROP ENDPOINT Endpoint_Mirroring //删除镜像
1-4 DROP CERTIFICATE HOST_1_cert //删除证书
1-5 DROP CERTIFICATE HOST_2_cert //删除证书
1-6 DROP LOGIN HOST_1_login //删除登录
1-7 DROP USER HOST_1_user //删除用户
1-8 DROP MASTER KEY //删除主key
以上步骤必须按顺序来,否则报错,主体与镜像都要做此操作,请改成相应值
2、配置主体192.168.1.1出站
USE master;
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'fuchuan@123456';
GO
CREATE CERTIFICATE HOST_1_cert
WITH SUBJECT = 'HOST_1 certificate for database mirroring';
GO
CREATE ENDPOINT Endpoint_Mirroring
STATE = STARTED
AS TCP (
LISTENER_PORT=7024
,LISTENER_IP = ALL
)
FOR DATABASE_MIRRORING (
AUTHENTICATION = CERTIFICATE HOST_1_cert
, ENCRYPTION = REQUIRED ALGORITHM AES
, ROLE = ALL
);
GO
BACKUP CERTIFICATE HOST_1_cert TO FILE = 'E:\HOST_1_cert.cer';
GO
3、配置镜像192.168.1.2出站
USE master;
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'fuchuan@123456'; GO
CREATE CERTIFICATE HOST_2_cert
WITH SUBJECT = 'HOST_2 certificate for database mirroring';
GO
CREATE ENDPOINT Endpoint_Mirroring
STATE = STARTED
AS TCP (
LISTENER_PORT=7024
,LISTENER_IP = ALL
)
FOR DATABASE_MIRRORING (
AUTHENTICATION = CERTIFICATE HOST_2_cert
, ENCRYPTION = REQUIRED ALGORITHM AES
, ROLE = ALL
);
GO
BACKUP CERTIFICATE HOST_2_cert TO FILE = 'E:\HOST_2_cert.cer';
GO
4、将两个证书互相拷贝到对方的E盘
5、配置主体192.168.1.1入站
USE master;
CREATE LOGIN HOST_2_LOGIN
WITH PASSWORD = 'fuchuan@123456';
GO
USE master;
CREATE USER HOST_2_USER FOR LOGIN HOST_2_LOGIN;
GO
CREATE CERTIFICATE HOST_2_cert
AUTHORIZATION HOST_2_USER
FROM FILE = 'E:\HOST_2_cert.cer';
GO
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO HOST_2_LOGIN GO
6、配置镜像192.168.1.2入站
USE master;
CREATE LOGIN HOST_1_LOGIN
WITH PASSWORD = 'fuchuan@123456';
GO
USE master;
CREATE USER HOST_1_USER FOR LOGIN HOST_1_LOGIN;
GO
CREATE CERTIFICATE HOST_1_cert
AUTHORIZATION HOST_1_USER
FROM FILE = 'E:\HOST_1_cert.cer';
GO
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO HOST_1_LOGIN
GO
7、备份主体192.168.1.1数据库
USE master;
GO
ALTER DATABASE DAL
SET RECOVERY FULL;
GO
BACKUP DATABASE DAL
TO DISK = 'e:\DAL.bak'
WITH FORMAT
GO
BACKUP LOG DAL
TO DISK = 'e:\DAL_log.bak'
GO
务必用以上命令备份,否则可能因无法还原事务日志而镜像失败
8、还原数据库镜像到192.168.1.2
RESTORE DATABASE temp
FROM DISK = 'E:\temp.bak'
WITH NORECOVERY
GO
RESTORE LOG temp
FROM DISK = 'E:\temp_log.bak'
WITH FILE=1, NORECOVERY
GO
恢复前不需要预先建立数据库,直接在空数据库使用以上命令即可。
务必使用以上命令行操作,如果在管理器里用还原选项操作,还原出来的数据库不能用于镜像。
9、配置镜像
9-1 先在镜像数据库192.168.1.2操作
ALTER DATABASE temp
SET PARTNER = 'TCP://192.168.1.1:7024';
9-2 再在主体数据库192.168.1.1操作
ALTER DATABASE temp
SET PARTNER = 'TCP://192.168.1.2:7024';
至此镜像建立完毕,刷新一下就看到了
10、附数据库镜像取消命令
ALTER DATABASE temp SET PARTNER OFF
如果遇到无法镜像,请查看两台服务器系统日志。
解析SQL SERVER 2008数据库镜像原理和实现的教学
解析SQL SERVER 2008数据库镜像原理和实现的教学林秀丽【期刊名称】《电脑知识与技术》【年(卷),期】2013(000)029【摘要】信息技术的发展和计算机的普及,数据库的安全性受到极大重视。
数据库的安全不仅仅需要通过权限设置、加密等方法,更重要的是保证数据文件不被破坏不被丢失。
所以,要经常对数据库进行备份、恢复。
通过实例,解析SQL SERV-ER 2008数据库镜像原理和实现的教学探讨。
主要从数据库镜像原理、数据库镜像模式、数据库镜像配置三方面进行教学探讨。
%The development of information technology and the proliferation of computers, database security has been great atten-tion. Database security requires not only through permissions, encryption and other methods, more importantly, ensure that the datafile is not bad not to be lost.Therefore,should regularlyback up the database recovery. In this paper,examples of parsing SQL SERVER 2008 database mirroring principle and implementation of Teaching.Mainly from the database mirroring principle, data-base mirroring mode, the database mirroring configuration three aspects of Teaching.【总页数】4页(P6492-6494,6502)【作者】林秀丽【作者单位】广州大学华软软件学院,广东广州510990【正文语种】中文【中图分类】TP311【相关文献】1.基于SQL SERVER 2008数据库的内容服务研究与实现 [J], 朱有忠;刘建军2.用OpsMgr监控SQL Server 2008 SQL Server管理工具包允许数据库管理员监控空间使用、备份任务以及更多情况 [J], Kerrie Meyler; 徐瑾(译)3.SQL Server数据库应用系统开发及其安全管理——评《数据库技术及安全教程——SQL Server2008》 [J], 杨玉敏4.数据库由SQL Server7.0升级迁移至SQL Server 2008 R2操作实践 [J], 王娟;沈丽娟;王慧5.数据库由SQL Server7.0升级迁移至SQL Server 2008 R2操作实践 [J], 王娟;沈丽娟;王慧因版权原因,仅展示原文概要,查看原文内容请购买。
SQLServer2008数据库镜像(带见证服务器)
SQLServer 数据库镜像一、环境IP和计算机名分配:二、说明:SQLServer数据库镜像分为三种模式:高性能(异步)、不带自动故障转移功能的高安全(同步)、带自动故障转移的高安全(同步)--需要见证服务器本实验采用第三种模式,配置带自动故障转移的数据库镜像,主要操作都在证书交换和用户创建上。
注意创建端点时见证服务器端点类型为WITNESS 主端和镜像端端点类型为PARTNER 。
三、配置前期操作将需要镜像的数据库设置为“完整恢复模式”ALTER DATABASE aaa SET RECOVERY FULL;1、备份主端数据库:BACKUP DATABASE aaa TO DISK=’D:\aaa.bak’;2、将备份文件拷贝到镜像端3、用with norecovery 参数还原主端备份到镜像端RESTORE DATABASE aaa FROM DISK=’ D:\aaa.bak’ WITH REPLACE,NORECOVERY;此时,镜像端数据库处于正在还原模式,数据库不可用主端配置:USE[master]--创建MASTER KEY--DROP MASTER KEYCREATE MASTER KEY ENCRYPTION BY PASSWORD='mirror'--创建证书--SELECT * FROM sys.CERTIFICATESDROP CERTIFICATE Host_A_CertCREATE CERTIFICATE Host_A_CertWITH SUBJECT='Host_A_Cert',START_DATE='2013-05-01';--创建端点SELECT*FROM SYS.endpointsDROP ENDPOINT EndPoint_MirroringCREATE ENDPOINT EndPoint_MirroringSTATE=STARTEDAS TCP(LISTENER_IP=ALL,LISTENER_PORT=5522)FOR DATABASE_MIRRORING(AUTHENTICATION=CERTIFICATE Host_A_Cert,ENCRYPTION=REQUIRED ALGORITHM AES,ROLE=PARTNER--端点类型);--创建用户--DROP LOGIN Host_A_LoginCREATE LOGIN Host_A_Login WITH PASSWORD='mirror';--DROP USER Host_A_UserCREATE USER Host_A_User FOR CERTIFICATE Host_A_Cert;--授予对远程镜像端点的登录名的CONNECT 权限。
SQL_Server_2008数据库镜像部署
SQL Server 2008 数据库镜像部署数据库镜像相对于日志传送,数据库镜像显然更高一级。
在最简单的形式下,它其实与日志传送的工作原理相似,但是生产服务器发送事务到镜像服务器的频率要高得多,这意味着更新速度也要快很多。
对于数据库镜像来说,故障转移功能也是需要手动完成。
但是你可以添加第三个SQL Server,称为witness。
Witness可以作为一个普通的SQL Server,但是一直留意着其它两个镜像服务器。
当主镜像发生故障,witness可以让第二个镜像接管操作,类似一种自动的故障转移。
在故障转移时,任何进行中的客户端事务都将重新启动,而由于在这一过程中仍然存在着延迟,镜像服务器也不能保证百分之百不丢失数据。
一.数据库准备一、目标利用Sql Server 2008 enterprise X64,建立异步(高性能)镜像数据库,同时建立见证服务器实现自动故障转移。
二、前提条件、限制和建议1、伙伴双方(主体服务器和镜像服务器)及见证服务器必须使用相同版本的Sql Server2、如使用见证服务器,择须确保其系统上安装Sql Server 2005或更高版本3、在镜像服务器上创建镜像数据库时,确保制定相同的数据库名称WITH NOREBOVORY来还原主题数据库备份。
另外,还必须通过WITH NORECOVERY 应用在该备份执行后创建的所有日志备份。
如果数据库镜像已经停止,则必须将对主体数据库执行的所有后续日志备份应用到镜像数据库中,然后才可以重新启动镜像。
4、跨数据库事务和分布式事务均不支持数据库镜像5、镜像的数据库路径尽量与主体服务相同,如果主体服务器CPU利用率在50%以上,择不建议配置自动故障转移6、建议配置高效稳定的网络环境三、设置概述1、确保所有数据库用户在镜像服务器上都有登录名2、在向另一个服务器实例提供数据库之前,您必须在该服务器实例上建立数据库用于新服务器实例时所需的环境3、使用NORECOVERY 还原最近的主体数据库完整备份,以创建镜像数据库。
SQL Server 2008 数据库镜像部署实例
SQL Server 2008 数据库镜像部署实例之一数据库准备一、目标利用Sql Server 2008 enterprise X64,建立异步(高性能)镜像数据库,同时建立见证服务器实现自动故障转移。
二、前提条件、限制和建议1、伙伴双方(主体服务器和镜像服务器)及见证服务器必须使用相同版本的SqlServer2、如使用见证服务器,择须确保其系统上安装 Sql Server 2005或更高版本3、在镜像服务器上创建镜像数据库时,确保制定相同的数据库名称WITHNOREBOVORY来还原主题数据库备份。
另外,还必须通过 WITH NORECOVERY 应用在该备份执行后创建的所有日志备份。
如果数据库镜像已经停止,则必须将对主体数据库执行的所有后续日志备份应用到镜像数据库中,然后才可以重新启动镜像。
4、跨数据库事务和分布式事务均不支持数据库镜像5、镜像的数据库路径尽量与主体服务相同,如果主体服务器CPU利用率在50%以上,择不建议配置自动故障转移6、建议配置高效稳定的网络环境三、设置概述1、确保所有数据库用户在镜像服务器上都有登录名2、在向另一个服务器实例提供数据库之前,您必须在该服务器实例上建立数据库用于新服务器实例时所需的环境3、使用 NORECOVERY 还原最近的主体数据库完整备份,以创建镜像数据库。
确保执行备份时主体数据库已使用完整恢复模式。
镜像数据库和主体数据库名称必须相同,并且它们在数据库镜像会话中不能被重命名。
4、设置安全性并启动数据库镜像会话。
可以使用 Transact-SQL 或数据库镜像向导来设置镜像。
5、(可选)将见证服务器添加到会话。
四、在Windows Server 2008 R2上安装Sql Server 2008 enterprise X641、SQL Server 2008 需要.NET 3.5支持,所以安装之前需要安装.NET3.5在服务器管理的功能单元中,添加.NET Framework 3.5.1功能3、选定功能组件,注意安装目录与其他节点保持一致4、使用默认实例名称,或者与其他节点相同服务均使用域管理启动6、设置混合身份登录、制定SQL Server管理员7、点击下一步,等待安装完成。
SQL2008镜像
SQL 2008 配置镜像服务器基本步骤(证书认证)本次测试共3台数据库服务器:251:主服务器(SQL-A)252:镜像服务器(SQL-B)253:见证服务器(SQL-W)基本步骤:1、在三台服务器上分别配置出站:创建证书和端点,备份证书并拷贝到其他两台服务器。
2、在三台服务器上分别为其他两台服务器配置入站:分配登陆用户、赋予登陆用户connect本机端点的权限。
3、在主服务器上创建数据库并备份(数据库的恢复模式为完整模式)再拷贝到SQL-B4、在镜像服务器还原数据库restore database mainone from disk='c:\mainone.bak'with norecovery5、起用镜像(顺序:SQL-B----SQL-A)注意:删除证书命令:DROP CERTIFICA TE 证书_name最后测试:一、配置出站------------------SQL-A------------------CREATE MASTER KEY ENCRYPTION BY PASSWORD ='mainone';GOCREATE CERTIFICATE SQL_A_certWITH SUBJECT ='SQL_A certificate',EXPIRY_DATE ='8/3/2021';GOCREATE ENDPOINT Endpoint1STATE = STARTEDAS TCP (LISTENER_PORT=5024, LISTENER_IP =ALL)FOR DATABASE_MIRRORING (AUTHENTICATION =CERTIFICATE SQL_A_cert, ENCRYPTION = REQUIRED ALGORITHM RC4,ROLE=ALL);GOselect*from sys.certificatesBACKUP CERTIFICATE SQL_A_cert TO FILE='C:\SQL_A_cert.cer'; GO再拷贝到SQL-B和SQL-W------------------SQL-B------------------CREATE MASTER KEY ENCRYPTION BY PASSWORD ='mainone';GOCREATE CERTIFICATE SQL_B_certWITH SUBJECT ='SQL_B certificate',EXPIRY_DATE ='8/3/2021';GOCREATE ENDPOINT Endpoint1STATE = STARTEDAS TCP (LISTENER_PORT=5024, LISTENER_IP =ALL)FOR DATABASE_MIRRORING (AUTHENTICATION =CERTIFICATE SQL_B_cert, ENCRYPTION = REQUIRED ALGORITHM RC4,ROLE=ALL);GOselect*from sys.certificatesBACKUP CERTIFICATE SQL_B_cert TO FILE='C:\SQL_B_cert.cer'; GO再拷贝到SQL-A和SQL-W------------------SQL-W------------------CREATE MASTER KEY ENCRYPTION BY PASSWORD ='mainone';GOCREATE CERTIFICATE SQL_W_certWITH SUBJECT ='SQL_W certificate',EXPIRY_DATE ='8/3/2021';GOCREATE ENDPOINT Endpoint1STATE = STARTEDAS TCP (LISTENER_PORT=5000, LISTENER_IP =ALL)FOR DATABASE_MIRRORING (AUTHENTICATION =CERTIFICATE SQL_W_cert, ENCRYPTION = REQUIRED ALGORITHM RC4,ROLE=ALL);GOselect*from sys.certificatesBACKUP CERTIFICATE SQL_W_cert TO FILE='C:\SQL_W_cert.cer'; GO再拷贝到SQL-A和SQL-B二、配置入站---------------SQL-A------------------在SQL-A上配置给SQL-B的入站--Create a login on HOST_A for HOST_BUSE master;CREATE LOGIN SQL_B_login WITH PASSWORD ='mainone';GO--Create a user for that login.CREATE USER SQL_B_user FOR LOGIN SQL_B_login;GO--Associate the certificate with the userCREATE CERTIFICATE SQL_B_certAUTHORIZATION SQL_B_userFROM FILE='C:\SQL_B_cert.cer'GO--Grant CONNECT permission on the login for the remote mirroring endpoint. GRANT CONNECT ON ENDPOINT::Endpoint1 TO [SQL_B_login];GO--在SQL-A上配置给SQL-W的入站--Create a login on HOST_A for HOST_WUSE master;CREATE LOGIN SQL_W_login WITH PASSWORD ='mainone';GO--Create a user for that login.CREATE USER SQL_W_user FOR LOGIN SQL_W_login;GO--Associate the certificate with the userCREATE CERTIFICATE SQL_W_certAUTHORIZATION SQL_W_userFROM FILE='C:\SQL_W_cert.cer'GO--Grant CONNECT permission on the login for the remote mirroring endpoint. GRANT CONNECT ON ENDPOINT::Endpoint1 TO [SQL_W_login];GO---------------SQL-B------------------在SQL-B上配置给SQL-A的入站--Create a login on HOST_B for HOST_AUSE master;CREATE LOGIN SQL_A_login WITH PASSWORD ='mainone';GO--Create a user for that login.CREATE USER SQL_A_user FOR LOGIN SQL_A_login;GO--Associate the certificate with the userCREATE CERTIFICATE SQL_A_certAUTHORIZATION SQL_A_userFROM FILE='C:\SQL_A_cert.cer'GO--Grant CONNECT permission on the login for the remote mirroring endpoint. GRANT CONNECT ON ENDPOINT::Endpoint1 TO [SQL_A_login];GO--在SQL-B上配置给SQL-W的入站--Create a login on HOST_B for HOST_WUSE master;CREATE LOGIN SQL_W_login WITH PASSWORD ='mainone';GO--Create a user for that login.CREATE USER SQL_W_user FOR LOGIN SQL_W_login;GO--Associate the certificate with the userCREATE CERTIFICATE SQL_W_certAUTHORIZATION SQL_W_userFROM FILE='C:\SQL_W_cert.cer'GO--Grant CONNECT permission on the login for the remote mirroring endpoint. GRANT CONNECT ON ENDPOINT::Endpoint1 TO [SQL_W_login];GO---------------SQL-W------------------在SQL-W上配置给SQL-A的入站--------------------------------Create a login on HOST_W for HOST_AUSE master;CREATE LOGIN SQL_A_login WITH PASSWORD ='mainone';GO--Create a user for that login.CREATE USER SQL_A_user FOR LOGIN SQL_A_login;GO--Associate the certificate with the userCREATE CERTIFICATE SQL_A_certAUTHORIZATION SQL_A_userFROM FILE='C:\SQL_A_cert.cer'GO--Grant CONNECT permission on the login for the remote mirroring endpoint. GRANT CONNECT ON ENDPOINT::Endpoint1 TO [SQL_A_login];GO--在SQL-W上配置给SQL-B的入站--------------------------------Create a login on HOST_W for HOST_BUSE master;CREATE LOGIN SQL_B_login WITH PASSWORD ='mainone';GO--Create a user for that login.CREATE USER SQL_B_user FOR LOGIN SQL_B_login;GO--Associate the certificate with the userCREATE CERTIFICATE SQL_B_certAUTHORIZATION SQL_B_userFROM FILE='C:\SQL_B_cert.cer'GO--Grant CONNECT permission on the login for the remote mirroring endpoint. GRANT CONNECT ON ENDPOINT::Endpoint1 TO [SQL_B_login];GO三、在SQL-A 上创建数据库并备份---------------SQL-A-----------------CREATE DATABASE mainoneGO------注意检查恢复模式BACKUP DATABASE mainoneTO DISK = 'C:\mainone.bak'GO再拷贝到SQL-B四、在SQL-B还原数据库注意在安装数据库时候目录应该是统一的在此以251(SQL-A)和252(SQL-B)数据库安装目录为例SQL-A主机安装目录:C:\Server\SQLserver\MSSQL10_50.MSSQLSERVER\MSSQL\DA TA SQL-B主机安装目录:C:\Server\sqll\MSSQL10_50.MSSQLSERVER\MSSQL\DA TArestore DATABASE mainoneFrom DISK ='c:\mainone.bak'with norecovery,MOVE 'mainone' TO 'C:\Program Files\Microsoft SQLServer\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\mainone.mdf',MOVE 'mainone_log' TO 'C:\Program Files\Microsoft SQLServer\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\mainone_log.ldf'-----------------------------------------------五、起用镜像(顺序:SQL-B----SQL-A)---------------SQL-B-------------------At HOST_B, set server instance on HOST_A as partner (principal server): ALTER DATABASE mainoneSET PARTNER ='TCP://SQL-A:5024';GO---------------SQL-A-------------------At HOST_A, set server instance on HOST_B as partner (mirror server). ALTER DATABASE mainoneSET PARTNER ='TCP://SQL-B:5024';GO--At HOST_A, set server instance on HOST_W as witness (witness server). ALTER DATABASE mainoneSET WITNESS ='TCP://SQL-W:5000';GO手动测试-无见证服务器ALTER DATABASE mainoneSET PARTNER FAILOVERGO。
SQLServer2008镜像维护手册
北京八度互联科技有限公司Copyright © 2005-2009 目录1. 手动故障转移数据库镜像会话 (3)2. 强制镜像服务 (3)3. 如何恢复数据库镜像会话 (4)4. 如何删除数据库镜像 (4)修改记录1. 手动故障转移数据库镜像会话手动故障转移只能从主体服务器启动(并且安全级别为FULL)。
成功的话主备会进行互换此语句将立即启动从镜像服务器到主体角色的转换。
在前一主体上,客户端断开了与数据库的连接,并且未提交的事务将回滚。
SQL Server Management Studio方式:1.连接至主体服务器实例,在对象资源管理器窗格中,单击服务器名称以展开服务器树。
2.展开“数据库”,再选择要进行故障转移的数据库。
3.右键单击数据库,选择“任务”,再单击“镜像”。
这样便可打开“数据库属性”对话框的“镜像”页。
4.单击“故障转移”。
2. 强制镜像服务仅当主体服务器在镜像会话中与镜像服务器断开连接时,才能强制服务运行。
在高性能模式和不带自动故障转移功能的高安全性模式下,如果主体服务器失败而镜像服务器可用,则数据库所有者可以在出现故障时强制将服务转移到镜像数据库(可能造成数据丢失),从而使数据库可用。
此选项仅在以下情况中可用:1 主体服务器已关闭。
2 WITNESS 设置为OFF 或连接到镜像服务器。
1.若要对数据库进行数据库镜像,必须将它更改为使用完整恢复模式。
命令行:3. 如何恢复数据库镜像会话执行强制服务之后,当重新连接原始主体服务器时,镜像(新主体)于原始主体(新镜像)便会挂起。
在这种情况下,恢复镜像可能会导致原始主体服务器上的数据丢失。
1. 连接到任一伙伴。
命令行:4. 如何删除数据库镜像1 连接到任一伙伴。
命令行:重新启动镜像之前,必须将在删除镜像后对主体数据库执行的日志备份全部应用到镜像数据库中。
5改变ip有机器改变了ip先执行ALTER DATABASE<database_name>SET PARTNER OFF后执行链接命令ALTER DATABASE testdb SET PARTNER='TCP://hostBip:5022';。
sql2008镜像
在非域控环境中创建数据库镜像,我们必须使用证书来创建数据库镜像。
大致的步骤包括:在为数据库镜像配置的每个服务器实例上执行下列步骤:1. 在master数据库中,创建数据库主密钥。
2. 在master数据库中,为服务器实例创建加密证书。
3. 使用服务器实例的证书为该服务器实例创建端点。
4. 将证书备份到文件,并将其安全地复制到其他系统。
然后,对为数据库镜像配置的每个伙伴执行这些步骤。
在master数据库中:1. 为其他系统创建登录名。
2. 创建一个使用该登录名的用户。
3. 获取其他服务器实例的镜像端点的证书。
4. 将该证书与在步骤2 中创建的用户相关联。
5. 授予对该镜像端点的登录名的CONNECT 权限。
/*查询所有当前数据库名select SERVERPROPERTY(N'servername')SELECT AS [Name]FROMmaster.sys.databases AS dtbORDER BY[Name] ASC*/-------------------------------------------------------前期准备-- 查看数据库版本SELECT @@VERSION-----配置数据库镜像事务安全级别ALTER DATABASE TestMirroring SET SAFETY FULL-----更改主数据库为使用完整恢复模式(如果非完整恢复模式则可以使用下面SQL更改为完整恢复模式)USE masterALTER DATABASE TestMirroringSET RECOVERY FULL WITH no_wait/*跨数据库事务和分布式事务均不支持数据库镜像*/--主服务器见证服务器镜像服务器的数据库版本必须相同--备份主数据库(完整备份)BACKUP DATABASE [TestMirroring] TO DISK = N'C:/wenzhongfiles/TestMirror.bak' WITH NOFORMAT, NOINIT,NAME = N'TestMirroring-完整数据库备份', SKIP, NOREWIND, NOUNLOAD, STATS = 10--备份主数据库的完整日志文件BACKUP LOG [TestMirroring] TO DISK = N'C:/wenzhongfiles/TestMirrorlog.bak' WITH NOFORMAT, NOINIT,NAME = N'TestMirroring-事务日志备份', SKIP, NOREWIND, NOUNLOAD, STATS = 10--在镜像服务器上还原(还原选项norecovery(即不对数据库执行任何操作))RESTORE DATABASE [TestMirroring] FROM DISK = N'F:/TestMirror.bak'WITH FILE = 1, MOVE N'TestMirror'TO N'E:/Program Files/Microsoft SQLServer/MSSQL10.MSSQLSERVER/MSSQL/DATA/TestMirroring.mdf', MOVEN'TestMirror_log'TO N'E:/Program Files/Microsoft SQLServer/MSSQL10.MSSQLSERVER/MSSQL/DATA/TestMirroring_1.ldf', NORECOVERY , NOUNLOAD, REPLACE, STATS = 10--将备份的完整日志文件在镜像服务器上执行日志文字间恢复(还原选项norecovery(即不对数据库执行任何操作))RESTORE LOG [TestMirroring] FROM DISK = N'F:/TestMirrorlog.bak' WITH FILE = 1, NORECOVERY, NOUNLOAD, STATS = 10--------------正式开始(代码仅仅是举例主服务器上的)--------------------------------------------------------------------------在主、镜像、见证服务器上分别执行:------创建数据库对称密钥USE master;--DROP MASTER KEYCREATE MASTER KEY ENCRYPTION BY PASSWORD = 'wenzhong';GO------创建数据库证书(注意:证书失效日期)--DROP CERTIFICATE host_A_certCREATE CERTIFICATE host_A_certWITH SUBJECT = 'host_A certificate',START_DATE = '01/01/2011',EXPIRY_DATE = '12/31/2099';GO------利用创建的证书为服务器实例创建镜像端点--DROP ENDPOINT Endpoint_MirroringCREATE ENDPOINT Endpoint_MirroringSTATE = STARTEDAS TCP (LISTENER_PORT=5022, LISTENER_IP = ALL)FOR DATABASE_MIRRORING (AUTHENTICATION = CERTIFICATE host_A_cert, ENCRYPTION = REQUIRED ALGORITHM AES, ROLE = PARTNER)GO------将证书分别备份出来,然后互换(即:主服务器上保证存在镜像和见证服务器上创建的证书;镜像服务器上存在主服务器和见证服务器上创建的证书;-- 见证服务器上存在主服务器和镜像服务器上创建的证书)BACKUP CERTIFICATE host_A_cert TO FILE = 'F:\Host_A_cert.cer'------在各自的服务器上为其他两个服务器分别创建一个登陆名USE master;--DROP LOGIN host_B_loginCREATE LOGIN host_B_login WITH PASSWORD = 'wenzhong'GOUSE master;--DROP LOGIN host_C_loginCREATE LOGIN host_C_login WITH PASSWORD = 'wenzhong'GO------创建一个使用上面创建的登录名的用户--DROP USER host_B_userCREATE USER host_B_user FOR LOGIN host_B_login;GO --DROP USER host_C_userCREATE USER host_C_user FOR LOGIN host_C_login;GO------使得证书和用户进行关联--DROP CERTIFICATE host_B_certCREATE CERTIFICATE host_B_certAUTHORIZATION host_B_userFROM FILE = 'F:/host_B.cer'GO--DROP CERTIFICATE host_C_certCREATE CERTIFICATE host_C_certAUTHORIZATION host_C_userFROM FILE = 'F:/host_C.cer'GO------将对远程镜像端点的连接(CONNECT)权限授予该登录名GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [host_B_login]GOGRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [host_C_login]GO-----------------避免“孤立用户”。
SQLServer2008数据库镜像设置文档
SQLServer2008数据库镜像设置方法一、域内两台服务器镜像--为确保连接正常两台服务器环境设置步骤:1.SQL Server 服务密码同步账号使用域登陆名.密码为登陆密码.2.SQL Server配置管理TCP/IP协议开启3.数据库方面DAC连接开启.(防止远程无法连接问题)一.数据库设置步骤:1.Sa身份或Windows身份登陆,添加本地服务器独立镜像访问用户并配置相应权限(sysadmin必要):数据库映射可为空镜像的连接权为必要.2.要做镜像的主体数据库镜像用户设置增加本地镜像用户保持用户名一致属性或权限可不做变更二.数据库镜像处理1.主服务器主体数据库完整备份2.主服务器主体数据库事务日志备份3.在镜像服务器(备份服务器)恢复备份复制两个备份文件至镜像服务器,先进行完整备份还原两项必选项提示还原成功后数据库状态为正在还原再对事务日志进行还原一项必选项提示还原成功后可运行语句进行调试(镜像数据库名及主体数据IP)主体服务器也可用镜像服务器IP进行调试ALTERDATABASE PlayNowFinance SETPARTNER='TCP://10.126.64.16:5022';4.主体数据库进行镜像设置若无见证服务器进行否选默认5022端口连接镜像服务器(使用镜像用户名)使用主体数据库中已加入的镜像用户若不开始镜像可选择高性能(异步)进行数据库镜像操作状态提示已同步:数据库已完全同步时镜像完成主:镜像:做故障转移时必须选择”高安全(同步)”才可正常转移到镜像此时镜像服务器数据库变成可用状态(主体与镜像互换)欠缺见证服务器设置与不同域服务器证书设置使用镜像:使用或者SQL Native Client能够自动连接到故障转移后的伙伴,连接字符串如下所示:ConnectionString="DataSource= A;Failover Partner=B;Initial Catalog=AdventureWorks;Integrated Security=true;" DataSource= A;这个就是我们常用的主数据库的ip地址,Failover Partner=B;这个填写的就是镜像数据库的ip地址,一旦出现了连接错误,会在超时以后自动去连接镜像数据库。
SQL-Server-2008安装及基本功能操作说明书
SQL-Server-2008安装及基本功能操作说明书SQL Server 2008安装及基本功能操作说明书此说明书主要说明SQL Server 2008软件的安装、连接、附加、备份、分离、还原等基本功能的操作。
一、数据库的安装1.点击安装包里的setup.exe文件,刚开始会出现如下图所示界面:紧接着会出现如下图【SQL Server安装中心】的界面:2.选择【安装】-【全新SQL Server独立安装或向现有安装添加功能】,如下图所示:3.点击【下一步】,出现如下图所示的界面:4.点击【下一步】,出现如下图所示的界面,点击【输入产品密钥】,输入提供的产品密钥,再点击【下一步】。
5.点【下一步】,出现如下图所示的界面后,选中【我接受许可条款】,再点击【下一步】。
6.待出现如下图所示的界面后,点击【全选】,再点击【下一步】。
7.出现如下图所示界面后,选择实例名,选中【默认实例】或者【命名实例】,如果选择【命名实例】,在后面的文本框里填写实例名,如sql2008。
再点击【下一步】。
8.紧接着会出现如下图所示的界面,再点击【下一步】。
9.如下图所示,点击【对所有SQL Server服务使用相同的账户(U)】。
出现如下图所示的界面:在【帐户名(A)】后面的文本框中选择如下图所示的选项,然后再点击【确定】按钮。
回到如下图所示的界面,然后点击【下一步】。
10.出现如下图所示的界面后,一般选中【混合模式(SQL Server身份验证和Windows身份验证)(M)】,然后输入密码,一般密码设为1。
再点击【添加当前用户】按钮,待空白框中出现了如下图所示的用户后,点击【下一步】按钮。
11.会出现如下图所示的界面,点击【添加当前用户】按钮。
待空白框中出现当前用户,如下图所示,然后再点击【下一步】按钮。
12.出现如下图所示的界面,直接点击【下一步】按钮。
此后便出现如下图所示的界面:13.紧接着会出现如下图所示的界面:点击【显示详细信息】,如下图所示,如果所有的规则前面没有出现叉叉,则可直接点击【下一步】(如果出现了,应该根据实际情况进行修改)14.出现如下图所示界面后,点击【安装】按钮。
SQL Server 2008故障转移集群+数据库镜像配置实例之一
Abner Kou、郭晓冬原创,转载请注明出处SQL Server 2008故障转移集群+数据库镜像配置实例之一一、总体方案故障转移集群技术与镜像技术结合,在主体数据库上实现双机集群,镜像数据库不在集群内,是一台单独的数据库服务器。
在配置镜像数据库时,选择镜像运行模式为“高性能模式会话”,此模式下:如果群集故障转移到另一节点,在镜像会话中,故障转移群集实例将继续作为主体服务器。
如果整个群集出现问题,则可以将服务强制到镜像服务器上。
二、关于镜像和集群通常,当镜像与群集一起使用时,主体服务器与镜像服务器都驻留在群集上,其中,主体服务器在一个群集的故障转移群集实例中运行,镜像服务器在另一个群集的故障转移群集实例中运行。
不过,您可以建立一个镜像会话,其中,一个伙伴驻留在一个群集的故障转移群集实例中,另一个伙伴驻留在一个单独的非群集的计算机中。
参考《SQL Server 2008数据库镜像+故障转移集群》三、系统准备1、建立Windows Server 2008 故障转移集群参看《配置Windows Server2008故障转移集群》2、给各节点添加共享存储(本例使用windows Storage Server配置iSCSI存储)参看《使用Windows Storage Server 2008给hype-v添加iSCSI盘》3、给集群添加网络磁盘(分布式事物协调器需要一块磁盘、SQL需要一个磁盘)A、打开故障转移集群B、点击右侧“存储”项。
选择右侧的“添加磁盘”功能C、将节点中新添加的iSCSI存储添加到集群存储,并修改磁盘名称为SQL4、添加分布式事务处理的集群化A、打开故障转移集群管理器,点击配置服务或应用程序B、选择添加“分布式事物协调器”进行添加C、设置MSDTC名称、IP地址、存储5、在Windows Server 2008 R2上直接运行SQL Server 2008的安装程序,在安装进程的最后会报错,“requirekerberos的值为1,并非预期值”,经过查找KB 得知,此种情况需要安装SQL Server 2008的SP1补丁。
