我用的是没有见证的,但找的文章里有镜像,所以都做一下补充,两个网址做的参考,

之所以在从他们那再补充一次是为了怕有一天他们的文章被删了我这还有个备用的,这两篇写的不错 其他的都不行 特别乱,这是找的最全的

来源:https://blog.csdn.net/zhanglong_longlong/article/details/52692412

来源:https://blog.csdn.net/wangqi0079/article/details/8602399

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

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

要镜像的库:test

这是已经做好的状态,左边主机,右边备机

一、首先要确保两个服务器的数据库的版本为标准版、企业版或者开发版,检测版本可以用命令:

1     select@@version;
 
 
二、把数据库恢复模式改为完整模式:
1     USE master;
2 ALTER DATABASE <DatabaeName>   //<DatabaeName>既为需要配置镜像的数据库名
3 SET RECOVERY FULL;
或者:

如果是简单模式,在简历镜像的时候会报错:无法启用数据库镜像,因为'DataName'数据库在两个伙伴上都不处于完全恢复模式
 
三、在镜像服务器上建立空库。
在镜像服务器上建立和主服务器上名称一样的空数据库,为的是配置用户。
 
 
四、在镜像服务器上建立和主服务器上一样的用户,并赋予数据库
 
4.1、在主服务器上执行命令:
1     USE master;
2 select sid,name from syslogins;
出现如上图的结果。
 
4.2、在镜像服务器上安装这个表建立用户,大部分都是系统用户不用管,只建立我们自定义的用户。
1     USE master;
2 exec sp_addlogin
3 @loginame='<LoginName>',
4 @passwd='<Password>',
5 @sid=<sid>;
sid就是上面查询结果中的sid,复制过来。
 
 
4.3、把新建的用户付给对应数据库。
    登录数据库→安全性→登录名→【对应用户名】上右键。
    在弹出的窗体中,左侧找到用户映射,然后在右侧选中对应的数据库,如下图:
    
 
    
在右下方的“数据库角色成员身份”中,选择db_owner和public。 如果不能选 但只有public是默认的也可以
 
 
五、开始创建证书环境。
 
5.1、创建证书。
 
如果证书存在或者添加出错可以 删除证书:
--删除证书

1     DROP CERTIFICATE HOST_A_cert
2 drop master key
 
    主机执行:    
1     USE master;
2 CREATE MASTER KEY ENCRYPTION BY PASSWORD ='证书的密码';
3 CREATE CERTIFICATE HOST_A_cert WITH SUBJECT ='HOST_A certificate',
4 START_DATE ='08/21/2014';
    备机执行:    
1     USE master;
2 CREATE MASTER KEY ENCRYPTION BY PASSWORD ='证书的密码';
3 CREATE CERTIFICATE HOST_B_cert WITH SUBJECT ='HOST_B certificate',
4 START_DATE ='08/21/2014';
 
 
 
5.2、创建连接的端点(主备可并行执行)
 
如果期间建立出错可以删除端点

1     DROP ENDPOINT Endpoint_Mirroring

--主机执行:

  1.  
    CREATE ENDPOINT Endpoint_Mirroring
  2.  
    STATE = STARTED
  3.  
    AS
  4.  
    TCP ( LISTENER_PORT=5022 , LISTENER_IP = ALL )
  5.  
    FOR
  6.  
    DATABASE_MIRRORING
  7.  
    ( AUTHENTICATION = CERTIFICATE HOST_A_cert , ENCRYPTION = REQUIRED ALGORITHM AES , ROLE = ALL );
 
 
--备机执行:
  1.  
    CREATE ENDPOINT Endpoint_Mirroring
  2.  
    STATE = STARTED
  3.  
    AS
  4.  
    TCP ( LISTENER_PORT=5022 , LISTENER_IP = ALL )
  5.  
    FOR
  6.  
    DATABASE_MIRRORING
  7.  
    ( AUTHENTICATION = CERTIFICATE HOST_B_cert , ENCRYPTION = REQUIRED ALGORITHM AES , ROLE = ALL );
 
 
5.3、备份证书
    
    先建立一个目录:D:\SQLBackup,目录名可任意。
    主机执行:    
  1.     BACKUP CERTIFICATE HOST_A_cert TO FILE ='D:\SQLBackup\HOST_A_cert.cer';

    备机执行:

  1.     BACKUP CERTIFICATE HOST_B_cert TO FILE ='D:\SQLBackup\HOST_B_cert.cer';
    5.4、互换证书
    把主机中的HOST_A_cert.cer拷贝到备机的D:\SQLBackup(5.3中建立的目录)目录中
    把备机中的HOST_B_cert.cer拷贝到主机的D:\SQLBackup目录中
 
    5.5、添加登录名、用户
 
