关于日志传输 ¶
和 Oracle DG,MySQL 主从一样, SQL Server 也支持主从的高可用. 进一步提高数据的安全性和业务的高可用. 通过将主库上的日志传输到备用实例上, 从而达到主备库数据的一致性.
优点 * 可以为一个主库添加多个备库, 从而提高数据灾难性恢复的解决方法. * 和其他数据库主从一样, 从库可以提高只读访问 (在还原数据期间). * 可以自定义数据延迟应用时间. 这样好处就是如果主库错误修改了数据, 而从库还没有应用修改的数据, 那么就可以通过从库来把错误环境的数据还原回来.
日志传输过程 * 在主服务器实例中备份事务日志. * 将事务日志文件复制到辅助服务器实例. * 在辅助服务器实例中还原日志备份.
日志可传送到多个辅助服务器实例. 在这些情况下, 将针对每个辅助服务器实例重复执行操作 2 和操作 3. 日志传送配置不会自动从主库故障转移到辅助服务器. 如果主数据库变为不可用, 可手动切换到任意一个从库. 下图是由一个主库, 三个从库组成的主从环境.
注: SQL Server 2008 Enterprise 及更高版本支持备份压缩.
前提条件 ¶
主数据库必须处于 Full 恢复模式或大容量日志恢复模式. 在配置日志传送之前, 必须创建共享备份目录, 以便备库可以访问事务日志备份. 这是对生成事务日志备份的目录的共享. 例如, 如果将事务日志备份到目录 E:\log_backup, 则可以对该目录创建共享.
搭建主从 ¶
创建管理员 [可选] ¶
下面步骤是可选的, 使用 administrator 管理员账户也是可以的. 如果是使用 administrator 用户, 则下文中关于 sqladmin 用户权限相关的, 替换为 administrator.
主从两台分别创建 sqladmin 用户加入 administrators 组删除默认的 users 组, 并且设置 "密码永不过期" 和 "用户不能更改密码" 为 sqladmin 创建一个密码 win+R, 输入 lusrmgr.msc
设置用户权限 右击用户, 点击 "属性", 将默认的 USERS 组删除, 新增 Administrators 组.
设置共享目录 在主或者从服务器上创建日志存放目录 E:\log_backup
在 "高级共享" 窗口中, 勾选 "共享此文件夹" 选项, 然后单机 "权限" 按钮对该共享文件夹的权限进行设置. 需要让 sqladmin 用户具有完全控制该文件夹的权限, 先将默认的 "erverone" 用户删除, 然后添加 sqladmin,administaor 用户, 并在 "sqladmin,administaor" 的权限中勾选 "完全控制","更改" 和 "读取" 项, 然后单击两次 "确定" 按钮保存共享设置.
在 NTFS 文件系统中, 还需要设置用户对该目录的安全权限, 如果安全权限不够, 系统在写入备份文件的时候会报没有权限的错误. 可以在 "安全" 选项卡, 单机 "编辑" 按钮, 在 "log_backup 的权限" 界面, 单击 "按钮", 添加 sqladmin 用户, 然后在 "sqladmin 的权限" 中选择 "完全控制" 权限, 单机 "确定" 按钮保存权限信息.
配置 SQL Server 启动模式
分别从主数据库服务器上和从数据库服务器上打开 SQLServer 配置管理器, 将 SQLServer 服务和 SQLServer 代理服务的 "登录身为"sqladmin 用户且启动模式为: 自动
配置日志传输 右击数据库服务器实例, 选择 "属性" 选项, 在弹出的 "服务器属性" 界面中, 单机左侧的 "安全性", 然后在右侧窗口中的 "服务器身份验证" 中选择 "SQLServer 和 Windows 身份验证模式", 并勾选 "服务器代理账户" 中的 "启用服务器代理账户" 选项. 输入正确的 "代理账号" 和 "密码", 单击 "确定" 按钮保存配置信息..
在主数据库服务器中配置要同步的数据库 AppsHK 属性
设置完之后选择 "事务日志传送", 勾选 "将此数据库启用未日志传送配置中的主数据库" 选项, 单击 "事务日志备份" 中的 "备份设置按钮", 打开 "事务日志备份设置" 界面.
主库上备份文件夹的网路路径可以在备库上进行测试, 看备库能否访问 备库上进行操作:
点击计划, 在 "作业计划属性" 界面, 确认 "计划类型" 为重复执行, 为测试效果明显, 设置为 15 秒执行一次作业计划. 最后确认 "持续时间", 根据自己需要设置, 如果一直备份的话, 可以设置为 "无结束日期".
设置完成, 确认之后再次打开 "事务日志备份设置" 界面, 则备份作业的作业名称后面变成 "编辑作业" 按钮, 单击进去, 将 "所有者" 修改为 sqladmin.
如果没有 sqladmin 先添加
单击数据库属性界面的 "辅助数据库" 中的 "添加" 按钮, 打开 "辅助数据库设置" 窗口.
设置完之后点击确定按钮, 在数据库属性配置界面将配置好的脚本保存到本地, 最后点击确定
到此数据库主从配置完成, 可以在主库进行操作, 在从库上查看对应的数据是否同步, 如果没有同步成功, 可以在从库上查看同步任务状态, 查看失败原因.
来源: http://www.linuxidc.com/Linux/2020-01/161897.htm