mysql2008数据库在window上做双机热备步骤_SQL2008双机热备方案

微软集群不是个什么好东西,dgdba大侠你也太偏激了吧

我做过SQL2005的镜像,不过步骤跟2008应该差不多,给你一些示例代码,网上找的,自己亲自测试成功

数据库:S_C_SC

网段:192.168.1.X

--SQL2005数据库镜像的步骤

--1、检查SQL Server 2005数据库

--只有SQL Server 2005 标准版、企业版和开发版才可以建立数据镜像。

--其他版本即Express只能作为见证服务器

--要保证打上SP2补丁 SELECT SERVERPROPERTY('productlevel')

--2、主备实例互通

--实现互通可以使用域或证书来实现,考虑实现的简单,以下选取证书的方式实现。注意:

实现“主备数据库实例互通”的操作只需要做一次,每一对主备

实例(不是数据库)做一次互通。

-----------------------------------------------------------

--1、设置镜像数据库为完整恢复模式

alter DATABASE S_C_SC set recovery FULL

--2、创建证书(主备可并行执行)

--主机执行

USE master;

CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'joe';

CREATE CERTIFICATE HOST_A_cert WITH SUBJECT = 'HOST_A certificate' ,

START_DATE = '2012-09-25';

--备机执行

USE master;

CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'joe';

CREATE CERTIFICATE HOST_B_cert WITH SUBJECT = 'HOST_B certificate' ,

START_DATE = '2012-09-25';

--见证执行

USE master;

CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'joe';

CREATE CERTIFICATE HOST_C_cert WITH SUBJECT = 'HOST_C certificate' ,

START_DATE = '2012-09-25';

--3、创建连接的端点(主备可并行执行)

--主机执行:

USE master

CREATE ENDPOINT Endpoint_Mirroring

STATE = STARTED

AS

TCP ( LISTENER_PORT=5022 , LISTENER_IP = ALL )

FOR

DATABASE_MIRRORING

( AUTHENTICATION = CERTIFICATE HOST_A_cert , ENCRYPTION = REQUIRED ALGORITHM AES , ROLE = ALL );

--备机执行:

USE master

CREATE ENDPOINT Endpoint_Mirroring

STATE = STARTED

AS

TCP ( LISTENER_PORT=5022 , LISTENER_IP = ALL )

FOR

DATABASE_MIRRORING

( AUTHENTICATION = CERTIFICATE HOST_B_cert , ENCRYPTION = REQUIRED ALGORITHM AES , ROLE = ALL );

--见证执行:

USE master

CREATE ENDPOINT Endpoint_Mirroring

STATE = STARTED

AS

TCP ( LISTENER_PORT=5022 , LISTENER_IP = ALL )

FOR

DATABASE_MIRRORING

( AUTHENTICATION = CERTIFICATE HOST_C_cert , ENCRYPTION = REQUIRED ALGORITHM AES , ROLE = WITNESS );

--4、备份证书以备建立互联(主备可并行执行)

--主机执行:

USE master

--BACKUP CERTIFICATE HOST_A_cert TO FILE = 'D:\SQLBackup\HOST_A_cert.cer';

BACKUP CERTIFICATE HOST_A_cert TO FILE = 'D:\HOST_A_cert.cer';

--备机执行:

USE master

BACKUP CERTIFICATE HOST_B_cert TO FILE = 'D:\SQLBackup\HOST_B_cert.cer';

--见证执行:

USE master

BACKUP CERTIFICATE HOST_C_cert TO FILE = 'D:\SQLBackup\HOST_C_cert.cer';

--5、互换证书

--

--将备份到D:\SQLBackup\的证书进行互换,即HOST_A_cert.cer复制(是复制不是剪切)

--到备机的D:\SQLBackup\。HOST_B_cert.cer复制(是复制不是剪切)到主机的D:\SQLBackup--见证的证书HOST_C_cert.cer复制到主机和备机,主机和备机复制到见证

--6、添加登陆名、用户(主备见证可并行执行)

--以下操作只能通过命令行运行,通过图形界面无法完成。(截至文档编写结束,SQL Server2005的版本号为SP2)

--主机执行:

USE master

CREATE LOGIN HOST_B_login WITH PASSWORD = 'test';

CREATE USER HOST_B_user FOR LOGIN HOST_B_login;

--CREATE CERTIFICATE HOST_B_cert AUTHORIZATION HOST_B_user FROM FILE = 'D:\SQLBackup\HOST_B_cert.cer';

CREATE CERTIFICATE HOST_B_cert AUTHORIZATION HOST_B_user FROM FILE = 'D:\HOST_B_cert.cer';

GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_B_login]

USE master

CREATE LOGIN HOST_C_login WITH PASSWORD = 'test';

CREATE USER HOST_C_user FOR LOGIN HOST_C_login;

CREATE CERTIFICATE HOST_C_cert AUTHORIZATION HOST_C_user FROM FILE = 'D:\HOST_C_cert.cer';

GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_C_login];

GO

--HOST_B_cert是第一步创建的证书

--备机执行:

USE master

CREATE LOGIN HOST_A_login WITH PASSWORD = 'test';

CREATE USER HOST_A_user FOR LOGIN HOST_A_login;

--CREATE CERTIFICATE HOST_A_cert AUTHORIZATION HOST_A_user FROM FILE = 'D:\SQLBackup\HOST_A_cert.cer';

CREATE CERTIFICATE HOST_A_cert AUTHORIZATION HOST_A_user FROM FILE = 'D:\HOST_A_cert.cer';

GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_A_login];

USE master

CREATE LOGIN HOST_C_login WITH PASSWORD = 'test';

CREATE USER HOST_C_user FOR LOGIN HOST_C_login;

