博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

SQL Server DBA日常运维语句

Posted on 2016-10-13 09:39  徐正柱-  阅读(3273)  评论(0编辑  收藏  举报

1、检查数据库完整性  

dbcc checkdb(Portal)
检查数据库完整性checkdb
Portal的 DBCC 结果。
Service Broker 消息 9675,状态 1: 已分析的消息类型: 14。
Service Broker 消息 9676,状态 1: 已分析的服务约定: 6。
Service Broker 消息 9667,状态 1: 已分析的服务: 3。
Service Broker 消息 9668,状态 1: 已分析的服务队列: 3。
Service Broker 消息 9669,状态 1: 已分析的会话端点: 0。
Service Broker 消息 9674,状态 1: 已分析的会话组: 0。
Service Broker 消息 9670,状态 1: 已分析的远程服务绑定: 0。
Service Broker 消息 9605,状态 1: 已分析的会话优先级: 0。
sys.sysrscols的 DBCC 结果。
对象 'sys.sysrscols' 的 14 页中有 1286 行。
sys.sysrowsets的 DBCC 结果。
对象 'sys.sysrowsets' 的 2 页中有 206 行。
sys.sysclones的 DBCC 结果。
对象 'sys.sysclones' 的 0 页中有 0 行。
sys.sysallocunits的 DBCC 结果。
对象 'sys.sysallocunits' 的 3 页中有 228 行。
sys.sysfiles1的 DBCC 结果。
对象 'sys.sysfiles1' 的 1 页中有 2 行。
sys.sysseobjvalues的 DBCC 结果。
对象 'sys.sysseobjvalues' 的 0 页中有 0 行。
sys.syspriorities的 DBCC 结果。
对象 'sys.syspriorities' 的 0 页中有 0 行。
sys.sysdbfrag的 DBCC 结果。
对象 'sys.sysdbfrag' 的 0 页中有 0 行。
sys.sysfgfrag的 DBCC 结果。
对象 'sys.sysfgfrag' 的 1 页中有 0 行。
sys.sysdbfiles的 DBCC 结果。
对象 'sys.sysdbfiles' 的 1 页中有 2 行。
sys.syspru的 DBCC 结果。
对象 'sys.syspru' 的 0 页中有 0 行。
sys.sysbrickfiles的 DBCC 结果。
对象 'sys.sysbrickfiles' 的 0 页中有 0 行。
sys.sysphfg的 DBCC 结果。
对象 'sys.sysphfg' 的 1 页中有 1 行。
sys.sysprufiles的 DBCC 结果。
对象 'sys.sysprufiles' 的 1 页中有 2 行。
sys.sysftinds的 DBCC 结果。
对象 'sys.sysftinds' 的 0 页中有 0 行。
sys.sysowners的 DBCC 结果。
对象 'sys.sysowners' 的 1 页中有 14 行。
sys.sysdbreg的 DBCC 结果。
对象 'sys.sysdbreg' 的 0 页中有 0 行。
sys.sysprivs的 DBCC 结果。
对象 'sys.sysprivs' 的 1 页中有 170 行。
sys.sysschobjs的 DBCC 结果。
对象 'sys.sysschobjs' 的 33 页中有 2296 行。
sys.syscolpars的 DBCC 结果。
对象 'sys.syscolpars' 的 17 页中有 1047 行。
sys.sysxlgns的 DBCC 结果。
对象 'sys.sysxlgns' 的 0 页中有 0 行。
sys.sysxsrvs的 DBCC 结果。
对象 'sys.sysxsrvs' 的 0 页中有 0 行。
sys.sysnsobjs的 DBCC 结果。
对象 'sys.sysnsobjs' 的 1 页中有 1 行。
sys.sysusermsgs的 DBCC 结果。
对象 'sys.sysusermsgs' 的 0 页中有 0 行。
sys.syscerts的 DBCC 结果。
对象 'sys.syscerts' 的 0 页中有 0 行。
sys.sysrmtlgns的 DBCC 结果。
对象 'sys.sysrmtlgns' 的 0 页中有 0 行。
sys.syslnklgns的 DBCC 结果。
对象 'sys.syslnklgns' 的 0 页中有 0 行。
sys.sysxprops的 DBCC 结果。
对象 'sys.sysxprops' 的 1 页中有 29 行。
sys.sysscalartypes的 DBCC 结果。
对象 'sys.sysscalartypes' 的 1 页中有 34 行。
sys.systypedsubobjs的 DBCC 结果。
对象 'sys.systypedsubobjs' 的 0 页中有 0 行。
sys.sysidxstats的 DBCC 结果。
对象 'sys.sysidxstats' 的 7 页中有 382 行。
sys.sysiscols的 DBCC 结果。
对象 'sys.sysiscols' 的 4 页中有 565 行。
sys.sysendpts的 DBCC 结果。
对象 'sys.sysendpts' 的 0 页中有 0 行。
sys.syswebmethods的 DBCC 结果。
对象 'sys.syswebmethods' 的 0 页中有 0 行。
sys.sysbinobjs的 DBCC 结果。
对象 'sys.sysbinobjs' 的 1 页中有 23 行。
sys.sysaudacts的 DBCC 结果。
对象 'sys.sysaudacts' 的 0 页中有 0 行。
sys.sysobjvalues的 DBCC 结果。
对象 'sys.sysobjvalues' 的 96 页中有 391 行。
sys.syscscolsegments的 DBCC 结果。
对象 'sys.syscscolsegments' 的 0 页中有 0 行。
sys.syscsdictionaries的 DBCC 结果。
对象 'sys.syscsdictionaries' 的 0 页中有 0 行。
sys.sysclsobjs的 DBCC 结果。
对象 'sys.sysclsobjs' 的 1 页中有 16 行。
sys.sysrowsetrefs的 DBCC 结果。
对象 'sys.sysrowsetrefs' 的 0 页中有 0 行。
sys.sysremsvcbinds的 DBCC 结果。
对象 'sys.sysremsvcbinds' 的 0 页中有 0 行。
sys.sysxmitqueue的 DBCC 结果。
对象 'sys.sysxmitqueue' 的 0 页中有 0 行。
sys.sysrts的 DBCC 结果。
对象 'sys.sysrts' 的 1 页中有 1 行。
sys.sysconvgroup的 DBCC 结果。
对象 'sys.sysconvgroup' 的 0 页中有 0 行。
sys.sysdesend的 DBCC 结果。
对象 'sys.sysdesend' 的 0 页中有 0 行。
sys.sysdercv的 DBCC 结果。
对象 'sys.sysdercv' 的 0 页中有 0 行。
sys.syssingleobjrefs的 DBCC 结果。
对象 'sys.syssingleobjrefs' 的 1 页中有 215 行。
sys.sysmultiobjrefs的 DBCC 结果。
对象 'sys.sysmultiobjrefs' 的 1 页中有 138 行。
sys.sysguidrefs的 DBCC 结果。
对象 'sys.sysguidrefs' 的 0 页中有 0 行。
sys.sysfoqueues的 DBCC 结果。
对象 'sys.sysfoqueues' 的 0 页中有 0 行。
sys.syschildinsts的 DBCC 结果。
对象 'sys.syschildinsts' 的 0 页中有 0 行。
sys.syscompfragments的 DBCC 结果。
对象 'sys.syscompfragments' 的 0 页中有 0 行。
sys.sysftsemanticsdb的 DBCC 结果。
对象 'sys.sysftsemanticsdb' 的 0 页中有 0 行。
sys.sysftstops的 DBCC 结果。
对象 'sys.sysftstops' 的 0 页中有 0 行。
sys.sysftproperties的 DBCC 结果。
对象 'sys.sysftproperties' 的 0 页中有 0 行。
sys.sysxmitbody的 DBCC 结果。
对象 'sys.sysxmitbody' 的 0 页中有 0 行。
sys.sysfos的 DBCC 结果。
对象 'sys.sysfos' 的 0 页中有 0 行。
sys.sysqnames的 DBCC 结果。
对象 'sys.sysqnames' 的 1 页中有 99 行。
sys.sysxmlcomponent的 DBCC 结果。
对象 'sys.sysxmlcomponent' 的 1 页中有 100 行。
sys.sysxmlfacet的 DBCC 结果。
对象 'sys.sysxmlfacet' 的 1 页中有 112 行。
sys.sysxmlplacement的 DBCC 结果。
对象 'sys.sysxmlplacement' 的 1 页中有 19 行。
sys.sysobjkeycrypts的 DBCC 结果。
对象 'sys.sysobjkeycrypts' 的 0 页中有 0 行。
sys.sysasymkeys的 DBCC 结果。
对象 'sys.sysasymkeys' 的 0 页中有 0 行。
sys.syssqlguides的 DBCC 结果。
对象 'sys.syssqlguides' 的 0 页中有 0 行。
sys.sysbinsubobjs的 DBCC 结果。
对象 'sys.sysbinsubobjs' 的 1 页中有 3 行。
sys.syssoftobjrefs的 DBCC 结果。
对象 'sys.syssoftobjrefs' 的 1 页中有 9 行。
MH_DBLJ的 DBCC 结果。
对象 'MH_DBLJ' 的 1 页中有 15 行。
MH_DLLS的 DBCC 结果。
对象 'MH_DLLS' 的 509 页中有 36399 行。
MH_DLRZ的 DBCC 结果。
对象 'MH_DLRZ' 的 8 页中有 127 行。
MH_FGCD的 DBCC 结果。
对象 'MH_FGCD' 的 1 页中有 141 行。
MH_GJT的 DBCC 结果。
对象 'MH_GJT' 的 0 页中有 0 行。
MH_GJT_JS的 DBCC 结果。
对象 'MH_GJT_JS' 的 9 页中有 110 行。
MH_IDENTITY的 DBCC 结果。
对象 'MH_IDENTITY' 的 1 页中有 12 行。
MH_JSCD的 DBCC 结果。
对象 'MH_JSCD' 的 27 页中有 3191 行。
MH_JSFG的 DBCC 结果。
对象 'MH_JSFG' 的 1 页中有 12 行。
MH_KJFS的 DBCC 结果。
对象 'MH_KJFS' 的 1 页中有 3 行。
MH_KJFS_JS的 DBCC 结果。
对象 'MH_KJFS_JS' 的 8 页中有 104 行。
MH_LBWJ的 DBCC 结果。
对象 'MH_LBWJ' 的 4 页中有 48 行。
MH_MKCS的 DBCC 结果。
对象 'MH_MKCS' 的 4 页中有 297 行。
MH_MKLB的 DBCC 结果。
对象 'MH_MKLB' 的 1 页中有 48 行。
MH_RZXX的 DBCC 结果。
对象 'MH_RZXX' 的 4 页中有 135 行。
MH_XTCS的 DBCC 结果。
对象 'MH_XTCS' 的 2 页中有 11 行。
MH_XTJS的 DBCC 结果。
对象 'MH_XTJS' 的 5 页中有 66 行。
MH_XTMK的 DBCC 结果。
对象 'MH_XTMK' 的 26 页中有 1618 行。
MH_XTYH的 DBCC 结果。
对象 'MH_XTYH' 的 8 页中有 406 行。
MH_XXDY的 DBCC 结果。
对象 'MH_XXDY' 的 0 页中有 0 行。
MH_XXZL的 DBCC 结果。
对象 'MH_XXZL' 的 0 页中有 0 行。
MH_YHCD的 DBCC 结果。
对象 'MH_YHCD' 的 1 页中有 1 行。
MH_YHJS的 DBCC 结果。
对象 'MH_YHJS' 的 6 页中有 574 行。
MH_YXRZ的 DBCC 结果。
对象 'MH_YXRZ' 的 13049 页中有 250639 行。
MH_ZDHC的 DBCC 结果。
对象 'MH_ZDHC' 的 1 页中有 70 行。
MH_ZMBJ的 DBCC 结果。
对象 'MH_ZMBJ' 的 5 页中有 326 行。
MH_ZYDX的 DBCC 结果。
对象 'MH_ZYDX' 的 1 页中有 143 行。
MH_ZYXX的 DBCC 结果。
对象 'MH_ZYXX' 的 1 页中有 12 行。
ZZ_FINGER的 DBCC 结果。
对象 'ZZ_FINGER' 的 0 页中有 0 行。
GY_FBRZ的 DBCC 结果。
对象 'GY_FBRZ' 的 0 页中有 0 行。
MH_DYFF的 DBCC 结果。
对象 'MH_DYFF' 的 0 页中有 0 行。
MH_DYLB的 DBCC 结果。
对象 'MH_DYLB' 的 1 页中有 11 行。
MH_DYMX的 DBCC 结果。
对象 'MH_DYMX' 的 0 页中有 0 行。
MH_FBLB的 DBCC 结果。
对象 'MH_FBLB' 的 1 页中有 11 行。
BSOFT_TEST_CONNECT的 DBCC 结果。
对象 'BSOFT_TEST_CONNECT' 的 1 页中有 1 行。
pbcattbl的 DBCC 结果。
对象 'pbcattbl' 的 0 页中有 0 行。
pbcatcol的 DBCC 结果。
对象 'pbcatcol' 的 0 页中有 0 行。
pbcatfmt的 DBCC 结果。
对象 'pbcatfmt' 的 1 页中有 20 行。
pbcatvld的 DBCC 结果。
对象 'pbcatvld' 的 0 页中有 0 行。
pbcatedt的 DBCC 结果。
对象 'pbcatedt' 的 1 页中有 21 行。
TMP_IMAGE_KEY1的 DBCC 结果。
对象 'TMP_IMAGE_KEY1' 的 1 页中有 13 行。
sysdiagrams的 DBCC 结果。
对象 'sysdiagrams' 的 0 页中有 0 行。
sys.filestream_tombstone_1893581784的 DBCC 结果。
对象 'sys.filestream_tombstone_1893581784' 的 0 页中有 0 行。
sys.syscommittab的 DBCC 结果。
对象 'sys.syscommittab' 的 0 页中有 0 行。
sys.filetable_updates_1925581898的 DBCC 结果。
对象 'sys.filetable_updates_1925581898' 的 0 页中有 0 行。
sys.queue_messages_1977058079的 DBCC 结果。
对象 'sys.queue_messages_1977058079' 的 0 页中有 0 行。
sys.queue_messages_2009058193的 DBCC 结果。
对象 'sys.queue_messages_2009058193' 的 0 页中有 0 行。
sys.queue_messages_2041058307的 DBCC 结果。
对象 'sys.queue_messages_2041058307' 的 0 页中有 0 行。
HX_NUMIDENTI的 DBCC 结果。
对象 'HX_NUMIDENTI' 的 0 页中有 0 行。
MH_AUTORUN的 DBCC 结果。
对象 'MH_AUTORUN' 的 1 页中有 2 行。
MH_CWRZ的 DBCC 结果。
对象 'MH_CWRZ' 的 194 页中有 9159 行。
CHECKDB 在数据库 'Portal' 中发现 0 个分配错误和 0 个一致性错误。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
消息或结果:
dbcc checkdb(Portal) with tablock
tablock提高速度

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

--数据库重命名  
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        --立即回滚事务  
只有sysadmin,dbcreator,db_owner角色的成员可以访问数据库
--多用户模式 
alter database wc  
set multi_user  
with no_wait       --不等待立即改变,如不能立即完成,那么会导致执行错误 
多用户模式

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

--添加文件组
ALTER DATABASE test
ADD FILEGROUP WC_FG8
添加文件组
--添加数据文件
ALTER DATABASE test
ADD FILE
(
    NAME = WC_FG8,
    FILENAME = 'D:\WC_FG8.ndf',
    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
)
修改数据文件或日志文件的逻辑名称

 4、移动文件  

--由于在SQL Server中文件组、文件不能离线,所以必须把整个数据库设置为离线
checkpoint
go
 
ALTER DATABASE WC
SET OFFLINE
go
设置数据库为离线
--修改文件名称
ALTER DATABASE WC
MODIFY FILE
(
    NAME = WC_fg8,
    FILENAME = 'D:\WC\WC_FG8.NDF'
)
go
修改文件名称
--把原来的文件复制到新的位置:'D:\WC\WC_FG8.NDF'
--设置数据库在线
ALTER DATABASE WC
SET ONLINE
设置数据库为ONLINE

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

--设置默认文件组
ALTER DATABASE WC
MODIFY FILEGROUP WC_FG8 DEFAULT
设置默认文件组
--设为只读文件组
--如果文件已经是某个属性,不能再次设置相同属性
ALTER DATABASE WC
MODIFY FILEGROUP WC_FG8 READ_WRITE
设为只读文件组

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

--收缩数据库  
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 --清空文件,清空文件后,才可以删除文件  
                )
收缩文件

7、删除文件、删除文件组

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

--删除数据后,必须要清空文件的内容
DBCC SHRINKFILE(WC_FG8,EMPTYFILE)
清空文件的内容
--删除文件,同时也在文件系统底层删除了文件
ALTER DATABASE test
REMOVE FILE WC_FG8
删除文件

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

--最后删除文件组
ALTER DATABASE test
REMOVE FILEGROUP WC_FG8
删除文件组

 8、重新组织索引

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+','+i.name + ');'
        --,db_name(),
        --o.name,
        --i.name,
        --i.*
 
from sysindexes i
inner join sysobjects o
        on i.id = o.id
where o.xtype = 'U'
      and i.indid >0
      and charindex('WA_Sys',i.name) = 0
 
批量生成重组索引的语句

9、重新生成索引

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 )
重建索引

10、更新统计信息

--更新表中某个的统计信息  
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
更新表的所有统计信息

11、执行SQL Server代理作业

exec msdb.dbo.sp_start_job 
    @job_name =N'job_update_sql';
执行代理作业