SQL
SERVER
2000有四种类型是:数据库、事务日志、差异、文件和文件组
数据库备份是创建完事数据库的复本。它并非将所有的页都复制到备份集,而只将实际包含数据的页复制到备份集。数据页和事务日志页均复制到备份集。
数据库备份用于重新创建数据库,使其恢复到BACKUP语句完成时的状态。如果数据库只存在数据库备份,那么数据库只能恢复到服务器或数据库发生故障前最后一次数据库备份时的状态。
事务日志备份仅制作日志文件的复本。日志文件备份本身不能用于还原数据库。日志文件用于在数据库还原后将数据库恢复到原始故障点。
例如,某站点在星期天晚上执行数据库备份,而在其它每个晚上执行日志备份。如果数据库的某个数据磁盘在星期二2:30丢失,则该站点可以:
1备份当前事务日志
2还原从星期天晚上开始的数据库备份
3还原从星期一晚上开始的日志备份,以将数据库前滚。
4还原故障之后的日志备份。这将使数据库前滚到故障发生的那一刻。
事务日志恢复需要从数据库备份的那一刻到磁盘丢失那一刻之间所进行的一边串不间断的事务日志备份。
差异备份只追寻数据库中自上一次数据库备份之后修改过的所有页的复本。差异日志主要用于使用频繁的系统,一旦这类系统中的数据库发生故障,必须尽快使其重新联机。差异备份比完事数据库备份小,因此对正在运行的系统影响较小。
例如,某个站点在星期天晚上执行完事数据库备份。在白天每隔4小时制作一个事务日志备份集,并用当天的备份重写头一天的备份。每晚则进行差异备份。如果数据库的某个数据磁盘在星期四上午9:12出现故障,则该站点可以:
1备份当前事务日志。
2还原从星期天晚上开始的数据库备份。
3还原从星期三晚上开始的差异备份,将数据库前滚到这一时刻。
4还原从早上4点到8点的事务日志备份,以将数据库前滚到早上8点。
5还原故障之后的日志备份,这将使数据库前滚到故障发生的那一刻。
SQL2000支持备份或还原数据库中的个别文件或文件组。这是一种相对较完善的备份和还原过程,通常用在具有较高可用性要求的超大型数据库中。如果可用的备份时间不足以支持完事数据库备份,则可以在不同的时间备份数据库的子集。
例如,某站点需要花三小时备份数据库,并且每天只能用两个小时执行备份。该站点可在一个晚上备份一半文件或文件级,并在第二个晚上备份另一半。如果包含数据库文件或文件组的磁盘出现故障,那么该站点可以只还原丢失的文件或文件组。
该站点还必须进行事务日志备份,并且在备份文件或文件组之后必须还原所胡事务日志备份。还可以从完事数据库备份集中还原文件和文件组。这将回忆恢复速度,因为在第一步只还原已损坏的文件或文件组,而不是整个数据库。
昨天帮一个朋友恢复了sql server 数据库 现在把过程写出来 大家一起分享
我那个哥们是从别人那拷了一个数据库的数据文件 (c:\mssql \data 目录下的文件)
最初我是用的
在一台好的机器上重新安装SQL Server 建立相同的数据库设备(大小) 和数据库
停掉SQL Server 用拷贝出来的数据库文件覆盖刚建立的数据库文件 再重新启动
SQL Server 但一直不可以 我猜关键是无法建立相同的数据库设备(大小)
后来采用了
系统存储过程
sp_attach_db // 附加数据库文件到服务器
或
sp_attach_db_single_file // 附加数据库的单个文件到服务器
具体的sql 语句就是
例如
EXEC sp_attach_single_file_db pubs e:\data\pubs mdf sp_attach_db @dbname= conmis @filename = d:\ \conmis _data mdf @filename = d:\ \conmis _log ldf
如何附加数据库文件到服务器(即 通过 mdf ldf 文件修复数据库)
另外查找资料时看到也可以通过日志恢复以前的数据 不知那位哥们看看是不是可以
用日志恢复
restore log {data_name|@database_name_var}fromwith [norecovery\recovery\standby_undo_file_name][ ][stopat={data_time|@data_time_var}
例如 库名为database 日志为database _log 要求恢复 / / : 前的数据
lishixinzhi/Article/program/SQL/201311/16392
以上就是关于数据库的备份与恢复全部的内容,包括:数据库的备份与恢复、如何恢复数据库的内容、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)