4.1脱机与联机数据库
Online: 可以对数据库进行访问
Offline: 数据库无法使用
查看数据库状态的方法:
1)使用查询语句查询
SELECT state_desc FROM sys.databases WHERE NAME = 'E_Market'
2)使用DATABASEPROPERTYEX(database, property)函数
SELECT DATABASEPROPERTYEX('E_Market', 'status')
脱机:断开数据库与所有人的连接;数据库名在数据库节点中存在;不能执行任何有效的数据库操作
注意:如果需要拷贝mdf或者ndf文件,只有在数据库脱机的状态下才可以
联机:数据库处在可操作,可查询的状态(不能对数据库文件进行迁移和复制)
4.1.1使用数据库联机文档
连接上数据库如下
按F1键打开联机文档->点击索引->然后再查找框里输入需要寻找的字段,如”数据库状态”
4.2分离与附加数据库
分离与附加数据库的方式
4.2.1在视图下分离与附件数据库
附加时选择添加时,只选择主数据文件.mdf即可
4.2.2使用存储过程分离与附加数据库
分离数据库: EXEC [email protected] = E_Market
附加数据库: EXEC [email protected] = E_Market, @filename1 = ‘E:\Project\E_Market_data.mdf’, @filename2 = ‘E:\Project\E_Market_log.ldf’
4.2.3脱机与分离数据库的异同点
不同点:
脱机:与数据库服务断开连接,但在数据库节点上还存在脱机的数据库名称
分离:将数据库从服务器上分离出去,数据库不存在,只存在对应的数据文件和日志文件
相同点:
都可以对数据库文件进行赋值等操作
4.3收缩数据库
收缩数据库:删除数据库的每个文件中已经分配但还没有使用的页;收缩后数据库空间自动减少
收缩方式:自动收缩数据库;手动收缩数据库
自动收缩
SQL Server每半个小时检查一次文件使用情况,如果空闲空间大于25%,那么就会自动收缩,防止数据库有过多的空间而不使用
手动收缩
1)收缩数据库
执行完后记得刷新数据库
2)收缩文件
4.4数据库的备份与还原(完整备份与还原)
SQL Server提供四种数据库备份方式
1)完整备份:备份整个数据库的所有内容包括事务日志
2)差异备份:只备份上次完整备份后更改的数据部分
3)事务日志备份:只备份事务日志里的内容
4)文件或文件组备份:只备份文件或文件组中的某些文件
在数据库完整备份期间,SQL Server做一下工作
1)备份数据及数据库中所有表的结构和相关的文件结构
2)备份在备份期间发生的所有活动
3)备份在事务日志中未确认的事务
4.4.1数据库完整备份
备份数据库所有对象,缺点是时间较长,备份的文件较大
4.4.2数据库还原
首先删除E_Market数据库
数据库文件也一并被删除
还原E_Market: 使用完整备份的E_Market.bak文件
4.5数据库的备份与还原(差异备份与还原)
差异备份:是完整备份的补充;备份上次完整备份以来的数据变动的部分。
5:00中执行完整备份1,6点钟执行差异备份1,7点钟执行差异备份2。如果要恢复数据库在7:00的状态,则首先需要恢复完整备份1,接着恢复差异备份2,即可恢复数据库至7:00状态
差异备份如下图:
如果还原数据库:还原完整备份数据库没有问题,但是还原差异备份数据库时报如下错误:
“无法还原日志备份或差异备份,因为没有文件可用于前滚”
解决办法:首先删掉刚才还原的数据库(完整备份还原)
接着再次执行完整备份还原,注意勾选如下选项:
接着再还原差异备份数据库就不会报错了。