SQLServer数据库的备份和还原详解

合集下载

SQLServer常见问题处理(数据库的备份与还原操作)

SQLServer常见问题处理(数据库的备份与还原操作)

数据库备份与还原操作一、备份数据库操作(1) 打开企业管理器,按下图依次打开,然后右击要备份的数据库,按下图选中备份数据库(图1-1 示)。

图1-1(2) 点击删除,然后点击“添加”按钮 (图1-2示)。

图1-2(3) 系统弹出“选择备份目的”窗口,在“文件名(F):”栏中输入或选择备份路径(图1-3示)。

图1-3(4) 系统弹出“备份设置位置”对话框,选择备份路径并键入备份文件名(如:选择D:\DataBase\,文件名为:fjjr_jwgl1db061113。

图1-4示),并点击“确定”。

图1-4(5) 系统回到“SQL Server 备份”窗口,单击“确定”后,系统自动备份数据库,直到系统完成即可完成数据库备份操作。

图1-5二、还原数据库操作(1) 打开企业管理器,按下图依次打开,然后右击要备份的数据库,按下图选中“还原数据库(R)”(图2-1示)。

图2-1(2) 系统弹出“还原数据库”窗口,选择“从设备(M)”单选框(图2-2示)图2-2 (3) 单击“选择设备(E)...”按钮(图2-3示)。

图2-3(4) 系统弹出“选择还原设备”窗口,在此窗口中单击“添加(A)...”按钮(图2-4示)。

图2-4(5) 系统弹出“选择还原目的”窗口,在“文件名(F):”文本框中输入还原目的文件或单击“...”按钮(图2-5示)。

图2-5(6) 单击“...”后,系统弹出“备份设备位置”对话框,选择正确的备份数据库文件 (图2-6示)。

图2-6(7) 依次确定到“还原数据库”窗口,单击“选项”选项卡(图2-7示)图2-7(8) 确认“移至物理文件名”所在具体位置,并选中“在现有数据库上强制还原(F)”复选框,单击“确定”按钮,系统自动还数据数据库,等待直至数据还原完毕(图2-8示)图2-8。

SQLServer——SQLServer备份与恢复

SQLServer——SQLServer备份与恢复

SQLServer——SQLServer备份与恢复1、动手备份2、动手还原3、T-SQL语句备份及还原BACKUP DATABASERESTORE FILELISTONLY FROM DISK代码示例-- 打开设置当前数据库use mastergo-- 默认创建数据库create database SQLDBgo-- 打开设置当前数据库use SQLDBgoSQLDB-- 在当前数据库创建表create table sqltable(empid char(20) not null primary key,empname char(8) not null,empbd datetime not null default getdate())go-- 将数据信息插入到表中insert into sqltable(empid,empname) values('101','张三') insert into sqltable(empid,empname) values('102','李四') insert into sqltable(empid,empname) values('103','王五') insert into sqltable(empid,empname) values('104','赵三') insert into sqltable(empid,empname) values('105','周北') go-- 查询输出表中所有的记录select *from sqltablego-- 将数据库备份到磁盘设备use SQLDBgobackup database SQLDBto disk='d:\SQLDB.bak'with format,medianame='SQLDB',name='full backup of SQLDB'go-- 还原数据库文件use mastergorestore database SQLDBss from disk='d:\SQLDB.bak' go。

Sqlserver数据库备份和还原

Sqlserver数据库备份和还原

Sqlserver数据库备份和还原数据库的备份数据库备份分为完整备份和差异备份,⾸先理解下什么是完整备份和差异备份:完整备份是指对数据库的全部数据进⾏备份。

差异备份是指将数据库上⼀次完整备份以后到现在为⽌的修改的数据进⾏备份,因此差异备份不能单独使⽤,只能先还原上⼀次的完整备份,然后再还原差异备份。

当我们有多个差异备份的时候,只要使⽤最新的差异备份⽂件就可以了,最新的差异备份⽂件会包含之前的差异备份。

sqlserver的备份可以通过脚本来执⾏,也可以通过图形化界⾯执⾏。