如果期间出错可以删除登录名 用户
	  --删除登录名
DROP LOGIN HOST_B_login --删除用户
DROP USER HOST_B_user --删除证书
DROP CERTIFICATE HOST_B_cert
    
    主机执行:    
    CREATE LOGIN HOST_B_login WITH PASSWORD ='证书的密码';
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';
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_B_login];
    备机执行:
    
    CREATE LOGIN HOST_A_login WITH PASSWORD ='证书的密码';
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';
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_A_login];

执行成功后再主机中的登录名中会看到:
    
 
    对应的备机中也有一个用户:HOST_A_login
 
    到此证书环境建立完毕,就是一堆命令,其实并不太复杂。
 
六、建立镜像
    
    6.1、备份主机中的数据库。
    找到要建立镜像的数据库→右键任务→备份,备份类型现在“完整”。
 
    把备份文件复制到备机中备用。
 
    在备机中建立的空数据库上右键任务→还原→数据库
    
 
    
 
    选项中一定要选择:不对数据库执行任何操作,不会滚未提交的事物。
    
    点击确定,备机的数据库会显示:
 
    这时候前期准备就已经完成,可以建立镜像了。
 
七、建立镜像
 
    先在备机中执行:    
    ALTER DATABASE NewDB
SET PARTNER = N'TCP://hostA:5022'-- boat主机名
GO
    然后在主机中执行:    
    ALTER DATABASE NewDB
SET PARTNER = N'TCP://hostB:5022'-- boat主机名
GO
    执行成功后会如下图所示(图片来自上文提到的blog中):
    
 
 
 
 
       测试操作
 

1、主备互换

--主机执行:

  1.  
    USE master;
  2.  
    ALTER DATABASE <DatabaseName> SET PARTNER FAILOVER;

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

--备机执行:

  1.  
    USE master;
  2.  
    ALTER DATABASE <DatabaseName> SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS;

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

--备机执行:

  1.  
    USE master;
  2.  
    ALTER DATABASE <DatabaseName> SET PARTNER RESUME; --恢复镜像
  3.  
    ALTER DATABASE <DatabaseName> SET PARTNER FAILOVER; --切换主备

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

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

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

  1.  
    USE master;
  2.  
    ALTER DATABASE <DatabaseName> SET PARTNER SAFETY FULL; --事务安全,同步模式
  3.  
    ALTER DATABASE <DatabaseName> SET PARTNER SAFETY OFF; --事务不安全,异步模式

 
 
 
    八、可能遇到的问题。
    镜像一路顺风其实很快,但是各种各样的 问题都会出现,记录下我遇到的问题。
   
    8.1、 在,执行步骤七的时候,主机执行语句的时候报错:    
    无法启用数据库镜像,因为'NewDB'数据库在两个伙伴上都不处于完全恢复模式
    这个上文已经提到过,把数据库的恢复模式设为完整即可。
 
    8.2、依然是步骤七    
    1. 镜像数据库"pqsys_config"包含的事务日志数据不足,无法保留主体数据库的日志备份链。如果没有从主体数据库进行日志备份或者没有在镜像数据库上还原日志备份,则可能会出现这种情况。

    这个是步骤6.1中备份完数据库后,主机数据库要有了新的操作,这时候重新备份一下,再还原即可。一般是在主机中备份事务日志而不是完整。
    
 
    在备机上还原的时候也选择还原事务日志。
 
    注:如果备机的数据库的状态不是“正在还原”,还原的时候“事务日志”不可选,所以要保证备机的数据库的状态,一次不成功多试几次。这个错话最有可能遇到。
 
    8.3、在第七步的时候,如果主机和备机的执行顺序反了,也会报一个错,大意是镜像服务器为准备好之类的。
 
 
 
 整理的sql
 
 
 

 
 
 
 
 
 
 
 

