当前位置: 首页 > wzjs >正文

做恋足的网站能赚钱吗加强网络暴力治理

做恋足的网站能赚钱吗,加强网络暴力治理,做网站步骤,网站建设网址导航网跟着热点整理一下遇到过的SQL Server的问题,这篇来聊聊读写分离遇到的和听说过的问题。 一、读写分离实现方法 1. 原生高可用方案 1.1 Always On 可用性组(推荐方案) 配置步骤: -- 1. 启用Always On功能 USE [master] GO ALT…

跟着热点整理一下遇到过的SQL Server的问题,这篇来聊聊读写分离遇到的和听说过的问题。

一、读写分离实现方法

1. 原生高可用方案

1.1 Always On 可用性组(推荐方案)

配置步骤

-- 1. 启用Always On功能
USE [master]
GO
ALTER SERVER CONFIGURATION SET HADR_CLUSTER_TYPE = WINDOWS;
GO
​
-- 2. 创建可用性组
CREATE AVAILABILITY GROUP [AG_ReadScale]
WITH (DB_FAILOVER = ON, CLUSTER_TYPE = WINDOWS)
FOR DATABASE [YourDB]
REPLICA ON 'PrimaryServer' WITH (ENDPOINT_URL = 'TCP://PrimaryServer:5022',AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,FAILOVER_MODE = AUTOMATIC,SECONDARY_ROLE(ALLOW_CONNECTIONS = READ_ONLY)),'SecondaryServer' WITH (ENDPOINT_URL = 'TCP://SecondaryServer:5022',AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,FAILOVER_MODE = AUTOMATIC,SECONDARY_ROLE(ALLOW_CONNECTIONS = READ_ONLY));

读写分离配置

-- 配置只读路由
ALTER AVAILABILITY GROUP [AG_ReadScale]
MODIFY REPLICA ON 'SecondaryServer' WITH (PRIMARY_ROLE(READ_ONLY_ROUTING_LIST = ('SecondaryServer'))
);
​
-- 应用程序连接字符串示例
"Server=PrimaryServer;Database=YourDB;ApplicationIntent=ReadWrite;"
"Server=AG_Listener;Database=YourDB;ApplicationIntent=ReadOnly;"
1.2 日志传送(Legacy方案)

配置步骤

-- 主服务器配置
EXEC sp_add_log_shipping_primary_database@database = N'YourDB',@backup_directory = N'\\backup\share',@backup_job_name = N'LSBackup_YourDB';
​
-- 辅助服务器配置
EXEC sp_add_log_shipping_secondary_database@database = N'YourDB',@primary_server = N'PrimaryServer',@restore_job_name = N'LSRestore_YourDB';

2. 第三方中间件方案

2.1 使用ProxySQL

配置示例

# proxysql.cnf配置
INSERT INTO mysql_servers(hostgroup_id,hostname,port) VALUES
(10,'PrimaryServer',1433),  # 写组
(20,'SecondaryServer1',1433), # 读组
(20,'SecondaryServer2',1433); # 读组
​
# 读写分离规则
INSERT INTO mysql_query_rules (rule_id,active,match_pattern,destination_hostgroup,apply) VALUES
(1,1,'^SELECT.*FOR UPDATE',10,1),  # 写操作
(2,1,'^SELECT',20,1);              # 读操作
2.2 使用HAProxy

配置示例

# haproxy.cfg配置
frontend sql_frontbind *:1433mode tcpdefault_backend sql_write
​
backend sql_writemode tcpserver primary PrimaryServer:1433 check
​
backend sql_readmode tcpbalance roundrobinserver secondary1 SecondaryServer1:1433 checkserver secondary2 SecondaryServer2:1433 check
​
# 根据SQL注释路由
acl is_read sql_req -i -m beg "/*read*/"
use_backend sql_read if is_read

二、常见问题与解决方案

1. 数据同步延迟

问题现象

  • 读副本数据落后于主库

  • 报表查询结果不一致

解决方案

-- 1. 监控延迟
SELECT ag.name AS [AG Name],ar.replica_server_name,db_name(ds.database_id) AS [Database],ds.synchronization_state_desc,ds.log_send_queue_size,ds.redo_queue_size
FROM sys.dm_hadr_database_replica_states ds
JOIN sys.availability_replicas ar ON ds.replica_id = ar.replica_id
JOIN sys.availability_groups ag ON ar.group_id = ag.group_id;
​
-- 2. 优化方案
- 增加网络带宽(至少1Gbps)
- 调整同步提交模式为异步(对数据一致性要求不高的场景)
- 限制大事务(拆分超过100MB的事务)

2. 只读路由失效

问题现象

  • ApplicationIntent=ReadOnly的连接仍被路由到主节点

解决方案