1.脚本执⾏的sql语句如下:--完整备份数据库BACKUP DATABASE Test_Bak TO DISK = 'E:\20181029\bak\Test_bak_full.bak' WITH INIT--差异备份数据库BACKUP DATABASE Test_Bak TO DISK = 'E:\20181029\bak\Test_bak_diff.bak' WITH INIT, DIFFERENTIAL --加上DIFFERENTIAL代表差异备份--事务⽇志备份BACKUP LOG Test_Bak TO DISK = 'E:\20181029\bak\Test_bak_log.bak' WITH INIT --BACKUP LOG表⽰备份事务⽇志,BACKUP DATABASE表⽰完整或差异备份--备份事务⽇志,⽂件名中包含当前时间,适合定时备份DECLARE @strbackup NVARCHAR(100)--改为⽇期加时间的SET @strbackup = 'E:\20181029\bak\Test_bak_log_'+ REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR, GETDATE(), 120), '-', ''), ' ', ''), ':', '') + '.bak'BACKUP LOG Test_Bak TO DISK = @strbackup WITH INIT;GO2.图形化界⾯操作如下:在数据库中,选择要备份的数据库,右键》》任务》》备份在弹出的窗⼝中,根据备份类型,选择完整备份,差异备份还是事务⽇志备份点击确定,即可完成备份⽂件的⽣成。

Sqlserver数据库备份与还原

Sqlserver数据库备份与还原

Sqlserver数据库备份与还原⼀、数据库存储概述1、数据⽂件类型· Primary data files:每个数据库都有⼀个单独的主要数据⽂件,默认以.mdf扩展名。

主要数据⽂件不仅包含数据信息,还包含与该数据库结构相关的信息。

创建数据库时,数据库结构相关信息不仅存在于master数据库中,同时还包含在primary data file上.· Secondary data files⼀个数据库可以有⼀个或者多个⼆级数据⽂件,默认以.ndf为扩展名。

⼀般来说⼆级数据⽂件并不是必须的,因为⼆级数据⽂件不包含⽂件位置等信息。

· Transaction logs: 数据库必须⾄少有⼀个事务⽇志⽂件,默认以.ldf为扩展名。

⽇志是整个数据库的命脉,事务⽇志不可读的话,将⽆法对数据库进⾏任何操作。

当你在数据库上进⾏数据操作时,数据并不是直接写⼊数据⽂件,⽽是先将相关操作信息写⼊事务⽇志⽂件。

当⼀个事务结束时,该事务被标记为已提交,但这也并不意味着数据从⽇志⽂件写⼊了数据⽂件中。

⼀个标记为已提交的事务仅仅意味着所有与该事务相关的元素已经成功完成。

The buffer cache may be updated, but not necessarily the data file.检查点(checkpoint)会周期性的发⽣。

检查点发⽣时,是确认所有已提交的事务,不管是在buffer cache或者事务⽇志中,都被写⼊相关的数据⽂件中。

检查点(checkpoint)可以通过以下⽅式来触发:1、显⽰调⽤checkpoint命令;2、Recover Interval 实例设置的周期达到(⽤来标识多久发⽣⼀次checkpoint)3、做了数据库备份(在简单模式下);4、数据库⽂件结构被改变(在简单模式下);5、数据库引擎被结束。

⼀般来说,写数据的过程是由系统⾃动完成的,如下图所⽰,但数据并不是直接写⼊.mdf或者.ndf ⽂件中,⽽是先将有关变化写⼊事务⽇志中,这也是数据库中的write-ahead机制。

SQLServer数据库的备份和恢复方法

SQLServer数据库的备份和恢复方法

SQLServer数据库的备份和恢复方法作为一名数据库管理员,数据库的备份和恢复是非常重要的工作之一。

数据库是企业中最重要的信息资产之一,如果因为故障或其他原因导致数据丢失,会给企业带来不可估量的损失。

为了避免这种情况的发生,我们需要定期备份数据库,并且掌握好相应的恢复方法。

一、备份方法1、全备份全备份,即备份整个数据库,包括数据文件、事务日志和所有的元数据信息。

全备份是最完整的一种备份方式,备份出来的文件可以还原整个数据库。

全备份的方法和语法如下:BACKUP DATABASE database_name TO backup_device [WITH options];其中,backup_device指备份的目录和文件名,options包括NOFORMAT、NOINIT、NAME、SKIP、REWIND和FORMAT 等选项,可以根据需要进行配置。

例如:BACKUP DATABASE AdventureWorks2016 TO DISK ='C:\AdventureWorks2016.bak' WITH NOFORMAT, NOINIT, NAME = N'AdventureWorks2016-Full Database Backup', SKIP, REWIND, NOUNLOAD, STATS = 10这条命令会将AdventureWorks2016数据库备份到C盘下的AdventureWorks2016.bak文件中,同时还指定了一些选项,比如不要在备份设备上格式化或初始化任何内容,备份名称为AdventureWorks2016-Full Database Backup等。

