#基于Windows主+Linux从暂时没有实现
今天主要记录基于Windows端的主从同步的详细的过程
安装请参考:https://jingyan.baidu.com/article/948f592434b407d80ef5f97d.html
环境
服务器:腾讯云Windows 2012 R2
(主)115.159.24.172 主机名:10_154_39_176
(从)123.206.106.80 主机名:10_105_217_219
#可以先分别在两台机器上,提前在下面路径的hosts文件做个主机名映射(也叫域名解析),便于需要特定访问对方主机名操作.
#C:\Windows\System32\drivers\etc\hosts
#123.206.106.80 10_105_217_219
#115.159.24.172 10_154_39_176
数据库版本:SQL server 2012(最好用2012版,因为2012有主从同步需要的代理功能)
SQL server安装这里省略
初次安装我遇到一个需要依赖的软件jdk-7u80-windows-x64要单独安装
此外安装过程中只需设置sa密码即可一路默认下一步即可
SQL server 自带的客户端连接工具和配置管理器可以在搜索中找到
默认分别存放在如下路径
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Microsoft SQL Server 2012
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Microsoft SQL Server 2012\配置工具
还可以用Navicat作为客户端连接,如下图
开始配置
//主数据库Northwind,如下图所示:
//从CXSlaveDB中,没有数据库Northwind,如下图所示:
二、创建SQL Server数据库的管理员用户和共享文件夹权限,设置SQL Server服务和SQL Server代理的登录用户为sqladmin
1. 在主数据库CXMasterDB服务器上创建用户sqladmin:
快捷键win + R ---> 输入lusrmgr.msc回车,
如下图所示:
//设置sqladmin的权限,只留下administrators,别的都删掉
2. 同理,在从数据库CXSlaveDB服务器上创建用户sqladmin且加入administrators组,其他都删除之!
3. 分别在主从数据库服务器上创建共享文件夹DB_Backpup,用于存放主从备份日志文件,需要共享权限和NTFS权限,如如下图所示:
4. 分别从主数据库服务器上和从数据库服务器上打开SQLServer配置管理器,将SQLServer服务和SQLServer代理服务的“登录身份为”sqladmin用户且启动模式为:自动,如下图所示:
三、配置SQLServer日志传送
1. 在主数据库服务器CXMasterDB上配置
//用sqladmin连接到本地SQL Server数据库服务器(我当时用administrator登录的也可以同步,因为不知道为什么sqladmin用户登录不上)
//在数据库实例中,配置 服务器身份验证模式 和 服务器代理帐户
2. 在主数据库服务器CXMasterDB中的Northwind数据库的属性的配置
//在Northwind数据库的属性 --> 选项 的配置(2012版默认就是完整)
//在Northwind数据库的属性 --> 事务日志传送 的配置
//事务日志备份设置,如下图所示:
//在上图中,点击 计划… 后,弹出如下图所示:
一路 确定 !见到下图为止!
//添加 辅助数据库实例和数据库
//连接到 辅助服务器实例和辅助数据库(这里我不知道为什么就是检测不到,最后用sa用户连接的辅助服务器SQL server也可以同步)
//辅助数据库设置--->初始化辅助数据库(2012这里都是默认的就是,不用专门设置)
注意,这里先看下一步再往里写
注:
这样查看上面所需的辅助服务器CXSlaveDB中数据库的 数据文件和日志文件 的文件夹的路径
//辅助数据库设置--->复制文件
//在上图中 击点 计划(E) … 则弹出如下图所示,设置从数据库还原日志的计划任务:
//辅助数据库设置--->还原事务日志
//在上图中 击点 计划(E) … 则弹出如下图所示,设置从数据库还原日志的计划任务:
//将配置信息导出到文件(导不导都行)
//在下图中点击 确定 后,一目了然了!
三、验证SQL Server 2012 主从数据库是否同步
1. 我们去从服务器CXSlaveDB看看是否有Northwind数据库,由下图所示,可见成功了!
2. 现在我们去主数据库服务器CXMasterDB中Northwind数据库添加如下图所示的表:
//创建表名为 雇员通讯录
//刷新下,就可见到 dbo.雇员通讯录 ,如下图所示:
3. 现在我们去从数据库服务器CXSlaveDB的Northwind数据库是否有表dbo.雇员通讯录,如下图所示:
思考:
下面我们到主数据库服务器CXMasterDB的Northwind数据库中,删除表dbo.雇员通讯录
看看从数据库CXSlaveDB的Northwind数据库中的表dbo.雇员通讯录,是否也被删除了?
附:
1. 如何删除Northwind(备用 / 只读)数据库
//在数据库属性 –-> 选项 ---> 状态 --->数据库为只读 修改为 False即可!能删除吗???
文章出处:http://blog.51cto.com/beyondhdf/1228517