2023年8月3日发(作者:)

1. 数据库服务器负载情况维护

查看CPU,IO,内存使用情况

 规则

Windows系统:

打开任务管理器,选择进程选项卡,可以查看CPU、内存和IO使用率。

2. 数据库运行状态维护

 规则

1。 实例运行状态

使用SQL SERVER Management Studio能连接说明实例运行正常。

2. 磁盘空间使用情况

直接登陆服务器进行磁盘使用率检查

3。 查看错误日志:

方法一:可以通过执行该命令来查看错误日志信息:exec xp_readerrorlog

方法二:在SQL SERVER Management Studio中连接该sql server实例,object Explorer中查找Management—〉SQL Server logs—>右键选view-》选择你要看的日志信息(sql server log

or sql server and Windows log)

方法三:去安装路径下去找你的log文件,我的默认实例路径如下

driver:SQL Server 2008 R2MSSQL10_ERVERMSSQLLogERRORLOG

4.跟踪事件

企业管理里SQL2005SQL2008在上方菜单 —工具—SQL Profiler,按照选择进行跟踪.

3. 数据库备份情况维护

 规则

数据库备份情况检查:

备份日志显示: 成功,说明备份成功。

备份日志显示:失败,说明备份失败,需要进一步查找失败原因。

每天检查异地备份是否成功。

4. 数据库对象的维护

 规则

1、查询各个磁盘分区的剩余空间:

Exec master。dbo。xp_fixeddrives 2、查询数据库的数据文件及日志文件的相关信息(包括文件组、当前文件大小、文件最大值、文件增长设置、文件逻辑名、文件路径等)

select * from [数据库名].[dbo].[sysfiles]

转换文件大小单位为MB:

select name, convert(float,size) * (8192.0/1024。0)/1024。 from [数据库名].es

3、查询当前数据库的磁盘使用情况:

Exec sp_spaceused

4、查询数据库服务器各数据库日志文件的大小及利用率

DBCC SQLPERF(LOGSPACE)

5、 统计数据库中每张表的大小

create table tmp

(

name varchar(50),

rowscount int,

reserved varchar(50),

data varchar(50),

index_size varchar(50),

unused varchar(50)

);

insert tmp(name, rowscount, reserved, data, index_size, unused)

exec sp_MSforeachtable @command1=”sp_spaceused ’?’”;

select * from tmp where name 〈〉 'tmp’ order by name

drop table tmp ;

或者

SELECT , b。rows

FROM sysobjects AS a INNER JOIN

sysindexes AS b ON =

WHERE (a。type = ’u’) AND (b。indid IN (0, 1))

ORDER BY b。rows DESC

6、检查数据库完整性

dbcc checkdb(Portal)

dbcc checkdb(Portal) with tablock

7、数据库重命名、修改恢复模式、修改用户模式

—-数据库重命名

ALTER DATABASE WC

MODIFY NAME = test

—-设置数据库为完整恢复模式

alter database test

set recovery full

--只允许一个用户访问数据库

alter database test

set single_user

with rollback after 10 seconds —-指定多少秒后回滚事务

——只有sysadmin,dbcreator,db_owner角色的成员可以访问数据库

alter database wc

set restricted_user

with rollback immediate --立即回滚事务

-—多用户模式

alter database wc

set multi_user

with no_wait ——不等待立即改变,如不能立即完成,那么会导致执行错误

8、扩展数据库:增加文件组、增加文件、修改文件大小、修改文件的逻辑名称

--添加文件组

ALTER DATABASE test

ADD FILEGROUP WC_FG8 —-添加数据文件

ALTER DATABASE test

ADD FILE

NAME = WC_FG8,

FILENAME = 'D:WC_',

SIZE = 1mb,

MAXSIZE = 10mb,

FILEGROWTH = 1mb

TO FILEGROUP WC_FG8

--添加日志文件

ALTER DATABASE test

ADD LOG FILE

NAME = WC_LOG3,

FILENAME = 'D:WC_FG3。LDF’,

SIZE = 1MB,

MAXSIZE = 10MB,

FILEGROWTH = 100KB

-—修改数据文件的大小,增长大小,最大大小

ALTER DATABASE test

MODIFY FILE

(

NAME = ’WC_FG8',

SIZE = 2MB, -—必须大于之前的大小,否则报错

MAXSIZE= 8MB,

FILEGROWTH = 10%

)

