SQL Server2008 R2 数据库镜像实施手册(双机)

一、配置主备机

1、 服务器基本信息

主机名称为:HOST_A,IP地址为:192.168.1.155

备机名称为:HOST_B,IP地址为:192.168.1.156

二、主备实例互通

实现互通可以使用域或证书来实现,考虑实现的简单,以下选取证书的方式实现。注意:实现“主备数据库实例互通”的操作只需要做一次,例如为了将两个SQL Server 2008的实例中的5个数据库建成镜像关系,则只需要做一次以下操作就可以了;或者这样理解:每一对主备实例(不是数据库)做一次互通。

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

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

--主机执行:

USE master;

CREATE MASTER KEY ENCRYPTION BY PASSWORD = ‘123456‘;

CREATE CERTIFICATE HOST_A_cert WITH SUBJECT = ‘HOST_A certificate‘ ,

START_DATE = ‘2012-08-02‘,

EXPIRY_DATE = ‘2099-08-02‘;

--备机执行:

USE master;

CREATE MASTER KEY ENCRYPTION BY PASSWORD = ‘123456‘;

CREATE CERTIFICATE HOST_B_cert WITH SUBJECT = ‘HOST_B certificate‘,

START_DATE = ‘2012-08-02‘,

EXPIRY_DATE = ‘2099-08-02‘;

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

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

--主机执行:

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 );

 

--备机执行:

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 );

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

?


1

2

3

4

5

6

7

8

--主机执行:

BACKUP CERTIFICATE HOST_A_cert TO FILE = ‘C:\SQLBackup\HOST_A_cert.cer‘;

--备机执行:

BACKUP CERTIFICATE HOST_B_cert TO FILE = ‘C:\SQLBackup\HOST_B_cert.cer‘;

4、互换证书

将备份到C:\SQLBackup\的证书进行互换,即HOST_A_cert.cer复制到备机的C:\SQLBackup\。HOST_B_cert.cer复制到主机的C:\SQLBackup\。

5、添加登陆名、用户(主备可并行执行)

以下操作只能通过命令行运行,通过图形界面无法完成。(截至SQL Server2005的补丁号为SP2)

?


1

2

3

4

5

6

7

8

9

10

11

--主机执行:

CREATE LOGIN HOST_B_login WITH PASSWORD = ‘123456‘;

CREATE USER HOST_B_user FOR LOGIN HOST_B_login;

CREATE CERTIFICATE HOST_B_cert AUTHORIZATION HOST_B_user FROM FILE = ‘C:\SQLBackup\HOST_B_cert.cer‘;

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

 

--备机执行:

CREATE LOGIN HOST_A_login WITH PASSWORD = ‘123456‘;

CREATE USER HOST_A_user FOR LOGIN HOST_A_login;

CREATE CERTIFICATE HOST_A_cert AUTHORIZATION HOST_A_user FROM FILE = ‘C:\SQLBackup\HOST_A_cert.cer‘;

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

三、建立镜像关系

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

1、 手工同步登录名和密码

在上文中提到数据库镜像的缺点之一是无法维护登录名,所以需要我们手工维护登录。

通常来说数据库都将会有若干个用户作为访问数据库的用户,并且数据库会有相应的登录名,但是在备机中缺少与之相对应的登录名,例如某业务系统使用‘myuser‘作为登录名访问数据库,但是在备机中没有‘myuser‘这个登录名,因此一旦主备切换,业务系统就无法登录数据库了,这种情况称为"孤立用户"。在主机和备机数据库上建立相同用户名及密码即可。

2、 准备备机数据库(主机备份及镜像还原)

在主机上备份数据库,先做完整备份,再做日志事务备份。

1、主数据必须设置成完整模式进行备份,如下图:

上图中将“恢复模式”选成“完整模式”。

2、备份数据库,如下图:

备份时将“备份类型”选成“完整”。

3、备份事务日志,如下图:

将“备份类型”选成“事务日志”且备份目录与备份数据库的目录一致。

将备份文件在备机上使用主机的全备文件进行还原,在还原数据的时候需要使用选上“with non recover”。如图所示:

如果执行成功数据库将会变成这个样子:

3、 建立镜像

?


1

2

3

4

5

6

7

8

9

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

ALTER DATABASE shishan SET PARTNER = ‘TCP://192.168.1.155:5022‘;

说明:shishan为数据库名,需要根据实际进行修改。192.168.1.155为主机IP地址,需根据实际进行修改。

--主机执行:

ALTER DATABASE shishan SET PARTNER = ‘TCP://192.168.1.156:5022‘;

说明:shishan为数据库名,需要根据实际进行修改。192.168.1.156为备机IP地址,需根据实际进行修改。

执行成功后:

到此,SQL镜像热备配置完成。

四、常见命令

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

--切换主备

use master;

alter database testdb set partner failover;

 

-- 备机强制切换

use master;

alter database testdb set partner force_service_allow_data_loss;

 

--恢复镜像

use master;

alter database testdb set partner resume;

 

 

--取消见证服务器

ALTER DATABASE testdb SET WITNESS OFF ;

 

--取消镜像

ALTER DATABASE testdb SET PARTNER OFF;

 

--设置镜像数据库还原为正常

RESTORE DATABASE testdb WITH RECOVERY;

备份主数据库出现:Backup a database on a HDD with a different sector size,可以执行以下语句备份:
BACKUP DATABASE MyDB TO DISK = N‘D:\MyDB.bak‘ WITH INIT , NOUNLOAD , NAME = N‘MyDB backup‘, STATS = 10, FORMAT

总结

要进行以上sql server的镜像设置一定要使用sql server 的配置管理器开启TCP/IP协议,如下图