CREATE CERTIFICATE HOST_C_cert AUTHORIZATION HOST_C_user FROM FILE = 'D:\HOST_C_cert.cer';

GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_C_login];

GO

--见证执行:

USE master

CREATE LOGIN HOST_A_login WITH PASSWORD = 'test';

CREATE USER HOST_A_user FOR LOGIN HOST_A_login;

--CREATE CERTIFICATE HOST_A_cert AUTHORIZATION HOST_A_user FROM FILE = 'D:\SQLBackup\HOST_A_cert.cer';

CREATE CERTIFICATE HOST_A_cert AUTHORIZATION HOST_A_user FROM FILE = 'D:\HOST_A_cert.cer';

GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_A_login];

USE master

CREATE LOGIN HOST_B_login WITH PASSWORD = 'test';

CREATE USER HOST_B_user FOR LOGIN HOST_B_login;

--CREATE CERTIFICATE HOST_B_cert AUTHORIZATION HOST_B_user FROM FILE = 'D:\SQLBackup\HOST_B_cert.cer';

CREATE CERTIFICATE HOST_B_cert AUTHORIZATION HOST_B_user FROM FILE = 'D:\HOST_B_cert.cer';

GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_B_login];

--注意: 这里添加的登录名和用户是添加在master数据库里的不是要做镜像的那个数据库

--这里添加的登录名和用户是用来做连接的,下面建立镜像关系才是修复孤立用户才是

--修复要做镜像的那个数据库的孤立用户!!!!!!!!!!!!!!!

--建立镜像关系----------------------------------------------

--以下步骤是针对每个数据库进行的,例如:如果主机中有5个数据库以下过程就要执行5次。

--7、 手工同步登录名和密码

--在前面提到数据库镜像的缺点之一是无法维护登录名,所以需要我们手工维护登录解决孤立用户。

--在主数据库中执行如下语句:

USE master;

select sid,name,dbname from syslogins WHERE dbname='要做镜像的数据库名'

USE master;

select sid,name,dbname from syslogins WHERE dbname='S_C_SC'

--查找出要做镜像的那个数据库里面有哪些用户名和sid,例如:上述的’myuser’

--在备库中执行如下语句:

USE master;

exec sp_addlogin

@loginame = '',

@passwd = '',

@sid = ;

--8、准备备机数据库

--主库要备份两个bak文件

--第一个:完整备份

--第二个:事务日志备份 ,截断事务日志

--(1)先在备机还原完整备份,“restore with norecovery”和 覆盖现有数据库

--做了第一步之后,S_C_SC-》任务-》还原-》事务日志 按钮才可用

--(2)再还原事务日志,“restore with norecovery” 和时间点:最近状态

--如果执行成功备机数据库将会变成 "正在还原"

--由于是实验,没有为服务器配置双网卡,IP地址与图有点不一样,但是原理一样。

--9、必须要在镜像数据库中先设置好伙伴后,才能在主体服务器执行

--再在主体服务器实例上,将 备机上的服务器实例设置为伙伴

--备机执行

USE master

ALTER DATABASE S_C_SC SET PARTNER = 'TCP://192.168.1.100:5022'

--主机执行

USE master

ALTER DATABASE S_C_SC SET PARTNER = 'TCP://192.168.1.103:5022'

--10、在主机执行设置见证服务器

ALTER DATABASE S_C_SC SET WITNESS = 'TCP://192.168.1.101:5022';

GO

--此时主:S_C_SC(主体,已同步) 备: S_C_SC(镜像,已同步/正在还原)

--TCP://192.168.1.100:主

--TCP://192.168.1.103:备

--如果删除不了正在还原的备库,那么可以重启SQL服务,就可以删除了!!!!!!!!!!

--故障解决: ping ip telnet 5022端口

-------------------------测试------------------------------

--默认情况下,事务安全级别的设置为 FULL,即同步运行模式,而且SQL Server 2005 标准版只支持同步模式。

--关闭事务安全可将会话切换到异步运行模式,该模式可使性能达到最佳。

USE master;

ALTER DATABASE S_C_SC SET PARTNER SAFETY FULL --(默认)事务安全,同步模式 镜像的更改和主体的更改都同步

ALTER DATABASE S_C_SC SET PARTNER SAFETY OFF --事务不安全,异步模式 只有主体的更改同步

--1、主备互换

--主机停掉SQL服务

--2、主服务器Down掉,备机紧急启动并且开始服务

--备机执行:

USE master;

ALTER DATABASE S_C_SC SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS;

ALTER DATABASE S_C_SC SET ONLINE

--3、开启主机的SQL服务,原来的主服务器恢复,可以继续工作,需要重新设定镜像

--备机执行:

USE master;

ALTER DATABASE S_C_SC SET PARTNER RESUME; --恢复镜像

ALTER DATABASE S_C_SC SET PARTNER FAILOVER; --切换到主机

--4、原来的主服务器恢复,可以继续工作

--查看当前服务器做了镜像partner的那个服务器

SELECT * FROM sys.database_mirroring

-------------------------------删除镜像---------------------

--查看终端点

select * from sys.endpoints

--删除某终端点(终端点不带引号)

drop ENDPOINT endpoint_Mirroring

--删除证书 在master | Security | Certificates

--删除用户 在master | User

--然后可以删除登录名 drop login

--修改master key :

alter master key drop encryption by service master key

-- 删除master key :

drop master key

--删除镜像的命令:

ALTER DATABASE S_C_SC set partner OFF

RESTORE DATABASE S_C_SC WITH recovery --放弃事务,立刻还原

-------------解除数据库镜像---------------------------------

ALTER DATABASE S_C_SC SET PARTNER OFF

给我写信: 43409973_2.png QQ我:43409973_3

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值