SQL Server2012高可用之日志传送测试

SQL Server2012高可用之日志传送测试_第1张图片

 

 

(一)日志传送架构

SQL Server2012高可用之日志传送测试_第2张图片

(1.1)相关服务器

主服务器   :用于生产的服务器,上面运行这生产SQL Server数据库;

辅助服务器:用于存放主服务器上数据库的一个“镜像”数据库;

监控服务器:用来监控日志传送状态的一个服务器,可选;

(1.2)文件夹

与日志传送有关的文件夹一共有2个:

共享文件夹:该文件夹用于存放主数据库上备份出来的日志,一般位于主服务器上,主服务器和辅助服务器都必须要能够访问该文件夹

目标文件夹:该文件夹用来接收从共享文件夹拷贝过来的日志,位于辅助服务器上;

(1.3)作业

与日志传送相关的作业一共有3个:

主服务器的备份作业:在主服务器上备份事物日志,把日志存放到共享文件夹中;

辅助服务器上的复制作业:把共享文件夹中的日志复制到目标文件夹中;

辅助服务器上的还原作业:将目标文件夹中的日志还原到辅助数据库上;

通过上图,可以总结出日志传送的流程:

1.主库的备份作业定期执行日志备份操作,将日志保存到共享文件夹

2.备库的复制作业定期从共享文件夹将新的日志文件拷贝到备库的目标文件夹

3.备库的还原作业定期使用目标文件夹中的日志还原备库;

 

(二)基础环境

 

主库

备库

操作系统

Windows Server 2012 R2 64bit

Windows Server 2012 R2 64bit

数据库版本

cn_sql_server_2012_enterprise_edition_x86_x64

cn_sql_server_2012_enterprise_edition_x86_x64

服务器名称(IP)

WIN-PRIMARY(192.168.10.111)

WIN-STANDBY(192.168.10.112)

同步数据库信息

lijiamandb

lijiamandb

 

(三)搭建过程中遇到的问题

(3.1)报错信息

由于在写文档之前多次搭建均没有成功,报错如下:

SQL Server2012高可用之日志传送测试_第3张图片

标题: Microsoft SQL Server Management Studio

------------------------------

SQL Server Management Studio 无法还原数据库“masterdb”

------------------------------

其他信息:

执行 Transact-SQL 语句或批处理时发生了异常。 (SqlManagerUI)

------------------------------

无法打开备份设备 '\\WIN-PRIMARY\logshipping_master\masterdb.bak'。出现操作系统错误 5(拒绝访问。)。

RESTORE FILELIST 正在异常终止。 (Microsoft SQL Server,错误: 3201)

有关帮助信息,请单击: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&ProdVer=11.00.2100&EvtSrc=MSSQLServer&EvtID=3201&LinkId=20476

(3.2)解决方案

该报错提示备库无法打开主库上的共享文件夹\\WIN-PRIMARY\logshipping_master\masterdb.bak,但是我手动从备库上去访问主库的共享文件夹是可以正常访问的,不知道是什么原因,找了很久也没有找到方案。

最终我是搭建了域环境,主库为域服务器,备库加入到主库的域中,然后创建了域账号test\loguser,使用test\loguser账号启动主库和备库的代理,最终才同步成功。因此本文的日志传送是在域环境中搭建成功的。

 

(四)域环境搭建

(4.1)主库搭建域服务器

STEP1:打开“服务器管理器”-->“添加角色和功能”

SQL Server2012高可用之日志传送测试_第4张图片

STEP2:开始之前。默认,下一步

STEP3:安装类型。选择“给予角色或功能的安装”,下一步

STEP4:服务器选择。默认,下一步

STEP5:服务器角色。勾选“Active Directory域服务”

SQL Server2012高可用之日志传送测试_第5张图片

STEP6:功能。默认,下一步

STEP7:AD DS。默认,下一步

STEP8:确认。点击“安装”

SQL Server2012高可用之日志传送测试_第6张图片

STEP9:安装完成,在服务器管理器中进行配置

SQL Server2012高可用之日志传送测试_第7张图片

STEP10:部署配置,指定根域名

SQL Server2012高可用之日志传送测试_第8张图片

STEP11:域控制选项,输入DSRM密码,随便填写

SQL Server2012高可用之日志传送测试_第9张图片

STEP11:DNS选项,有告警信息,忽略,直接下一步

SQL Server2012高可用之日志传送测试_第10张图片

STEP12:其它选项。默认,下一步

SQL Server2012高可用之日志传送测试_第11张图片

STEP13:路径。默认,下一步

STEP14:查看选项。默认,下一步

STEP15:先决条件检查。安装

STEP16:安装完成后,服务器会自动重启,重启后,我们就可以看到这台服务器已经加入了域

SQL Server2012高可用之日志传送测试_第12张图片

(4.2)备库服务器加入到域中

STEP1:修改备库服务器的DNS信息,将AD服务器的IP填入里面

SQL Server2012高可用之日志传送测试_第13张图片

STEP2:点击“这台电脑”-->“属性”

SQL Server2012高可用之日志传送测试_第14张图片

STEP3:点击“更改设置”

SQL Server2012高可用之日志传送测试_第15张图片

STEP4:点击“更改”

SQL Server2012高可用之日志传送测试_第16张图片

STEP5:添加域配置

SQL Server2012高可用之日志传送测试_第17张图片

STEP6:添加成功,会有提示

SQL Server2012高可用之日志传送测试_第18张图片

STEP7:重启计算机,域配置才会生效

(4.3)主库域服务器上创建域账号(在域服务器上操作)

STEP1:点击“服务器管理器”-->“工具”-->“Active Directory用户和计算机”

SQL Server2012高可用之日志传送测试_第19张图片

STEP2:选择“Users”-->右键“新建”-->“用户”