SQL SERVER 2005镜像配置(有无见证服务器都行)的更多相关文章

  1. 实战SQL Server 2005镜像配置全过程

    SQL Server 2005镜像配置基本概念 我理解的SQL Server 2005镜像配置实际上就是由三个服务器(也可以是同一服务器的三个 SQL 实例)组成的一个保证数据的环境,分别是:主服务器 ...

  2. SQL Server 2005 镜像构建手册

    转载:http://www.cnblogs.com/killkill/archive/2008/05/23/1205792.html 一. 镜像简介 1. 简介 数据库镜像是将数据库事务处理从一个SQ ...

  3. PHP连接sql server 2005环境配置

    一.Windows下PHP连接SQLServer 2005 设定:安装的Windows操作系统(Win7 或XP均可.其它系统暂未測试),在C盘下:PHP的相关文件位于c:/PHP以下,其配置文件ph ...

  4. 在 SQL Server 2005 中配置数据库邮件

    一.            SQL Server发邮件原理和组件介绍: 数据库邮件有4个组件:配置文件.邮件处理组件.可执行文件以及“日志记录和审核组件”. l  配置组件包括: 1)数据库邮件帐户包 ...

  5. Sql server 2008镜像配置步骤

    下面主要是2008 MSSQL的一个镜像安装步骤,使用到的工具是mssql自带的Management Studio purpose : SQL SERVER 2008 mirror configura ...

  6. Sql Server 2005 镜像后收缩日志

    网站的一个数据库的日志文件已经到150个G的地步,数据文件才几十M,通过常规的操作去收缩日志: >数据库右键 → 任务 → 收缩 → 文件 , 在弹出的窗口中,文件类型选择"日志&qu ...

  7. 配置SQL Server 2005 远程连接(转)

    方法如下:  一.为 SQL Server 2005 启用远程连接1. 单击"开始",依次选择"程序"."Microsoft SQL Server 2 ...

  8. SQL Server 2005详细安装过程及配置

    说明:个人感觉SQL Server 2005是目前所有的SQL Server版本当中最好用的一个版本了,原因就是这个版本比起其它版本来说要安装简单,操作简便,只可惜这个版本只能在Windows7或者低 ...

  9. 在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连

    在建立与服务器的连接时出错.在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连 sql server服务器sqlserver远程连接数据库防火墙在建立 ...

随机推荐

  1. org.apache.commons.lang.StringUtils的常用方法

    org.apache.commons.lang.StringUtils是apache的commons-lang-x.x.jar下的包,里面包含很多字符串操作方法, 官网(http://commons. ...

  2. 23.读懂 ECMAScript 规格

    读懂规格 读懂 ECMAScript 规格 概述 规格文件是计算机语言的官方标准,详细描述语法规则和实现方法. 一般来说,没有必要阅读规格,除非你要写编译器.因为规格写得非常抽象和精炼,又缺乏实例,不 ...

  3. iis 程序池设置及详解-20180720

    [非原创,好文收藏,分享大家] 公司的一个网站程序长时间运行后,速度变慢,重新启动网站后速度明显变快,估计是网站程序占用的内存和CPU资源没能及时释放,才需要每隔一段时间重启网站释放资源.但手工重启总 ...

  4. CentOS7 mini安装后没有ifconfig命令的解决办法

    在CentOS 最小化mini安装后,没有ifconfig命令,此时网卡也没有启动,所以无法yum安装net-tools. 下面三步解决此问题: 1 查看网卡名称 ip addr 2 启动网卡 ifu ...

  5. Cookies读写

    /** * Minified by jsDelivr using Terser v3.14.1. * Original file: /npm/js-cookie@2.2.0/src/js.cookie ...

  6. 大数据之 Hadoop学习笔记

    1 hadoop生态系统 hdfs 分布式文件系统 hadoop-hdfs-2.7.2.jar mapreduce 分布式计算框架 hadoop-mapreduce-client-app-2.7.2. ...

  7. 使用json-org包实现POJO和json的转换

    使用json-org包实现POJO和json的转换 这个jar包把对象转换成json超级舒服,所以顺便记录一下吧 把单个pojo对象转换成json对象 Student student = new St ...

  8. 地区picker 各选择器,优劣分析

    移动端选择器picker有很多,各大ui组件都有自己的picker,比如light7,HUI,MUI,jqueryUI等等.但是,我发现他们都有各种各样的问题.这次的地区选择,需要地区的省份+市+经纬 ...

  9. 图片圆角显示与手机版文章页面CSS布局

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. 活字格Web应用平台学习笔记5 - 编辑和删除记录

    了几天,今天上活字格网站一看,他们获奖了,好厉害 荣膺盘古奖!活字格引领企业信息化建设新潮流 好吧,我继续学习,希望早点拿到认证证书. 今天要学的是编辑删除记录.目标: 还是接续之前的工程.做好后是这 ...