SQLServer 笔记
自动备份
使用Microsoft SQL Server Management
打开目标服务器,管理
-维护计划
新建维护计划,通过设定重复自动运行的计划达到固定时间自动备份的目标。
没有维护计划?
可能是登录账号不对,换个权限更高的账号试试 —— 鲁迅
发布订阅模式的高可用
技术名 | 实现概述 | 优点 | 缺点 |
---|---|---|---|
发布订阅 | 实时同步、副本可读、支持多副本 | 速度快、延迟小、场景简单时可操作行较为便利 | 订阅数据库可能有同步延迟 |
AlwaysOn | 推荐使用的高可用方案、实施部署要求高 | 高可用 | 非域环境无法使用 |
发布订阅
新建发布
根据资料对已有数据库新建发布,发布前需要检查事项包括:
• 数据库结构尽量完整,避免后续大量结构性变化
• SQL Server Agent 服务设置成自动运行
• 快照空间足够
细粒度控制同步行为
在正确发布后,可进行一些细粒度控制同步行为,入口是发布数据库->右键发布项->属性->项目->项目属性,可控制所选项或所有项
举例:
拒绝 Delete 语句,选择DELETE传递格式,选择不复制DELETE语句,确定保存。在保存后会有关于快照提示,运行后,在主库进行DELETE操作将不会传递到从库
新建订阅
根据资料在从库新建订阅,成功订阅后将实现:
- 从库将复制主库表结构
- 主库表新增字段时,从库表可以同步到变化
- 主库表新增、更新、删除记录时,从库表可以同步到变化
- 主库增加表时,从库不会自动更新,原因是在创建数据库的发布时选择了数据库的结构,而新增的表不在其内,因此首先要将表增加到发布项目中,具体方法是
- 右键单击主库发布项,选择属性,打开发布属性,编辑项目,将新表增加
- 主库右键发布项,打开“启动复制监视器”,找到代理页,启动代理。执行完成,刷新从库表,可以看到表已经被添加到从库
- 右键单击主库发布项,选择属性,打开发布属性,编辑项目,将新表增加
错误和解决
SQL Server 阻止了对组件 'Agent XPs' 的 过程 'dbo.sp_set_sqlagent_properties' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'Agent XPs'。
运行以下sql
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'Agent XPs', 1;
GO
RECONFIGURE
GO
发布时/后错误 对路径xxx访问被拒绝
- 在服务中找到sqlserver代理(MSSQLSERVER)
- 右击属性-》登录-》选择本地系统账户,点击确定
- 重新创建或启动订阅发布
删除数据库时提示无法对数据库'XXX'执行删除,因为它正用于复制
对'XXX'数据库执行查询,执行语句sp_removedbreplication 'xxx'
,解释是从数据库中删除所有复制对象,但不更新分发服务器上的数据。此存储过程在发布服务器的发布数据库或订阅服务器的订阅数据库上执行。经发布数据库上执行有效,但不清楚其影响。
AlwaysOn
AlwaysOn 是 SQL Server 中可用性功能的总称,涵盖可用性组和 FCI
AlwaysOn 实现了什么
• 实现故障转移,最大程度实现业务连续的高可用性(HA)
• 主从架构提供多主多辅的实现,一个辅助数据库可以挂起或失败而不会影响其他辅助数据库,一个主数据库可以挂起或失败而不会影响其他主数据库。
• 能支持读写分离,只读平衡负载,因此可提供更高性能
• 侦听器架构使得客户端(对数据库发出请求的应用)的使用相对透明,即客户端无需关心向哪个数据库进行读写
• 能够提供自动故障转移
实现或先决条件:
• SQL Server 2012或以上
• 系统不是域控制器
• 每台计算机都运行Windows Server 2012或更高
• 每台计算机都是Windows Server故障转移群集WSFC中的一个节点
部分特性
• 可用性组可部署在Standard版本或Enterprise版本上。
• 在故障转移集群基础上完成部署
• 支持读写分离,只读负载平衡
• 最多3个写入节点实现故障转移,1个活动,其它待命
• 最多3个数据实时同步节点
• SQL Server 2012 支持1+4部署
• SQL Server 2016 支持1+8部署
• 辅助数据库不是备份,不能替代备份
• 模拟环境下,2台独立主机是可以的,但由于2台机器的条件下都需要能写能读(#2要充当#1的写的待命节点),因此在企业实际应用中,至少3台DB才是有实际意义的,1写+2读,其中1台读还要充当1写的待命节点
本文参考
业务连续性和数据库恢复 - SQL Server | Microsoft Docs
微软SQLserver项目实战:手把手教你部署AlwaysOn高可用环境_哔哩哔哩_bilibili