加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SqlServer2005/2008备份模式与恢复模式 3copy数据库文件,另一种

发布时间:2020-12-12 15:26:37 所属栏目:MsSql教程 来源:网络整理
导读:SQL Server允许使用简单的Copy方式来备份数据库的数据和日志文件吗?答案是肯定的。但前提是数据文件不再被SQL Server使用。 当数据库处于活动状态,你不能简单的copy它的文件,推荐方式是使用完整数据库备份( 备份模式 )。这是因为数据库的数据和日志文件不
10:00 Copying of data files start,takes 10 minutes. 10:05 A checkpoint occurs,modifies some pages at the beginning of the data file (which have already been copied),and some pages at the end of the data file (yet to be copied). 10:10 Copying of data files end,copy of transaction log starts. 10:15 Copying of transaction log ends.

你最后一步是copy事务日志,这就意味着数据文件已经包括了最后一次checkpoint以后的所有更改,但是实际上数据文件仅仅包括部分更改。

?

Copy一个已经被其他应用程序打开的文件,这种方式是非常有用的,但如上所述,这种方式好像并不适用于备份SQL Server数据库。假如你必须使用Copy方式来替换普通的数据库备份方式的话,推荐的方式是使用sp_detach_db存储过程来分离数据库:

sp_detach_db 'AdventureWorks'

SQL Server在把数据库从SQL Server实例上分离下来之前,会把所有的脏页都写回磁盘。然后,你就可以Copy数据库文件了,这时数据库文件也是处于一致性状态的。然后,你可以使用sp_attach_db来重新附加数据库:

sp_attach_db 'AdventureWorks','e:/mssql_data/AdventureWorks/AdventureWorks.mdf','e:/mssql_data/AdventureWorks_log.ldf'

假如你的数据库仅仅由数据文件组成,而且再也不需要事务日志文件了,那么使用sp_attach_single_file_db存储过程:

sp_attach_single_file_db 'AdventureWorks','e:/mssql_data/AdventureWorks/AdventureWorks.mdf'

当数据库实例处于离线状态时,你也可以安全的Copy数据库文件。

Copy数据库文件这种方式的主要略势是,你不得不把数据库离线一段时间,以便你来Copy数据文件。而且,你也不能使用附加的数据库作为差异备份和事务日志备份的起始点。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

SQL Server允许使用简单的Copy方式来备份数据库的数据和日志文件吗?答案是肯定的。但前提是数据文件不再被SQL Server使用。

当数据库处于活动状态,你不能简单的copy它的文件,推荐方式是使用完整数据库备份(备份模式)。这是因为数据库的数据和日志文件不能处于非一致状态。这会导致仅仅在事务日志中被修改的数据页可能无法写入数据文件。这也会影响进程中的事务无法提交或是回滚已经写入文件中的数据。

下面是一个简单的例子:

    推荐文章
      热点阅读