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做一些基本的维护操作,例如导入导出总该有吧?( ...
随机推荐
- ios学习之UIViewControl生命周期
提到UIViewcontrol,每个人都不会陌生吧!平时实际开发中,每天的实际开发应该都少不了它.学过android的各位亲,也对生命周期这四个 字并不陌生,无论是activity,还是service ...
- html5摇一摇[转]
写在前面 年底了,有些公司会出一个摇奖的活动,今天在家没事就搜了一下这方面的资料. 原文地址:http://www.cnblogs.com/waitingbar/p/4682215.html 测试 效 ...
- c语言的头文件-不是c++类的头文件?
下面的概述是参考的这篇文章:http://blog.csdn.net/bingxx11/article/details/7771437 c语言编程中也有,也需要头文件, 头文件不只是C++的类才需要! ...
- linux在所有文件中查找某一个字符
# find <directory> -type f -name "*.c" | xargs grep "<strings>" < ...
- thinkphp 3.23 第三方登录sdk集成包
本集成包在官方包上扩展了支付宝登录和微信,支持最新的3.23版本 config /* URL配置 */ 'URL_CASE_INSENSITIVE' => true, //默认fa ...
- Javascript中理解发布--订阅模式
Javascript中理解发布--订阅模式 阅读目录 发布订阅模式介绍 如何实现发布--订阅模式? 发布---订阅模式的代码封装 如何取消订阅事件? 全局--发布订阅对象代码封装 理解模块间通信 回到 ...
- MVC中html转义问题(直接输出html的方法)
MVC中如果用@string(string是包含html代码的字符串)形式输出字符串,那么对应的html标签会自动转义,如果想直接输出html可用以下方法: @(new HtmlString( &qu ...
- mac os 安装 pkg-config
wget http://pkgconfig.freedesktop.org/releases/pkg-config-0.29.tar.gz . env LDFLAGS="-framework ...
- Windows下的git配置
需要的配置: 1.C:\Program Files\Git\etc\git-completion.bash: alias ls='ls --show-control-chars --color=aut ...
- DisJSet:Find them, Catch them(POJ 1703)
抓住他们! 题目大意:两个黑社会帮派,互相打架,现在你很多条信息,要你确定两个人是否属于不同帮派 这题很有趣,题目不是直接给你两个人是否是一个帮派的,他给你的是不同帮派的,也就是给你很多个不同的要你找 ...