MSSQL 常见故障处理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MSSQL 常见故障处理相关的知识,希望对你有一定的参考价值。
MSSQL 常见故障处理以及维护办法
1.数据库文件收缩
1.1 释放未使用的空间
1.2 在释放未使用的空间前重新组织页
1.3 将指定文件中的所有数据迁移到同一文件组中的其他文件
2.日志文件收缩
2.1 设置简单模式直接收缩
3.Sql Agent作业代理
3.1 错误日志相关
3.1.1 循环生成错误日志
4.AlwaysOn问题相关
4.1 备份以及日志收缩问题
4.2 Error: 35285, Severity: 16, State: 1
5.数据库登录/启动问题
5.1 数据库处于可疑状态
5.2 客户端登录加密失败 – 事件ID:17835
1.数据库文件收缩
1.1 释放未使用的空间
1.2 在释放未使用的空间前重新组织页
1.3 将指定文件中的所有数据迁移到同一文件组中的其他文件
2.日志文件收缩
2.1 设置简单模式直接收缩
3.Sql Agent作业代理
3.1 错误日志相关
3.1.1 循环生成错误日志
4.AlwaysOn问题相关
4.1 备份以及日志收缩问题
4.2 Error: 35285, Severity: 16, State: 1
5.数据库登录/启动问题
5.1 数据库处于可疑状态
5.2 客户端登录加密失败 – 事件ID:17835
MSSQL 常见故障处理以及维护办法
1.数据库文件收缩
1.1 释放未使用的空间
--TRUNCATEONLY 仅仅是释放没使用的区 而不是页
USE [transfer]
GO
DBCC SHRINKFILE (N‘transfer‘ , 0, TRUNCATEONLY)
GO
1.2 在释放未使用的空间前重新组织页
--检索每一个页 重新组织 释放未使用的页和区 然后再收缩
USE [transfer]
GO
DBCC SHRINKFILE (N‘FGFile13‘ , 32138)
GO
1.3 将指定文件中的所有数据迁移到同一文件组中的其他文件
--查询文件以及文件组的基本信息
SELECT b.name ,
b.type ,
b.type_desc ,
a.*
FROM sys.database_files a
JOIN sys.filegroups b ON a.data_space_id = b.data_space_id
WHERE a.data_space_id = 2;
--新增文件到文件组
ALTER DATABASE [transfer] ADD FILE ( NAME = N‘File14‘, FILENAME = N‘F:\\DataFile\\File14.ndf‘ , SIZE = 3090640 KB , FILEGROWTH = 5%) TO FILEGROUP [FG1];
--将指定文件中的所有数据迁移到同一文件组中的其他文件,选择空闲的文件迁移过去。
DBCC SHRINKFILE(‘FGFile11‘, EMPTYFILE);
2.日志文件收缩
2.1 设置简单模式直接收缩
USE transfer
GO
--设置简单模式
ALTER DATABASE transfer SET RECOVERY SIMPLE;
GO
DBCC SHRINKFILE(N‘transfer_log‘, 10);
GO
--恢复成日志完整模式
ALTER DATABASE transfer SET RECOVERY FULL;
GO
3.Sql Agent作业代理
3.1 错误日志相关
3.1.1 循环生成错误日志
--ERRORLOG自动循环:ERRORLOG替换ERRORLOG.1 以此类推,需要先备份ERRORLOG.6,不然会被覆盖
USE master
GO
EXEC sys.sp_cycle_errorlog;
4.AlwaysOn问题相关
4.1 备份以及日志收缩问题
查看AlwaysOn组属性,可以得知哪一台服务器是首选辅助副本。如果设置为备份应在首选辅助副本执行,那么维护计划就应该建立在那台服务器上。
--判断是否是主辅助副本 / 主副本
SELECT master.sys.fn_hadr_backup_is_preferred_replica(N‘F10‘) AS preferredReplica, master.sys.fn_hadr_is_primary_replica(N‘F10‘) AS primaryReplica;
4.2 Error: 35285, Severity: 16, State: 1
ALTER DATABASE [DB_NAME] SET HADR RESUME
5.数据库登录/启动问题
5.1 数据库处于可疑状态
USE master
GO
--查看数据库状态
SELECT state_desc, *
FROM sys.databases
WHERE name = ‘F10‘;
- AlwaysOn辅助节点出现警告,数据库处于质疑状态(三种解决办法):
- 再做一次ALTER ONLINE,命令SQL SERVER再做一次恢复。
- 放弃当前数据库,还原备份。
将数据库状态设置为EMERGENCY,继续尝试修复数据库。
SQLSERVER状态切换图:
5.2 客户端登录加密失败 – 事件ID:17835
--客户端使用jtds等java类库进行登录报如下错误:
Encryption is required to connect to this server but the client library does not support encryption; the connection has been closed. Please upgrade your client library
--调整jdbc url参数可以解决此问题
ssl=require 或者 ssl=authenticate
附件列表
以上是关于MSSQL 常见故障处理的主要内容,如果未能解决你的问题,请参考以下文章