2、差异备份差异备份,即备份自上次全备份以来发生过更改的数据。

差异备份的好处是备份时间较短,备份文件也较小,但同时也需要保证有完整的全备份文件存在。

差异备份的方法和语法如下:BACKUP DATABASE database_name TO backup_device [WITH DIFFERENTIAL];其中,WITH DIFFERENTIAL表示进行差异备份。

SQLServer图解备份(完全备份、差异备份、增量备份)和还原

SQLServer图解备份(完全备份、差异备份、增量备份)和还原

SQLServer图解备份(完全备份、差异备份、增量备份)和还原常⽤的数据备份⽅式有完全备份、差异备份以及增量备份,那么这三种备份⽅式有什么区别,在具体应⽤中⼜该如何选择呢?1、三种备份⽅式完全备份(Full Backup):备份全部选中的⽂件夹,并不依赖⽂件的存档属性来确定备份哪些⽂件。

在备份过程中,任何现有的标记都被清除,每个⽂件都被标记为已备份。

换⾔之,清除存档属性。

完全备份就是指对某⼀个时间点上的所有数据或应⽤进⾏的⼀个完全拷贝。

实际应⽤中就是⽤⼀盘磁带对整个系统进⾏完全备份,包括其中的系统和所有数据。

这种备份⽅式最⼤的好处就是只要⽤⼀盘磁带,就可以恢复丢失的数据。

因此⼤⼤加快了系统或数据的恢复时间。

差异备份(Differential Backup):备份⾃上⼀次完全备份之后有变化的数据。

差异备份过程中,只备份有标记的那些选中的⽂件和⽂件夹。

它不清除标记,也即备份后不标记为已备份⽂件。

换⾔之,不清除存档属性。

差异备份是指在⼀次全备份后到进⾏差异备份的这段时间内,对那些增加或者修改⽂件的备份。

在进⾏恢复时,我们只需对第⼀次全备份和最后⼀次差异备份进⾏恢复。

差异备份在避免了另外两种备份策略缺陷的同时,⼜具备了它们各⾃的优点。

⾸先,它具有了增量备份需要时间短、节省磁盘空间的优势;其次,它⼜具有了全备份恢复所需磁带少、恢复时间短的特点。

系统管理员只需要两盘磁带,即全备份磁带与灾难发⽣前⼀天的差异备份磁带,就可以将系统恢复。

增量备份 (Incremental Backup ):备份⾃上⼀次备份(包含完全备份、差异备份、增量备份)之后有变化的数据。

增量备份过程中,只备份有标记的选中的⽂件和⽂件夹,它清除标记,既:备份后标记⽂件,换⾔之,清除存档属性。

增量备份是指在⼀次全备份或上⼀次增量备份后,以后每次的备份只需备份与前⼀次相⽐增加和者被修改的⽂件。

这就意味着,第⼀次增量备份的对象是进⾏全备份后所产⽣的增加和修改的⽂件;第⼆次增量备份的对象是进⾏第⼀次增量备份后所产⽣的增加和修改的⽂件,如此类推。

SQLServer数据库备份和恢复

SQLServer数据库备份和恢复

SQLServer数据库备份和恢复作为一位数据库管理员,备份和恢复数据库是日常工作中必不可少的任务。

在SQLServer中,备份和恢复数据库是非常简单而且快速的,但是在备份和恢复过程中需要注意一些要点,本文将对此进行介绍和分析。

一、备份数据库在备份数据库之前,需要了解备份的种类和使用场景。

常见的备份种类有完整备份、差异备份和日志备份。

完整备份是将数据库的所有数据和日志都备份下来,差异备份是在完整备份的基础上备份自上次完整备份之后发生的所有变化,而日志备份是备份从最后一次备份到本次备份之间发生的所有交易记录。

是否进行完整备份,差异备份还是日志备份,取决于数据需要恢复到哪一个时间点以及备份的频率和容量。

完整备份备份的数据和所有交易记录,可以恢复到任意一个时间点;差异备份备份的数据是上次备份之后的所有变化,可以恢复到差异备份之后的任意一个时间点;而日志备份只备份从上次备份到本次备份之间的交易记录,只能在连续的日志备份中进行数据的恢复。

在进行备份之前,需要关闭数据库以保证备份的一致性。