-- 1. 检查只读路由配置
SELECT ag.name AS [AG Name],replica_server_name,read_only_routing_url
FROM sys.availability_replicas
WHERE read_only_routing_url IS NOT NULL;
​
-- 2. 修复配置
ALTER AVAILABILITY GROUP [AG_ReadScale]
MODIFY REPLICA ON 'SecondaryServer' WITH (PRIMARY_ROLE(READ_ONLY_ROUTING_LIST = ('SecondaryServer'))
);
​
-- 3. 验证连接
-- 使用SSMS连接字符串:
"Server=AG_Listener;Database=YourDB;ApplicationIntent=ReadOnly;"

3. 临时表问题

问题现象

  • 使用临时表的查询在只读副本失败

  • 错误消息:"The database 'tempdb' is not accessible"

解决方案

-- 1. 应用层修改(推荐)
- 使用表变量替代临时表
- 或使用全局临时表(##temp)
​
-- 2. 数据库配置
-- 启用辅助副本的tempdb访问(SQL 2022新特性)
ALTER AVAILABILITY GROUP [AG_ReadScale]
MODIFY REPLICA ON 'SecondaryServer' WITH (SECONDARY_ROLE(ALLOW_TEMP_TABLES=ON));

4. 负载不均

问题现象

  • 读副本间负载不均衡

  • 单个副本CPU过高

解决方案

-- 1. 配置读权重(SQL 2022新特性)
ALTER AVAILABILITY GROUP [AG_ReadScale]
MODIFY REPLICA ON 'SecondaryServer1' WITH (SECONDARY_ROLE(READ_ONLY_ROUTING_WEIGHT=3)
);
ALTER AVAILABILITY GROUP [AG_ReadScale]
MODIFY REPLICA ON 'SecondaryServer2' WITH (SECONDARY_ROLE(READ_ONLY_ROUTING_WEIGHT=1)
);
​
-- 2. 使用中间件负载均衡
- 配置ProxySQL/HAProxy的加权轮询
- 基于副本性能指标动态调整权重

三、性能优化建议

1. 连接池配置

// ADO.NET连接池优化
"Server=AG_Listener;Database=YourDB;Max Pool Size=200;Min Pool Size=20;Connection Timeout=30;"

2. 查询提示

-- 强制读操作走副本
SELECT * FROM Orders WITH (READUNCOMMITTED)
OPTION (READONLY);
​
-- 强制写操作走主库(即使连接字符串标记为ReadOnly)
SELECT * FROM Orders OPTION (READCOMMITTEDLOCK);

3. 监控指标

-- 关键性能计数器
SELECT *
FROM sys.dm_os_performance_counters
WHERE counter_name IN ('Log Send Queue Size','Redo Queue Size','Transactions/sec','Lock Waits/sec'
);

四、SQL Server 2022 新特性利用

1. 内存优化TempDB元数据

-- 启用特性(减少TempDB争用)
ALTER SERVER CONFIGURATION SET MEMORY_OPTIMIZED TEMPDB_METADATA = ON;

2. 智能查询处理

-- 启用智能查询处理
ALTER DATABASE SCOPED CONFIGURATION SET INTELLIGENT_QUERY_PROCESSING = ON;

3. 参数敏感计划优化

-- 避免参数嗅探问题
ALTER DATABASE SCOPED CONFIGURATION SET PARAMETER_SENSITIVE_PLAN_OPTIMIZATION = ON;

这些事给予SQLServer 2022总结的,如果有版本问题,期待和各位大佬学习。

http://www.dtcms.com/wzjs/244045.html

相关文章:

  • 做网站大概要多线上营销手段
  • 青岛品牌设计线上seo关键词优化软件工具
  • 开源多商户商城系统seo推广的常见目的有
  • 重庆企业网站设计制作衡水seo排名
  • 苏州市建设培训网站安全员C类查询苏州网站建设书生商友
  • 网站功能建设描述书北京网站建设公司大全
  • 无锡网站建设推广公司无锡百度推广公司哪家好
  • 网站建设工资待遇99个创意营销方案
  • 阿里巴巴国际站运营培训浏览器网站进入口
  • 东营新闻网有没有免费的seo网站
  • 网页设计培训的授课学校seo排名大概多少钱
  • 免费做三级网站有哪些网球新闻最新消息
  • 自己做网站卖东西需要交税吗陕西seo推广
  • 做展示网站要恋用什么程序对网站外部的搜索引擎优化
  • 如何做网站的信息分类新东方在线网上课程
  • 郑州做网站好企业营销推广
  • 深圳市住房和建设局网站首页免费网站seo优化
  • 集团定制网站建设公司怎样通过网络销售自己的产品
  • 网站制作和网页制作区别最近发生的热点新闻
  • 辽宁网站建设论坛seo推广优化平台
  • 英文营销网站建设网络销售员每天做什么
  • php网站开发心得怎么免费自己做推广
  • 微信做自己网站b站推广软件
  • 海盐市网站建设长春网站快速优化排名
  • 中国城乡与住房建设部网站首页住房和城乡建设部官网
  • 网站建设方案策划书武汉百度开户代理
  • 高校网站建设需求分析推广app赚佣金接单平台
  • 网站建设开发程序五种常用的网站推广方法
  • 拼多多网站在那里做软文推广怎么写
  • 国家发改委网站开发区搜狗网