位置: 编程技术 - 正文
推荐整理分享SQL Server常见问题及解决方法分享(sql server必知必会),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:sql server 常用语句,sql server常见问题,sql server常见问题,sql server常见问题,sql server常见问题,sql server问题,sql server问题,sql server常见问题,内容如对您有帮助,希望把文章链接给更多的朋友!
写在前面
在QQ群,微信群,论坛中经常帮助使用SQL Server数据库的朋友解决问题,但是有一些最常见最基本的问题,每天都有人问,回答多了也不想再解答了,索性把这些问题整理一下,再有人问到直接发链接。
一时想法而写这篇文章,问题可能不全面,后续会一直更新。
基础问题收集资源下载
描述:XX版本数据库操作系统在哪里下载?
答: 里面很多东西,有兴趣的自己看吧
连接问题
描述:数据库连接不上
答:请确认SQL服务是否启动,用户密码是否正确,连接的实例名称,端口是否正确
日志问题
描述:系统日志LDF满了 或 日志文件非常大 如何收缩?
答:简单恢复模式下SQL Server会自动截断日志文件,完整模式下需要日志备份
恢复模式查看
日志备份的方式
收缩日志
查询很久很慢
描述:查询很久都查不出数据,很慢!
答:这样的情况出现一般是查询语句被其他语句阻塞。在查询中添加 select * from table with (nolock)如果能查出来说明阻塞
具体的阻塞情况 可以使用sp_who2 或者 sys.dm_exec_requests 视图查询
具体脚本(查看语句运行情况)
分区表问题
描述:数据量千万级别了使用分区表提升性能
答:分区表的使用场景主要是管理数据,而提升性能主要是靠IO并行,需要合理规划多块物理磁盘,大多数的场景下几千万数据单一的模式查询只需要添加正确的索引即可。
高可用的选择
答:SQL自带的高可用或读写分离技术主要有:故障转移群集、发布订阅、镜像、日志传送、AlwaysON可用组(具体可以在进阶问题的资料中详细查看)
一般选用读写分离需要根据不同的场景和要求,比如同步的实时性,读写分离功能的需要情况
主要列出几个优缺点:
故障转移群集:主备模式,单活(辅助机不可读),硬件资源浪费,主要场景是数据库的高可用。
发布订阅:读写分离常用方式,配置灵活,副本节点可以多个,可以发布订阅部分数据(即可以对数据筛选),并提供多种发布订阅模式,缺点:维护比较麻烦,一般不能用作高可用。
镜像:主备模式,单活(辅助机不可读),硬件资源浪费,主要场景是数据库的高可用。相对于故障转移群集镜像是数据库级别的高可用。在镜像中可以使用快照的方式实现读写分离。
日志传送:主要用于灾备,在备用机上可读,但缺点是日志还原时不能读,读时不能还原。
AlwaysON可用组:综合性方案,满足高可用、读写分离等需要,要求:SQL Server 以上版本
第三方产品:moebius负载均衡集群,实现双活,读负载均衡、读写分离等。缺点实时同步不适合类似采集系统的大规模写入系统。
服务无法启动
答:服务无法启动有很多原因,需要具体问题具体定位,如果遇到此类问题要首先查看日志定位问题,日志主要两部分,SQL启动日志和windows日志,下面给出两篇经典解析SQL启动的文章:
你所不知道的SQL Server数据库启动过程(用户数据库加载过程的疑难杂症)
你所不知道的SQL Server数据库启动过程,以及启动不起来的各种问题的分析及解决技巧
数据库设计,表设计的问题
大多数这样的问题,在QQ群里问是根本得不到答案的,很多业务场景不是几句话可以描述清楚的。
SQL语句问题
描述:SQL语句增加或者减少一个条件就变得很慢
答:SQL语句的运行变化很微妙,需要理解执行计划,几句话或者贴个图无法解决,一些语句的习惯是需要养成的,请参见:
SQL SERVER全面优化-------写出好语句是习惯
SQL SERVER全面优化-------索引有多重要?
AlwaysOn配置问题
AlwaysOn配置问题请参见桦仔的几篇非常细致的文章:
从0开始搭建SQL Server AlwaysOn 第一篇(配置域控)
从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群)
从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn)
从0开始搭建SQL Server AlwaysOn 第四篇(配置异地机房节点)
的AlwaysOn 搭建:SQL SERVER AlwaysOn 无域集群+负载均衡搭建与简测
AlwaysOn新建用户
首先要明白AlwaysOn可用组中:
1.只有主节点是可以写入的,辅助节点只读
2.权限分成两部分,实例级别“登录名”和数据库级别“用户”
3.在主节点创建登录名称并选择数据库权限后,因为数据同步,所以从库上已经有了新创建用户的数据库权限,但是没有登录名。
4.不能在辅助节点同样的方式创建登录名,这样就是“用户孤立”问题
解决方法:
1.在主节点上直接添加的是“登录名”,比如创建一个登录名 KK
2.选择数据库权限及用户映射
3.查询刚才创建“登录名”的脚本(此脚本也可以用于升级或迁移数据库还原后,登录名同步的问题)
4.找到查询出的脚本,在辅助节点运行(其中主要的就是SID)
进阶问题请大家点击原文阅读。
标签: sql server必知必会
本文链接地址:https://www.jiuchutong.com/biancheng/320251.html 转载请保留说明!上一篇:Mysql用户忘记密码及密码过期问题的处理方法(mysql密码忘了)
友情链接: 武汉网站建设