[AlwaysOn Availability Groups]排查:AG配置
排查AG配置
本文主要用来帮助排查在AG配置时出现的问题,包括,AG功能被禁用,账号配置不正确,数据库镜像endpoint不存在,endpoint不能访问。
|
Section |
Description |
|
如果实例没有启动AG特性,实例就不支持任何AG相关的功能 |
|
|
在SQL Server在运行的情况下,正确的账号配置 |
|
|
诊断关于实例的镜像endpoint问题。 |
|
|
Endpoint URL中可用来替换实例的系统名 |
|
|
关于每个持有AG副本的实例,都必须要有可以通过TCP访问其他实例的权限 |
|
|
SQL Server错误信息1418 |
|
|
关于join数据库出现的问题,因为primary副本不是活动的 |
|
1. AG不可用
可以通过联机文档:启用和禁用 AlwaysOn 可用性组 (SQL Server) 查看如何启动关闭AG
2. 账号
SQL Server运行的必须有正确的配置:
1.权限配置是否正确?
a.如果运行在相同域账号,正确的用户login都会保存在2个master数据库中。这个配置简单也是被推荐的配置。
b.如果2个实例使用不同的账号,每个账号必须在远程master库被正确的创建,被授予CONNECT权限,通过镜像endpoint连接远程实例。
2.如果以build-in账号运行,比如Local System,Local Service,或者其他用户,必须创建一个证书,用于endpoint的验证。如果你的服务是使用域账号的,可以给每个服务器启动账号授予CONNECT权限,或者使用证书验证。
3. Endpoint
Endpoint必须正确配置
1.保证每个要有副本的实例都有镜像endpoint。为了确定是否存在镜像endpoint,可以使用,sys.database_mirroring_endpoints 查看,更多信息可以查看:Create a Database Mirroring Endpoint for Windows Authentication (Transact-SQL) or Allow a Database Mirroring Endpoint to Use Certificates for Outbound Connections (Transact-SQL).
2.检查端口号,可以查看DMV sys.tcp_endpoint查看端口号。
3.对于AG的安装问题,很难解释,建议你检查每个实例是否监听正确的端口。具体看:MSSQLSERVER_1418.
4.为了保证endpoint是否启动,可以使用以下语句:
SELECT state_desc FROM sys.database_mirroring_endpoints
如果未启动,可以使用语句:
ALTER ENDPOINT Endpoint_Mirroring
STATE = STARTED
AS TCP (LISTENER_PORT = <port_number>)
FOR database_mirroring(ROLE = ALL);
GO
5.保证login有CONNECT权限。可以使用以下语句查看所有endpoint的连接权限
SELECT 'Metadata Check';
SELECT EP.name, SP.STATE,
CONVERT(nvarchar(38), suser_name(SP.grantor_principal_id))
AS GRANTOR,
SP.TYPE AS PERMISSION,
CONVERT(nvarchar(46),suser_name(SP.grantee_principal_id))
AS GRANTEE
FROM sys.server_permissions SP , sys.endpoints EP
WHERE SP.major_id = EP.endpoint_id
ORDER BY Permission,grantor, grantee;
GO
4. 系统名
对于endpoint URL中的系统名,可以使用任意的名字来识别系统。服务地址也可以是系统名,全域名或者ip地址。具体看:Specify the Endpoint URL When Adding or Modifying an Availability Replica (SQL Server).
5. 网络访问
每个实例必须可以通过TCP访问其他的实例。这个很重要特别是在不同的域,相互不可信的情况下。
6. EndPoint访问,1418错误
1418错误表示endpoint URL不能访问,或者不存在。建议你检查地址重新执行命令,具体看:MSSQLSERVER_1418
7. 加入数据库失败,35250错误
导致加入数据库错误的原因,是因为primary副本不活动,解决方法:
1.检查防火墙设置,是否允许endpoint访问
2.账号是否有权限访问endpoint。
8. 只读路由不能正确工作
只读路由不能工作检查一下信息:
|
On… |
Action |
Comments |
Link |
|
Current primary replica |
保证AG Listener是活动的 |
To verify whether the listener is online: SELECT * FROM sys.dm_tcp_listener_states; To restart an offline listener: ALTER AVAILABILITY GROUP myAG RESTART LISTENER 'myAG_Listener'; |
|
|
Current primary replica |
保证READ_ONLY_ROUTING_LIST 中只有一个可定secondary副本。 |
sys.availability_replicas (secondary_role_allow_connections_desc column)
sys.availability_read_only_routing_lists
ALTER AVAILABILITY GROUP |
sys.availability_replicas (Transact-SQL) |
|
Every replica in the read_only_routing_list |
保证windows不会堵塞READ_ONLY_ROUTING_URL的端口 |
— |
|
|
Every replica in the read_only_routing_list |
在SQL Server配置管理,验证: 1.SQL Server可以被远程连接 2.启动了TCP/IP连接 3.IP地址配置正确 |
— |
View or Change Server Properties (SQL Server) Configure a Server to Listen on a Specific TCP Port (SQL Server Configuration Manager) |
|
Every replica in the read_only_routing_list |
保证READ_ONLY_ROUTING_URL(TCP://system-address:port)配置是正确的 |
— |
Calculating read_only_routing_url for AlwaysOn |
|
Client system |
保证客户端驱动支持只读路由。 |
— |
9. Related Tasks
· Creation and Configuration of Availability Groups (SQL Server)
· Create a Database Mirroring Endpoint for Windows Authentication (Transact-SQL)
· Specify the Endpoint URL When Adding or Modifying an Availability Replica (SQL Server)
· Manually Prepare a Secondary Database for an Availability Group (SQL Server)
· Troubleshoot a Failed Add-File Operation (AlwaysOn Availability Groups)
· Management of Logins and Jobs for the Databases of an Availability Group (SQL Server)
· Manage Metadata When Making a Database Available on Another Server Instance (SQL Server)
10. Related Content
· View Events and Logs for a Failover Cluster
· Get-ClusterLog Failover Cluster Cmdlet
· SQL Server AlwaysOn Team Blog: The official SQL Server AlwaysOn Team Blog
[AlwaysOn Availability Groups]排查:AG配置的更多相关文章
- [AlwaysOn Availability Groups]排查:AG超过RPO
排查:AG超过RPO 在异步提交的secondary上执行了切换,你可能会发现数据的丢失大于RPO,或者在计算可以忍受的数据都是超过了RPO. 1.通常原因 1.网络延迟太高,网络吞吐量太低,导致Pr ...
- [AlwaysOn Availability Groups]排查:AG超过RTO
排查:AG超过RTO 自动故障转移或者手动转移之后,没有数据都是,你可能会发现切换时间超过了你的RTO.或者当你评估切换时间同步提交secondary副本,发现超过了你的RTO. 1. 通常原因 通常 ...
- [AlwaysOn Availability Groups]监控AG性能
监控AG性能 AG的性能的性能方面,在关键任务数据库上进行语句级维护性能是很重要的.理解AG如何传输日志到secondary副本对评估RTO和RPO,表明AG是否性能不好. 1. 数据同步步骤 为了评 ...
- [AlwaysOn Availability Groups]排查:Primary上的修改无法在Secondary体现
排查:Primary上的修改无法在Secondary体现 客户端进程在primary上修改成功,但是在Secondary上却无法看到修改结果.这个case假设你的可用性组有同步的健康问题.很多情况下这 ...
- [AlwaysOn Availability Groups]AG排查和监控指南
AG排查和监控指南 1. 排查场景 如下表包含了常用排查的场景.根据被分为几个场景类型,比如Configuration,client connectivity,failover和performance ...
- [AlwaysOn Availability Groups]DMV和系统目录视图
DMV和系统目录视图 这里主要介绍AlwaysON的动态管理视图,可以用来监控和排查你的AG. 在AlwaysOn Dashboard,你可以简单的配置的GUI显示很多可用副本的DMV和可用数据库通过 ...
- [SQL in Azure] Tutorial: AlwaysOn Availability Groups in Azure (GUI)
http://msdn.microsoft.com/en-us/library/azure/dn249504.aspx Tutorial: AlwaysOn Availability Groups i ...
- [AlwaysOn Availability Groups]CLUSTER.LOG(AG)
CLUSTER.LOG(AG) 作为故障转移资源,在SQL Server和windows故障转移集群服务的资源DLL(hadrres.dll)之间有额外的内部交流,DLL无法被SQL Server监控 ...
- [AlwaysOn Availability Groups]AG扩展事件
AG扩展事件 SQL Server 2012定义了一些关于AlwaysOn的扩展事件.你可以监控这些扩展事件来帮助诊断AG的根本问题.你也可以使用以下语句查看扩展事件: SELECT * FROM s ...
随机推荐
- Spark入门实战系列--10.分布式内存文件系统Tachyon介绍及安装部署
[注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 .Tachyon介绍 1.1 Tachyon简介 随着实时计算的需求日益增多,分布式内存计算 ...
- 【jQuery小实例】js 插件 查看图片
---本系列文章所用使用js均可在本博客文件中找到. 像淘宝一样,鼠标放在某一件商品上,展示大图信息,甚至查看图片的具体部位.给人超炫的效果,这种效果实现基于js文件和js插件.大致可以分为三步,添加 ...
- jquery自定义滚动条 鼠标移入或滚轮时显示 鼠标离开或悬停超时时隐藏
一.需求: 我需要做一个多媒体播放页面,左侧为播放列表,右侧为播放器.为了避免系统滚动条把列表和播放器隔断开,左侧列表的滚动条需要自定义,并且滚动停止和鼠标离开时要隐藏掉. 二.他山之石: 案例来自h ...
- DotNet中几种常用的加密算法
在.NET项目中,我们较多的使用到加密这个操作.因为在现代的项目中,对信息安全的要求越来越高,那么多信息的加密就变得至关重要.现在提供几种常用的加密/解密算法. 1.用于文本和Base64编码文本的互 ...
- c++中的重名问题
看C++视频教程-范磊主讲(2.91G)视频学习笔记整理. 1.c++为什么要引入名字空间(namespace)? c++引入名字空间这个概念,是为了避免重名问题,比如说避免重复的函数名或者变量名引起 ...
- Microsoft Visual Studio 插件
AnkhSVN BatchFormat CodeMaind Nuget Package Manager
- 浅解析js中的对象
浅解析js中的对象 原文网址:http://www.cnblogs.com/foodoir/p/5971686.html,转载请注明出处. 前面的话: 说到对象,我首先想到的是每到过年过节见长辈的时候 ...
- Moon.Orm与其他Orm的技术对比
有时候在思考大家为什么喜欢EF,为什么又出现这么多的Orm,为什么Nhiberate被人许多人接收又被许多人拒绝 最后发现结论:萝卜白菜各有所爱.适合自己的就是最好的. EF 微软团队支持(可谓强大的 ...
- .NET 扩展方法 (一)
我还记得刚刚学编程的时候,老师经常会提到一句话:注意空指针.所以经常在某些“入口”位置,进行代码校验,空指针的判断就是其中的一项工作. string类型作为常用的数据类型,它在项目中出现的机率极高,所 ...
- IBC编程社区
IBC编程社区-.NET编程交流论坛 官方地址:http://www.ibcibc.com 新浪微博:IBC编程社区 微信公众号:ibcbcsq QQ一群:235371874(已满) QQ二群:248 ...