sqlserver数据库得管理及维护

sqlserver数据库得管理及维护



前言

Microsoft公司推出的一种关系型数据库系统。SQL Server是一个可扩展的、高性能的、为分布式客户机/服务器计算所设计的数据库管理系统,实现了与WindowsNT的有机结合,提供了基于事务的企业级信息管理系统方案。
1、高性能设计,可充分利用WindowsNT的优势。
2、系统管理先进,支持Windows图形化管理工具,支持本地和远程的系统管理和配置。
3、强壮的事务处理功能,采用各种方法保证数据的完整性。
4、持对称多处理器结构、存储过程、ODBC,并具有自主的SQL语言。 SQLServer以其内置的数据复制功能、强大的管理工具、与Internet的紧密集成和开放的系统结构为广大的用户、开发人员和系统集成商提供了一个出众的数据库平台。


一、手动备份及恢复

有备无患才是最安全得选择,即使天塌地陷,山崩地裂也无惧
打开SQL Server Management Studio
在这里插入图片描述
点击备份
在这里插入图片描述
在这里插入图片描述
还原数据库
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、自动备份及定期清除备份集计划

管理-右键维护计划
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
无报错说明配置无问题
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
设置每天执行,没有结束日期。
在这里插入图片描述
最后ctrl+s保存就好了
在这里插入图片描述
在这里插入图片描述
为防止数据文件过多占用磁盘空间,可以设置过去一周清除计划。
在这里插入图片描述
在这里插入图片描述
最后得结果就是这样得,最后不要忘记保存ctrl+s
在这里插入图片描述

三、数据库日志收缩

随着数据库使用时间增长,日志文件也在不停的增大,在此总结几个方法供参考,不管哪种方法,只要操作数据库就要注意先备份,以防万一。

方法一:直接通过企业管理器收缩日志

1、SQL Server Management Studio,数据库,使用数据库右键属性,选项,恢复模式,由完整更改为简单;
2、数据库右键,任务,收缩,文件,文件类型由数据更改为日志,点击确定进行日志收缩;
3、SQL Server Management Studio,数据库,使用数据库右键属性,选项,恢复模式,由简单更改为完整。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

方法二:分离数据库及日志文件

分离数据库 企业管理器->服务器->数据库->右键->分离数据库
删除或剪切ldf.log文件
附加数据库 企业管理器->服务器->数据库->右键->附加数据库
在这里插入图片描述
在这里插入图片描述

四、数据库索引碎片处理

SQL Server Management Studio (SSMS)连接数据库以后,展开数据库,展开表的索引,右键某条索引属性可查看其碎片;索引碎片比例要求小于60%,若索引碎片大多超过90%,需要备份数据库之后重建整个数据库所有索引:索引右键重新生成或者执行重建索引存储过程。存储过程sql如下:

IF OBJECT_ID('REBUILD_ALL_INDEX_FOR_MSSQL') IS NOT NULL DROP PROC REBUILD_ALL_INDEX_FOR_MSSQL;

go

CREATE PROCEDURE [dbo].[REBUILD_ALL_INDEX_FOR_MSSQL]
AS
  DECLARE @tablename varchar(100);
  DECLARE @indexname varchar(300);
BEGIN
  print 'REBUILD_ALL_INDEX_FOR_MSSQL - 20190427.1'
  print 'Challenge Your Won, Challengy Won'
  print ' '
  declare _table cursor for select name from sysobjects where xtype='U' order by name
  OPEN _table
  fetch next from _table into @tablename
  while (@@fetch_status=0)
  begin

    declare _index cursor for select i.name from sysindexes i JOIN sysobjects c ON i.id = c.id WHERE i.indid NOT IN ( 0, 255 ) and i.root is not null AND c.name = @tablename ORDER BY i.name
    open _index
    fetch next from _index into @indexname
    while (@@fetch_status=0)
    begin

      print convert(varchar(20),getdate(),120)+' exec -> ALTER INDEX '+@indexname+' on '+@tablename+' REBUILD'
      exec('ALTER INDEX '+@indexname+' on '+@tablename+' REBUILD')
      print convert(varchar(20),getdate(),120)
      print ' '

    fetch next from _index into @indexname
    end
    close _index
    deallocate _index

  fetch next from _table into @tablename
  end
  close _table
  deallocate _table
END

go

EXEC [dbo].[REBUILD_ALL_INDEX_FOR_MSSQL];

go

五、常用SQL语句

按照表大小进行排序查询

SELECT A.NAME ,B.ROWS  FROM sysobjects  A JOIN sysindexes B ON A.id = B.id 
WHERE A.xtype = 'U' AND B.indid IN(0,1) AND B.rows>0 ORDER BY B.ROWS DESC
  • 1
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值