一、配置主备机

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 镜像一般适用于数据量小,时实性要求不高的数据同步,而且数据库在公网上同步也不安全。

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

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

    这篇文章主要介绍了SQL Server2008 R2 数据库镜像实施手册(双机)SQL Server2014同样适用,需要的朋友可以参考下 一.配置主备机 1. 服务器基本信息 主机名称为:HOST_ ...

  2. myeclipse连接sql server2008 r2数据库

    我用的myeclipse自带的jdk1.6连接的,所以选用sqljdbc4.jar的jar包,我是win7电脑 之前也看到一些用户留的微软官方连接,但是官方那边已经取消下载了,所以我重新去找了下 链接 ...

  3. pageadmin CMS Sql Server2008 R2数据库安装教程

    sql sever数据库建议安装sql2008或以上版本,如果电脑上没有安装数据库,参考下面步骤安装. sql2008 r2下载地址:点击下载   提取码: wfb4 下载后点击安装文件,安装步骤如下 ...

  4. SQL 2008 R2 数据库镜像操作

    镜像操作请参考:http://blog.csdn.net/dba_huangzj/article/details/35995083 应用程序数据库连接字符串(带见证服务器即自动故障转移): DBHel ...

  5. Win10 系统安装Sql Server2008 R2 数据库遇到的问题及解决办法总结!

    1.开始安装时,提示要先安装 “.NET Framework 3.5(包括.NET 2.0和3.0)”,之前已经下载好.NET Framework 3.5 sp1,安装时还是提示要先安装 “.NET  ...

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

    SQL Server2008R2-镜像数据库实施手册(双机)SQL Server2014同样适用 一.配置主备机 1. 服务器基本信息 主机名称为:HOST_A,IP地址为:192.168.1.155 ...

  7. SQL Server 2008 R2数据库镜像部署

    概述 “数据库镜像”是一种针对数据库高可用性的基于软件的解决方案.其维护着一个数据库的两个相同的副本,这两个副本分别放置在不同的SQL Server数据库实例中.建议使用不同位置的两台服务器来承载.在 ...

  8. SQL Server 2008 数据库镜像部署实例之二 配置镜像,实施手动故障转移

    SQL Server 2008 数据库镜像部署实例之二 配置镜像,实施手动故障转移 上一篇文章已经为配置镜像数据库做好了准备,接下来就要进入真正的配置阶段 一.在镜像数据库服务器上设置安全性并启动数据 ...

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

    数据库镜像是一种针对数据库高可用性的基于软件的解决方案.其维护着一个数据库的两个相同的副本,这两个副本分别放置在不同的SQL Server数据库实例中 概述 “数据库镜像”是一种针对数据库高可用性的基 ...

随机推荐

  1. iOS codeview

    1.环境配置 oclint:http://oclint.org/ xcpretty:https://github.com/supermarin/xcpretty 使用Mac安装xcpretty过程可能 ...

  2. 设置 svn 与 web线上同步

    默认你已经配置好了svn服务 1.假设我们的线上网站目录为:/data/www/xxx 2.假设svn的仓库目录为:/data/svn/repo 一.checkout一份svn到线上网站目录 svn ...

  3. DataTable的序列化和反序列化

    /// <summary> /// DataTable序列化 /// </summary> /// <param name="dt"></ ...

  4. [z]Windows 下基于 Eclipse 的可视化远程 Linux C/C++ 开发环境搭建

    http://blog.csdn.net/lostaway/article/details/8086056 1.简介 Windows 下远程 Linux 开发工具,比较著名的就是 WinGDB 和 M ...

  5. <Linux多线程服务端编程>学习记录

    使用智能指针解决多线程下 类的解析冲突问题 有这样一个场景 使用StockFactory记录Stock的信息  容器是map<string,smart_ptr>; 代码如下: #inclu ...

  6. filter 死循环(tomcat 启动完成 ,自动执行filter.dofilter,导致tomcat 启动超时) , tomcat 启动和 servers 启动 不同

    package com.diancai.interceptor; import java.io.IOException; import javax.servlet.Filter; import jav ...

  7. 2014.1.14 struts 的default.properties 配置文件详述

    转自  http://justsee.iteye.com/blog/723993 Struts 2框架有两个核心配置文件:struts.xml和struts.properties 其中struts.x ...

  8. C# 如何操作串口

    1.首先要引用  System.IO.Ports using System; using System.Collections.Generic; using System.ComponentModel ...

  9. android触控,先了解MotionEvent(一)

    http://my.oschina.net/banxi/blog/56421 这是我个人的看法,要学好android触控,了解MotionEvent是必要,对所用的MotionEvent常用的API要 ...

  10. String、StringBuffer与StringBuilder之间区别(转)

    最近学习到StringBuffer,心中有好些疑问,搜索了一些关于String,StringBuffer,StringBuilder的东西,现在整理一下. 关于这三个类在字符串处理中的位置不言而喻,那 ...