SQLServer镜像
一、镜像简介1、简介数据库镜像是将数据库事务处理从一个SQL Server数据库移动到不同SQL Server环境中的另一个SQL Server 数据库中。
镜像不能直接访问;它只用在错误恢复的情况下才可以被访问。
要进行数据库镜像所需的最小需求包括了两个不同的SQL Server运行环境。
主服务器被称为“主机”,第二个服务器被称作“备机”。
主机数据库就是你实际用着的数据库,镜像数据库就是你的数据库的备用拷贝。
当事务写入你的基本服务器的时候,他们也同样被传送到并写入你的镜像数据库中。
除了基本和镜像之外,你还可以引入另一个可选的组件,名为“见证”。
见证服务器是第三个SQL Server 2005运行实例,它是在判断什么时候进行错误恢复的时候,用于基本和镜像之间内部交流。
只有当你想实现自动错误恢复的时候用到这个选项。
它实现了2比1投票的能力,当我的一个组件不可达,并因此需要进行错误恢复的时候。
见证服务器只有在你想实现自动错误恢复的时候才需要用到。
2、优点下表是SQL Server可用性官方解决方案的一个对照表,现时我中心使用的恢复模式是“冷备份”中的“备份/恢复”,通常来说“热备份”比“冷备份”的可用性更高,恢复更快,更适合我中心现时的实际情况。
如果不从成本考虑的话,“热备份”中的“故障转移群集”的可用性是最高的,但是故障转移群集需要借助磁盘阵列而且建设本身复杂性较高。
数据库镜像的建立并没有太多的硬件要求,最起码没有像“故障转移群集”需要共享存储这么高的要求。
2、缺点(1)由于SQL Server是一个实例多个数据库的产品,数据库镜像技术是基于数据库级别的,因此每次主数据库新增数据库都必须为备机增加数据库并且为新增的数据库建立镜像关系。
(2)数据库的登录名和用户是存储在master数据库,master数据库是不能做镜像的,所以每次操作数据库的登录名和用户也是需要多维护一份,(3)数据库作业不能得到相应的维护。
(4)微软号称镜像可以让客户端对故障透明,但是实际测试中发现只有满足特定的条件才能实现透明化,而且透明化得客户端支持才可行(.net Framework 2.0以上,Microsoft jdbc驱动1.1以上)。
(5)跨数据库事务和分布式事务均不支持数据库镜像。
纵观其他几种方式,仅有“热备份”的“故障转移群集”没有这些问题。
一、配置主备机1、物理连接将主备数据库按照如图所示连接:2、检查SQL Server 2005数据库只有SQL Server 2005 标准版、企业版和开发版才可以建立数据镜像。
其他版本即Express只能作为见证服务器。
如果实在不清楚什么版本,执行如下语句查看:select@@version;若要对此数据库进行数据库镜像,必须将它更改为使用完整恢复模式。
若要用Transact-SQL 实现此目的,请使用ALTER DATABASE 语句:USE master;ALTER DATABASE<DatabaeName>SET RECOVERY FULL;二、主备实例互通实现互通可以使用域或证书来实现,考虑实现的简单,以下选取证书的方式实现。
注意:实现“主备数据库实例互通”的操作只需要做一次,例如为了将两个SQL Server 2005的实例中的5个数据库建成镜像关系,则只需要做一次以下操作就可以了;或者这样理解:每一对主备实例(不是数据库)做一次互通。
1、创建证书(主备可并行执行)--主机执行:USE master;CREATE MASTER KEY ENCRYPTION BY PASSWORD ='killkill';CREATE CERTIFICATE HOST_A_cert WITH SUBJECT ='HOST_A certificate',START_DATE ='01/01/2008';--备机执行:USE master;CREATE MASTER KEY ENCRYPTION BY PASSWORD ='killkill';CREATE CERTIFICATE HOST_B_cert WITH SUBJECT ='HOST_B certificate',START_DATE ='01/01/2008';2、创建连接的端点(主备可并行执行)--主机执行:CREATE ENDPOINT Endpoint_MirroringSTATE =STARTEDASTCP ( LISTENER_PORT=5022, LISTENER_IP =ALL)FORDATABASE_MIRRORING( AUTHENTICATION =CERTIFICATE HOST_A_cert , ENCRYPTION =REQUIRED ALGORITHM AES , R OLE =ALL);--备机执行:CREATE ENDPOINT Endpoint_MirroringSTATE =STARTEDASTCP ( LISTENER_PORT=5022, LISTENER_IP =ALL)FORDATABASE_MIRRORING( AUTHENTICATION =CERTIFICATE HOST_B_cert , ENCRYPTION =REQUIRED ALGORITHM AES , R OLE =ALL);3、备份证书以备建立互联(主备可并行执行)--主机执行:BACKUP CERTIFICATE HOST_A_cert TO FILE='D:\SQLBackup\HOST_A_cert.cer';--备机执行:BACKUP CERTIFICATE HOST_B_cert TO FILE='D:\SQLBackup\HOST_B_cert.cer';4、互换证书将备份到D:\SQLBackup\的证书进行互换,即HOST_A_cert.cer复制到备机的D:\SQLBackup\。
HOST_B_cert.cer复制到主机的D:\SQLBackup\5、添加登陆名、用户(主备可并行执行)以下操作只能通过命令行运行,通过图形界面无法完成。
(截至文档编写结束,SQL Server2005的不定号为SP2)--主机执行:CREATE LOGIN HOST_B_login WITH PASSWORD ='killkill';CREATE USER HOST_B_user FOR LOGIN HOST_B_login;CREATE CERTIFICATE HOST_B_cert AUTHORIZATION HOST_B_user FROM FILE='D:\SQLBackup\H OST_B_cert.cer';GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO[HOST_B_login];--备机执行:CREATE LOGIN HOST_A_login WITH PASSWORD ='killkill';CREATE USER HOST_A_user FOR LOGIN HOST_A_login;CREATE CERTIFICATE HOST_A_cert AUTHORIZATION HOST_A_user FROM FILE='D:\SQLBackup\HO ST_A_cert.cer';GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO[HOST_A_login];三、建立镜像关系以下步骤是针对每个数据库进行的,例如:现有主机中有5个数据库以下过程就要执行5次。
1、手工同步登录名和密码在第一章中提到数据库镜像的缺点之一是无法维护登录名,所以需要我们手工维护登录。
通常来说数据库都将会有若干个用户作为访问数据库的用户,并且数据库会有相应的登录名,但是在备机中缺少与之相对应的登录名,例如某业务系统使用’myuser’作为登录名访问数据库,但是在备机中没有’myuser’这个登录名,因此一旦主备切换,业务系统就无法登录数据库了,这种情况称为"孤立用户"在主数据库中执行如下语句:USE master;select sid,name from syslogins;查找出相应的用户名和sid,例如:上述的’myuser’在备数据库中执行如下语句:USE master;exec sp_addlogin@loginame='<LoginName>',@passwd='<Password>',@sid=<sid>;这里的’LoginName’即主数据库中的登录名,sid即是上述通过SQL语句查找出的sid。
例如,查询得到的sid和name如下所示。
sid name0x074477739DCA0E499C29394FFFC4ADE4cz_account则建立登录名的SQL语句:USE master;exec sp_addlogin@loginame='cz_account',@passwd='password',@sid=0x074477739DCA0E499C29394FFFC4ADE4;到此为止可以认为备机数据库的环境已经与主机同步了,还差数据库内的数据未同步。
2、准备备机数据库承接上文,该节是描述如何同步主备数据库内的数据。
可以尝试从刚刚使用的全备文件进行还原,在还原数据的时候需要使用选上“with non recover”。
如图所示:如果执行成功数据库将会变成这个样子:3、建立镜像由于是实验,没有为服务器配置双网卡,IP地址与图有点不一样,但是原理一样。
--主机执行:ALTER DATABASE shishan SET PARTNER ='TCP://10.168.6.45:5022';--如果主体执行不成功,尝试在备机中执行如下语句:ALTER DATABASE shishan SET PARTNER ='TCP://10.168.6.49:5022';如果执行成功,则主备数据库将会呈现如上图所示的图标。
如果建立失败,提示类似数据库事务日志未同步,则说主备数据库的数据(日志)未同步,为保证主备数据库内的数据一致,应在主数据库中实施一次“事务日志”备份,并还原到备数据库上。
备份“事务日志”如图所示:还原事务日志时需在选项中选择“restore with norecovery”,如图所示:成功还原以后再执行建立镜像的SQL语句。
sqlserver 架构
sqlserver 架构一、引言SQL Server 是由 Microsoft 公司开发的关系数据库管理系统(RDBMS),广泛应用于企业级应用和数据仓库。
在使用 SQL Server 进行数据库开发和管理时,了解其架构是至关重要的。
本文将深入探讨 SQL Server 的架构,介绍其各个组件和相互关系,帮助读者全面理解 SQL Server。
二、SQL Server 架构概述SQL Server 架构是一个多层次的体系结构,具有许多组件和服务。
下面将对 SQL Server 架构的各个层次进行介绍。
1. 物理存储层物理存储层是 SQL Server 架构的最底层,它负责将数据存储在磁盘上。
SQL Server 中的数据存储在称为数据文件的文件组中,数据文件是数据库实际存储数据的地方。
2. 数据库引擎层数据库引擎层是 SQL Server 架构的核心组件,它负责管理数据库的创建、管理和维护。
数据库引擎层包括以下几个主要子组件:(1) SQL Server 实例SQL Server 实例是 SQL Server 架构的一个基本单位,在一个 SQL Server 实例中可以包含多个数据库。
每个 SQL Server 实例都有一个唯一的实例名称和实例标识符。
(2) 数据库数据库是数据的集合,用于组织和存储数据。
每个数据库都有一个唯一的数据库名称和数据库标识符。
数据库可以包含表、视图、存储过程、触发器等对象。
(3) 数据库文件数据库文件是存储数据库数据的物理文件,每个数据库至少有一个数据文件和一个事务日志文件。
数据文件包含数据页,每个数据页存储一定数量的数据记录。
(4) 查询优化器查询优化器是数据库引擎层的一个重要组件,它负责对查询语句进行优化和执行计划的生成。
查询优化器根据查询语句的特性和数据分布情况,选择最优的执行计划来提高查询性能。
(5) SQL Server AgentSQL Server Agent 是 SQL Server 的作业调度器,它可以定期执行一些重复性的任务,如备份数据库、优化索引等。
Sql2022数据库镜像配置详细教程
Sql2022数据库镜像配置详细教程数据库镜像配置实施步骤:本文档主要讲解如何用SQLServer管理台配置数据库镜像主服务器:tb-develop镜像服务器:tb-guangi见证服务器:taobao-guangi1.备份数据库及传输日志首先全备份数据库.选择备份目录,备份类型选择Full然后备份传输日志2.在镜像服务器上还原数据库在镜像服务器上新建数据库右键选择还原数据库选定还原地址.注意:一定要选择NORECOVERY模式还原还原完后数据库显示模式如下3.在主数据库上配置回到主数据库上,点击镜像点击ConfigureSecurity设置下一步如果不需见证服务器此处选择No,本示例应用见证服务器下一步下一步点击连接,输入登录密码下一步设置见证服务器连接下一步如果3台服务器上运行SQLServer的用户不一致,请在此处分别设置运行用户.此处尤为重要,建议分别在服务器上运行SQLServer的账户设置为同一用户.Ne 某tFinih点击[开始镜像]立即运行配置好的镜像通过Failover,可手工切换主-镜像服务器.如果配置了见证服务器,当主数据库出现异常后,见证服务器会自动切换镜像服务器为主服务器.时间为10秒以内.(官方给出的时间更短)此tab页中的其它功能不在一一介绍.Q&A1.Q:当配置数据库镜像时出现无法启动镜像的异常是什么原因A:当配置数据库镜像时,MS默认将机器名做为服务器名称,所以会依赖于DNS解析.这样会导致无法定位到具体服务器.请尽量固定3台服务器的IP,如果IP发生变化,本机无法解析时,要去DNS上清除缓存,并重新注册客户端DNS.2.Q:镜像已经配置成功,启动时会报权限错误,是什么原因A:最经常出现的原因是3台服务器上的运行用户不一致,配置数据库镜像时也没有指定运行帐号.请到服务中修改MSSQLServer的运行账户,则可解决.3.Q:还原数据库时,报错无法还原,日志版本不一致,什么原因A:备份数据库时,一定要备份传输日志,并还原到镜像数据库.否则无法将此数据库作为镜像数据库。
数据库镜像详解
一数据库镜像简介1.1 数据库镜像概述数据库镜像维护一个数据库的两个副本,这两个副本必须驻留在不同的SQL Server 数据库引擎服务器实例上。
通常,这些服务器实例驻留在不同位置的计算机上。
启动数据库上的数据库镜像操作时,在这些服务器实例之间形成一种关系,称为“数据库镜像会话”。
其中一个服务器实例使数据库服务于客户端(“主体服务器”),另一个服务器实例则根据镜像会话的配置和状态,充当热备用或温备用服务器(“镜像服务器”)。
同步数据库镜像会话时,数据库镜像提供热备用服务器,可支持在已提交事务不丢失数据的情况下进行快速故障转移。
未同步会话时,镜像服务器通常用作热备用服务器(可能造成数据丢失)。
在“数据库镜像会话”中,主体服务器和镜像服务器作为“伙伴”进行通信和协作。
两个伙伴在会话中扮演互补的角色:“主体角色”和“镜像角色”。
在任何给定的时间,都是一个伙伴扮演主体角色,另一个伙伴扮演镜像角色。
每个伙伴拥有其当前角色。
拥有主体角色的伙伴称为“主体服务器”,其数据库副本为当前的主体数据库。
拥有镜像角色的伙伴称为“镜像服务器”,其数据库副本为当前的镜像数据库。
如果数据库镜像部署在生产环境中,则主体数据库即为“生产数据库”。
数据库镜像涉及尽快将对主体数据库执行的每项插入、更新和删除操作“重做”到镜像数据库中。
重做通过将活动事务日志记录的流发送到镜像服务器来完成,这会尽快将日志记录按顺序应用到镜像数据库中。
与逻辑级别执行的复制不同,数据库镜像在物理日志记录级别执行。
从SQL Server 2008 开始,在事务日志记录的流发送到镜像服务器之前,主体服务器会先将其压缩。
在所有镜像会话中都会进行这种日志压缩。
提示:给定的服务器实例可以参与到多个具有相同或不同伙伴的并发数据库镜像会话中。
某个服务器实例可能在某些会话中是伙伴,而在其他会话中则是见证服务器。
镜像服务器实例必须正在运行SQL Server 的相同版本。
1.2 数据库镜像的优点数据库镜像是一种简单的策略,具有下列优点:∙提高数据库的可用性发生灾难时,在具有自动故障转移功能的高安全性模式下,自动故障转移可快速使数据库的备用副本联机(而不会丢失数据)。
sqlserver备份原理
sqlserver备份原理SQL Server备份原理是指对数据库进行备份的工作原理。
备份是数据库管理的重要环节之一,通过对数据库进行备份可以保证数据的安全性和完整性,以应对数据丢失、系统故障等问题。
下面将从备份的概念、常见的备份类型、备份的原理及流程等方面详细介绍SQL Server备份原理。
概念:备份是指将数据库的数据和相关的元数据(表结构、索引、约束等)复制到一个存储设备或文件中,以便在数据丢失或系统故障时进行数据恢复。
备份可以是全量备份(完整备份)或增量备份,它们之间的区别在于备份的粒度和备份物理文件的大小。
常见备份类型:1.全备份(Full Backup):全备份将整个数据库的数据和元数据都备份到一个文件中。
全备份的优点是备份和恢复速度快,但缺点是备份文件较大。
2.增量备份(Incremental Backup):增量备份只备份自上次全备份或上次增量备份之后的更改数据。
增量备份的优点是备份文件较小,但缺点是在进行恢复时需要依次应用多个备份。
3.差异备份(Differential Backup):差异备份只备份自上次全备份或上次差异备份之后的更改数据。
差异备份的优点是备份文件较小,而且在进行恢复时只需要应用差异备份和最近的一次全备份即可。
4.镜像备份(Mirror Backup):镜像备份是指将整个数据库的数据备份到多个镜像备份集中。
镜像备份可以在多个硬件设备上并行进行备份,提高备份的速度和可靠性。
5.定期备份(Scheduled Backup):定期备份是指通过设置定期计划任务,按一定的时间间隔自动进行备份,以保证数据库的及时备份和恢复。
备份原理及流程:SQL Server备份的原理是通过将数据库的数据页(Data Page)复制到备份文件中。
数据页是SQL Server的最小存储单元,包含了表的行数据和索引数据等。
备份流程一般包括以下几个步骤:1.备份请求:用户或管理员发出备份请求。
SQLServer2008证书镜像(不含见证).doc
同在一个域中的sql server镜像配置是很简单的,直接在sql管理器- 数据库属性- 镜像- 配置安全性,一路回车到底就行,本文探讨的是没加域、或者不在一个可信的域中镜像的创建,在这种情况下,必须用证书创建才能成功。
实验环境:数据库主体192.168.1.1 需要同步的数据库:test数据库镜像192.168.1.2见证服务器无,有见证服务器也可参考本文1、删除以前配置过的镜像、证书等解释:如果之前配过镜像没成功,或者成功了却因为各种原因镜像不能启动,你在重新创建的时候最好把之前的镜像、证书等信息都删掉,如果是全新安装的数据库,忽略此步骤。
1-1 select * from master.sys.endpoints //查看之前创建过的镜像名1-2 select * from master.sys.certificates //查看之前创建过的证书根据上面查询的数据做以下删除操作1-3 DROP ENDPOINT Endpoint_Mirroring //删除镜像1-4 DROP CERTIFICATE HOST_1_cert //删除证书1-5 DROP CERTIFICATE HOST_2_cert //删除证书1-6 DROP LOGIN HOST_1_login //删除登录1-7 DROP USER HOST_1_user //删除用户1-8 DROP MASTER KEY //删除主key以上步骤必须按顺序来,否则报错,主体与镜像都要做此操作,请改成相应值2、配置主体192.168.1.1出站USE master;CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'fuchuan@123456';GOCREATE CERTIFICATE HOST_1_certWITH SUBJECT = 'HOST_1 certificate for database mirroring';GOCREATE ENDPOINT Endpoint_MirroringSTATE = STARTEDAS TCP (LISTENER_PORT=7024,LISTENER_IP = ALL)FOR DATABASE_MIRRORING (AUTHENTICATION = CERTIFICATE HOST_1_cert, ENCRYPTION = REQUIRED ALGORITHM AES, ROLE = ALL);GOBACKUP CERTIFICATE HOST_1_cert TO FILE = 'E:\HOST_1_cert.cer';GO3、配置镜像192.168.1.2出站USE master;CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'fuchuan@123456'; GOCREATE CERTIFICATE HOST_2_certWITH SUBJECT = 'HOST_2 certificate for database mirroring';GOCREATE ENDPOINT Endpoint_MirroringSTATE = STARTEDAS TCP (LISTENER_PORT=7024,LISTENER_IP = ALL)FOR DATABASE_MIRRORING (AUTHENTICATION = CERTIFICATE HOST_2_cert, ENCRYPTION = REQUIRED ALGORITHM AES, ROLE = ALL);GOBACKUP CERTIFICATE HOST_2_cert TO FILE = 'E:\HOST_2_cert.cer';GO4、将两个证书互相拷贝到对方的E盘5、配置主体192.168.1.1入站USE master;CREATE LOGIN HOST_2_LOGINWITH PASSWORD = 'fuchuan@123456';GOUSE master;CREATE USER HOST_2_USER FOR LOGIN HOST_2_LOGIN;GOCREATE CERTIFICATE HOST_2_certAUTHORIZATION HOST_2_USERFROM FILE = 'E:\HOST_2_cert.cer';GOGRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO HOST_2_LOGIN GO6、配置镜像192.168.1.2入站USE master;CREATE LOGIN HOST_1_LOGINWITH PASSWORD = 'fuchuan@123456';GOUSE master;CREATE USER HOST_1_USER FOR LOGIN HOST_1_LOGIN;GOCREATE CERTIFICATE HOST_1_certAUTHORIZATION HOST_1_USERFROM FILE = 'E:\HOST_1_cert.cer';GOGRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO HOST_1_LOGINGO7、备份主体192.168.1.1数据库USE master;GOALTER DATABASE DALSET RECOVERY FULL;GOBACKUP DATABASE DALTO DISK = 'e:\DAL.bak'WITH FORMATGOBACKUP LOG DALTO DISK = 'e:\DAL_log.bak'GO务必用以上命令备份,否则可能因无法还原事务日志而镜像失败8、还原数据库镜像到192.168.1.2RESTORE DATABASE tempFROM DISK = 'E:\temp.bak'WITH NORECOVERYGORESTORE LOG tempFROM DISK = 'E:\temp_log.bak'WITH FILE=1, NORECOVERYGO恢复前不需要预先建立数据库,直接在空数据库使用以上命令即可。
sql2005镜像
使用SQL Server Management Studio配置数据库镜像2010-09-20 作者:dqw 来源:dqw的blog一、简介“数据库镜像”是Sql Server 2005推出的一个主要用于提高数据库可用率的软件解决方案。
镜像是基于每个数据库执行的,仅适用于使用完整恢复模式的数据库。
简单恢复模式和大容量日志恢复模式不支持数据库镜像。
数据库镜像是通过维护一个热备用服务器而发挥作用的。
在一般的镜像会话期间,如果生产服务器出现故障,客户端应用程序可以通过重新连接到备用服务器来快速进行恢复。
二、前提条件1、准备好服务器,保证数据库版本至少是Sql Server 2005 SP1,当然最好是最新版本2、保证需要镜像的数据库为完全恢复模式3、配置域环境,数据库镜像使用域环境会比较方便,感觉比使用证书要省事4、设置sql server的服务以域账号运行5、选择镜像方案,镜像服务可以使用三个数据库实例(主、镜像、见证)也可以使用两个数据库实例(主、镜像),实际使用环境中每个实例应该是运行在不同的服务器上。
如果使用见证服务器的话好处是可以实现自动的故障转移,但是需要使用3台服务器,而且至少要保证其中2台服务器是可用的,因为如果镜像服务器和见证服务器同时当机,即时主服务器没有任何问题也是无法对外提供服务的。
我这里只是为了实现数据库的镜像,做一个实时的数据库备份所以没有使用见证服务器,如果主服务器当机需要手动切换镜像服务器为主服务器。
三、具体步骤1、在主服务器完整备份需要镜像的数据库,在镜像服务器以“不对数据库执行任何操作,不会滚未提交的事务。
(RESTORE WITH NORECOVERY)”的状态恢复。
然后备份事务日志,以相同的恢复状态在镜像服务器恢复事务日志。
2、在主服务器,选择需要镜像数据库的镜像功能,点击“配置安全性”3、选择否,不包括见证服务器实例4、选择主体服务器实例5、选择镜像服务器实例6、如果主服务器实例和镜像服务器实例是以不同的域账户运行的,需要输入对应的账户,我使用的是相同的账户所以留空7、配置完成8、配置端点9、点击“开始镜像”,完成10、如果没有提示任何错误,主服务器的数据库会显示“主体,已同步”,镜像服务器的数据库会显示“镜像,已同步,正在还原…”,数据库镜像服务配置完成四、故障转移1、主机备机互换在主机按“故障转移”按钮就可以了2、如果主机当机,需要启用镜像服务器当主服务器在镜像服务器执行USE master;ALTER DATABASE 数据库名SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS;然后按“故障转移”按钮就可以了五、遇到的错误1、“消息1418,级别16,状态1,第1 行服务器网络地址"TCP://机器名或IP地址:端口号" 无法访问或不存在。
SQLServer数据库的高可用架构
SQLServer数据库的高可用架构SQL Server数据库的高可用架构数据是企业最为宝贵的资产之一,而网络交互时,数据的丢失或损毁往往也是极为常见的事情。
因此,在企业级应用系统中采用高可用性系统,来提高数据的可靠性和稳定性,保证业务的连续性,具有非常重要的意义。
SQL Server数据库的高可用架构是一种基于高效、稳定性和可扩展性的分布式系统设计,通过该系统可以实现非常高的系统集成度和服务可靠性,下面,我们来详细探讨一下SQL Server数据库的高可用架构。
一、基本概念SQL Server数据库的高可用架构是指基于Windows系统的故障切换服务和数据库镜像等高可用性技术,可以实现在数据库服务器的单个设备或者多个设备之间,自动进行数据库服务器的切换,以便保证业务的连续性。
二、高可用架构设计SQL Server数据库的高可用架构设计,通常采用多台服务器的集群模式,也就是基于主/从(Primary/Secondary)模式的集群架构。
这种架构下,主服务器是系统的核心,负责数据的修改和维护,同时,从服务器是主服务器的备份,并且同时维护一份与主服务器相同版本的数据,当主服务器故障时,从服务器会开始负责服务器的维护,保证业务的连续性。
三、高可用性技术1.数据镜像(Database Mirroring)数据镜像是由SQL Server 2005引入的一种高可用性技术,它通过将一个服务器上的数据完全复制到另一个服务器上,来保证数据的备份和可靠性。
当数据库服务器出现故障时,镜像数据库会自动切换,并将所有需要的修改应用到镜像数据库中,以便保证业务的连续性。
2.自动化故障切换(Automatic Failover)自动化故障切换是SQL Server数据库的高可用性技术之一,它通过自动将主服务器上的业务切换到备份服务器上,来保证业务连续性的可靠性。
当主服务器出现故障时,备份服务器会自动担任主服务器所负责的业务,并且执行所有必要的调整和维护工作,保证业务的稳定性。
SQLServer2008镜像设置手册
北京八度互联科技有限公司Copyright © 2005-2009 目录1.版本确认 (3)2.数据库恢复模式确认 (3)3.主备sqlserver实例互通 (3)3.1创建证书 (3)3.2创建连接端口 (4)3.3备份证书 (4)3.4互换证书 (5)3.5添加登陆名、用户 (5)4.建立镜像关系 (5)4.1同步登录名密码 (5)4.2 准备备机数据库 (6)4.3 建立镜像 (7)修改记录A-增加 * M-修改 * D-删除1.版本确认只有SQL Server 2005 标准版、企业版和开发版及以上才可以建立数据镜像。
其他版本即Express只能作为见证服务器。
命令行:2.数据库恢复模式确认若要对数据库进行数据库镜像,必须将它更改为使用完整恢复模式。
命令行:下面正式开始实施:3.主备sqlserver实例互通实现互通可以使用域或证书来实现,考虑实现的简单,选取证书的方式实现。
3.1创建证书--备机执行:3.2创建连接端口3.3备份证书--备机执行:3.4互换证书将备份到D:\SQLBackup\的证书进行互换,即HOST_A_cert.cer复制到备机的。
HOST_B_cert.cer复制到主机3.5添加登陆名、用户4.建立镜像关系数据库镜像无法维护登录名,所以需要我们手工添加维护用户。
通常来说数据库都将会有若干个用户作为访问数据库的用户,并且数据库会有相应的登录名,但是在备机中缺少与之相对应的登录名,例如某业务系统使用’myuser’作为登录名访问数据库,但是在备机中没有’myuser’这个登录名,因此一旦主备切换,业务系统就无法登录数据库了,这种情况称为"孤立用户"4.1同步登录名密码--主机执行:4.2 准备备机数据库从刚刚使用的全备文件进行还原,在还原数据的时候需要使用选上“with non norecovery”。
如图所示:如果执行成功数据库将会变成这个样子:4.3 建立镜像注:先备机执行如果建立失败,提示类似数据库事务日志未同步,需在主数据库中实施一次“事务日志”备份,并还原到备数据库上。
SQL SERVER2008 镜像维护手册--补充
SQL SERVER2008 镜像维护手册1.0以下是在没有见证机的情况下做的维护实践1、高性能状态下主机服务停止镜像(备机) 上执行强制服务:可以实现主备互换。
镜像机变为(主机挂起/正在还原)原主机再启动服务,显示挂起状态。
执行语句。
原主机将变为镜像(备机(即镜像,已同步/正在还原…))原镜像机将变为(主机已同步)。
2、如果要从原镜像机(相对现在主机)手动切换回镜像状态。
需执行(即将运行模式改为高安全)。
这时状态就变回最初的状态(即原始的主机和备(镜像)机)。
3、在原始的主机、备机状态下。
将主机网络断开。
再备(镜像)机上执行同样可以实现主备互换,但是此时的备(镜像)机虽然成为了主机,但是其运行模式为高安全模式,需要手动切换到高性能模式下。
然后将原主机联网后在主机上执行:主机变为镜像机(镜像,已同步/正在还原…)4、高安全和高性能状态下主机服务暂停后,镜像机会保持不变(即还是镜像状态)。
此时在镜像机上是不能强制执行即不可以实现主备互换5、高安全模式下将原主机服务停止镜像机自动转为主机,但运行模式为高安全模式,此时在镜像(相对现在为主机) 是不能调整运行模式的。
即不能从高安全调整到高性能模式。
只有当原主机网络通或服务开始运行后在镜像(相对现在为主机)才可以调整运行模式,同时这时也不允许强制执行在原主机上执行然后再到镜像机上执行即调整为高安全模式后方可在镜像机上执行6、高性能模式下将服务停止,镜像上可以强制执行:、主机服务开始后执行。
.原镜像机上不能执行:但是可以执行然后原主机还是不可以执行原镜像机执行才可以将镜像和主机切换回最初的原始状态(主机、镜像)。
注意,此时需手动调整为高性能模式6、高性能运行模式在主机上不能强行执行在备机上强行执行在主机上将运行模式改为高安全模式后可以执行即成功执行主备互换。
但是可以在主机(原备机)上执行(运行模式必须是高安全模式)即成功执行主备互换。
然后调整为高性能运行模式主机服务停止:。
SQL Server mirror 镜像配置
我理解的SQL Server 2005镜像配置实际上就是由三个服务器(也可以是同一服务器的三个SQL实例)组成的一个保证数据的环境,分别是:主服务器、从服务器、见证服务器。
主服务器:数据存放的地方
从服务器:数据备份的地方(即:主服务器的镜像)
见证服务器:动态调配主/从服务器的第三方服务器
5 STATE = STARTED
6 AS TCP (
7 LISTENER_PORT = 5022 --监听端口,任意指定(三个服务器的端口最好是一致)
8 , LISTENER_IP = ALL --监听IP地址,网内所有地址
9 )
10 FOR DATABASE_MIRRORING (
11 AUTHENTICATION = WINDOWS --认证方式,Windows
开始SQL Server 2005镜像配置
一、在A、B、C中新配置一个用户(DBUser),该用户要具有SQL Server的所有使用权限,我这里是将该用户添加到Administrators组。
二、在A、B、C中执行以下SQL语句:
在A、B、C中创建对象
1USE master
2GO
3
4CREATE ENDPOINT Endpoint_Mirroring
环境介绍
首先介绍一下配置的环境:
本次配置使用的是三个独立的服务器(A、B、C三台电脑)。
A:主服务器,IP:192.168.0.2
B:从服务器,IP:192.168.0.3
C:见证服务器,IP:192.168.0.4
三台电脑系同一局域网内,系统均是Windows Server 2003,数据库是SQL Server 2005
