30-SQLServer事物日志传送的搭建
一、注意点
1、环境准备
| IP | 角色 | 操作系统版本 | 数据库版本 | 数据库名称 |
| 192.168.232.10 | primary | Windows Server 2008 R2 Enterprise | SQL Server 2014 | cardaddr |
| 192.168.232.11 | secondary | Windows Server 2008 R2 Enterprise | SQL Server 2014 | cardaddr |
2、同步原理
对主节点上要同步的数据库定期做日志备份,然后从节点把主库上的日志备份先copy到自己机器上,然后再对数据库定期做日志恢复,从而来保证主备数据库数据的一致,所以数据库要的恢复模式要使用完整模式。
3、从节点数据库有2种模式
NORECOVERY(无恢复)模式:数据库不可访问,不能查询。
STANDBY(备用)模式:数据库可以进行查询处理,如果选择该种方式,刚搭建好之后,备库还是“正在还原”状态,再执行完一次日志还原后,会变成“备用/只读”状态。
4、要创建一个单独的系统用户启动数据库服务和代理服务,并且该用户的用户名和密码在主从服务器上要一样(或者使用administrator启用数据库和代理服务也行,但是要保证密码相同),不能使用默认的NT Service\MSSQLSERVER启动服务来创建事物日志传送,否则会报错,没有访问共享文件夹的权限,错误如下:
(1)使用NT Service\MSSQLSERVER启动服务的错误(搭建的时候就报错)

(2)主从2边账号密码不一致的错误(能搭建成功,但是执行的时候copy作业失败)

(3)启动数据库服务和代理服务的正确状态

5、创建的用户和共享文件夹权限


6、创建的用户和共享文件夹权限
二、搭建步骤
1、先对要做事物日志同步的数据库做完整备份(图形化界面就能操作,备份不做详细介绍)

2、把主库上的备份还原到从节点上(使用NORECOVERY模式)



3、主节点上数据库右键-->任务---> 传送事物日志

4、勾选“将此数据库启用为日志传送配置中的主数据库”,设置主库的日志备份策略



5、添加辅助数据库(从节点)





6、点击确认完成

7、完成查看作业
(1)主节点2个作业:

主库生成2个job,一个alert,一个backup,没搭建一个数据库的事物日志传送,主库就相应的生成一个backup的job,alert不会增加,一个实例就一个。
alert作业:调用存储过程sys.sp_check_log_shipping_monitor_alert
backup作业:调用sqllogship.exe命令
(2)备库生成3个作业:

备库生成3个job,分别是alert、copy、restore,没搭建一个库的事物日志传送,从库就生成一个copy和restore作业,alert作业一个实例就一个
alert作业:调用存储过程sys.sp_check_log_shipping_monitor_alert
copy作业:调用sqllogship.exe命令
restore作业:也是调用sqllogship.exe命令
8、查看事物日志传送的状态
(1)主库上查看


(2)备库上查看

三、用到的SQL
1、查看restore的历史记录
命令:select * from msdb.dbo.restorehistory where destination_database_name='cardaddr' order by restore_date desc

restore_type:D代表完整备份还原,L代表日志文件还原。
2、查看还原历史记录以及对应的数据文件名称
命令:
select
h.restore_date,h.destination_database_name,h.user_name,h.restore_type,f.destination_phys_name
from msdb.dbo.restorefile f
inner join msdb.dbo.restorehistory h
on f.restore_history_id = h.restore_history_id
where h.destination_database_name='cardaddr' order by h.restore_date desc

3、查看执行作业的历史记录和对象的详细信息
命令:
select * from msdb.dbo.sysjobhistory s
inner join msdb.dbo.sysjobs j on s.job_id= j.job_id
where j.name ='LSRestore_192.168.232.10,1433_cardaddr'

4、查看主库的事物日志情况(在主库上执行)
命令:select * from msdb.dbo.log_shipping_primary_databases

5、查看备库的事物日志情况
命令:select * from msdb.dbo.log_shipping_secondary_databases
select * from msdb.dbo.log_shipping_secondary(可以查看对应的主库的是哪个)

restore_mode:0 = 用 NORECOVERY 还原日志;
1 = 使用 STANDBY 还原日志。
***************************************************
如下是个人开发系统,欢迎大家体验,纯属个人爱好,想一块玩的,私信。
易本浪账:www.jialany.com
***************************************************

浙公网安备 33010602011771号