SQL Server DBA日常运维语句

网友投稿 917 2022-11-06

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

SQL Server DBA日常运维语句

SQL专栏SQL数据库基础知识汇总SQL数据库高级知识汇总

上次我们介绍了SQL Server DBA平时的一些工作任务,还没看的小伙伴可以戳下面的链接:

《SQL Server DBA工作内容你知道多少?》

今天我们介绍一下,日常工作中的一些运维语句,可以当作工具直接来使用。

1、检查数据库完整性

dbcc checkdb(Portal)dbcc checkdb(Portal) with tablock

(提示:可以左右移动代码)

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

--数据库重命名  ALTER DATABASE WC  MODIFY NAME = test

--设置数据库为完整恢复模式alter database testset recovery full

--只允许一个用户访问数据库  alter database test  set single_user  with rollback after 10 seconds --指定多少秒后回滚事务

--只允许一个用户访问数据库  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 testADD FILEGROUP WC_FG8

添加文件组

--添加数据文件ALTER DATABASE testADD FILE(    NAME = WC_FG8,    FILENAME = 'D:\WC_FG8.ndf',    SIZE = 1mb,    MAXSIZE = 10mb,    FILEGROWTH = 1mb)TO FILEGROUP WC_FG8

--添加日志文件ALTER DATABASE testADD LOG FILE(    NAME = WC_LOG3,    FILENAME = 'D:\WC_FG3.LDF',    SIZE = 1MB,    MAXSIZE = 10MB,    FILEGROWTH = 100KB)

--修改数据文件的大小,增长大小,最大大小ALTER DATABASE testMODIFY FILE(    NAME = 'WC_FG8',    SIZE = 2MB,      --必须大于之前的大小,否则报错    MAXSIZE= 8MB,    FILEGROWTH = 10%)

--修改数据文件或日志文件的逻辑名称ALTER DATABASE testMODIFY FILE(    NAME = WC_LOG3,    NEWNAME = WC_FG33)

4、移动文件

--由于在SQL Server中文件组、文件不能离线,所以必须把整个数据库设置为离线checkpointgo ALTER DATABASE WCSET OFFLINEgo

--修改文件名称ALTER DATABASE WCMODIFY FILE(    NAME = WC_fg8,    FILENAME = 'D:\WC\WC_FG8.NDF')go

--把原来的文件复制到新的位置:'D:\WC\WC_FG8.NDF'--设置数据库在线ALTER DATABASE WCSET ONLINE

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

--设置默认文件组ALTER DATABASE WCMODIFY FILEGROUP WC_FG8 DEFAULT

--设为只读文件组--如果文件已经是某个属性,不能再次设置相同属性ALTER DATABASE WCMODIFY 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、删除文件、删除文件组

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

--删除数据后,必须要清空文件的内容DBCC SHRINKFILE(WC_FG8,EMPTYFILE)

--删除文件,同时也在文件系统底层删除了文件ALTER DATABASE testREMOVE FILE WC_FG8

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

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

删除文件组

8、重新组织索引

ALTER INDEX [idx_temp_lock_id]ON [dbo].[temp_lock] REORGANIZEWITH ( LOB_COMPACTION = ON )

use testgo select 'DBCC INDEXDEFRAG('+db_name()+','+o.name+','+i.name + ');'        --,db_name(),        --o.name,        --i.name,        --i.* from sysindexes iinner join sysobjects o              on i.id = o.idwhere 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 =ALLWITH ( 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';

请大家收藏以后备用~

——End——后台回复关键字:资料领取,获取一份精心整理的技术干货后台回复关键字:进群,带你进入高手如云的交流群。推荐阅读

IT公司老板落水,各部门员工怎么救安利几款良心又高效的软件,总有一款你需要的知乎上这个程序员火了,竟是因为给老板修了一 次U盘...为什么下载电影时,经常会卡在99%?

上一篇:软件测试培训之如何战胜软件测试的困境
下一篇:软件测试培训之游戏软件的测试方法简述
相关文章

 发表评论

暂时没有评论,来抢沙发吧~