可以使用以下SQL语句进行完整备份:BACKUP DATABASE database_nameTO DISK = 'backup_path\backup_file_name.bak'WITH FORMAT, INIT其中,database_name 是要备份的数据库名称,backup_path 是备份文件的存储路径,backup_file_name 是备份文件的名称。

WITH FORMAT参数表示每次备份都会覆盖之前的备份文件并且重新初始化备份集,INIT参数表示让备份文件从头开始,不保存之前的任何备份数据。

需要进行差异备份时,可以使用以下SQL语句:BACKUP DATABASE database_nameTO DISK = 'backup_path\backup_file_name.diff'WITH DIFFERENTIAL其中,DIFFERENTIAL参数表示进行差异备份。

SQLServer数据库备份和还原

SQLServer数据库备份和还原

SQLServer数据库备份和还原⼀、SQL命令备份BACKUP DATABASE TestDb TO DISK='d:\TestDb.bak'还原RESTORE DATABASE TestDb FROM DISK='d:\TestDb.bak'⼆、使⽤管理⼯具三、使⽤sqlcmd备份sqlcmd -S . -E -Q "BACKUP DATABASE AbpFirst TO DISK='d:\AbpFirst.bak'"还原sqlcmd -S . -E -Q "RESTORE DATABASE AbpFirst FROM DISK='d:\AbpFirst.bak'"四、常见问题1.还原失败原因:Sql server还原失败,提⽰:数据库正在使⽤,⽆法获得对数据库的独占访问权解决⽅案1.如果你使⽤管理⼯具还原数据库并且在Microsoft SQL Server Management Studio 2016或以上版本的话,可以在还原的时候勾选"关闭到⽬标数据库的现有链接"解决⽅案2:如果你的SqlServer Management Studio的版本⽐较低,可以设置数据库为单⽤户模式,执⾏完还原操作后,恢复为多⽤户模式设置⽅式:选中要还原的数据库-->属性-->选项-->限制访问该值从MULTI_USER修改为SINGLE_USER,此时该数据库就会显⽰为单⽤户模式这是GUI的模式,语句的办法⽐较简单---设置数据库为单⽤户模式USE MASTERGOALTER DATABASE eol_tcgroup SET SINGLE_USER WITH ROLLBACK IMMEDIATE;GO---设置数据库为多⽤户模式USE MASTERGOALTER DATABASE eol_tcgroup SET MULTI_USER WITH ROLLBACK IMMEDIATE;GO解决⽅案3:完全使⽤T-Sql的⽅式,执⾏备份数据库操作use mastergo---声明变量declare@dbName nvarchar(max)='Mvc_HNHZ';declare@dbFullName nvarchar(max)='E:\NewWork\Web\backup\test1.bak';--1.1修改为单⽤模式exec(N'ALTER DATABASE '+@dbName+' SET SINGLE_USER WITH ROLLBACK IMMEDIATE');--1.2结束链接进程DECLARE@kid varchar(max)SET@kid=''SELECT@kid=@kid+'KILL '+CAST(spid as Varchar(10)) FROM master..sysprocesses WHERE dbid=DB_ID(@dbName) ;EXEC(@kid) ;--2.执⾏还原语句restore database@dbName from disk=@dbFullNamewith replace--覆盖现有的数据库--3.重置数据库为多⽤户模式exec(N'ALTER DATABASE '+@dbName+' SET MULTI_USER WITH ROLLBACK IMMEDIATE');2.强制断开数据库已有连接USE masterGOALTER DATABASE[DBName]SET SINGLE_USER WITH ROLLBACK IMMEDIATEGO--查看是否还有⽤户连接SELECT*FROM sys.[sysprocesses]WHERE DB_NAME([dbid])='DBName'GOALTER DATABASE[DBName]SET MULTI_USERGO其他相关⽂章:。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SQLServer数据库的备份和还原详解1. 基本概念:mdf文件:SqlServer数据库的主数据文件ldf文件:SqlServer数据库的日志文件SQL Server管理的每个数据库都对应一个mdf文件和一个ldf文件。

当SQL Server服务处于开启时,这些文件是无法删除的。

用SQL Server 企业管理器,单击某个数据库,选择右键菜单中的“属性",从弹出对话框的“数据文件”和“事务日志”标签页中可以查看这个数据库对应的mdf文件路径和ldf文件路径。

2. 用SQL Server 企业管理器备份和还原数据库:例如,备份数据库到可移动存储介质,然后还原到另一台机器上,步骤如下:备份:单击要备份的数据库,从右键菜单选择“所有任务->备份数据库”。