SQL Server2012高可用之日志传送测试_第20张图片

STEP3:创建域账户

SQL Server2012高可用之日志传送测试_第21张图片

输入密码,这里建议把“用户下次登录时须修改密码”去除勾选

SQL Server2012高可用之日志传送测试_第22张图片

STEP4:完成创建

SQL Server2012高可用之日志传送测试_第23张图片

(4.4)关闭防火墙(主库和备库)

域环境搭建完成后,会多出一个域网络的防火墙,全部关闭

SQL Server2012高可用之日志传送测试_第24张图片

 

(五)日志传送环境搭建

(5.1)主库创建共享文件夹

主库创建共享文件夹,用于存放日志。

STEP1:创建文件夹logshipping,我直接放在C盘,如果是生产环境,建议不要放在C盘

SQL Server2012高可用之日志传送测试_第25张图片

STEP2:点击文件夹“logshipping”,右键“属性”-->“共享”

SQL Server2012高可用之日志传送测试_第26张图片

STEP3:添加共享用户“loguser”,权限设为“读取/写入”,经过测试,还需要把everyone用户也给加上

SQL Server2012高可用之日志传送测试_第27张图片

STEP4:从备库服务器访问共享,确认无问题

SQL Server2012高可用之日志传送测试_第28张图片

(5.2)备库创建日志目标文件夹

备库创建logrepl文件夹,并授权给test\loguser用户

SQL Server2012高可用之日志传送测试_第29张图片

SQL Server2012高可用之日志传送测试_第30张图片

(5.3)修改SQL Server代理的登录身份为test\loguser(主库备库均修改)

打开“SQL Server配置管理器”,点击“SQL Server服务”-->“SQL Server代理”,双击弹出“SQL Server代理属性”,修改用户为test\loguser,最后确定。

SQL Server2012高可用之日志传送测试_第31张图片

(5.4)主库配置日志传送

(1)主库基础环境

为了后续验证数据是否同步,先在待同步的数据库“lijiamandb”中建2个表,test01和test02,数据如下

SQL Server2012高可用之日志传送测试_第32张图片

(2)日志传送配置

STEP1:点击“lijiamandb”-->“任务”-->“传送事物日志”

SQL Server2012高可用之日志传送测试_第33张图片

STEP2:勾选“将此数据库启用为日志传送配置中的主数据库”,然后点击备份设置

SQL Server2012高可用之日志传送测试_第34张图片

STEP3:填写备份路径,该路径是之前创建的共享文件夹,在“计划”中修改备份时间,改为3分钟1次,代表每隔3分钟主库会将产生的日志存放到共享文件夹。

SQL Server2012高可用之日志传送测试_第35张图片

STEP4:备份配置完成后,开始配置辅助数据库,点击“添加”

SQL Server2012高可用之日志传送测试_第36张图片

STEP5:点击“连接”,输入辅助数据库(备库)的连接信息

SQL Server2012高可用之日志传送测试_第37张图片

STEP6:初始化辅助数据库。因为没有可用的备份,故勾选“是,生成主库的完整备份...”

SQL Server2012高可用之日志传送测试_第38张图片

复制文件。填写备库的目标文件夹,修改复制作业的时间为每3分钟执行一次,代表每隔3分钟,备库会将共享文件夹中的新日志复制到目标服务器的目标文件夹

SQL Server2012高可用之日志传送测试_第39张图片

还原事物日志。数据库状态改为备用模式,还原作业改为每隔3分钟执行一次,代表每隔3分钟,备库会将目标文件夹的日志进行还原操作

  • 无恢复模式:用户不可以只读访问数据库;
  • 备用模式  :备库处于只读状态。但是,备库值执行还原操作时,还原进程需要独占访问数据库,如果用户正在运行SQL语句,那么还原进程将无法还原数据库,还原作业会等到下一个还原间隔时再次尝试还原数据库。如果勾选了“在还原备份时断开数据库中用户的连接”,那么数据库在进行还原操作时,会断开用户的连接,保证还原操作正常进行。

SQL Server2012高可用之日志传送测试_第40张图片

STEP6:最后点击确定即可

SQL Server2012高可用之日志传送测试_第41张图片

STEP7:开始进行备库还原操作

SQL Server2012高可用之日志传送测试_第42张图片

(5.5)备库确认数据是否正常产送过来

经确认,主库的所有数据均以同步到备库

SQL Server2012高可用之日志传送测试_第43张图片

 

(六)日志传送测试

(6.1)添加新表

结果:主库添加新表,备库自动同步过去。

(6.2)删除表

结果:主库删除表,备库也会自动删除。

(6.3)修改表结构

结果:主库修改表结构,备库自动修改

(6.4)插入、更新、删除数据

结果:主库执行插入、更新、删除操作,备库也会自动同步操作

(6.5)truncate表

结果:主库执行truncate操作,备库也会同步操作

 

(七)监控日志传送

(7.1)主库查看日志备份作业是否运行正常

打开主库SSMS“对象资源管理器”-->“SQL Server代理”-->”作业”,右键“查看历史记录”,即可看到日志备份作业的运行情况。

SQL Server2012高可用之日志传送测试_第44张图片

(7.2)备库查看日志复制作业和日志还原作业是否运行正常

打开主库SSMS“对象资源管理器”-->“SQL Server代理”-->”作业”,右键“查看历史记录”,即可看到日志复制作业和日志还原作业的运行情况。

SQL Server2012高可用之日志传送测试_第45张图片

 

(八)总结

优点 无论主库做什么操作,备库均可以同步过来,无需DBA介入
缺点 1.备库数据同步存在延迟,时效性较差
2.备库在做恢复操作时,是不可以查询数据库的,体验较差

你可能感兴趣的:(SQL Server2012高可用之日志传送测试)