首页 > 代码库 > SQL Server 2008 R2 主从数据库同步(日志传送的方式 Log Shipping)

SQL Server 2008 R2 主从数据库同步(日志传送的方式 Log Shipping)

注意事项:

    1、为主从服务器添加新的系统用户并设置好密码;

    2、主从服务器都开启SQL Server的代理服务,并设置为开机自动启动

    3、在数据库配置管理其中把SQL Server服务和SQL Server的代理服务的登录信息设置为上边添加的系统用户,并设置好密码。(记得主从服务器都需要这样设置,不要忘记了,我都是忘记了,怎么弄都不行)

    4、用户共享的文件目录,共享访问时需要密码,记得要先访问共享并记住凭证,不然会提示失败。

    5、SQL Server的备份,是主库的数据库服务器自动备份数据库,生成备份文件,在本分间隔时,再生成备份的日志文件(.trn文件)从库再根据从主库获取的日志文件进行还原操作,这样保证主从数据库的数据一致。只是,如果没有数据更新,还是会产生日志文件(.trn),并进行数据同步,影响网络带宽。

    6、从库尽量不要分离,因为有时正在还原的过程中分离的,分离后再次附加时,会出现“不能附加正在还原的数据库。 (Microsoft SQL Server,错误: 1824)”的错误。

一、准备工作:

主数据库服务器:

操作系统:Windows Server 2008 R2    

数据库: SQL Server 2008 R2

IP地址:192.168.1.61

从数据库服务器:

操作系统:Windows Server 2008 R2    

数据库: SQL Server 2008 R2

IP地址:192.168.1.62

主数据库服务器中有WebDB,WebDB就是我们要同步的数据库,其中只有一个测试表WebDB,如下图所示:

技术分享

从服务器数据库中没有数据库WebDB,WebDB数据库就是我们要同步的数据库,如下图所示:

技术分享

二、创建SQL Server数据库的管理员用户和共享文件夹权限,设置SQL Server服务和SQL Server代理的登录用户为sqladmin

1. 在主数据库WebDB所在的服务器上创建用户sqladmin,点击开始——运行(或者按快捷键Win+R),输入命令lurmgr.msc,敲回车,在弹出的本地用户和组窗口中,新增用户:

技术分享

  新增用户的界面如下图:

技术分享

设置sqladmin的权限隶属于Administrators

技术分享

2. 同样需要在从数据库上创建用户sqladmin且加入administrators组,其他都删除之!

3. 分别在主从数据库服务器上创建用于存放主从备份日志文件的共享文件夹SQLDataBack且共享权限和NTFS权限,如下图所示:

技术分享

技术分享

4. 分别在主数据库服务器上和从数据库服务器上打开SQLServer配置管理器,将SQL Server服务和SQL Server代理服务的“登录身份为”sqladmin用户且启动模式为:自动,如下图所示:

技术分享

技术分享

  一般SQL Server服务器的启动模式就是自启动,SQL Server代理服务是手动启动的,需要在服务里选择为自启动。

技术分享

三、配置SQLServer日志传送

1. 在主数据库服务器上配置

用sqladmin连接到本地SQL Server数据库服务器(这边我试过,用Administrator用户登录也可以的)

技术分享

  在数据库实例(我这里数据库实例是SQL2008,就是在.\SQL2008上点击右键)中点击右键——属性——安全性,配置服务器身份验证模式和服务器代理帐户,其中代理账户是我们前边设置的sqladmin账户。

技术分享

2. 在主数据库服务器中配置WebDB数据库的属性信息。

  在WebDB数据库上点击右键——属性,打开数据库属性窗口,选择选项选项卡,把恢复模式选择为“完整”(默认也是完整的),如下图

技术分享

  再在数据库的属性窗口中选择“事务日志传送”选项,勾选“将此数据库启用为日志传送配置中的主数据库”,再点击“备份设置”按钮:

技术分享

  在事务日志备份设置窗口中设置如下图:

技术分享

  在上图中,点击“计划”按钮后,弹出如下图所示:

技术分享

  如果需要一直同步,在持续时间中,就选择无结束日期。一直点击确定,见到下图为止!

技术分享

  上图中上一个箭头指向的是我们刚才备份设置中,设置的备份计划,点击箭头指向的“添加”按钮,连接到从服务器的辅助数据库实例。

技术分享

   连接后,可以看到辅助数据库实例和辅助数据库名称。辅助数据库可以选择现有数据库,也可以输入一个名称,新建一个数据库,默认的辅助数据库名称,和需要同步的主数据库名称一致。

技术分享

   在初始化辅助数据库选项卡中,点击“还原选项”按钮,弹出还原选项窗口,如下图:

技术分享

   注意:该文件夹为从服务器的本地文件夹,即辅助数据库(同步库)的数据文件和日志文件需要存放的文件夹。不填写的话,则使用从服务器上的数据库实例默认的数据存放路径。

   点击“复制文件”选项卡,输入从服务器复制文件的目标文件夹(注意是从服务器上的本地文件夹,也是我们前面在从服务器上设置的共享文件夹)。其中的删除时间,也需要跟我们的同步频率进行设置,同步频率越频繁,则删除复制文件的间隔也越短。

技术分享

  点击上图中的计划按钮,弹出“作业计划属性”窗口,设置从服务器同步间隔和是否有结束日期,点击确定即可。

技术分享

   选择“还原事务”日志选项卡,选择“备用模式”,如下图:

技术分享

   同时点击“计划”按钮,弹出“作业计划属性”,根据需要选择相应信息,点击确定即可。

技术分享

  将我们以上的配置信息导出到文件,如下图:

技术分享

  保存完配置脚本后,点击确定按钮,就开始保存日志并传送配置,成功的话, 你就可以看到如下界面。

技术分享

  注意:如果失败的话,会提示相应的错误信息,可以查看错误信息后。出现错误信息后,点击确定后,数据库属性的窗口就会关闭,我们再次在属性中打开,在“事务日志传送”就看不到我们配置的主从数据配置信息,我们可以重新配置。但是,我们还可以通过我们保存的脚本信息,在新建查询窗口中,执行我们保存的脚本。执行脚本后,就可以在数据库属性中的“事务日志传送”选项中看到我们设置的主从备份信息,改正错误,重新确定执行即可。

三、验证SQL Server 2008 R2主从数据库是否同步

1. 我们去从服务器看看是否有WebDB数据库,由下图所示,可见成功了!

技术分享

2. 现在我们去主数据库服务器中WebDB数据库添加如下图所示的表:

创建名为Sys_News

技术分享

3. 现在我们去从数据库服务器的WebDB数据库是否有表Sys_News,如下图所示:

技术分享

  没有看到,因为我们设置的计划任务是15分钟的,15分钟没有到,所以没有同步上去。等15分钟后就有了。所以在同步的时候,一定要规划好同步时间。 

  注:如何删除WebDB(备用/只读)数据库

    在数据库上右键——属性——选项——状态——数据库为只读,修改为False即可!


本文出自 “为何一笑” 博客,请务必保留此出处http://helicon.blog.51cto.com/3926609/1900517

SQL Server 2008 R2 主从数据库同步(日志传送的方式 Log Shipping)