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个数据库建成镜像关系,则只需要做一次以下操作就可以了;或者这样理解:每一对主备实例(不是数据库)做一次互通。

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

--主机执行:

--如果有endpoint,master key先删除

--select * from master.sys.database_mirroring_endpoints
--DROP ENDPOINT Endpoint_Mirroring
--drop master key;

USE master;  

ALTER SERVICE MASTER KEY FORCE REGENERATE

 

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

 

--备机执行:

--如果有endpoint,master key先删除

--select * from master.sys.database_mirroring_endpoints
--DROP ENDPOINT Endpoint_Mirroring
--drop master key;

USE master;  

ALTER SERVICE MASTER KEY FORCE REGENERATE

 

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、创建连接的端点(主备可并行执行)

--主机执行: 

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、备份证书以备建立互联(主备可并行执行)

--主机执行:

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)

--主机执行:

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、 建立镜像

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

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镜像热备配置完成。

 

四、常见命令

 

--切换主备(在主机principle数据库所在HOST上执行)

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 ;

 

--取消镜像(在主机principle数据库所在HOST上执行)

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/stragon/p/5643754.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/287123.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一万字一篇文20分钟学会C语言和Python,十四年编程经验老鸟传授经验之道

前言 昨天在直播中有粉丝问我如何快速的对编程语言入门,我想这个问题是有必要让大家知道的,相必也有很多新手对于如何快速完成编程语言的入门学习很感兴趣,本篇文将会使用 C 语言以及 Python 为例,做出对比,让大家对编…

C语言基于dag的基本块优化,基于dag的基本块优化参考.docx

基于dag的基本块优化参考基于DAG的基本块优化1.实验目的与任务了解基本块的DAG表示及其应用,掌握局部优化的基本方法。2.实验要求设计一个转换程序,把由四元式序列表示的基本块转换为DAG,并在构造DAG的过程中&#xff…

【Python可视化】Windows 10系统上Pyecharts安装教程

简单的Python库,如Numpy,可以直接在PyCharm中自动下载并安装。 同添加Python环境变量一样,需要先添加pip环境变量。pip位于C:\Python27\ArcGIS10.8\Scripts路径下。 WinR→cmd: 安装完成!

使用.Net分析.Net达人挑战赛参与情况

背景C#是我2012年在大学课程中接触的,.NET Framework 我也一直使用至今。从2014年.NET 开源,2019年发布.NET Core 3 的时候,公司刚好有 Nvidia Jetson 平台 Linux 嵌入式设备的开发任务,.NET 又刚是适用于 Windows, Linux, 和 mac…

Android之RecycleView实现指定范围的拖动效果

1 问题 在RecycleView里面实现指定位置的拖动效果,(这里是实现线性布局的,不是网格布局的) @Overridepublic boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {Log.i(TAG, "onMove viewHolder.getA…

十分钟如何学会C语言?掌握规律举一反三考试提50分!

前言 上周写了一篇 20 分钟学会 C 语言与Python的文章——《一万字一篇文20分钟学会C语言和Python,十四年编程经验老鸟传授经验之道》,之后见粉丝转了一个话题“十分钟如何学会C语言”,我就在想是否能够十分钟呢?答案是可以的&am…

异常何时去捕获

在业务逻辑层捕获异常。 工具类中不可处理异常,有异常要向外抛!!!转载于:https://www.cnblogs.com/swbzmx/p/5643756.html

c语言在win8系统不兼容,Win8系统中存在不兼容软件如何解决?

最近有刚升级Win8系统的用户反映,FastStone Capture截图软件在Win7系统中可以兼容,正常打开,可是在Win8系统中就不能兼容了,这让用户非常烦恼。那么,Win8系统中存在不兼容软件如何解决呢?下面,我…

Python 3.6出现报错解决方案:No Python 3.6 installation was detected,无法卸载Python

卸载Python 3.6时错误提示,No Python 3.6 installation was detected。 解决办法是,先右键→更改→Repair。 然后再卸载,完成!

Android之解决ScrollView嵌套RecycleView导致滑动冲突或者显示不全的问题

1 问题 ScrollView嵌套RecycleView导致滑动冲突或者显示不全的问题 2 解决办法 1)、ScrollView替换成普通布局,然后RecycleView用的BaseMultiItemQuickAdapter多布局来写,也就是整个页面只有一个RecycleView,用来取代ScrollView…

MASA Auth - 权限设计

权限术语Subject:用户,用户组Action:对Object的操作,如增删改查等Object:权限作用的对象,也可以理解为资源Effect:规则的作用,如允许,拒绝Condition:生效条件…

iOS js oc相互调用(JavaScriptCore)

http://blog.csdn.net/lwjok2007/article/details/47058795转载于:https://www.cnblogs.com/wlsxmhz/p/5645985.html

Android怎么自定义listview布局,Android ListView自定义布局

编辑:找一个 “开箱即用” 的帖子的末尾例子!因为你看到多行受到影响我猜它有些事情要做系统如何回收资源,也许对Button的引用是不明确的。我不确定我在哪里选择了这种做法(Android教程或我们以前的开发人员通过这些教程学习了Android)。然而…

【必懂】C语言水仙花数题解

若是大一学子或者是真心想学习刚入门的小伙伴可以私聊我,若你是真心学习可以送你书籍,指导你学习,给予你目标方向的学习路线,无套路,博客为证。 前言 本专栏内容将会以轻松、简单的方式完成习题的解答,用…

Android之点击图片底部出现灰色圆圈效果

1 需求 点击图片底部出现灰色圆圈效果 2 代码实现 1、num_oval_gray_def.xml <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"android:shape="oval"androi…

【ArcGIS风暴】ArcGIS 10.8中计算体积的方法总结

ArcGIS 10.8提供了表面体积和面体积两种计算体积的方法。 一、表面体积 用途:用于计算表面和参考平面之间区域的面积和体积。 Situation 1:参考面以上 Situation 2:参考面以下 Python脚本: import arcpy from arcpy import envarcpy.CheckOutExtension("3D")…

.NET7:更细致的时间

当年在做go时&#xff0c;很羡慕它的时间有微秒&#xff0c;纳秒&#xff0c;在做性能优化时&#xff0c;能很小颗粒度的查看引入方法执行的时间&#xff0c;当时.net的DateTime只有毫秒&#xff08;虽然也有别的办法获取&#xff09;。现在&#xff0c;在最新的.NET7 Preview4…

集合转数组

akdfajf //集合转数组 // StringBuffer sql new StringBuffer(); // String[] arr new String[hjPztTalentInfos.size()]; // for (int i 0; i < hjPztTalentInfos.size(); i) { // arr[i] hjPztTalen…

Android之解决AppBarLayout 下面一道阴影

1 问题 AppBarLayout 下面写了其它布局&#xff0c;但是当这个布局滑动到上面时候&#xff0c;AppBarLayout 下面有一道阴影 2 解决办法 对AppBarLayout设置一个属性&#xff1a; app:elevation"0dp"

案例:无人测量船水库水下地形测量及库容量计算

本文讲解利用南方方洲号无人船,该系统可用于水下地形地貌测绘、水库库容测量、水文勘测、疏浚检测、水环境监测等领域。 一、无人船水深测量 1、水岸线范围的获取 水岸线有助于布设航线,获取方式有两种: (1)无人船获取 对于