位置: 编程技术 - 正文

mssql2005数据库镜像搭建教程(数据库镜像是什么意思)

编辑:rootadmin

一 概述

数据库镜像是SQL SERVER 用于提高数据库可用性的新技术。数据库镜像将事务日志记录直接从一台服务器传输到另一台服务器,并且能够在出现故障时快速转移到备用服务器。可以编写客户端程序自动重定向连接信息,这样一旦出现故障转移就可以自动连接到备用服务器和数据库。

优势:数据库镜像可以在不丢失已提交数据的前提下进行快速故障转移,无须专门的硬件,并且易于配置和管理。

二 环境准备

操作系统:Window enterprise sp2(至少两台,如要启用自动故障转移,必需三台)

SQL版本:MSSQL SERVER SP3

检查SQL SERVER版本:

exec xp_msver

select SERVERPROPERTY('productlevel')

数据库准备:准备一个数据库:ccerp_jzt ,备份此数据库还原到另外一台机器上,另外一台必须是with no recovery

这里我假设服务器A,B,C

A为主体服务器,B为镜像服务器,C为见证服务器

A服务器

use master

go

restore filelistonly from disk=N'f:databakccerp_jzt_backup_.bak'

restore database ccerp_jzt from disk=N'f:databakccerp_jzt_backup_.bak' with replace,recovery,

move 'ccerp_ydswzip_Data' to 'd:dataccerp_jzt.mdf',

move 'ccerp_ydswzip_Log' to 'd:dataccerp_jzt_log.ldf'

exec sp_helpdb 'ccerp_jzt'

backup database ccerp_jzt to disk =N'f:databaksk.bak' with init

--更改恢复模式

alter database ccerp_jzt set recovery full

B服务器:

CREATE DATABASE ccerp_jzt

ON

( NAME = Sales_dat,

FILENAME = 'd:dataccerp_jzt.mdf',

SIZE =

)

LOG ON

( NAME = 'ccerp_jzt_log',

FILENAME = 'd:dataccerp_jzt_log.ldf',

SIZE = 5MB

)

GO

restore filelistonly from disk=N'f:xxzxdatask.bak'

use master

go

restore database ccerp_jzt from disk=N'f:xxzxdatask.bak' with replace,norecovery,

exec sp_helpdb 'ccerp_jzt'

C服务器只要装上SQL SERVER 就可以,无需其他准备

准备完成后如下图所示:

三 三种模式的搭建

数据库镜像要建立必需得建立信任关系,那么在WIN环境下建立信任关系可以通过三种方式:域帐户,证书信任,windows 匿名登陆,现就前两种模式做配置说明.

3.1 域帐户模式:

3.1.1 更改mssqlserver服务的的登陆方式为域帐户登陆方式:

进入windows服务管理控制台,更改服务登陆帐户,使域账户有更改MSSQL SERVER服务状态的权限.三台机器都做同样设置

将域帐户赋予sysadmin角色

3.1.2 建立端点:

通过图形界面建立端点:

启动SQLWB,按图一直下一步

用域帐户登陆

如果成功则:

3.2 证书模式

3.2.1建立证书&端点

参与数据库镜像会话的服务器必须彼此信任。对于本地通信而言,例如一个域内的通信,信任意味着SQL Server实例登陆账号必须有权限连接到其他镜像服务器,也包括endpoints。首先在每个服务器上使用CREATE LOGIN命令,然后使用GRANT CONNECT ON ENDPOINT命令.非信任域之间的通信必须使用证书。如果使用CREATE CERTIFICATE语句创建自签名的证书,基本上所有数据镜像证书的要求都可以满足。确认在CREATE CERTIFICATE语句中将证书标记为ACTIVE FOR BEGIN_DIALOG。

一 建立证书:

镜像服务器上执行:

USE master;

CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'TEST';

CREATE CERTIFICATE HOST_A_cert WITH SUBJECT='HOST_A certificate', START_DATE='--';

主体服务器上执行:

USE master;

CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'TEST';

CREATE CERTIFICATE HOST_B_cert WITH SUBJECT='HOST_B certificate', START_DATE='--';

见证服务器上执行:

USE master;

CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'TEST';

CREATE CERTIFICATE HOST_C_cert WITH SUBJECT='HOST_C certificate', START_DATE='--';

二 建立端点:

镜像服务器上执行:

--create mirror endpoint on primary A