如果没有启用TCP/IP协议则只能在同一个网段内的机器配置镜像,前面的配置步骤里面所用到的IP地址要换成对应的实例名。同一个网段配置并使用镜像的时实性、传输速率更高,适用于大数据量的同步,跨网段或者跨公网的sql server 镜像一般适用于数据量小,时实性要求不高的数据同步,而且数据库在公网上同步也不安全。

原文地址:https://www.cnblogs.com/-zrj/p/10729439.html

时间: 2024-11-08 23:33:37

SQL Server2008 R2 数据库镜像实施手册(双机)的相关文章

SQL Server2008 R2 数据库镜像实施手册(双机)SQL Server2014同样适用

这篇文章主要介绍了SQL Server2008 R2 数据库镜像实施手册(双机)SQL Server2014同样适用,需要的朋友可以参考下 一.配置主备机 1. 服务器基本信息 主机名称为:HOST_A,IP地址为:192.168.1.155 备机名称为:HOST_B,IP地址为:192.168.1.156 二.主备实例互通 实现互通可以使用域或证书来实现,考虑实现的简单,以下选取证书的方式实现.注意:实现"主备数据库实例互通"的操作只需要做一次,例如为了将两个SQL Server 2

SQL 2008 R2 数据库镜像操作

镜像操作请参考:http://blog.csdn.net/dba_huangzj/article/details/35995083 应用程序数据库连接字符串(带见证服务器即自动故障转移): DBHelper DBHelparKQ = new DBHelper("Data Source=主体;Failover Partner=镜像;Initial Catalog=数据库;User ID=帐号;Password=密码"); _conn.ConnectionString ="Dat

SQLServer2008-镜像数据库实施手册(双机)SQL-Server2014同样适用

SQL Server2008R2-镜像数据库实施手册(双机)SQL Server2014同样适用 一.配置主备机 1. 服务器基本信息 主机名称为:HOST_A,IP地址为:192.168.1.155 备机名称为:HOST_B,IP地址为:192.168.1.156 二.主备实例互通 实现互通可以使用域或证书来实现,考虑实现的简单,以下选取证书的方式实现.注意:实现“主备数据库实例互通”的操作只需要做一次,例如为了将两个SQL Server 2008的实例中的5个数据库建成镜像关系,则只需要做一

SQL Server 2008 R2数据库镜像部署图文教程

数据库镜像是一种针对数据库高可用性的基于软件的解决方案.其维护着一个数据库的两个相同的副本,这两个副本分别放置在不同的SQL Server数据库实例中 概述 “数据库镜像”是一种针对数据库高可用性的基于软件的解决方案.其维护着一个数据库的两个相同的副本,这两个副本分别放置在不同的SQL Server数据库实例中.建议使用不同位置的两台服务器来承载.在同一时刻,其中一台上的数据库用于客户端访问,充当“主体服务器”角色:而另一台则根据镜像会话的配置和状态,充当热备份服务器,即“镜像服务器角色”,这两

SQL 2008 R2数据库变为REPLICATION,日志不断增长而且不能截断和收缩的解决方案

 运行环境:windows server2003,sql server2008 R2,数据库上布置CDC 用户反应系统报错是日志已满,系统不能运行.查看日志文件时,发现日志文件已经达到15G,后来为了解决问题,干脆把数据库移到另一个F盘,D盘专门放日志文件,空间有80G.当时想这80G至少保证系统运行一周吧!谁知道系统刚运行两天,日志文件已爆涨到80G,D盘空间仅剩余10MB,数据库做任何动作都不可以.又一次为了应急把日志文件直接删除(先停掉服务,删除日所文件,再通过DBCC CheckDB

数据库热备之SQLServer的数据库镜像实施笔记

转载自:http://kb.cnblogs.com/page/45937/ 最初在为公司设计SQLServer数据库镜像的时候,首先考虑的是高可用性(三台计算机,一台见证服务器,一台做主数据库,一台做镜像) 在虚拟机环境下部署成功,一切都是那么的完美.故障转移3秒之内就可以顺利完成. 1.高可用性的实施代码: /******************************************************** 此脚本在主体服务器执行 ************************

SQL Server 2012 数据库镜像配置完整篇

"数据库镜像"是一种提高 SQL Server 数据库的可用性的解决方案. 镜像基于每个数据库实现,并且只适用于使用完整恢复模式的数据库.数据库镜像维护一个数据库的两个副本,这两个副本必须驻留在不同的 SQL Server 数据库引擎 服务器实例上. 通常,这些服务器实例驻留在不同位置的计算机上. 启动数据库上的数据库镜像操作时,在这些服务器实例之间形成一种关系,称为"数据库镜像会话".其中一个服务器实例使数据库服务于客户端("主体服务器"), 

SQL Server2008 R2开启远程连接总结

============================== SQL Server2008 R2开启远程连接(最全总结) ============================== 安装过程:适用Windows XP SP3.Windows7.Windows Server2008 R2.Windows8.Windows10 1.安装Visual Studio2010旗舰版 2.安装Visual Studio2010 SP1 3.安装SQL Server2008 R2管理工具 =========

sql server 2012数据库镜像

sql server 2012数据库镜像 以下通过域帐户来配置数据库镜像: 一.环境准备 1.准备计算机 AD02为域控制器/DNS服务器(sz1card1.com),IP:192.168.2.218/24,AD02安装成为域控制器.DNS服务(这里不做演示) W67为主体服务器,IP:192.168.2.67/24,安装SQL SERVER 2012 企业核心版(这里不做演示) W65为镜像服务器,IP:192.168.2.65/24,安装SQL SERVER 2012 企业核心版(这里不做演