sqlserver日常维护脚本
- SQL code
- --完整备份,每周一次
USE Master
GO
declare @str varchar(100)
set @str='D:\DBtext\jgj\DBABak\FullBak'+replace(replace(replace(convert(varchar,getdate(),20),'-',''),' ',''),':','')+'.bak'
BACKUP DATABASE [demo] TO DISK=@str
WITH RETAINDAYS=15,NOFORMAT,NOINIT,
NAME=N'Demo完整备份',SKIP,NOREWIND,
NOUNLOAD,STATS=10
GO--截断日志
USE Master
GO
BACKUP LOG Demo WITH NO_LOG
GO
--收缩日志文件
USE Demo
GO
DBCC SHRINKFILE (N'Demo_log',0,TRUNCATEONLY)
GO
--差异备份,每天一次
USE Master
GO
declare @str varchar(100)
set @str='D:\DBtext\jgj\DBABak\DiffBak'+replace(replace(replace(convert(varchar,getdate(),20),'-',''),' ',''),':','')+'.diff'
BACKUP DATABASE [Demo] TO DISK=@str
WITH DIFFERENTIAL,RETAINDAYS=8,NOFORMAT,NOINIT,
NAME=N'Demo差异备份',SKIP,NOREWIND,
NOUNLOAD,STATS=10
GO--日志备份,每小时一次
USE Demo
GO
declare @str varchar(100)
set @str='D:\DBtext\jgj\DBABak\logbak'+replace(replace(replace(convert(varchar,getdate(),20),'-',''),' ',''),':','')+'.trn'
BACKUP LOG [Demo] TO DISK=@str
WITH RETAINDAYS=3,NOFORMAT,NOINIT,
NAME=N'Demo日志备份',SKIP,NOREWIND,
NOUNLOAD,STATS=10
GO--删除过期的备份文件,每天两次
declare @str varchar(100),@dir varchar(100),@fileName varchar(30)
set @dir='del D:\DBtext\jgj\DBABak\'
set @filename=left(replace(replace(replace(convert(varchar,getdate()-15,20),'-',''),'',''),':',''),8)
set @str=@dir+'fullbak'+@filename+'*.bak'
exec xp_cmdshell @str
set @filename=left(replace(replace(replace(convert(varchar,getdate()-8,20),'-',''),'',''),':',''),8)
set @str=@dir+'diffbak'+@filename+'*.diff'
exec xp_cmdshell @str
set @filename=left(replace(replace(replace(convert(varchar,getdate()-8,20),'-',''),'',''),':',''),8)
set @str=@dir+'logbak'+@filename+'*.trn'
exec xp_cmdshell @str - SQL code
- SQL code
- --查看表的索引信息
exec sp_helpindex tb--结合sys.indexes和sys.index_columns,sys.objects,sys.columns查询索引所属的表或视图的信息
select
o.name as 表名,
i.name as 索引名,
c.name as 列名,
i.type_desc as 类型描述,
is_primary_key as 主键约束,
is_unique_constraint as 唯一约束,
is_disabled as 禁用
from
sys.objects o
inner join
sys.indexes i
on
i.object_id=o.object_id
inner join
sys.index_columns ic
on
ic.index_id=i.index_id and ic.object_id=i.object_id
inner join
sys.columns c
on
ic.column_id=c.column_id and ic.object_id=c.object_id
go--查询索引的键和列信息
select
o.name as 表名,
i.name as 索引名,
c.name as 字段编号,
from
sysindexes i inner join sysobjects o
on
i.id=o.id
inner join
sysindexkeys k
on
o.id=k.id and i.indid=k.indid
inner join
syscolumns c
on
c.id=i.id and k.colid=c.colid
where
o.name='表名'
---查询索引操作的信息
select * from sys.dm_db_index_usage_stats--查询指定表的统计信息(sys.stats和sysobjects联合查询)
select
o.name,--表名
s.name,--统计信息的名称
auto_created,--统计信息是否由查询处理器自动创建
user_created--统计信息是否由用户显示创建
from
sys.stats
inner join
sysobjects o
on
s.object_id=o.id
where
o.name='表名'
go--查看统计信息中列的信息
select
o.name,--表名
s.name,--统计信息的名称
sc.stats_column_id,
c.name---列名
from
sys.stats_columns sc
inner join
sysobjects o
on
sc.object_id=o.id
inner join
sys.stats s
on
sc.stats_id=s.stats_id and sc.object_id=s.object_id
inner join
sys.columns c
on
sc.column_id=c.column_id and sc.object_id=c.object_id
where
o.name='表名'--查看统计信息的明细信息
dbcc show_statistics--查看索引自动创建的统计信息
exec sp_autostats '对象名'--关闭自动生成统计信息的数据库选项
alter datebase 数据库名 set auto_create_statistics off--创建统计信息
create statistics 统计信息名称 on 表名(列名)
[with
[[fullscan
sample number{percent|rows}]
[norecompute]
]
go
解释一下上面的参数:
fullscan:指定对表或视图中所有的行收集统计信息
sample number{percent|rows}:指定随机抽样应读取的数据行数或者百分比 sample选项不能与fullscan选项同时使用
norecompute:指定数据库引擎不自动重新计算统计信息--计算随机抽样统计信息
create statistics 统计信息名称 on 表名(列名)
with sample 5 percent---创建统计信息,按5%计算随机抽样统计信息
go--创建统计信息
exec sp_createstats--参数自己去查下帮助,在这里不一一列举--修改统计信息
update statistics 表名|视图名
索引名|统计信息名,索引名|统计信息名,.....
[with
[[fullscan
sample number{percent|rows}]
[norecompute]
]
---参数与create statistics 语句相似,下面介绍几种常用应用
1.更新指定表的所有统计信息
update statistics 表名2.更新指定表的单个索引的统计信息
update statistics 表名 索引名3.对表进行全面扫描,更新统计信息
update statistics 表名(列名) with fullscan
--获取磁盘读写情况
select
@@total_read as '读取磁盘的次数',
@@total_write as '写入磁盘的次数',
@@total_error as '磁盘写入错误数',
getdate() as '当前时间'--获取数据库文件的I/O统计信息
select * from fn_virtualfilestats(null,null)
--两个参数
database_id--指定数据库编号,如果为null,则为所有数据库实例返回I/O统计信息
file_id --文件的编号,如果为null,则为所有文件返回信息--获取I/O工作情况
select
@@id_busy,--SQL自上次启动以来的用于执行输入和输出操作的时间
@@timeticks, --每个时钟周期对应的微秒数
@@id_busy*@@timeticks as 'I/O 操作毫秒数',
getdate() as '当前时间'--查看SQL SEVER CPU活动,工作情况
select
@@cpu_busy,--自上次启动以来的工作时间
@@timeticks, --每个时钟周期对应的微秒数
@@cpu_busy*cast(@@timeticks as float)/1000 as 'cpu工作时间(秒)',
@@idie*cast(@@timeticks as float)/1000 as 'CPU空闲时间(秒)'
getdate() as '当前时间'--获取网络数据包统计信息
select
getdate() as '当前时间',
@@pack_received as'输入数据包数量',
@@pack_sent as '输出数据包数量',
@@packet_error as '错误包数量'
服务器配置选项
--启动AWE
sp_configure 'show advanced options',1
reconfigure
go
sp_configure 'awe enable',1--启动AWE选项,用于支持超过4G内存 具体用法见笔记三
go
sp_configure 'show advanced options',0
reconfigure
go--指定游标集中的行数
sp_configure 'show advanced options',1
reconfigure
go
sp_configure 'cursor threshold'--指定游标集中的行数,超过此行数,将异步生成游标键集
go
sp_configure 'show advanced options',0
reconfigure
go--指定全文索引列的默认语言值
sp_configure 'show advanced options',1
reconfigure
go
sp_configure 'default full-text language'--2052代表简体中文,具体的查询联机丛书
go
sp_configure 'show advanced options',0
reconfigure
go--控制是否让触发器返回结果集
sp_configure 'show advanced options',1
reconfigure
go
sp_configure 'disallow results from triggers',1--1代表on
go
sp_configure 'disallow results from triggers',0--0代表off
go
sp_configure 'show advanced options',0
reconfigure
go--控制最初为创建索引分配的最大内存量
sp_configure 'index create memory', 4096
GO--设置可用的锁的最大个数
sp_configure 'show advanced options',1
reconfigure
go
sp_configure 'locks'---要设置的话在后面加',数字'
go
sp_configure 'show advanced options',0
reconfigure
go--设置SQL进程可使用的工作线程数
sp_configure 'show advanced options',1
reconfigure
go
sp_configure 'max worker threads'--要设置的话在后面加',数字'
go
sp_configure 'show advanced options',0
reconfigure
go--指定一个查询在超时前等待所需资源的时间
sp_configure 'query wait',数字
go--指定在SQL SERVER超时之前远程操作可以持续的时间
sp_configure 'remote query timeout',数字
go--是否允许运行系统存储过程xp_cmdshell
sp_configure 'show advanced options',1
reconfigure
go
sp_configure 'xp_cmdshell',1
reconfigure
go
sp_configure 'show advanced options',0
reconfigure
go--从运行SQL SERVER实例的本地或远程服务器上控制存储过程的执行
sp_configure 'show advanced options',1
reconfigure
go
sp_configure 'remote access',1 --1表示允许
reconfigure
go
sp_configure 'remote access',0 --0表示禁止
reconfigure
go
sp_configure 'show advanced options',0
reconfigure
go---更多的查看联机丛书
--启动,暂停和停止本地的SQL SERVER 服务
net start MSSQLSERVER --启动
net pause MSSQLSERVER --暂停
net continue MSSQLSERVER ---继续被停止的服务
net stop MSSQLSERVER --停止--查询服务器配置选项信息
select * from sys.configurations
go
--得到的结果中
configuration_id --配置选项的唯一ID
name --配置选项的名称
value --配置选项的值
minimum --配置选项的最小值
maximum --配置选项的最大值
value_in_use --配置选项当前使用的运行值
description --配置选项的说明
is_dynamic --等于1时表示需要执行reconfiguration语句才能生效的变量
is_anvanced --等于1时表示需要执行show advanced语句才能生效的变量--也可以使用sp_configure查询服务器配置选项信息,只是参数有所不同,具体查看联机丛书
sqlserver日常维护脚本的更多相关文章
- Oracle日常维护脚本
1.正常停库流程 ps -ef|grep LOCAL=NO|cut -c 9-15|xargs kill -9 shutdown immediate; 2.备份数据库 bac ...
- MS SQL 日常维护管理常用脚本(二)
监控数据库运行 下面是整理.收集监控数据库运行的一些常用脚本,也是MS SQL 日常维护管理常用脚本(一)的续集,欢迎大家补充.提意见. 查看数据库登录名信息 Code Snippet SELEC ...
- Oracle 史上最全近百条Oracle DBA日常维护SQL脚本指令
史上最全近百条Oracle DBA日常维护SQL脚本指令 https://mp.weixin.qq.com/s?__biz=MjM5MDAxOTk2MQ==&mid=2650281305&am ...
- oracle 容灾库日常维护 ,健康检查脚本 以及常见问题分析
select DEST_ID, APPLIED_SCN FROM v$archive_dest select * from v$dataguard_status; SELECT gvi.thread# ...
- 第三篇——第二部分——第五文 配置SQL Server镜像——域环境SQL Server镜像日常维护
本文接上面两篇搭建镜像的文章: 第三篇--第二部分--第三文 配置SQL Server镜像--域环境:http://blog.csdn.net/dba_huangzj/article/details/ ...
- SQL Server 日常维护经典应用
SQL Server日常维护常用的一些脚本整理. 1.sql server开启clr权限: GO RECONFIGURE GO ALTER DATABASE HWMESTC SET TRUSTWORT ...
- 数据库日常维护-CheckList_01历史Agent Job执行情况检查
检查Agent Job中日常维护作业或业务作业是否成功,如每天的备份.碎片整理.索引维护.历史备份文件清除等,可利用SSMS工具,通过CDC下面设置好的DB Server List,运行下面脚本一次, ...
- db2日常维护
一. DB2日常维护操作 1.数据库的启动.停止.激活 db2 list active databases db2 active db 数据库名 db2start --启动 db2stop [forc ...
- 程序员必备:Oracle日常维护命令
上一篇讲了Linux的日常维护命令,这篇讲讲Oracle的日常维护命令.工作中需要使用Oracle数据库的童鞋们,相信或多或少都需要对Oracle做一些基本的维护操作,例如导入导出总该有吧?( ...
随机推荐
- linux下查看当前用户的 三个命令
linux下查看当前用户的 三个命令 1,whoami; 2,id -un; 3,who -H 可以列出当前所有的 NAME (用户名) LINE (窗口列表) TIME(开启时间 ...
- 查看域名对应的ip地址
nslookup www.google.com.hk
- 繁华模拟赛 David与Vincent的博弈游戏
#include<iostream> #include<cstdio> #include<string> #include<cstring> #incl ...
- CSS3实现二十多种基本图形
CSS3可以实现很多漂亮的图形,我收集了32种图形,在下面列出.直接用CSS3画出这些图形,要比贴图性能更好,体验更加,是一种非常好的网页美观方式. 这32种图形分别为圆形,椭圆形,三角形,倒三角形, ...
- Jackson 框架,轻易转换JSON
Jackson 框架,轻易转换JSON Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json.xml转换成Java对象. 前面有介绍过json-lib这个框架,在 ...
- 关于delphi PAServer 远程调试DLL文件
用PAServer调试的话会产生一个默认user-connectionname的文件夹,且这个文件夹不能自定义.因此无法使调试的dll文件生成到host主程序所在的文件夹下而导致无法调试. 变通方法: ...
- linux 下如何查看和踢除正在登陆的其它用户 ==>Linux下用于查看系统当前登录用户信息的4种方法
在linux系统中用pkill命令踢出在线登录用户 由于linux服务器允许多用户登录,公司很多人知道密码,工作造成一定的障碍 所以需要有时踢出指定的用户 1/#who 查出当前有那些终端登录(用 ...
- vs2013秘钥
Ultimate:BWG7X-J98B3-W34RT-33B3R-JVYW9 Premium:FBJVC-3CMTX-D8DVP-RTQCT-92494 YKCW6-BPFPF-BT8C9-7DCT ...
- Sybase IQ导出文件的几种方式
IQ有四种方法,将表的数据导出为文本文件:1.重定向 SELECT * FROM TABLE1 ># D:MYDATATABLE1.TXT -- 文件生成在执行语句的客户端上 2.通过选项导出 ...
- Linux下永久修改主机名
红帽系列的Linux发行版主机名存放位置是/etc/sysconfig/network,Ubuntu Linux主机名存放位置是/etc/hostname,所以只要修改主机名存放文件便可以永久的修改计 ...