CREATE ENDPOINT Endpoint_Mirroring

STATE = STARTED AS

TCP ( LISTENER_PORT= , LISTENER_IP = ALL )

FOR DATABASE_MIRRORING

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

主体服务器上执行:

--Create endpoint on mirror server B

CREATE ENDPOINT Endpoint_Mirroring

STATE = STARTED

AS

TCP ( LISTENER_PORT= , LISTENER_IP = ALL )

FOR

DATABASE_MIRRORING

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

见证服务器上执行:

--Create endpoint on witness server C

CREATE ENDPOINT Endpoint_Mirroring

STATE = STARTED

AS

TCP ( LISTENER_PORT= , LISTENER_IP = ALL )

FOR

DATABASE_MIRRORING

( AUTHENTICATION = CERTIFICATE HOST_C_cert ,

ENCRYPTION = REQUIRED ALGORITHM AES , ROLE = witness );

SELECT * FROM sys.database_mirroring_endpoints;

证书互备:

镜像服务器上执行:

--backup certificate

BACKUP CERTIFICATE HOST_A_cert TO FILE = 'e:HOST_A_cert.cer'

主体服务器上执行

--backup certificate

BACKUP CERTIFICATE HOST_B_cert TO FILE = 'e:HOST_B_cert.cer'

见证服务器上执行:

BACKUP CERTIFICATE HOST_c_cert TO FILE = 'e:HOST_C_cert.cer'

将备份到的证书进行互换,即HOST_A_cert.cer复制到B机的e: 将HOST_B_cert.cer复制到A机的E:,也就是每台服务器有三个证书

三:建立登陆用户:

镜像服务器上执行:

--Create user

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 = 'e:HOST_B_cert.cer';

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

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 = 'e:HOST_c_cert.cer';

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

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

--query user sid

select loginname,name,sid From syslogins

主体服务器上执行:

--Create user

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 = 'e:HOST_A_cert.cer';

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

-- add witness user

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 = 'e:HOST_c_cert.cer';

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

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

--query sid

select loginname,name,sid From syslogins

见证服务器上执行:

--Create user

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 = 'e:HOST_A_cert.cer';

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

--add user host_b_login to have pemission to access witness

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 = 'e:HOST_B_cert.cer';

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

grant connect on endpoint::endpoint_mirroring to HOST_C_login

USE master;

exec sp_addlogin

@loginame = 'HOST_B_login',

@passwd = 'test',

@sid = 0x1ACA3D1DCEBCE4C4F ;

ALTER DATABASE ccerp_jzt SET PARTNER = '

四.建立镜像:

先在镜像服务器上执行:

ALTER DATABASE ccerp_jzt SET PARTNER = '

接着主体服务器执行:

ALTER DATABASE ccerp_jzt SET PARTNER = '

ALTER DATABASE ccerp_jzt SET witness = '

至此引证书建立完毕

四、测试操作

1、主备互换

--主机执行:

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

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

--备机执行:

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

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

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

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

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

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

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

错误说明:消息,级别,状态3,第1 行

默认情况下,数据库镜像是被禁用的。当前提供的数据库镜像仅供评估使用,并不应使用于生产环境中。若要以评估为目的启用数据库镜像,请在启动过程中使用跟踪标志。有关跟踪标志和启动选项的详细信息,请参阅SQL Server 联机丛书。

解决办法:没打SP1以上补丁.强烈建议打SP3

消息,级别,状态2,第1 行

由于"ccerp_jzt" 数据库可能有尚未备份的大容量日志记录更改,所以无法启用数据库镜像。必须在镜像上还原主体数据库的上一次日志备份。

主体上:backup log ccerp_jzt to disk ='e:log.trn' with no_truncate

镜像上:restore log ccerp_jzt from disk='e:log.trn' with norecovery

推荐整理分享mssql2005数据库镜像搭建教程(数据库镜像是什么意思),希望有所帮助,仅作参考,欢迎阅读内容。

mssql2005数据库镜像搭建教程(数据库镜像是什么意思)

文章相关热门搜索词:mssql镜像数据库,数据库镜像是什么意思,mssql镜像数据库,mysql数据库镜像,mysql数据库镜像,sql数据库镜像怎么部署,sql2008数据库镜像,sql2008数据库镜像,内容如对您有帮助,希望把文章链接给更多的朋友!

