千家信息网

数据库日常维护常用的脚本语句是什么

发表于:2024-11-22 作者:千家信息网编辑
千家信息网最后更新 2024年11月22日,小编给大家分享一下数据库日常维护常用的脚本语句是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、数据库备份操作:de
千家信息网最后更新 2024年11月22日数据库日常维护常用的脚本语句是什么

小编给大家分享一下数据库日常维护常用的脚本语句是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

  1、数据库备份操作:

  declare@sqlvarchar(8000)set@sql='backupdatabasesmallerptodisk=''d:\'+RTRIM(CONVERT(varchar,getdate(),112))+'.bak'''exec(@sql);(备注:引号不可缺少任意一个,否则会报错)

  2、删除5天前的备份文件:

  declare@sqlvarchar(8000)set@sql='deld:\'+RTRIM(CONVERT(varchar,getdate()-5,112))+'.bak'''execmaster..xp_cmdshell@sql;(备注:xp_cndshell默认该组件会被阻止,需要先启用它才可正常操作:使用如下语句将其启用EXECsp_configure'showadvancedoptions',1;RECONFIGURE;EXECsp_configure'xp_cmdshell',1;RECONFIGURE;)

  3、收缩数据库语句:

  dumptransactionsmallerpwithno_log;(备注:这句话中会提示transaction附近有语法错误,原来在SQL2008中已经不再使用此法来收缩数据库了。而使用:alter,使用方法如下:alterdatabasesmallerpsetrecoverysimpledbccshrinkdatabase(smallerp,0);)backuplogsmallerpwithno_log;(备注:这句话执行的时候会报错:此语句不支持一个或多个选项(no_log),原因也是因为SQL2008已经不再支持这种写法了。)

  4、查看数据库里活动用户和进程信息:

  sp_who'active';(备注:假如只是这么写的话会提示sp_who附近有语法错误,但执行的时候可以查到数据,假如在过去不久的文章里加一个exec,则不再提示错误。且1-50的进程号为SQLSERVER系统内部用的,只有大于50的进程号才是用户的连接进程。spid是进程号,dbid是数据库编号,objid是数据对象编号)

  数据库日常维护常用的脚本语句有哪些

  5、查看数据库里用户和进程信息:

  Execsp_who;

  6、查看数据库里的锁情况:

  Execsp_lock;

  7、分析SQLSERVER里sql语句的方法:

  setstatisticstime{on|off}(写语句的时候只需要写明是on或者off即可)setstatisticsio{on|off}

  8、文本方式显示查询执行计划:

  setshowplan_all{on|off}setshowplan_text{on|off}setstatisticsprofile{on|off}

  9、差异备份:

  declare@strvarchar(100)set@str='D:\'+replace(replace(replace(convert(varchar,getdate(),20),'-',''),'',''),':','')+'.diff'BACKUPDATABASEsmallerpTODISK=@strWITHDIFFERENTIAL,RETAINDAYS=8,NOFORMAT,NOINIT,NAME=N'Demo差异备份',SKIP,NOREWIND,NOUNLOAD,STATS=10GO

  10、删除过期的备份文件,并设定每天两次:

  declare@strvarchar(100),@dirvarchar(100),@fileNamevarchar(30)set@dir='delD:\'set@filename=left(replace(replace(replace(convert(varchar,getdate()-15,20),'-',''),'',''),':',''),8)set@str=@dir+'fullbak'+@filename+'*.bak'execxp_cmdshell@strset@filename=left(replace(replace(replace(convert(varchar,getdate()-8,20),'-',''),'',''),':',''),8)set@str=@dir+'diffbak'+@filename+'*.diff'execxp_cmdshell@strset@filename=left(replace(replace(replace(convert(varchar,getdate()-8,20),'-',''),'',''),':',''),8)set@str=@dir+'logbak'+@filename+'*.trn'execxp_cmdshell@str

以上是"数据库日常维护常用的脚本语句是什么"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

0