--修改数据文件或日志文件的逻辑名称 ALTER DATABASE test

MODIFY FILE

NAME = WC_LOG3,

NEWNAME = WC_FG33

9、移动文件

-—由于在SQL Server中文件组、文件不能离线,所以必须把整个数据库设置为离线

checkpoint

go

ALTER DATABASE WC

SET OFFLINE

go

--修改文件名称

ALTER DATABASE WC

MODIFY FILE

(

NAME = WC_fg8,

FILENAME = ’D:WCWC_FG8。NDF’

)

go

——把原来的文件复制到新的位置:'D:WCWC_'

—-设置数据库在线

ALTER DATABASE WC

SET ONLINE

10、设置默认文件组、只读文件组

—-设置默认文件组 ALTER DATABASE WC

MODIFY FILEGROUP WC_FG8 DEFAULT

-—设为只读文件组

--如果文件已经是某个属性,不能再次设置相同属性

ALTER DATABASE WC

MODIFY FILEGROUP WC_FG8 READ_WRITE

11、收缩数据库、收缩文件

-—收缩数据库

DBCC SHRINKDATABASE('test', ——要收缩的数据库名称或数据库ID

10 ——收缩后,数据库文件中空间空间占用的百分比

DBCC SHRINKDATABASE('test', —-要收缩的数据库名称或数据库ID

10, -—收缩后,数据库文件中空闲空间占用的百分比

NOTRUNCATE --在收缩时,通过数据移动来腾出自由空间

)

DBCC SHRINKDATABASE(’test’, -—要收缩的数据库名称或数据库ID

10, ——收缩后,数据库文件中空间空间占用的百分比

TRUNCATEONLY —-在收缩时,只是把文件尾部的空闲空间释放

)

--收缩文件

DBCC SHRINKFILE(wc_fg8, —-要收缩的数据文件逻辑名称

7 —-要收缩的目标大小,以MB为单位 )

DBCC SHRINKFILE(wc_fg8, --要收缩的数据文件逻辑名称

EMPTYFILE ——清空文件,清空文件后,才可以删除文件

)

12、删除文件、删除文件组

1.要删除文件,必须要先把文件上的数据删除,或者移动到其他文件或文件组上

-—删除数据后,必须要清空文件的内容

DBCC SHRINKFILE(WC_FG8,EMPTYFILE)

——删除文件,同时也在文件系统底层删除了文件

ALTER DATABASE test

REMOVE FILE WC_FG8

2。要删除文件组,必须先删除所有文件

-—最后删除文件组

ALTER DATABASE test

REMOVE FILEGROUP WC_FG8

13、重新组织索引

ALTER INDEX [idx_temp_lock_id] ON [dbo].[temp_lock]

REORGANIZE

WITH ( LOB_COMPACTION = ON )

use test

go

select ’DBCC INDEXDEFRAG('+db_name()+’,'+o。name+','+ + ');’ --,db_name(),

—-o。name,

--i。name,

--i。*

from sysindexes i

inner join sysobjects o

on = o。id

where o。xtype = 'U’

and i。indid >0

and charindex(’WA_Sys’,i。name) = 0

14、重新生成索引

ALTER INDEX [idx_temp_lock_id] ON [dbo].[temp_lock]

REBUILD PARTITION = ALL

WITH ( PAD_INDEX = OFF,

STATISTICS_NORECOMPUTE = OFF,

ALLOW_ROW_LOCKS = ON,

ALLOW_PAGE_LOCKS = ON,

ONLINE = OFF,

SORT_IN_TEMPDB = OFF )

15、更新统计信息

-—更新表中某个的统计信息

update statistics temp_lock(_WA_Sys_00000001_07020F21)

update statistics temp_lock(_WA_Sys_00000001_07020F21)

with sample 50 percent

update statistics temp_lock(_WA_Sys_00000001_07020F21)

with resample, -—使用最近的采样速率更新每个统计信息

norecompute ——查询优化器将完成此统计信息更新并禁用将来的更新

—-更新索引的统计信息

update statistics temp_lock(idx_temp_lock_id)

with fullscan

-—更新表的所有统计信息

update statistics txt

with all

16、执行SQL Server代理作业

exec msdb。dbo。sp_start_job

@job_name =N’job_update_sql';

2023年8月3日发(作者:)

1. 数据库服务器负载情况维护

查看CPU,IO,内存使用情况

 规则

Windows系统:

打开任务管理器,选择进程选项卡,可以查看CPU、内存和IO使用率。

2. 数据库运行状态维护

 规则

1。 实例运行状态

使用SQL SERVER Management Studio能连接说明实例运行正常。

2. 磁盘空间使用情况

直接登陆服务器进行磁盘使用率检查

3。 查看错误日志:

方法一:可以通过执行该命令来查看错误日志信息:exec xp_readerrorlog

方法二:在SQL SERVER Management Studio中连接该sql server实例,object Explorer中查找Management—〉SQL Server logs—>右键选view-》选择你要看的日志信息(sql server log

or sql server and Windows log)

方法三:去安装路径下去找你的log文件,我的默认实例路径如下

driver:SQL Server 2008 R2MSSQL10_ERVERMSSQLLogERRORLOG

4.跟踪事件

企业管理里SQL2005SQL2008在上方菜单 —工具—SQL Profiler,按照选择进行跟踪.

3. 数据库备份情况维护

 规则

数据库备份情况检查:

备份日志显示: 成功,说明备份成功。

备份日志显示:失败,说明备份失败,需要进一步查找失败原因。

每天检查异地备份是否成功。

4. 数据库对象的维护

 规则

1、查询各个磁盘分区的剩余空间:

Exec master。dbo。xp_fixeddrives 2、查询数据库的数据文件及日志文件的相关信息(包括文件组、当前文件大小、文件最大值、文件增长设置、文件逻辑名、文件路径等)

select * from [数据库名].[dbo].[sysfiles]

转换文件大小单位为MB:

select name, convert(float,size) * (8192.0/1024。0)/1024。 from [数据库名].es

3、查询当前数据库的磁盘使用情况:

Exec sp_spaceused

4、查询数据库服务器各数据库日志文件的大小及利用率

DBCC SQLPERF(LOGSPACE)

5、 统计数据库中每张表的大小

create table tmp

(

name varchar(50),

rowscount int,

reserved varchar(50),

data varchar(50),

index_size varchar(50),

unused varchar(50)

);

insert tmp(name, rowscount, reserved, data, index_size, unused)

exec sp_MSforeachtable @command1=”sp_spaceused ’?’”;

select * from tmp where name 〈〉 'tmp’ order by name

drop table tmp ;

或者

SELECT , b。rows

FROM sysobjects AS a INNER JOIN

sysindexes AS b ON =

WHERE (a。type = ’u’) AND (b。indid IN (0, 1))

ORDER BY b。rows DESC

6、检查数据库完整性

dbcc checkdb(Portal)

dbcc checkdb(Portal) with tablock

7、数据库重命名、修改恢复模式、修改用户模式

—-数据库重命名

ALTER DATABASE WC

MODIFY NAME = test

—-设置数据库为完整恢复模式

alter database test

set recovery full

--只允许一个用户访问数据库

alter database test

set single_user

with rollback after 10 seconds —-指定多少秒后回滚事务

——只有sysadmin,dbcreator,db_owner角色的成员可以访问数据库

alter database wc

set restricted_user

with rollback immediate --立即回滚事务

-—多用户模式

alter database wc

set multi_user

with no_wait ——不等待立即改变,如不能立即完成,那么会导致执行错误

8、扩展数据库:增加文件组、增加文件、修改文件大小、修改文件的逻辑名称

--添加文件组

ALTER DATABASE test

ADD FILEGROUP WC_FG8 —-添加数据文件

ALTER DATABASE test

ADD FILE

NAME = WC_FG8,

FILENAME = 'D:WC_',

SIZE = 1mb,

MAXSIZE = 10mb,

FILEGROWTH = 1mb

TO FILEGROUP WC_FG8

--添加日志文件

ALTER DATABASE test

ADD LOG FILE

NAME = WC_LOG3,

FILENAME = 'D:WC_FG3。LDF’,

SIZE = 1MB,

MAXSIZE = 10MB,

FILEGROWTH = 100KB

-—修改数据文件的大小,增长大小,最大大小

ALTER DATABASE test

MODIFY FILE

(

NAME = ’WC_FG8',

SIZE = 2MB, -—必须大于之前的大小,否则报错

MAXSIZE= 8MB,

FILEGROWTH = 10%

)

--修改数据文件或日志文件的逻辑名称 ALTER DATABASE test

MODIFY FILE

NAME = WC_LOG3,

NEWNAME = WC_FG33

9、移动文件

-—由于在SQL Server中文件组、文件不能离线,所以必须把整个数据库设置为离线

checkpoint

go

ALTER DATABASE WC

SET OFFLINE

go

--修改文件名称

ALTER DATABASE WC

MODIFY FILE

(

NAME = WC_fg8,

FILENAME = ’D:WCWC_FG8。NDF’

)

go

——把原来的文件复制到新的位置:'D:WCWC_'

—-设置数据库在线

ALTER DATABASE WC

SET ONLINE

10、设置默认文件组、只读文件组

—-设置默认文件组 ALTER DATABASE WC

MODIFY FILEGROUP WC_FG8 DEFAULT

-—设为只读文件组

--如果文件已经是某个属性,不能再次设置相同属性

ALTER DATABASE WC

MODIFY FILEGROUP WC_FG8 READ_WRITE

11、收缩数据库、收缩文件

-—收缩数据库

DBCC SHRINKDATABASE('test', ——要收缩的数据库名称或数据库ID

10 ——收缩后,数据库文件中空间空间占用的百分比

DBCC SHRINKDATABASE('test', —-要收缩的数据库名称或数据库ID

10, -—收缩后,数据库文件中空闲空间占用的百分比

NOTRUNCATE --在收缩时,通过数据移动来腾出自由空间

)

DBCC SHRINKDATABASE(’test’, -—要收缩的数据库名称或数据库ID

10, ——收缩后,数据库文件中空间空间占用的百分比

TRUNCATEONLY —-在收缩时,只是把文件尾部的空闲空间释放

)

--收缩文件

DBCC SHRINKFILE(wc_fg8, —-要收缩的数据文件逻辑名称

7 —-要收缩的目标大小,以MB为单位 )

DBCC SHRINKFILE(wc_fg8, --要收缩的数据文件逻辑名称

EMPTYFILE ——清空文件,清空文件后,才可以删除文件

)

12、删除文件、删除文件组

1.要删除文件,必须要先把文件上的数据删除,或者移动到其他文件或文件组上

-—删除数据后,必须要清空文件的内容

DBCC SHRINKFILE(WC_FG8,EMPTYFILE)

——删除文件,同时也在文件系统底层删除了文件

ALTER DATABASE test

REMOVE FILE WC_FG8

2。要删除文件组,必须先删除所有文件

-—最后删除文件组

ALTER DATABASE test

REMOVE FILEGROUP WC_FG8

13、重新组织索引

ALTER INDEX [idx_temp_lock_id] ON [dbo].[temp_lock]

REORGANIZE

WITH ( LOB_COMPACTION = ON )

use test

go

select ’DBCC INDEXDEFRAG('+db_name()+’,'+o。name+','+ + ');’ --,db_name(),

—-o。name,

--i。name,

--i。*

from sysindexes i

inner join sysobjects o

on = o。id

where o。xtype = 'U’

and i。indid >0

and charindex(’WA_Sys’,i。name) = 0

14、重新生成索引

ALTER INDEX [idx_temp_lock_id] ON [dbo].[temp_lock]

REBUILD PARTITION = ALL

WITH ( PAD_INDEX = OFF,

STATISTICS_NORECOMPUTE = OFF,

ALLOW_ROW_LOCKS = ON,

ALLOW_PAGE_LOCKS = ON,

ONLINE = OFF,

SORT_IN_TEMPDB = OFF )

15、更新统计信息

-—更新表中某个的统计信息

update statistics temp_lock(_WA_Sys_00000001_07020F21)

update statistics temp_lock(_WA_Sys_00000001_07020F21)

with sample 50 percent

update statistics temp_lock(_WA_Sys_00000001_07020F21)

with resample, -—使用最近的采样速率更新每个统计信息

norecompute ——查询优化器将完成此统计信息更新并禁用将来的更新

—-更新索引的统计信息

update statistics temp_lock(idx_temp_lock_id)

with fullscan

-—更新表的所有统计信息

update statistics txt

with all

16、执行SQL Server代理作业

exec msdb。dbo。sp_start_job

@job_name =N’job_update_sql';