选择“完全备份”,删除“备份到”列表框中的现有内容,然后“添加”;弹出“选择备份目的”对话框,“文件名”就是你要得到的备份文件的存放路径。

选好后确定,这时“备份到”列表框中出现你选择的目的文件路径。

因为没有重名文件,“追加”或“重写”选项的效果是一样的,不用管。

选中它,确定,等待备份完成。

完成后在你指定的路径下将看到你备份的文件,注意该文件默认没有后缀名。

备份文件还有很大的压缩空间,一般一个40多M的备份文件用winRAR压缩后只有4M左右,作为邮箱附件也没有问题。

还原:将备份文件放到一个便于管理的文件夹下,例如你的数据库叫“test”,可以建立一个叫“e:\db_bak\test\”的文件夹。

从SQL Server 企业管理器单击“数据库”,选择“新建数据库...”,起名“test”,确定。

看到该数据库出现在数据库列表中,里面只有一些系统tables。

注意新建数据库默认的mdf文件和ldf文件都会被放在SQL Server安装目录下的子目录“MSSQL\data\”中,文件名与数据库名称相同。

单击该数据库,从右键列表中选择“所有任务->还原数据库”。

弹出“还原数据库”对话框。

选择还原方式:“从设备”,单击“选择设备”弹出“选择还原设备”对话框。

选择“还原自磁盘”。

“添加...”,“文件名”中填入你的备份文件路径,例如“e:\db_bak\test\test”,确定。

回到“还原数据库”对话框后,在“选项”中勾选“在现有数据库上强制还原”(因为要改变“新建数据库”时默认创建的mdf文件和ldf文件)。

然后在下面“移至物理文件名”栏中填写你想将该数据库的mdf文件和ldf文件的保存路径。

注意如果路径不存在或者与已有文件名冲突,后面的备份过程中将报错。

为了便于管理,建议将mdf和ldf文件的路径设置为和备份文件一致,例如“e:\db_bak\test\test_data.mdf”和“e:\db_bak\test\test_log.ldf”。

确认,开始还原。

还原结束后刷新该数据库的tables列表,将看到和备份数据库一样的结构和数据,说明还原成功!这时查看数据库属性,可以看到mdf文件和ldf文件都换成了你设置的文件路径。

原来的mdf和ldf文件同时被物理删除。

3. 用mdf文件和ldf文件还原数据库如果你有原数据库的mdf和ldf文件,可采用如下办法还原:在SQL Server 企业管理器中单击数据库,从右键菜单选择“所有任务->附加数据库”。

在弹出的对话框中指定mdf文件路径,显示验证通过,确定,一切OK!注意用这种方法要求两个文件缺一不可,文件名不曾改变,并且要在同一目录下,否则验证通不过。

4. 用mdf文件还原数据库步骤如下:1、新建一个同名数据库。

随便取个名字也行,例如new。

2、修改服务器设置:在“SQL Server 属性(配置)”对话框的“服务器设置”tab中,允许多系统目录进行直接修改(否则第6步不能执行)3、停止SQL Server(否则无法替换mdf文件)4、用原mdf文件覆盖新建库的数据库文件,同时删除ldf文件。

例如原mdf文件叫做“old_data.mdf”,那么先删除new_data.mdf和new_log.ldf;然后将old_data.mdf文件拷贝到该目录下;再将old_data.mdf 改名为new_data.mdf 。

5、重启SQL Server(这时数据库应该是“置疑”)6、将数据库置为紧急状态:update master.dbo.sysdatabases set status = 32768 where name = dbname7、重建日志:dbcc rebulid_log('dbname', 'logfile')(可能不需要这一步。

)8、数据库重新启动(这是数据库应该是“紧急状态”),然后再还原数据库状态用以下语句update master.dbo.sysdatabases set status = 16 where name = dbname如果数据库对应的mdf和ldf文件丢失,在企业管理器中整个服务器会显示“无项目”。

将mdf文件拷贝到原目录下,但没有ldf文件,在企业管理器中该数据库会显示“置疑“。

SQLServer数据库的备份和还原详解1. 基本概念:mdf文件:SqlServer数据库的主数据文件ldf文件:SqlServer数据库的日志文件SQL Server管理的每个数据库都对应一个mdf文件和一个ldf文件。

当SQL Server服务处于开启时,这些文件是无法删除的。

