sqlsever2008 2条数据传奇攻击倍数叠加脚本,怎么做脚本删除一个

当前位置:&>&&>&&>&
sql server 2008数据库日常维护常用脚本
发布时间:编辑:
说明:backup语句和dump语句已经在sql server 2008里面消失了,另外还有些经常用到的语句也已经不在sql server 2008中使用了,大家在学习时,要多加注意哦。
说明:backup语句和dump语句已经在sql server 2008里面消失了,另外还有些经常用到的语句也已经不在sql server 2008中使用了,大家在学习时,要多加注意哦。
1、 备份:
复制代码 代码如下:
declare @sql varchar(8000)
set @sql='backup database smallerp to disk=''d:\'+RTRIM(CONVERT(varchar,getdate(),112))+'.bak'''
exec(@sql);
(备注:引号不可缺少任意一个,否则会报错)
2、 删除5天前的备份文件:
复制代码 代码如下:
declare @sql varchar(8000)
set @sql='del d:\'+RTRIM(CONVERT(varchar,getdate()-5,112))+'.bak'''
exec master..xp_cmd @
(备注:xp_cndshell默认该组件会被阻止,需要先启用它才可正常操作:使用如下语句将其启用EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;)
3、 收缩数据库:
复制代码 代码如下:
dump transaction smallerp with no_
(备注:这句话中会提示transaction附近有语法错误,原来SQL2008中已不再使用此法来收缩数据库了。)
而使用:alter,使用方法如下:
复制代码 代码如下:
alter database smallerp set recovery simple
dbcc shrinkdatabase(smallerp,0);)
backup log smallerp with no_
(备注:这句话执行时会报错:此语句不支持一个或多个选项(no_log),SQL2008已不再支持这种写法了。)
4、 查看数据库里活动用户和进程信息:
复制代码 代码如下:
sp_who 'active';
(备注:如果只是这么写的话会提示sp_who附近有语法错误,但执行的时候可以查到数据,如果在前面加一个exec,则不再提示错误。且1&50的进程号
为SQL SERVER系统内部用的,只有大于50的进程号才是用户的连接进程。spid是进程号,dbid是数据库编号,objid是数据对象编号)
5、查看数据库里用户和进程信息:
复制代码 代码如下:
6、 查看数据库里的锁情况:
复制代码 代码如下:
7、 分析SQL SERVER里的方法:
复制代码 代码如下:
set statistics time {on | off}(写语句的时候只需要写明是on或者off即可)
set statistics io {on | off}
8、 文本方式显示查询执行计划:
复制代码 代码如下:
set showplan_all {on | off}
set showplan_text { on | off }
set statistics profile { on | off }
9、 差异备份:
复制代码 代码如下:
declare @str varchar(100)
set @str='D:\'+replace(replace(replace(convert(varchar,getdate(),20),'-',''),' ',''),':','')+'.diff'
BACKUP DATABASE smallerp TO DISK=@str
WITH DIFFERENTIAL,RETAINDAYS=8,NOFORMAT,NOINIT,
NAME=N'Demo差异备份',SKIP,NOREWIND,
NOUNLOAD,STATS=10
10、 删除过期的备份文件,并设定每天两次:
复制代码 代码如下:
declare @str varchar(100),@dir varchar(100),@fileName varchar(30)
set @dir='del D:\ '
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 server 2008数据库日常维护常用脚本 有关的文章
本文标题:
本页链接:
12345678910
12345678910sqlserver收缩日志的几种方式,SQL Server 2008 收缩日志 清空删除大日志文件 | MS SQL Server |
_数据库_运维_开发_IT学习_无忧IT学习网
一起学习!一起进步!
sqlserver收缩日志的几种方式,SQL Server 2008 收缩日志 清空删除大日志文件
浏览: 1,392 views
SqlServer收缩日志的几种方式
–参考 &&
压缩日志及数据库文件大小 &&
/*–特别注意 &...
收缩日志的几种方式
–参考 &&
压缩日志及文件大小 &&
/*–特别注意 &&
请按步骤进行,未进行前面的步骤,请不要做后面的步骤 &&
否则可能损坏你的. &&
一般不建议做第4,6两步 &&
第4步不安全,有可能损坏或丢失数据 &&
第6步如果日志达到上限,则以后的处理会失败,在清理日志后才能恢复. &&
–*/ &&
–下面的所有库名都指你要处理的的库名 &&
1.清空日志 &&
DUMP TRANSACTION 库名 WITH NO_LOG &&
2.截断事务日志: &&
BACKUP LOG 库名 WITH NO_LOG &&
3.收缩文件(如果不压缩,的文件不会减小 &&
企业管理器–右键你要压缩的–所有任务–收缩–收缩文件 &&
–选择日志文件–在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了 &&
–选择数据文件–在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了 &&
也可以用SQL语句来完成 &&
–收缩 &&
DBCC SHRINKDATABASE(库名) &&
–收缩指定数据文件,1是文件号,可以通过这个语句查询到:select * from sysfiles &&
DBCC SHRINKFILE(1) &&
4.为了最大化的缩小日志文件(如果是sql 7.0,这步只能在查询分析器中进行) &&
a.分离: &&
企业管理器–––右键–分离 &&
b.在我的电脑中删除LOG文件 &&
c.附加: &&
企业管理器–––右键–附加 &&
此法将生成新的LOG,大小只有500多K &&
或用代码: &&
下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前。 &&
EXEC sp_detach_db @dbname = '库名' &&
b.删除日志文件 &&
c.再附加 &&
EXEC sp_attach_single_file_db @dbname = '库名', &&
@physname = 'c:Program FilesMicrosoft SQL ServerMSSQLData库名.mdf' &&
5.为了以后能自动收缩,做如下设置: &&
企业管理器––右键–属性–选项–选择&自动收缩& &&
–SQL语句设置方式: &&
EXEC sp_dboption '库名', 'autoshrink', 'TRUE' &&
6.如果想以后不让它日志增长得太大 &&
企业管理器––右键–属性–事务日志 &&
–将文件增长限制为xM(x是你允许的最大数据文件大小) &&
我采用的方式是 分离 将log文件改名字
EXEC sp_attach_single_file_db @dbname = '库名', @physname = 'c:Program FilesMicrosoft SQL ServerMSSQLData库名.mdf'
生成的Log文件500k左右
在2008中 上面的程序可能会有问题
08采用下面模式
–名称为 test &
USE test &
& &ALTER DATABASE test SET RECOVERY SIMPLE WITH NO_WAIT &
& &ALTER DATABASE test SET RECOVERY SIMPLE & &&
& &USE test &&
–这里的2根据 select * from sysfiles 来查询 一般数据位1 日志为2 &
& &DBCC SHRINKFILE (2 , 11, TRUNCATEONLY) &
& &USE test &
& &ALTER DATABASE test SET RECOVERY FULL WITH NO_WAIT &
& &ALTER DATABASE test SET RECOVERY FULL & &&
SQL2008 的收缩日志&
由于SQL2008对文件和日志管理进行了优化,所以以下语句在SQL2005中可以运行但在SQL2008中已经被取消:
BackupLog&DNName&with&no_log
dumptransaction&DNName&with&no_log
USE&DNName&
DBCC&SHRINKFILE (2)
–————————————————————
(SQL2008):
在SQL2008中清除日志就必须在简单模式下进行,等清除动作完毕再调回到完全模式。
方案一:完全命令模式
USE[master]
&&&&ALTERDATABASE&DNName&SET&RECOVERY SIMPLE&WITH&NO_WAIT
&&&&ALTERDATABASE&DNName&SET&RECOVERY SIMPLE&&&–简单模式
&&&&USE&DNName&
&&&&DBCC&SHRINKFILE (N'DNName_Log'&,&11, TRUNCATEONLY)
&&&&USE[master]
&&&&ALTERDATABASE&DNName&SET&RECOVERY&FULLWITH&NO_WAIT
&&&&ALTERDATABASE&DNName&SET&RECOVERY&FULL&&–还原为完全模式
方案二:部分命令模式 + 任务-收缩-文件(单个)
ALTERDATABASE&DNName&SET&RECOVERY SIMPLE&&&–简单模式
  右键-任务-收缩-文件-确定 下来的日志只保留了1M
ALTERDATABASE&DNName&SET&RECOVERY&FULL&&–还原为完全模式
优点:此清除日志所运行消耗的时间短,90GB的日志在分钟左右即可清除完毕,做完之后做个完全备份在分钟内
即可完成。
缺点: 不过此动作最好不要经常使用,因为它的运行会带来系统碎片。普通状态下LOG和DIFF的备份即可截断日志。
此语句使用的恰当环境:当系统的日志文件异常增大或者备份LOG时间太长可能影响生产的情况下使用。
& | & & | & & | & & | & & | & & | & & | & & | & & | & & | & & | & & | & & | &
最热门文章
38001 views
9914 views
9402 views
6020 views
5214 views
4232 views
3822 views
3281 views
友情链接 |
本站进行139次查询在SqlServer 2008中如何将数据导成脚本
当我们想将数据库搬到另一个环境中运行时,如果数据库的版本一样我们可以直接选择附加的方式,而如果实验环境中的数据库版本比当前数据库低,就无法附加了。这时要向将数据全部导过去就需要使用脚本的方式,像Sqldbx就可以将数据库中的数据导出成脚本。本文将说下怎样直接在SqlServer 2008中将数据导出成脚本。
具体步骤:
1 打开SqlServer 2008 ,选择需要将数据导出到脚本的数据库。
2 在选中数据库上右击,选择任务-》生成脚本&
3 点击&生成脚本&后,弹出一个生成脚本的向导。
4 点击下一步至&设置脚本编写选项&,点击高级进入到高级设置对话框,可以看到&要编写脚本数据的类型&默认是&仅限架构&。
5 将&要编写脚本的数据的类型&修改为&架构和数据&。
6 执行完后,可以看到脚本中多了很多的Insert语句。
标签(Tag):
------分隔线----------------------------
------分隔线----------------------------&&国之画&&&&&&
&& &&&&&&&&&&&&&&&&&&
鲁ICP备号-4
打开技术之扣,分享程序人生!

参考资料

 

随机推荐