日期:2014-05-16 浏览次数:20442 次
数据库的日常维护,可以通过SQL Server中的维护计划来自动实现,非常方便。
不过,也不是所有的维护,都可以通过维护计划来实现,下面将通过代码来实现。
1、检查数据库完整性
dbcc checkdb(test)
通过加tablock提高速度
dbcc checkdb(test) with 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 --立即回滚事务 --多用户模式 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 )
--由于在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
5、设置默认文件组、只读文件组
--设置默认文件组 ALTER DATABASE WC MODIFY FILEGROUP WC_FG8 DEFAULT --设为只读文件组 --如果文件已经是某个属性,不能再次设置相同属性 ALTER DATABASE WC MODIFY FILEGROUP WC_FG8 READ_WRITE
--收缩数据库 DBCC SHRINKDATABASE('test', --要收缩的数据库名称或数据库ID 10 --收缩后,数据库文件中空间空间占用的百分比