用SQL Server 企业管理器,单击某个数据库,选择右键菜单中的“属性",从弹出对话框的“数据文件”和“事务日志”标签页中可以查看这个数据库对应的mdf文件路径和ldf文件路径。

2. 用SQL Server 企业管理器备份和还原数据库:例如,备份数据库到可移动存储介质,然后还原到另一台机器上,步骤如下:备份:单击要备份的数据库,从右键菜单选择“所有任务->备份数据库”。

选择“完全备份”,删除“备份到”列表框中的现有内容,然后“添加”;弹出“选择备份目的”对话框,“文件名”就是你要得到的备份文件的存放路径。

选好后确定,这时“备份到”列表框中出现你选择的目的文件路径。

因为没有重名文件,“追加”或“重写”选项的效果是一样的,不用管。

选中它,确定,等待备份完成。

完成后在你指定的路径下将看到你备份的文件,注意该文件默认没有后缀名。

备份文件还有很大的压缩空间,一般一个40多M的备份文件用winRAR压缩后只有4M左右,作为邮箱附件也没有问题。

还原:将备份文件放到一个便于管理的文件夹下,例如你的数据库叫“test”,可以建立一个叫“e:\db_bak\test\”的文件夹。

从SQL Server 企业管理器单击“数据库”,选择“新建数据库...”,起名“test”,确定。

看到该数据库出现在数据库列表中,里面只有一些系统tables。

注意新建数据库默认的mdf文件和ldf文件都会被放在SQL Server安装目录下的子目录“MSSQL\data\”中,文件名与数据库名称相同。

单击该数据库,从右键列表中选择“所有任务->还原数据库”。

弹出“还原数据库”对话框。

选择还原方式:“从设备”,单击“选择设备”弹出“选择还原设备”对话框。

选择“还原自磁盘”。

“添加...”,“文件名”中填入你的备份文件路径,例如“e:\db_bak\test\test”,确定。

回到“还原数据库”对话框后,在“选项”中勾选“在现有数据库上强制还原”(因为要改变“新建数据库”时默认创建的mdf文件和ldf文件)。

然后在下面“移至物理文件名”栏中填写你想将该数据库的mdf文件和ldf文件的保存路径。

注意如果路径不存在或者与已有文件名冲突,后面的备份过程中将报错。

为了便于管理,建议将mdf和ldf文件的路径设置为和备份文件一致,例如“e:\db_bak\test\test_data.mdf”和“e:\db_bak\test\test_log.ldf”。

确认,开始还原。

还原结束后刷新该数据库的tables列表,将看到和备份数据库一样的结构和数据,说明还原成功!这时查看数据库属性,可以看到mdf文件和ldf文件都换成了你设置的文件路径。

原来的mdf和ldf文件同时被物理删除。

3. 用mdf文件和ldf文件还原数据库如果你有原数据库的mdf和ldf文件,可采用如下办法还原:在SQL Server 企业管理器中单击数据库,从右键菜单选择“所有任务->附加数据库”。

在弹出的对话框中指定mdf文件路径,显示验证通过,确定,一切OK!注意用这种方法要求两个文件缺一不可,文件名不曾改变,并且要在同一目录下,否则验证通不过。

4. 用mdf文件还原数据库步骤如下:1、新建一个同名数据库。

随便取个名字也行,例如new。

2、修改服务器设置:在“SQL Server 属性(配置)”对话框的“服务器设置”tab中,允许多系统目录进行直接修改(否则第6步不能执行)3、停止SQL Server(否则无法替换mdf文件)4、用原mdf文件覆盖新建库的数据库文件,同时删除ldf文件。

例如原mdf文件叫做“old_data.mdf”,那么先删除new_data.mdf和new_log.ldf;然后将old_data.mdf文件拷贝到该目录下;再将old_data.mdf 改名为new_data.mdf 。

5、重启SQL Server(这时数据库应该是“置疑”)6、将数据库置为紧急状态:update master.dbo.sysdatabases set status = 32768 where name =dbname7、重建日志:dbcc rebulid_log('dbname', 'logfile')(可能不需要这一步。

)8、数据库重新启动(这是数据库应该是“紧急状态”),然后再还原数据库状态用以下语句update master.dbo.sysdatabases set status = 16 where name = dbname如果数据库对应的mdf和ldf文件丢失,在企业管理器中整个服务器会显示“无项目”。

将mdf文件拷贝到原目录下,但没有ldf文件,在企业管理器中该数据库会显示“置疑“。

相关文档
最新文档