数据库镜像-sql2005-三种模式
数据库镜像搭建一概述数据库镜像是SQL SERVER 2005用于提高数据库可用性的新技术。
数据库镜像将事务日志记录直接从一台服务器传输到另一台服务器,并且能够在出现故障时快速转移到备用服务器。
可以编写客户端程序自动重定向连接信息,这样一旦出现故障转移就可以自动连接到备用服务器和数据库。
优势:数据库镜像可以在不丢失已提交数据的前提下进行快速故障转移,无须专门的硬件,并且易于配置和管理。
二环境准备操作系统:Window 2003 enterprise sp2(至少两台,如要启用自动故障转移,必需三台) SQL版本:MSSQL SERVER 2005 SP3检查SQL SERVER版本:exec xp_msverselect SERVERPROPERTY('productlevel')数据库准备:准备一个数据库:ccerp_jzt ,备份此数据库还原到另外一台机器上,另外一台必须是with no recovery这里我假设服务器A,B,CA为主体服务器,B为镜像服务器,C为见证服务器A服务器use mastergorestore filelistonly fromdisk=N'f:\databak\ccerp_jzt_backup_200911250100.bak'restore database ccerp_jzt fromdisk=N'f:\databak\ccerp_jzt_backup_200911250100.bak'withreplace,recovery,move'ccerp_ydswzip_Data'to'd:\data\ccerp_jzt.mdf',move'ccerp_ydswzip_Log'to'd:\data\ccerp_jzt_log.ldf'exec sp_helpdb'ccerp_jzt'backup database ccerp_jzt to disk=N'f:\databak\sk.bak'with init --更改恢复模式alter database ccerp_jzt set recovery fullB服务器:CREATE DATABASE ccerp_jztON(NAME= Sales_dat,FILENAME='d:\data\ccerp_jzt.mdf',SIZE= 10)LOG ON(NAME='ccerp_jzt_log',FILENAME='d:\data\ccerp_jzt_log.ldf',SIZE= 5MB)GOrestore filelistonly from disk=N'f:\xxzx\data\sk.bak'use mastergorestore database ccerp_jzt from disk=N'f:\xxzx\data\sk.bak'with replace,norecovery,exec sp_helpdb'ccerp_jzt'C服务器只要装上SQL SERVER 2005就可以,无需其他准备准备完成后如下图所示:三三种模式的搭建数据库镜像要建立必需得建立信任关系,那么在WIN环境下建立信任关系可以通过三种方式:域帐户,证书信任,windows 匿名登陆,现就前两种模式做配置说明.3.1 域帐户模式:3.1.1 更改mssqlserver服务的的登陆方式为域帐户登陆方式:进入windows服务管理控制台,更改服务登陆帐户,使域账户有更改MSSQL SERVER服务状态的权限.三台机器都做同样设置3.1.2 建立端点:通过图形界面建立端点:启动SQLWB,按图一直下一步用域帐户登陆如果成功则:3.2 证书模式3.2.1建立证书&端点参与数据库镜像会话的服务器必须彼此信任。
对于本地通信而言,例如一个域内的通信,信任意味着SQL Server实例登陆账号必须有权限连接到其他镜像服务器,也包括endpoints。
首先在每个服务器上使用CREATE LOGIN命令,然后使用GRANT CONNECT ON ENDPOINT命令.非信任域之间的通信必须使用证书。
如果使用CREATE CERTIFICATE 语句创建自签名的证书,基本上所有数据镜像证书的要求都可以满足。
确认在CREA TE 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='2010-03-10';主体服务器上执行:USE master;CREATE MASTER KEY ENCRYPTION BY PASSWORD='TEST';CREATE CERTIFICATE HOST_B_cert WITH SUBJECT='HOST_B certificate', START_DATE='2010-03-10';见证服务器上执行:USE master;CREATE MASTER KEY ENCRYPTION BY PASSWORD='TEST';CREATE CERTIFICATE HOST_C_cert WITH SUBJECT='HOST_C certificate', START_DATE='2010-03-10';二建立端点:镜像服务器上执行:--create mirror endpoint on primary ACREATE ENDPOINT Endpoint_MirroringSTATE=STARTED ASTCP(LISTENER_PORT=5022 ,LISTENER_IP=ALL)FOR DATABASE_MIRRORING(AUTHENTICATION=CERTIFICATE HOST_A_cert ,ENCRYPTION=REQUIRED ALGORITHM AES ,ROLE=ALL);主体服务器上执行:--Create endpoint on mirror server BCREATE ENDPOINT Endpoint_MirroringSTATE=STARTEDASTCP(LISTENER_PORT=5022 ,LISTENER_IP=ALL)FORDATABASE_MIRRORING(AUTHENTICATION=CERTIFICATE HOST_B_cert ,ENCRYPTION=REQUIRED ALGORITHM AES ,ROLE=ALL);见证服务器上执行:--Create endpoint on witness server CCREATE ENDPOINT Endpoint_MirroringSTATE=STARTEDASTCP(LISTENER_PORT=5022 ,LISTENER_IP=ALL)FORDATABASE_MIRRORING(AUTHENTICATION=CERTIFICATE HOST_C_cert ,ENCRYPTION=REQUIRED ALGORITHM AES ,ROLE=witness);SELECT*FROM sys.database_mirroring_endpoints;证书互备:镜像服务器上执行:--backup certificateBACKUP CERTIFICATE HOST_A_cert TO FILE='e:\HOST_A_cert.cer'主体服务器上执行--backup certificateBACKUP 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 userCREATE 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 sidselect loginname,name,sid From syslogins主体服务器上执行:--Create userCREATE 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 userCREATE 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 sidselect loginname,name,sid From syslogins见证服务器上执行:--Create userCREATE 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 witnessCREATE 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_loginUSE master;exec sp_addlogin@loginame ='HOST_B_login',@passwd ='test',@sid = 0x1A914CA3D1D00C4793EBC96E4C4F4352 ;ALTER DATABASE ccerp_jzt SET PARTNER='TCP://192.168.137.32:5022';四.建立镜像:先在镜像服务器上执行:ALTER DATABASE ccerp_jzt SET PARTNER='TCP://192.168.137.44:5022'; 接着主体服务器执行:ALTER DATABASE ccerp_jzt SET PARTNER='TCP://192.168.137.32:5022'; ALTER DATABASE ccerp_jzt SET witness = 'TCP://192.168.137.49:5022'; 至此引证书建立完毕四、测试操作1、主备互换--主机执行:1USE master;2ALTER DATABASE<DatabaseName>SET PARTNER FAILOVER;32、主服务器Down掉,备机紧急启动并且开始服务--备机执行:1USE master;2ALTER DATABASE<DatabaseName>SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS; 33、原来的主服务器恢复,可以继续工作,需要重新设定镜像1--备机执行:2USE master;3ALTER DATABASE<DatabaseName>SET PARTNER RESUME; --恢复镜像4ALTER DATABASE<DatabaseName>SET PARTNER FAILOVER; --切换主备54、原来的主服务器恢复,可以继续工作--默认情况下,事务安全级别的设置为 FULL,即同步运行模式,而且SQL Server 2005 标准版只支持同步模式。
sql 2005 BACKUP or RESTORE(备份还原)
寒山sql数据库修复中心/备份与还原概述: 数据库备份与还原: 备份是在数据库灾难发生时的最后一道防线-->"备份、备份、再备份"SQL Server 2005备份与还原增强特性提高了系统的可用性-->部分备份、备份镜像……在线还原、分段还原、页面级还原数据库的恢复模式: 数据库的恢复模式控制备份和还原的行为三种恢复模式: 简单恢复模式-->事务日志被自动截断,不能使用日志文件进行恢复完整恢复模式-->保留所有操作的完整事务日志大容量日志恢复模式-->简要记录大容量操作(索引创建和大容量加载)的日志,完整记录其它事务的日志数据库恢复模式的选择-->见下列表:还原操作优点数据丢失情况恢复到即时点简单恢复模型高性能大容量复制操作,最小的日志空间占用数据库备份后所做的更改丢失只能恢复到备份时刻大容量日志高性能大容量复制操作,较小的日志空间占用会丢失备份后大容量操作的数据可以恢复到任意备份的结尾完全最小的数据丢失可能,恢复到即时点日志不损坏将不丢失任何数据恢复到任意时间点数据库的恢复模式和所支持的还原操作-->见下列表:还原操作完整还原模式大容量日志还原模式简单还原模式数据还原日志可用时完整还原某些数据丢失上次完整或者差异备份后的数据丢失即时点还原日志所包含的任何时间日志中包含大容量操作时不允许不支持文件级还原完全支持不完全支持仅对.ndf辅助文件可用页面级还原完全支持不完全支持无文件组还原完全支持不完全支持仅对.ndf辅助文件可用创建数据库备份: 数据库备份-->完整数据库备份: 包含数据库中的所有数据为差异、事务日志备份创建基准数据库差异数据库备份: 差异备份比基准备份小而且备份速度快,便于经常性的备份任务新特性: 不同于SQL Server的前期版本,在SQL Server 2005中,所有数据和差异备份均包含日志记录部分备份和部分差异备份-->部分备份: 包含主文件组、每个读写文件组及任何指定只读文件中的所有数据只读数据库的部分备份仅包含主文件组READ_WRITE_FILEGROUPS 应用场景: 在最后一次完整备份后,拥有一个或多个只读文件组的情况[BACKUP DATABASE Northwind READ_WRITE_FILEGROUPS TO DISK='C:\NWBackup.BAK' 文件和文件组备份-->针对大型数据库,可以分别备份和还原数据库中的文件: 仅还原已损坏的文件,而不必还原数据库的其余部分文件差异备份: 不要对同一数据库进行数据库差异备份和文件差异备份简单还原模式的限制: 只能对只读文件和文件组进行备份增加了备份和还原管理的复杂性事务日志备份-->通过事务日志备份可以将数据库恢复到即时点必须至少有一个完整数据库备份基础尾日志备份: 在恢复数据库前保存尚未备份的日志数据SQL Server 2005要求先备份日志尾部,然后再还原当前的数据库使用选项NORECOVERY或NO_TRUNCATE 使用COPY_ONLY备份选项-->在不打断正常备份系列的情况下复制数据库内容: 不截断事务日志,不包含在要进行还原的日志系列中该备份将不依赖于任何其它备份[BACKUP DATABASE AdventureWorks TO AWBackup WITH COPY_ONLY]确保备份完整性的选项-->在BACKUP和RESTORE中使用带有CHECKSUMS选项: 验证页校验和备份时生成整个备份的校验和使用RESTORE VERIFYONLY: 备份集是否完整以及所有卷是否可读页ID(如同要写入数据) 校验和(如果显示在媒体上) 检查目标设备上是否具有足够的空间镜像备份媒体-->通过提供冗余来提高备份的可靠性包含两个到四个镜像,每个镜像包含每个媒体簇的所有卷。
MS SQL SERVER2005 SP1镜像高可用性实施手册
MS SQL SERVER2005 SP1镜像高可用性实施手册标题MS SQLSERVER 2005 SP1镜像高可用性实施手册作者Fire9 Blog¡s E-mail Fire9dingh@创建日期2008年04月28日星期一版本Release 1.0SQL SERVER2005的镜像功能是在这个版本中新增的一个功能,该功能大大提高了在系统在出现故障时,切换到镜像服务器上的速度,大约10秒以内,这要比SQL SERVER2005群集故障切换速度提高了20秒(不包括RECOVERY动作)。
为企业业务需求的应用环境又扩充了新的解决方案。
这里需要注意的是,只有打上SP1的补丁才可以真正应用于生产环境!SQL SERVER2005的镜像功能有三种类型,高可用性;高级别保护性;高性能性;高可用性类型提供了完全的事务模式,可以通过见证服务器仲裁,主体服务器出现问题时可以自动切换到镜像服务器(也可以通过手动切换)达到高可用性的目的。
另外两种类型该手册里没有涉及到,所以暂时不提了,想了解可以查找一些相关资料。
实验环境:服务器名角色IP地址操作系统软件FUYUA 主体服务器192.168.23.129 WIN2003SP1 SQL SERVER 2005SP1 FUYUM 镜像服务器192.168.23.130 WIN2003SP1 SQL SERVER 2005SP1 FUYUW 见证服务器192.168.23.131 WIN2003SP1 SQL SERVER 2005SP1说明:SQL SERVER 2005镜像功能可以在域环境和非域环境下实施,但是在认证方式上是不一样的,如果是域环境可以使用经过域认证的用户就可以了,但是非域环境下就一定要给用户配置证书,如果不配置证书是无法无法完成镜像功能的。
这里是用SQL语句完成的整个镜像高可用性的配置过程。
在主体服务器上操作--建立镜像的数据库(必须保证镜像的数据库恢复模式是完整)USE MASTER;GO--设置需要镜像的数据库恢复模式为完整ALTER DATABASE FUYU SET RECOVERY FULL;GO============================================================================= --备份需要镜像的数据库BACKUP DATABASE FUYU TO DISK='F:\SHARE\FUYUDATA.BAK';GO============================================================================= --还原需要镜像的数据库RESTORE DATABASE FUYU FROM DISK='F:\SHARE\FUYUDATA.BAK' WITH NORECOVERY;GO============================================================================= --建立主体服务器证书CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'FUYUdomain';GOUSE MASTER;CREATE CERTIFICATE FUYUA_certWITH SUBJECT = 'FUYUA_cert for database EPmirroring',START_DATE = '03/05/2008',EXPIRY_DATE = '03/04/2088' ;GO--建立镜像服务器证书CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'FUYUdomain';GOUSE MASTER;CREATE CERTIFICATE FUYUM_certWITH SUBJECT = 'FUYUM_cert for database EPmirroring',START_DATE = '03/05/2008',EXPIRY_DATE = '03/04/2088' ;GO--建立见证服务器证书CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'FUYUdomain';GOUSE MASTER;CREATE CERTIFICATE FUYUW_certWITH SUBJECT = 'FUYUW_cert for database EPmirroring',START_DATE = '03/05/2008',EXPIRY_DATE = '03/04/2088' ;GO============================================================================= --为主体服务器建立一个镜像监视点CREATE ENDPOINT Endpoint_MirroringFUYUSTATE = STARTEDAS TCP (LISTENER_PORT=5022, LISTENER_IP = ALL)FOR DATABASE_MIRRORING (AUTHENTICATION = CERTIFICATE FUYUA_cert, ENCRYPTION = REQUIRED ALGORITHM AES, ROLE = PARTNER);GO--为镜像服务器建立一个镜像监视点CREATE ENDPOINT Endpoint_MirroringFUYUSTATE = STARTEDAS TCP (LISTENER_PORT=5022, LISTENER_IP = ALL)FOR DATABASE_MIRRORING (AUTHENTICATION = CERTIFICATE FUYUM_cert, ENCRYPTION = REQUIRED ALGORITHM AES, ROLE = PARTNER);GO--为见证服务器建立一个镜像监视点CREATE ENDPOINT Endpoint_MirroringFUYUSTATE = STARTEDAS TCP (LISTENER_PORT=5022, LISTENER_IP = ALL)FOR DATABASE_MIRRORING (AUTHENTICATION = CERTIFICATE FUYUW_cert, ENCRYPTION = REQUIRED ALGORITHM AES, ROLE = WITNESS);GO============================================================================= --备份主体服务器证书BACKUP CERTIFICATE FUYUA_cert TO FILE = 'F:\SHARE\FUYUA_cert.cer';GO--备份镜像服务器证书BACKUP CERTIFICATE FUYUM_cert TO FILE = 'F:\SHARE\FUYUM_cert.cer';GO--备份见证服务器证书BACKUP CERTIFICATE FUYUW_cert TO FILE = 'F:\SHARE\FUYUW_cert.cer';GO--把三台服务器的证书相互复制到共享目录下============================================================================= --做主体服务器入站USE master;CREATE LOGIN FUYUM_login WITH PASSWORD = 'FUYUdomain';GOCREATE USER FUYUM_user FOR LOGIN FUYUM_login;GOCREATE CERTIFICATE FUYUM_certAUTHORIZATION FUYUM_userFROM FILE = 'F:\SHARE\FUYUM_cert.cer'GOGRANT CONNECT ON ENDPOINT::endpoint_mirroringFUYU TO FUYUM_login;GO----------------------------------------------------------------------------USE master;CREATE LOGIN FUYUW_login WITH PASSWORD = 'FUYUdomain';GOCREATE USER FUYUW_user FOR LOGIN FUYUW_login;GOCREATE CERTIFICATE FUYUW_certAUTHORIZATION FUYUW_userFROM FILE = 'F:\SHARE\FUYUW_cert.cer'GOGRANT CONNECT ON ENDPOINT::endpoint_mirroringFUYU TO FUYUW_login; GO--做镜像服务器入站USE master;CREATE LOGIN FUYUA_login WITH PASSWORD = 'FUYUdomain';GOCREATE USER FUYUA_user FOR LOGIN FUYUA_login;GOCREATE CERTIFICATE FUYUA_certAUTHORIZATION FUYUA_userFROM FILE = 'F:\SHARE\FUYUA_cert.cer'GOGRANT CONNECT ON ENDPOINT::endpoint_mirroringFUYU TO FUYUA_login; GO----------------------------------------------------------------------------USE master;CREATE LOGIN FUYUW_login WITH PASSWORD = 'FUYUdomain';GOCREATE USER FUYUW_user FOR LOGIN FUYUW_login;GOCREATE CERTIFICATE FUYUW_certAUTHORIZATION FUYUW_userFROM FILE = 'F:\SHARE\FUYUW_cert.cer'GOGRANT CONNECT ON ENDPOINT::endpoint_mirroringFUYU TO FUYUW_login; GO--做见证服务器入站USE master;CREATE LOGIN FUYUA_login WITH PASSWORD = 'FUYUdomain';GOCREATE USER FUYUA_user FOR LOGIN FUYUA_login;GOCREATE CERTIFICATE FUYUA_certAUTHORIZATION FUYUA_userFROM FILE = 'F:\SHARE\FUYUA_cert.cer'GOGRANT CONNECT ON ENDPOINT::endpoint_mirroringFUYU TO FUYUA_login;GO-----------------------------------------------------------------------------USE master;CREATE LOGIN FUYUM_login WITH PASSWORD = 'FUYUdomain';GOCREATE USER FUYUM_user FOR LOGIN FUYUM_login;GOCREATE CERTIFICATE FUYUM_certAUTHORIZATION FUYUM_userFROM FILE = 'F:\SHARE\FUYUM_cert.cer'GOGRANT CONNECT ON ENDPOINT::endpoint_mirroringFUYU TO FUYUM_login;GO============================================================================= --启动镜像高可用性环境(注意顺序)--在镜像服务器上指定主体服务器ALTER DATABASE FUYUSET PARTNER = 'TCP://FUYUA:5022'GO--在主体服务器上指定镜像服务器ALTER DATABASE FUYUSET PARTNER = 'TCP://FUYUM:5022'GO--在主体服务器上指定见证服务器ALTER DATABASE FUYUSET WITNESS = 'TCP://FUYUW:5022'GO============================================================================= --指定数据库镜像事务安全级别ALTER DATABASE FUYU SET SAFETY FULLGO整个镜像高可用配置完成。
SQL SERVER 2005数据库镜像实现高可用性
本文详细介绍利用SQL SERVER 2005数据库镜像实现高可用性[转]2010-03-19 17:07我们首先来看一下什么是数据镜像:现在几乎所有的应用系统都是基于数据库的,那么数据库的负荷是比较大的,在一天24小时中,任何时间都有可能会有数据要保存到数据库,或是从数据库中读出数据。
任意时刻都会有用户连接到我们的数据库服务器上,几十,几百甚至成千上万个用户来连接使用我们的数据库,那么不论是计划内的宕机还是计划外的故障都会造成一定的损失。
给我们的用户或是企业带很大的损失,特别是随着数据时代的到来,用户对数据的使用提出了更高的要求,那么作为一个DBA,就要想怎么做才能将这个损失减少到最低,正是因为基于这种需求,数据库镜像技术出现了!SQL SERVER2005中首次提出了数据库镜像概念。
特点:基于软件的高可用性解决方案那是完全基于软件的高可用性解决方案。
不需要增加硬件成本,也就是低硬件成本快速的故障转移恢复,最主要的一个亮点,就是快速的故障转移恢复。
3秒(对于用户或是DBA是特别有吸引力的)数据量大的情况一般10秒.在这个数据库镜像技术中有一个数据库服务器我们称为主数据库。
它负责用户的连接和数据的处理。
还有一个是从服务器,确切来说,这里应该叫镜像服务器,上面也有一个数据库,叫镜像数据库,这个数据库用于存放我们主数据库的一个热备份。
也就是说它虽然不连接用户机,但是它对于主服务器上的数据更改呀,变化呀,都能做一个热备份,也就是说如果用户更新了主数据库中的内容,那么主数据库会根据镜像技术将更新传送给镜像服务器,这样就能保证主服务器和从服务器之间的数据是一致的,那么假如说由于某种原因,我们的主服务器或是主数据库不可用了,例如,网络中断,系统故障等等,那么客户端会重新定向到镜像服务器,那么客户端仍然能读取数据,写入数据,他感觉不到主数据库服务已经宕机了。
所以采用数据库镜像技术以后,对于用户来说这个可用性就增强了,而且对于故障恢复时间也缩短了。
SQL Server 2005 镜像设置Manual
SQL Server 2005 镜像设置Manual一、 SQL Server 2005镜像的先决条件:1、需要做镜像的几台电脑必须在相同网域内2、使用相同的网域账户登入OS操作系统3、登入用户具有安装软件的权限4、在相同账户下安装SQL Server 2005+SP2注:安装路径必须选择电脑上最大的分区上。
5、SQL Server和SQL Server Browser需要使用域账户启动(如下图),镜像的几台电脑上使用相同的设置更改登录账号时双击相应服务即可更改(如下图):二、 镜像模式1、高可用性模式:通过确保在丢失一个服务器之后仍向数据库提供服务来提供高可用性。
高可用性模式要求存在“见证服务器”,该服务器驻留在第三个计算机上。
与这两个伙伴不同的是,见证服务器并不能用于数据库。
相反,见证服务器监视主体服务器和镜像服务器的状态。
主体服务器变得不可用时,会话可以自动故障转移到镜像服务器。
2、高级别保护模式:通过要求数据同时放置在两个地方来对数据提供高级别保护。
因为没有见证服务器,所以不需要仲裁。
如果镜像服务器实例出现故障,主体服务器实例不会受到影响。
如果主体服务器实例出现故障,可以强制镜像服务器实例执行服务(未提交的数据可能丢失)。
3、高性能模式:在高性能模式下,主体服务器向镜像服务器发送事务日志之后,就立即向客户端发送确认,而不会等待镜像服务器的确认。
镜像服务器第一次赶上主体服务器之后,数据库就会同步。
但是,事务将直接提交而不会等待镜像服务器镜像日志。
异步操作允许主体服务器的运行有一段最短事务滞后时间。
三、 镜像的设置本Manual 中假设:BTMIRROR03为主数据库所在服务器BTMIRROR02为镜像数据所在服务器BTMIRROR01为见证服务器QUORUM、BTMIRROR、BTMASTER分别为主服务器、镜像服务器、见证服务器上的实例1、备份主数据库1>右键单击需要备份的主数据选择:all Tasks‐>Back Up2>在备份设置窗口中设置Backup Type为Full,设置备份路径和备份文件名称(路径和名称也可以使用默认设置)3>将备份文档Copy到镜像服务器上注:备份完成后禁止对该数据库做任何操作,BarTector也不允许连接该数据库, 建议关闭所有连接该数据库的BarTector软件。
简述数据库系统的三级模式结构以及两级映像的功能
简述数据库系统的三级模式结构以及两级映像的功能数据库系统的三级模式结构分为外模式、概念模式和内模式。
1. 外模式:也称为用户模式,是用户对数据库的抽象,它定义了用户能够看到和操作的数据的逻辑结构和访问方式。
外模式是根据用户需求和用户角色来定义的,每个用户可以拥有一个或多个独立的外模式。
外模式使得用户可以方便地使用数据库系统进行操作,而不需要了解数据库的内部结构。
2. 概念模式:也称为全局模式,是对数据库的全局逻辑结构和约束的描述。
概念模式用来定义数据库中实际存储的数据结构,包括实体、关系、属性以及它们之间的关系。
概念模式是所有用户共享的,它提供了对数据库的整体组织和结构的描述。
概念模式是数据库设计的核心,它反映了应用领域的知识和要求,并为数据库实现提供了指导。
3. 内模式:也称为存储模式,是对数据库中实际存储的数据的物理结构和存储方式的描述。
内模式定义了数据在磁盘上的存储方式、存储结构和索引方式等。
内模式是数据库管理系统最底层的层次,它提供了对物理存储的细节的控制和管理。
两级映像指的是外模式和概念模式之间的映像,以及概念模式和内模式之间的映像。
1. 外模式与概念模式的映像:外模式与概念模式之间的映像定义了用户对数据库的逻辑结构的描述与全局逻辑结构的对应关系。
外模式通过映像将用户的视图转换为概念模式中的实体和关系,从而实现用户对数据库的访问和操作。
2. 概念模式与内模式的映像:概念模式与内模式之间的映像定义了数据库中逻辑结构与物理结构之间的对应关系。
概念模式通过映像将全局逻辑结构转换为数据库实际的物理存储结构,包括数据的存储方式、存储位置、索引方式等。
这样可以在数据存储和检索时提高效率,并且对物理存储的改变不会对用户的逻辑结构造成影响。
两级映像的功能是将不同层次之间的结构和约束联系起来,实现了用户视图与数据存储之间的透明性。
用户只需要关注自己所需的数据以及相关的操作,而不需要了解底层的物理存储细节。
SQLServer2005镜像详解
概述数据库镜像是SQL SERVER 2005用于提高数据库可用性的新技术。
数据库镜像将事务日志记录直接从一台服务器传输到另一台服务器,并且能够在出现故障时快速转移到备用服务器。
可以编写客户端程序自动重定向连接信息,这样一旦出现故障转移就可以自动连接到备用服务器和数据库。
自动进行故障转移并且使数据损失最小化通常包括昂贵的硬件和复杂的软件。
但是,数据库镜像可以在不丢失已提交数据的前提下进行快速故障转移,无须专门的硬件,并且易于配置和管理。
数据库镜像介绍在数据库镜像中,一台SQL Server 2005实例连续不断的将数据库事务日志发送到另一台备用SQL Server实例的数据库副本中。
发送方的数据库和服务器担当主角色,而接收方的数据库和服务器担当镜像角色。
主服务器和镜像服务器必须是独立的SQL Server 2005实例。
在所有SQL Server数据库中,在对真正的数据页面进行修改之前,数据改变首先都记录在事务日志中。
事务日志记录先被放置在内存中的数据库日志缓冲区中,然后尽快地输出到磁盘(或者被硬化)。
在数据库镜像中,当主服务器将主数据库的日志缓冲区写入磁盘时,也同时将这些日志记录块发送到镜像实例。
当镜像服务器接收到日志记录块后,首先将日志记录放入镜像数据库的日志缓冲区,然后尽快地将它们硬化到磁盘。
稍后镜像服务器会重新执行那些日志记录。
由于镜像数据库重新应用了主数据库的事务日志记录,因此复制了发生在主数据库上的数据改变。
主服务器和镜像服务器将对方视为数据库镜像会话中的伙伴。
数据库镜像会话包含了镜像伙伴服务器之间的关系。
一台给定的伙伴服务器可以同时承担某个数据库的主角色和另一个数据库的镜像角色。
除了两台伙伴服务器(主服务器和镜像服务器),一个数据库会话中可能还包含第三台可选服务器,叫做见证服务器。
见证服务器的角色就是启动自动故障转移。
当数据库镜像用于高可用性时,如果主服务器突然失败了,如果镜像服务器通过见证服务器确认了主服务器的失败,那么它就自动承担主服务器角色,并且在几秒钟之内就可以向用户提供数据库服务。
SQL Server 2005利用数据库镜像技术实现双机热备
一、配置主备机1、物理连接将主备数据库按照如图所示连接:2、检查SQL Server 2005数据库只有SQL Server 2005 标准版、企业版和开发版才可以建立数据镜像。
其他版本即Express只能作为见证服务器。
如果实在不清楚什么版本,执行如下语句查看:1select@@version;若要对此数据库进行数据库镜像,必须将它更改为使用完整恢复模式。
若要用Transact-SQL 实现此目的,请使用ALTER DATABASE 语句:1USE master;2ALTER DATABASE<DatabaeName>3SET RECOVERY FULL;4二、主备实例互通实现互通可以使用域或证书来实现,考虑实现的简单,以下选取证书的方式实现。
注意:实现“主备数据库实例互通”的操作只需要做一次,例如为了将两个SQL Server 2005的实例中的5个数据库建成镜像关系,则只需要做一次以下操作就可以了;或者这样理解:每一对主备实例(不是数据库)做一次互通。
1、创建证书--主体服务器执行:1USE m aster;2CREATE MASTER KEY ENCRYPTION BY PASSWORD ='killkill';3CREATE CERTIFICATE HOST_A_cert WITH SUBJECT ='HOST_A certificate' ,4START_DATE ='09/18/2010';--镜像服务执行:1USE m aster;2CREATE MASTER KEY ENCRYPTION BY PASSWORD ='killkill';3CREATE CERTIFICATE HOST_B_cert WITH SUBJECT ='HOST_B certificate',4START_DATE ='09/18/2010';--见证服务器执行:1USE m aster;2CREATE MASTER KEY ENCRYPTION BY PASSWORD ='killkill';3CREATE CERTIFICATE HOST_C_cert WITH SUBJECT ='HOST_C certificate',4START_DATE ='09/18/2010';这个MASTER KEY对于每个sql server实例唯一的,如果数据库中已经创建了MASTER KEY,可以用如下的sql删除之后重新执行:DROP MASTER KEY2、创建连接的端点--主体服务器执行:1CREATE ENDPOINT Endpoint_Mirroring2STATE = STARTED3AS4TCP ( LISTENER_PORT=5022 , LISTENER_IP =ALL )5FOR6DATABASE_MIRRORING7( AUTHENTICATION = CERT IFICATE HOST_A_cert , ENCRYPTION = REQUIRE D ALGORITHM AES , ROLE =ALL );8--镜像服务器执行:1CREATE ENDPOINT Endpoint_Mirroring2STATE = STARTED3AS4TCP ( LISTENER_PORT=5022 , LISTENER_IP =ALL )5FOR6DATABASE_MIRRORING7( AUTHENTICATION = CERT IFICATE HOST_B_cert , ENCRYPTION = REQUIRE D ALGORITHM AES , ROLE =ALL );8--见证服务器执行:1CREATE ENDPOINT Endpoint_Mirroring2STATE = STARTED3AS4TCP ( LISTENER_PORT=5022 , LISTENER_IP =ALL )5FOR6DATABASE_MIRRORING7( AUTHENTICATION = CERT IFICATE HOST_C_cert , ENCRYPTION = REQUIRE D ALGORITHM AES , ROLE =ALL );83、备份证书以备建立互联--主体服务器执行:1BACKUP CERTIFICATE HOST_A_cert TO FILE='D:\SQLBackup\HOST_A_cert.c er';--镜像服务器执行:1BACKUP CERTIFICATE HOST_B_cert TO FILE='D:\SQLBackup\HOST_B_cert.c er';--见证服务器执行:1BACKUP CERTIFICATE HOST_C_cert TO FILE='D:\SQLBackup\HOST_C_cert.c er';4、互换证书将备份到D:\SQLBackup\的证书进行互换,即HOST_A_cert.cer、HOST_C_cert.cer 复制到镜像服务器的D:\SQLBackup\。
sql数据库镜像方法
sql数据库镜像方法
SQL数据库镜像可以通过以下步骤实现:
1. 确保主体数据库在执行备份时使用了完整恢复模式。
2. 还原主体数据库的最新完整数据库备份,同时,镜像数据库的名称必须与主体数据库的名称相同。
3. 如果自还原完整备份以来已对数据库执行任何差异备份,请还原最新的差异备份。
4. 还原自完整数据库备份或差异数据库备份以来进行的所有日志备份。
5. 对伙伴开始镜像之前,应该创建原始数据库的当前日志备份并将其还原到将来的镜像数据库。
在实现过程中,可能会遇到问题,这时需要暂停数据库镜像会话。
执行暂停操作将保留在挂起镜像时的会话状态。
当出现瓶颈时,暂停可能有利于提高主体服务器的性能。
会话暂停后,主体数据库仍然可用。
请注意,操作具有一定的风险性,因此,需要具备一定的数据库管理知识。
在进行实际操作前,应进行充分的准备和测试。
如有必要,建议咨询专业人士。
SQL2005数据库镜像简介
SQL2005数据库镜像简介疯狂代码 / ĵ:http://DataBase/Article24002.html 自从SQL Server 2000以来,你已经能够通过使用复制来创建一个备用的服务器、传输日志,以及备份和重新存储了——但是现在微软又引入了一个内建的工具,它可以实现自动的错误恢复。
数据库镜像是SQL Server 2005的一个新特性,它允许你将一个SQL Server中的数据库内容镜像到另一个SQL Server上。
它还让你可以在发生错误的时候,通过镜像数据库来进行错误恢复。
Edgewood Solutions 的Greg Robidoux 回答了我们一些SQL Server 2005中有关数据库镜像的常见问题,同时还解释了为什么你现在就应该开始测试这个内建的功能来看看它最终是否会给你的环境带来好处。
什么是数据库镜像?Robidoux:数据库镜像是将数据库事务处理从一个SQL Server数据库移动到不同SQL Server环境中的另一个SQL Server数据库中。
镜像的拷贝是一个备用的拷贝,不能直接访问;它只用在错误恢复的情况下。
因为是在SQL Server 2005中新引入的特性,这个功能只能用在,这个版本的软件中。
在某种程度上说,它是复制和日志传输的混合体:你所有的事物都在事物级别(复制)上移动(日志传输)到你的数据库的一个镜像拷贝上,同时减少了你在实现日志传输或者复制的时候可能会面临的问题。
复制包括大量的移动部分,并且如果你的数据库计划经常改变的话,要保证你的复制运行得流畅也是困难重重。
对于日志传输,为了保证同步,同样需要实现很多的处理,例如创建备份、拷贝备份,以及备份重存。
如果有一个进程崩溃了,整个处理过程就崩溃了。
数据库镜像的工作方式是什么?Robidoux :要进行数据库镜像所需的最小需求包括了两个不同的SQL Server运行环境。
主服务器被称为“基本的”,第二个服务器被称作“镜像的”。
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地址:端口号" 无法访问或不存在。
