MSSQL 常见故障处理

MSSQL 常见故障处理以及维护办法

1.数据库文件收缩

1.1 释放未使用的空间

  1. --TRUNCATEONLY 仅仅是释放没使用的区 而不是页
  2. USE [transfer]
  3. GO
  4. DBCC SHRINKFILE (N'transfer' , 0, TRUNCATEONLY)
  5. GO

1.2 在释放未使用的空间前重新组织页

  1. --检索每一个页 重新组织 释放未使用的页和区 然后再收缩
  2. USE [transfer]
  3. GO
  4. DBCC SHRINKFILE (N'FGFile13' , 32138)
  5. GO

1.3 将指定文件中的所有数据迁移到同一文件组中的其他文件

  1. --查询文件以及文件组的基本信息
  2. SELECT b.name ,
  3. b.type ,
  4. b.type_desc ,
  5. a.*
  6. FROM sys.database_files a
  7. JOIN sys.filegroups b ON a.data_space_id = b.data_space_id
  8. WHERE a.data_space_id = 2;
  9. --新增文件到文件组
  10. ALTER DATABASE [transfer] ADD FILE ( NAME = N'File14', FILENAME = N'F:\DataFile\File14.ndf' , SIZE = 3090640 KB , FILEGROWTH = 5%) TO FILEGROUP [FG1];
  11. --将指定文件中的所有数据迁移到同一文件组中的其他文件,选择空闲的文件迁移过去。
  12. DBCC SHRINKFILE('FGFile11', EMPTYFILE);

2.日志文件收缩

2.1 设置简单模式直接收缩

  1. USE transfer
  2. GO
  3. --设置简单模式
  4. ALTER DATABASE transfer SET RECOVERY SIMPLE;
  5. GO
  6. DBCC SHRINKFILE(N'transfer_log', 10);
  7. GO
  8. --恢复成日志完整模式
  9. ALTER DATABASE transfer SET RECOVERY FULL;
  10. GO

3.Sql Agent作业代理

3.1 错误日志相关

3.1.1 循环生成错误日志

  1. --ERRORLOG自动循环:ERRORLOG替换ERRORLOG.1 以此类推,需要先备份ERRORLOG.6,不然会被覆盖
  2. USE master
  3. GO
  4. EXEC sys.sp_cycle_errorlog;

4.AlwaysOn问题相关

4.1 备份以及日志收缩问题

查看AlwaysOn组属性,可以得知哪一台服务器是首选辅助副本。如果设置为备份应在首选辅助副本执行,那么维护计划就应该建立在那台服务器上。

  1. --判断是否是主辅助副本 / 主副本
  2. 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

  1. ALTER DATABASE [DB_NAME] SET HADR RESUME

5.数据库登录/启动问题

5.1 数据库处于可疑状态

  1. USE master
  2. GO
  3. --查看数据库状态
  4. SELECT state_desc, *
  5. FROM sys.databases
  6. WHERE name = 'F10';

  • AlwaysOn辅助节点出现警告,数据库处于质疑状态(三种解决办法):
  1. 再做一次ALTER ONLINE,命令SQL SERVER再做一次恢复
  2. 放弃当前数据库,还原备份
  3. 将数据库状态设置为EMERGENCY,继续尝试修复数据库

  • SQLSERVER状态切换图:

    5.2 客户端登录加密失败 – 事件ID:17835

  1. --客户端使用jtdsjava类库进行登录报如下错误:
  2. 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
  3. --调整jdbc url参数可以解决此问题
  4. ssl=require 或者 ssl=authenticate




附件列表

     

    posted @ 2017-02-09 12:02  sunofsummer  阅读(954)  评论(0编辑  收藏  举报