SQL Server DTS导入平面数据出现错误解决方案 SQLServerDTS导入平面数据源时,总是被截断,无法执行的错误解决方案1典型的错误信息如下:消息*错误0xca1:数据流任务:数据转换失败。列列2的数

sql 日志清理 SQL压缩清除日志的方法 教你如何清除SQL日志1.打开查询分析器,输入命令DUMPTRANSACTION数据库名WITHNO_LOG2.再打开企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收

SQL利用ROW_NUMBER() OVER实现分页功能 1.首先介绍ROW_NUMBER()OVER的基本用法2.看一下实例数据初始化数据createtableemployee(empidint,deptidint,salarydecimal(,2))insertintoemployeevalues(1,,.)insertintoemployeeva

标签: 数据库镜像是什么意思

本文链接地址:https://www.jiuchutong.com/biancheng/319388.html 转载请保留说明!

上一篇:sql server 2005用户权限设置深入分析(sql server single user)

下一篇:SQL Server 2005 DTS导入平面数据出现错误解决方案

  • 企业所得税年报申报时间
  • 哪些准备金支出可实现税前扣除?
  • 计提企业所得税会计分录怎么做
  • 一般纳税人缴纳税款
  • 广东通用机打发票可以抵扣吗
  • 用友软件生成凭证合并进项税
  • 税收实体法要素中的基础性要素
  • 无偿划拨资产涉税问题
  • 其他综合收益在利润表的哪个位置哪里
  • 实发工资比计提多汇算清缴要怎么处理
  • 对方电子承兑发出多长时间可以到账
  • 公司进行债务重构的原因可能包括
  • 购销合同印花税税率2023
  • 免税销售额收入不含税收入怎么算
  • 个体户需要缴纳残疾人保障金吗
  • 小微企业1个点和3个点对纳税的影响
  • 残疾人不用交医保社保
  • 购销合同怎么签订
  • 完税证明已开回怎么处理
  • 普通发票作废税费怎么算
  • 高新企业入库是什么意思
  • 贷款逾期了利息和罚息可以不还吗
  • 对于目标文件系统文件过大无法删除
  • php多维数组转一维数组
  • 合同资产的减值的计量
  • php模板引擎语法
  • 新手最适合用哪一款
  • 购买原材料的运输费计入什么科目
  • 增值税税收类型有哪些
  • thinkphp3.0
  • vue导航解析流程
  • 管理费用中的福利费有限额吗
  • 跨境电商企业要进入某个国家的市场 必须先做的工作是
  • 旅行社的会计分录怎么做
  • 本期应纳税额减征额是什么意思
  • 增值税纳税申报表怎么填
  • 暂估入库算材料成本差异吗
  • mongodb aggregate 性能
  • 企业新成立刻章要求
  • 工会其他支出包括哪些
  • 账务核对的主要内容
  • 职工薪酬包括哪几类
  • 合理损耗如何计算单位成本
  • 多交个税收到退回怎么办
  • 应收款项计提坏损怎么算
  • 企业缴纳车船税吗
  • 在建工程中发生的费用
  • 怎么理解什么是生命
  • 预付账款怎么做坏账
  • 制造费用转入什么
  • 主营业务成本和主营业务收入的关系
  • 固定资产一旦处于什么状态
  • 装修费用怎么结算
  • 工业企业进项税和销项税均为17%
  • 用SELECT... INTO OUTFILE语句导出MySQL数据的教程
  • sqlserver数据库显示单个用户
  • windows安装设置
  • windows 10预览版
  • Win2003 上配置 VPN + NAT共享上网的步骤分享
  • macOS 10.12.2下PDF崩溃严重怎么回事 macOS 10.12.2下PDF崩溃的原因以及解决办法
  • 手把手教你如何退税
  • ubuntu装eclipse
  • 虚拟机ubuntu怎么用
  • linux怎么切到桌面
  • win8怎么禁止弹窗
  • xp系统怎么设置网络传输文件
  • ubuntu 重启xorg
  • centos 6.0
  • windows7 cpu使用率高
  • win8.1无法关机怎么回事
  • jqueryfind
  • 一个简单的小实验
  • iframe内容自适应缩放
  • html标签自动换行
  • shell脚本中判断grep的结果
  • JavaScript+html5 canvas绘制缤纷多彩的三角形效果完整实例
  • javascript日常用途有哪些
  • jquery :not
  • 电子办税服务厅怎么开电子发票
  • 江苏国税电子网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设