使用克隆技术构建SQL Server 高可用环境(克隆sqlserver)

在企业对系统的可用性要求越来越高的情况下,SQL Server的高可用性就显得尤为重要,克隆技术可以构建高可用的SQL Server环境。克隆技术是一种把数据从一个环境快速地复制到另一个环境的技术,它主要用于更新环境,构建灾难恢复环境,缩短数据迁移的时间,帮助构建高可用环境。

微软推出的SQL Server 克隆技术可以帮助企业一次性将系统部署到多个SQL Server实例,快速构建高可用的SQL Server环境。使用这种技术,企业可以在同一个SQL Server环境上大幅减少更新时间,实时同步主机内存中的数据,克服SQL Server实例突然挂掉导致数据丢失的缺陷,从而实现高可用性。

SQL Server 克隆技术主要使用SQL Server Agent和数据库镜像相结合的方式来快速完成,比传统的数据复制技术要快的多。要利用镜像来克隆,先创建数据库镜像,然后将镜像作为源文件复制到目标服务器,最后把目标服务器的镜像恢复即可。我们可以使用SQL Server Agent来定时检测源服务器,当发现错误时,它会自动复制镜像,重新创建新的实例,从而达到高可用效果。

用以下代码来创建一个SQL Server 高可用环境:

//更新源服务器数据库:

BACKUP DATABASE {database_name}

TO DISK=‘E:/{database_name}.bak’

WITH CHECKSUM

Go

//创建数据库镜像

CREATE DATABASE {database_name}_mirror

ON (NAME = N'{database_name}’,

FILENAME = N’D:/{database_name}.mdf’)

AS

MIRROR TO (NAME= N'{database_name}_mirror’,

FILENAME = N’D:/{database_name}_mirror.mdf’);

GO

//设置定时任务

BEGIN TRANSACTION

CREATE OR ALTER PROCEDURE [dbo].[sp_copy_db]

AS

BEGIN

— set up the variables

DECLARE @db_name VARCHAR(250),

@stamp VARCHAR(50);

SET @db_name = ‘{database_name}’; — use your database name

SET @stamp = LEFT(CAST(getdate() as VARCHAR(50)),4)

+ RIGHT(CAST(getdate() as VARCHAR(50)),5);

— create the backup

BACKUP DATABASE @db_name

TO DISK = ‘D:/backups/’ + @db_name + ‘_’ + @stamp + ‘.bak’

WITH CHECKSUM;

— copy the backup

DECLARE @copy_db_name VARCHAR(250), @copy_db_name_mirror VARCHAR(250);

SET @copy_db_name = REPLACE(@db_name,’_’,’_copy_’);

SET @copy_db_name_mirror = REPLACE(@db_name,’_’,’_copy_mirror_’);

BACKUP DATABASE @db_name

TO DISK = ‘D:/backups/’ + @copy_db_name + ‘_’ + @stamp + ‘.bak’

WITH CHECKSUM;

— restore the first backup

RESTORE DATABASE @copy_db_name

FROM DISK = ‘D:/backups/’ + @copy_db_name + ‘_’ + @stamp + ‘.bak’

WITH NORECOVERY,

REPLACE;

— restore the second backup

RESTORE DATABASE @copy_db_name_mirror

FROM DISK = ‘D:/backups/’ + @copy_db_name + ‘_’ + @stamp + ‘.bak’

WITH NORECOVERY,

REPLACE,

STANDBY = ‘D:/backups/’ + @copy_db_name + ‘_’ + @stamp + ‘.STA’;

— set the mirroring connection

ALTER DATABASE @copy_db_name_mirror

SET PARTNER = ‘TCP://servername:1433’;

— set up the mirroring session

ALTER DATABASE @copy_db_name_mirror

SET PARTNER SAFETY OFF ;

— start the mirroring session

ALTER DATABASE @copy_db_name_mirror

SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS;

COMMIT TRANSACTION;

END;

EXECUTE [sp_copy_db];

GO

使用这种方法可以快速地构建SQL Server的高可用环境,进一步提升更新时间,同时将系统数据保持在最新状态,从而避免数据丢失等问题。


数据运维技术 » 使用克隆技术构建SQL Server 高可用环境(克隆sqlserver)