惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

人人都是产品经理
人人都是产品经理
Stack Overflow Blog
Stack Overflow Blog
S
SegmentFault 最新的问题
博客园 - 司徒正美
aimingoo的专栏
aimingoo的专栏
U
Unit 42
GbyAI
GbyAI
B
Blog RSS Feed
博客园 - Franky
L
LangChain Blog
Hugging Face - Blog
Hugging Face - Blog
美团技术团队
The GitHub Blog
The GitHub Blog
Y
Y Combinator Blog
云风的 BLOG
云风的 BLOG
H
Hackread – Cybersecurity News, Data Breaches, AI and More
博客园 - 三生石上(FineUI控件)
Microsoft Azure Blog
Microsoft Azure Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
G
Google Developers Blog
Last Week in AI
Last Week in AI
阮一峰的网络日志
阮一峰的网络日志
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Apple Machine Learning Research
Apple Machine Learning Research

博客园 - 试试手气

Web Worker 入门 若依Ruoyi分离版替换 MyBatis-Plus 若依前端菜单管理中路由地址、组件路径、权限字符的使用 Idea clone 项目推送到自有仓库 Spring Boot —— Spring Security Spring Boot —— 集成文档工具 Spring Boot —— Filter 过滤器 Spring Boot —— Cors 跨域 Spring Boot —— 集成 Druid Spring Boot —— 集成 MyBatis-Plus Spring Boot —— 集成 Springdoc Navicat 使用笔记 Datagrip连接SQLServer失败 Asp.net mvc 笔记 Asp.net Core 笔记 mybatis 笔记 Asp.net Core 全局异常处理 SqlSugar 实践笔记 Asp.net Core 基于Cookie的身份认证
SQLServer 笔记
试试手气 · 2023-05-05 · via 博客园 - 试试手气

自动备份

使用Microsoft SQL Server Management打开目标服务器,管理-维护计划新建维护计划,通过设定重复自动运行的计划达到固定时间自动备份的目标。

没有维护计划?
可能是登录账号不对,换个权限更高的账号试试 —— 鲁迅

image
image

发布订阅模式的高可用

技术名 实现概述 优点 缺点
发布订阅 实时同步、副本可读、支持多副本 速度快、延迟小、场景简单时可操作行较为便利 订阅数据库可能有同步延迟
AlwaysOn 推荐使用的高可用方案、实施部署要求高 高可用 非域环境无法使用

发布订阅

新建发布

根据资料对已有数据库新建发布,发布前需要检查事项包括:
• 数据库结构尽量完整,避免后续大量结构性变化
• SQL Server Agent 服务设置成自动运行
• 快照空间足够

细粒度控制同步行为

在正确发布后,可进行一些细粒度控制同步行为,入口是发布数据库->右键发布项->属性->项目->项目属性,可控制所选项或所有项
image
举例:
拒绝 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访问被拒绝

  1. 在服务中找到sqlserver代理(MSSQLSERVER)
  2. 右击属性-》登录-》选择本地系统账户,点击确定
  3. 重新创建或启动订阅发布
    image

删除数据库时提示无法对数据库'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