当前位置:文档之家› 只有MDF数据库文件的数据恢复(转)

只有MDF数据库文件的数据恢复(转)

只有MDF数据库文件的数据恢复(转)
只有MDF数据库文件的数据恢复(转)

只有MDF数据库文件的数据恢复(转)

某年某月某日,我也碰上这个问题了,搜索网络,.一个完整的过程.已实测有效.现作记录.

由于种种原因,我们如果当时仅仅备份了mdf文件,那么恢复起来就是一件很麻烦的事情了。如果您的mdf文件是当前数据库产生的,那么很侥幸,也许你使用sp_attach_db或者

sp_attach_single_file_db可以恢复数据库,但是会出现类似下面的提示信息

设备激活错误。物理文件名'C:\Program Files\Microsoft SQL

Server\MSSQL\data\test_Log.LDF' 可能有误。

已创建名为'C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log.LDF' 的新日志文件。

但是,如果您的数据库文件是从其他计算机上复制过来的,那么很不幸,也许上述办法就行不通了。你也许会得到类似下面的错误信息

服务器: 消息1813,级别16,状态2,行 1

未能打开新数据库'test'。CREATE DATABASE 将终止。

设备激活错误。物理文件名'd:\test_log.LDF' 可能有误。

怎么办呢?别着急,下面我们举例说明恢复办法。

A.我们使用默认方式建立一个供恢复使用的数据库(如test)。可以在SQL Server Enterprise Manager里面建立。

B.停掉数据库服务器。

C.将刚才生成的数据库的日志文件test_log.ldf删除,用要恢复的数据库mdf文件覆盖刚才生成的数据库数据文件test_data.mdf。

D.启动数据库服务器。此时会看到数据库test的状态为“置疑”。这时候不能对此数据库进行任何操作。

E.设置数据库允许直接操作系统表。此操作可以在SQL Server Enterprise Manager里面选择数据库服务器,按右键,选择“属性”,在“服务器设置”页面中将“允许对系统目录直接修改”一项选中。也可以使用如下语句来实现。

use master

go

sp_configure 'allow updates',1

go

reconfigure with override

go

F.设置test为紧急修复模式

update sysdatabases set status=-32768 where dbid=DB_ID('test')

此时可以在SQL Server Enterprise Manager里面看到该数据库处于“只读\置疑\脱机\紧急模式”可以看到数据库里面的表,但是仅仅有系统表

G.下面执行真正的恢复操作,重建数据库日志文件

dbcc rebuild_log('test','C:\Program Files\Microsoft SQL

Server\MSSQL\Data\test_log.ldf')

执行过程中,如果遇到下列提示信息:

服务器: 消息5030,级别16,状态1,行 1

未能排它地锁定数据库以执行该操作。

DBCC 执行完毕。如果DBCC 输出了错误信息,请与系统管理员联系。

说明您的其他程序正在使用该数据库,如果刚才您在F步骤中使用SQL Server Enterprise Manager打开了test库的系统表,那么退出SQL Server Enterprise Manager就可以了。

正确执行完成的提示应该类似于:

警告: 数据库'test' 的日志已重建。已失去事务的一致性。应运行DBCC CHECKDB 以验证物理一致性。将必须重置数据库选项,并且可能需要删除多余的日志文件。数据恢复sql数据

库修复密码恢复sql数据库恢复硬盘异响坏道修复文件恢复sql server修复文件修复raid数据恢复sql数据库修复raid磁盘阵列sql恢复sql server恢复硬盘数据恢复硬盘坏道修复硬盘数据修复数据修复

DBCC 执行完毕。如果DBCC 输出了错误信息,请与系统管理员联系。

此时打开在SQL Server Enterprise Manager里面会看到数据库的状态为“只供DBO使用”。此时可以访问数据库里面的用户表了。

H.验证数据库一致性

dbcc checkdb('test')

一般执行结果如下:

CHECKDB 发现了0 个分配错误和0 个一致性错误(在数据库'test' 中)。

DBCC 执行完毕。如果DBCC 输出了错误信息,请与系统管理员联系。

如果结果出现:

未能在sysindexes 中找到数据库ID 13 中对象ID 1065015521 的索引ID -1 对应的行。请对sysindexes 运行DBCC CHECKTABLE。

则查询这个对象ID的表或可能数据库MDF文件有损坏, 请做这步:

sp_dboption 'dbName', 'single user', 'true'

use dbName

--作單個表的

DBCC CHECKTABLE(''?'',REPAIR_ALLOW_DATA_LOSS)

--这里可选,

exec sp_msforeachtable 'DBCC CHECKTABLE(''?'',REPAIR_ALLOW_DATA_LO SS)'

exec sp_msforeachtable 'DBCC DBREINDEX(''?'')'

执行以上语句后

sp_dboption 'dbName', 'single user', 'false'

I.设置数据库为正常状态,按情況執行.

sp_dboption 'test','dbo use only','false'

如果没有出错,那么恭喜,现在就可以正常的使用恢复后的数据库啦。

J.最后一步,我们要将步骤E中设置的“允许对系统目录直接修改”一项恢复。因为平时直接操作系统表是一件比较危险的事情。当然,我们可以在SQL Server Enterprise Manager里面

恢复,也可以使用如下语句完成

sp_configure 'allow updates',0

go

reconfigure with override

go

附,可能发生的原因:

1、突然间的断电引起。

2、服务器raid有磁盘坏块,引用的数据库文件损坏,可用磁盘扫描工具。工具HD-tune

数据库备份与恢复

Oracle数据库备份与恢复的三种方法 2009-11-04 16:00 Oracle数据库有三种标准的备份方法,它们分别是导出/导入(EXP/IMP)、热备份和冷备份。导出备件是一种逻辑备份,冷备份和热备份是物理备份。 一、导出/导入(Export/Import) 利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回到Oracle数据库中去。 1、简单导出数据(Export)和导入数据(Import) Oracle支持三种方式类型的输出: (1)、表方式(T方式),将指定表的数据导出。 (2)、用户方式(U方式),将指定用户的所有对象及数据导出。 (3)、全库方式(Full方式),瘵数据库中的所有对象导出。 数据导入(Import)的过程是数据导出(Export)的逆过程,分别将数据文件导入数据库和将数据库数据导出到数据文件。 2、增量导出/导入 增量导出是一种常用的数据备份方法,它只能对整个数据库来实施,并且必须作为SYSTEM来导出。在进行此种导出时,系统不要求回答任何问题。导出文件名缺省为export.dmp,如果不希望自己的输出文件定名为export.dmp,必须在命令行中指出要用的文件名。 增量导出包括三种类型: (1)、“完全”增量导出(Complete) 即备份三个数据库,比如: (2)、“增量型”增量导出 备份上一次备份后改变的数据,比如:

(3)、“累积型”增量导出 累计型导出方式是导出自上次“完全”导出之后数据库中变化了的信息。比如: 数据库管理员可以排定一个备份日程表,用数据导出的三个不同方式合理高效的完成。 比如数据库的被封任务可以做如下安排: 星期一:完全备份(A) 星期二:增量导出(B) 星期三:增量导出(C) 星期四:增量导出(D) 星期五:累计导出(E) 星期六:增量导出(F) 星期日:增量导出(G) 如果在星期日,数据库遭到意外破坏,数据库管理员可按一下步骤来回复数据库: 第一步:用命令CREATE DATABASE重新生成数据库结构; 第二步:创建一个足够大的附加回滚。 第三步:完全增量导入A: 第四步:累计增量导入E: 第五步:最近增量导入F:

sql server 2008如何导入mdf,ldf文件

sql server 2008如何导入mdf,ldf文件sql server 2008如何导入mdf,ldf文件 如何将mdf,ldf文件导入到sql server 2008数据库当中,下面提供两种办法: 第一种是右击数据库,然后点击附加。出现下面的界面。然后选择添加,添加上你要添加的mdf文件即可。

第二种方法是:新建查询,然后输入下列语句,EXEC sp_attach_db @dbname = 'yourdatabasename', @filename1 = 'x:\路径 \MSSQL\Data\pubs.mdf', @filename2 = 'x:\路径 \MSSQL\Data.Ldf 但是可能会出现这种错误: Sqlserver2008附加数据库时出错提示操作系统错误5(拒绝访问)错误5120的解决办法 Sql Server2008附加数据库文件时弹出错误信息:如下图:

,一时无解,遂求助于百度谷歌,经过各种试验,特将解决办法整理于此,希望能帮到大家,同时如果有好的意见大家多多交流啊! 方案一:切换登录方式 出现这种情况是由于用“混合验证方式”(SQL Server身份验证)登录数据库造成的,只要将登录方式改为“windows身份验证方式” 登录即可解决该问题,附加成功后再换用“混合验证模式”登陆就没问题了。 此方法经本人测试成功。 方案二:修改服务 选择所有程序-SQL Server 2005-配置工具-选择"SQL Server Configuration Manager"或者“SQL Server 配置管理器”, 打开“SQL Server Configuration Manager”配置界面,在左侧选择"SQL Server 2005 服务",在右侧右击打开“SQL Server

数据库备份和还原操作方法

数据库备份和还原 在收费系统运行一段时间后,如发生系统不正常要重装WINDOWS操作系统或更换电脑时,须按照下面“数据库备份”方法将原系统的数据文件备份,并将备份文件妥善保存(避免随系统重装而丢失数据),在重装系统或更换电脑后,按照软件的安装方法顺序安装SQL2000数据库和消费/水控管理软件,然后按照下面“数据还原”方法进行数据库还原,完成后系统中的数据即与原数据完全[相同。 数据库备份: 以ICSF为例,打开ICSF软件,选择菜单栏下的系统维护,然后选择数据备份。(系统维护——数据备份)如图(1-1): 1-1 数据备份完成后,可以在基本资料——系统参数里(1-2),在弹出的对话框上的备份路径二(手动备份)里可以找到数据备份的路径(1-3)。如图:

1-2 1-3 提示: 1、上述方法为手动备份,本系统在使用后正常腿出系统时也会自动进行 数据备份,如已经无法正常开启原电脑(无法进行手动备份)则可将 原电脑硬盘连接到其他电脑中,找到“备份路径一”所指向的路径, 找到备份文件夹,将其中修改日期最近的备份文件拷贝出来用于数据 还原。 2、在安装收费/水控系统时建议不要将安装目录选在C盘,避免因格式 化的操作是备份数据丢失,如果已经将软件安装在C盘,则建议将备 份文件路径指定为其他盘。 数据还原 数据还原,首先要找到备份的数据文件。如上所述,备份文件存放在E:\软件\ICSF5.74\Mdbbak上,根据路径找到Mdbbak文件夹并打开。 打开Mdbbak文件夹后,里面有类似这样的(1-4)BAK文件。 找寻最新的BAK文件,并把它与软件安装包(光盘)中IC挂接数据库.exe软件拷贝到电脑任意一个目录(文件夹)中,然后将备份文件重命名(光标放在备份文件 上点鼠标右键,选择重命名),改为ICSF.db。如图:(1-5)

速达软件只有MDF文件的恢复技术

1、SQLSERVER版本只有mdf文件的恢复技术 很多客户会在使用SQL版本的软件时,碰到软件不能正常启动的时候,想重新安装的时候,又没有备份数据,只能将DA TA文件夹COPY出去。但是再引入MDF文件的时候又引入不了。遇到此类情况。处理方法如下: 第一步:我们使用默认方式建立一个供恢复使用的数据库(如test)。可以在SQL Server Enterprise Manager里面建立。选择新建数据库 输入数据库名称为test(该数据库名称并不一定要是TEST。但是一定要保持和我下列语句中的数据库名称一致,我在次只是列举例子) 建好之后会在企业管理器中看到数据库名为TEST的数据库

打开SQLSERVER服务管理器,单击停止,停止掉SQLSERVER服务。 当SQLSERVER服务管理器显示该状态时,表示已经停用。 第三步:将刚才生成的数据库的日志文件test_log.ldf删除,用要恢复的数据库mdf文件覆盖刚才生成的数据库数据文件test_data.mdf。该日志文件在SQLSERVER的安装目录,距离如下: C:/Program Files/Microsoft SQL Server/MSSQL/Data/

一般是在该目录下。 第四步:启动数据库服务器。此时会看到数据库test的状态为“置疑”。这时候不能对此数据库进行任何操作。 第五步:设置数据库允许直接操作系统表。此操作可以在SQL Server Enterprise Manager里面选择数据库服务器,按右键,选择“属性”,在“服务器设置”页面中将“允许对系统目录直接修改”一项选中。也可以使用语句来实现。 语句修改如下: use master go sp_configure 'allow updates',1 go

SQL2000下仅有MDF文件时的数据库恢复方法

SQL2000下仅有MDF文件时的数据库恢复方法 方法 1.新建一个同名的数据库 2.再停掉sql server(注意不要分离数据库) 3.用原数据库的数据文件覆盖掉这个新建的数据库 4.再重启sql server 5.此时打开企业管理器时会出现置疑,先不管,执行下面的语句(注意修改其中的数据库名) 6.完成后一般就可以访问数据库中的数据了,这时,数据库本身一般还要问题,解决办法是,利用 数据库的脚本创建一个新的数据库,并将数据导进去就行了. USE MASTER GO SP_CONFIGURE 'ALLOW UPDA TES',1 RECONFIGURE WITH OVERRIDE GO UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='置疑的数据库名' Go sp_dboption '置疑的数据库名', 'single user', 'true' Go DBCC CHECKDB('置疑的数据库名') Go update sysdatabases set status =28 where name='置疑的数据库名' Go sp_configure 'allow updates', 0 reconfigure with override Go sp_dboption '置疑的数据库名', 'single user', 'false' Go

SQL Server 2000数据库LDF损坏,只有mdf的恢复方法。 SQL Server 2000数据库文件遭到破坏的现象经常出现,数据库出错是否可以修复呢?答案是可以的,本日志以一个sql server 2000数据库,数据库日志文件ldf损坏了,mdf正常,数据库附加失败的修复方法总结一下,数据库数据恢复在很多时候比较复杂,当数据库存在大量错误的时候,使用DBCC修复也是不可以的,需要拆解数据库来抢救重要的数据,下面是较为常见的一种SQL Server 2000数据库修复方式: 1)先及时把原来的数据库文件(如test.mdf)备份到其他地方。 2)停掉服务器。 3)删除这个test.mdf。 4) 重新建立一个test同名数据库。 5)删除这个新建立的test数据库的test.ldf文件,并用开始备份好test.mdf文件覆盖这个新建立的test.mdf文件。 6)启动数据库服务器。此时会看到数据库test的状态为“置疑”。这时候不能对此数据库进行任何操作。 .设置数据库允许直接操作系统表。此操作可以在SQL Server Enterprise Manager里面选择数据库服务器,按右键,选择“属性”,在“服务器设置”页面中将“允许对系统目录直接修改”。 7)设置test为紧急修复模式 update sysdatabases set status=-32768 where dbid=DB_ID('test') 此时可以在SQL Server Enterprise Manager里面看到该数据库处于“只读\置疑\脱机\紧急模式”可以看到数据库里面的表,但是仅仅有系统表 8)下面执行真正的恢复操作,重建数据库日志文件 dbcc rebuild_log('test','C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log.ldf') 执行过程中,如果遇到下列提示信息: 服务器: 消息5030,级别16,状态1,行1 未能排它地锁定数据库以执行该操作。 DBCC 执行完毕。如果DBCC 输出了错误信息,请与系统管理员联系。 说明您的其他程序正在使用该数据库,如果刚才您在操作中使用SQL Server Enterprise Manager打开了test库的系统表,那么退出SQL Server Enterprise Manager就可以了。 正确执行完成的提示应该类似于: 警告: 数据库'test' 的日志已重建。已失去事务的一致性。应运行DBCC CHECKDB 以验证物理一致性。将必须重置数据库选项,并且可能需要删除多余的日志文件。

SQL数据库备份与恢复操作流程

1.数据库备份 1)打开“开始”——“程序”——Microsoft SQL Server——企业管理器,进入之后,将页面左边的“控制台根目录”下的“+”一个一个都点开,一直到点开“数据库”前的“+”。可以看到第一个数据库应该是CORPSCAN,在这个数据库上面点右键,选择“所有任务”中的“备份数据库”,如下图所示: 2)在弹出的选择框中点“添加”按钮:

3)弹出如下的窗口: 且必须给这个备份文件起一个文件名(一般我们都以日期做为备份文件名),如

下图所示: 上述备份文件就是放在D:\ 这个目录下,文件名为20051120。然后点“确定”。4)可以看到“备份到”那里有个路径和文件名了,其它什么都不用动,然后点“确定”就可以了,如下图所示: 备份文件成功后会有提示信息,可以到备份的目录下找到备份的文件。

2.数据库还原 和数据库的备份操作类似。具体流程如下: 1)打开“开始”——“程序”——Microsoft SQL Server——企业管理器,进入之后,将页面左边的“控制台根目录”下的“+”一个一个都点开,一直到点开“数据库”前的“+”。可以看到第一个数据库应该是CORPSCAN,在这个数据库上面点右键,选择“所有任务”中的“还原数据库”,如下图所示: 2)在弹出的页面上,在“还原”那里选择“从设备”,然后点一下“选择设备”,如图所示:

3)在弹出的页面上点一下“添加”按钮,就出现“选择还原目的”的对话框,在“文件名”后面有个浏览按钮,在那里选择要还原的文件(就是之前备份的数据库文件),然后点“确定”,再确定,再确定,就可以了,还原成功之后会有提示的:

ORACLE数据库备份与恢复详解

ORACLE数据库备份与恢复详解 Oracle的备份与恢复有三种标准的模式,大致分为两大类,备份恢复(物理上的)以及导入导出(逻辑上的),而备份恢复又可以根据数据库的工作模式分为非归档模式(Nonarchivelog-style)和归档模式(Archivelog-style),通常,我们把非归档模式称为冷备份,而相应的把归档模式称为热备份,他们的关系如下所示 三种方式各有优点,我们做个比较(这个是用Fireworks画的,有点糙):

$A: 现在先来介绍一下逻辑备份方式的方法,利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回到Oracle数据库中去。理论基础:Oracle 提供的Export和Import具有三种不同的操作方式(就是备份的数据输出(入)类型): 1,表方式(T) 可以将指定的表导出备份; 2,全库方式(Full) 将数据库中的所有对象导出; 3,用户方式(U) 可以将指定的用户相应的所有数据对象导出; *在导入导出备份方式中,提供了很强大的一种方法,就是增量导出/导入,但是它必须作为System来完成增量的导入导出,而且只能是对整个数据库进行实施。增量导出又可以分为三种类别: 1,完全增量导出(完全备份)(Complete Export) 这种方式将把整个数据库文件导出备份;exp system/manager inctype=complete file=20041125.dmp(为了方便检索和事后的查询,通常我们将备份文件以日期或者其他有明确含义的字符命名) 2,增量型增量导出(增量备份)(Incremental Export) 这种方式将只会备份上一次备份后改变的结果;exp system/manager inctype=incremental file=20041125.dmp 3,累积型增量导出(差异备份)(Cumulate Export) 这种方式的话,是导出自上次完全增量导出后数据库变化的信息。exp system/manager inctype=cumulative file=20041125.dmp 通常情况下,DBA们所要做的,就是按照企业指定或者是自己习惯的标准(如果是自己指定的标准,建议写好计划说明),一般,我们采用普遍认可的下面的方式进行每天的增量备份: Mon:完全备份(A) Tue:增量导出(B) Wed:增量导出(C) Thu:增量导出(D)

SQL Server数据库的MDF文件修复和恢复方法

SQL Server数据库的MDF文件修复和恢复方法 实际上,我们经常会遇到数据库恢复或修复的问题,下面我们来讲讲方法: 首先:如果备份的数据库有两个文件,分别是.LDF 和.MDF,打开企业管理器,在实例上右击---所有任务--附加数据库,然后选择那个.MDF文件,就可以了。 或者在查询分析器中输入: sp_attach_db "数据库名称","路径\文件名.ldf","路径\文件名.MDF" SQL Server数据库备份有两种方式,一种是使用BACKUP DA TABASE将数据库文件备份出去,另外一种就是直接拷贝数据库文件mdf和日志文件ldf的方式。下面将主要讨论一下后者的备份与恢复。本文假定您能熟练使用SQL Server Enterprise Manager(SQL Server企业管理器)和SQL Server Quwey Analyser(SQL Server查询分析器)。 1.正常的备份、恢复方式0 正常方式下,我们要备份一个数据库,首先要先将该数据库从运行的数据服务器中断开,或者停掉整个数据库服务器,然后复制文件。 卸下数据库的命令:Sp_detach_db 数据库名连接数据库的命令:Sp_attach_db或者sp_attach_single_file_dbs_attach_db [@dbname =] 'dbname', [@filename1 =] 'filename_n' [,...16]sp_attach_single_file_db [@dbname =] 'dbname', [@physname =] 'physical_name' 使用此方法可以正确恢复SQL Sever7.0和SQL Server 2000的数据库文件,要点是备份的时候一定要将mdf和ldf两个文件都备份下来,mdf文件是数据库数据文件,ldf是数据库日志文件。 例子: 假设数据库为test,其数据文件为test_data.mdf,日志文件为test_log.ldf。下面我们讨论一下如何备份、恢复该数据库。 卸下数据库:sp_detach_db 'test'连接数据库:sp_attach_db 'test','C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_data.mdf','C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log.ldf'sp_attach_single_file_db 'test','C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_data.mdf'

oracle数据库备份与恢复的三种方法(1)

Oracle数据库有三种标准的备份方法,它们分别是导出/导入(EXP/IMP)、热备份和冷备份。导出备件是一种逻辑备份,冷备份和热备份是物理备份。 一、导出/导入(Export/Import) 利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回到Oracle数据库中去。 1、简单导出数据(Export)和导入数据(Import) Oracle支持三种方式类型的输出: (1)、表方式(T方式),将指定表的数据导出。 (2)、用户方式(U方式),将指定用户的所有对象及数据导出。 (3)、全库方式(Full方式),瘵数据库中的所有对象导出。 数据导入(Import)的过程是数据导出(Export)的逆过程,分别将数据文件导入数据库和将数据库数据导出到数据文件。 2、增量导出/导入 增量导出是一种常用的数据备份方法,它只能对整个数据库来实施,并且必须作为SYSTEM来导出。在进行此种导出时,系统不要求回答任何问题。导出文件名缺省为export.dmp,如果不希望自己的输出文件定名为export.dmp,必须在命令行中指出要用的文件名。 增量导出包括三种类型: (1)、“完全”增量导出(Complete) 即备份三个数据库,比如: (2)、“增量型”增量导出 备份上一次备份后改变的数据,比如: (3)、“累积型”增量导出 累计型导出方式是导出自上次“完全”导出之后数据库中变化了的信息。比如: 数据库管理员可以排定一个备份日程表,用数据导出的三个不同方式合理高效的完成。 比如数据库的被封任务可以做如下安排: 星期一:完全备份(A)

星期二:增量导出(B) 星期三:增量导出(C) 星期四:增量导出(D) 星期五:累计导出(E) 星期六:增量导出(F) 星期日:增量导出(G) 如果在星期日,数据库遭到意外破坏,数据库管理员可按一下步骤来回复数据库: 第一步:用命令CREATE DATABASE重新生成数据库结构; 第二步:创建一个足够大的附加回滚。 第三步:完全增量导入A: 第四步:累计增量导入E: 第五步:最近增量导入F: 二、冷备份 冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。冷备份时将关键性文件拷贝到另外的位置的一种说法。对于备份Oracle信息而言,冷备份时最快和最安全的方法。冷备份的优点是: 1、是非常快速的备份方法(只需拷文件) 2、容易归档(简单拷贝即可) 3、容易恢复到某个时间点上(只需将文件再拷贝回去) 4、能与归档方法相结合,做数据库“最佳状态”的恢复。 5、低度维护,高度安全。 但冷备份也有如下不足: 1、单独使用时,只能提供到“某一时间点上”的恢复。 2、再实施备份的全过程中,数据库必须要作备份而不能作其他工作。也就是说,在冷备份过程中,数据库必须是关闭状态。

mdf和ldf是什么文件

mdf和ldf是什么文件 https://www.doczj.com/doc/b19043626.html,/tittle-tattle/2009/MDF-LDF-MSSQL.htm l 在MS SQL Server7/2000中摒弃了以前版本中的设备对象,一个数据库文件包含两个文件:.mdf和.ldf。在系统瘫痪之前把这两个文件从SQL Server的安装目录的data子目录里拷贝出来(一般为D:\MSSQL\DATA),重新安装完成系统之后,再将这两个文件拷贝到 SQL Server安装目录的data子目录里面,然后进行如下操作就可以恢复你的数据库了。 恢复时有两种方式可供选择: 1、调用系统存储过程SP_A TTACH_DB 举一个例子,需要备份和恢复一个名为student的数据库。先打开SQL Server Service Manager,关掉SQL Server服务,把需要备份的student数据库复制到其他的地方(可以是自己硬盘的其它盘,也可通过局域网复制到他人的PC上),包含有两个文件student.mdf和student.ldf。某些时间以后,系统数据库瘫痪,需要进行恢复。先重新安装系统,把student.mdf 和student.ldf这两个文件拷贝到SQL Server安装目录的data子目录里面,再在MS Query Analyzer中运行如下命令: exec sp_attach_db @dbname=N''student'', @filename1=N''d:\MSSQL\Data\student_Data.mdf'', @filename2=N''d:\MSSQL\Data\student_Log.ldf'' 第一行命令表示要恢复的数据库名称,可以是原来的名称student,也可以另外起一名称,但一定要保证唯一。第二、三行命令表示数据库文件的物理名称,也就是说你拷贝过来的数据库文件student.mdf和student.ldf的实际位置。 2、调用系统存储过程SP_A TTACH_SINGLE_FILE_DB 如果日志文件.ldf丢失,可以采用这个命令。还以上面的student数据库为例,在MS Query Analyzer中运行如下命令: EXEC sp_detach_db @dbname=′student′ EXEC sp_attach_single_file_db @dbname=′student′, @physname=′d:\MSSQL\Data\student_Data.mdf′ 调用这个存储过程不必指定日志文件,它会自动生成日志文件。注意以上恢复拷贝的数据库的方法一定要保证重新安装后的SQL的字符集和排序方式同以前的系统完全相同,否则将不能成功 附加数据库: 企业管理器 --右键"数据库" --所有任务 --附加数据库 --选择你的.mdf文件名 --确定 --如果提示没有.ldf文件,是否创建,选择"是" 查询分析器中的方法: --有数据文件及日志文件的情况 sp_attach_db '数据库名'

DB2大数据库备份与恢复详解

DB2数据库备份与恢复 1.备份 1.1离线备份(必须在数据库所在PC机进行操作) STEP 1 连接到要备份的数据库 (数据库名:ncc) C:\Documents and Settings\Administrator>db2 connect to ncc user nccwykpi using nccwykpi STEP 2 显示数据库应用状态 C:\Documents and Settings\Administrator>db2 list applications

STEP 3 停掉数据库应用 C:\Documents and Settings\Administrator>db2 force applications all 注意:由于该命令是异步的,所以在进行备份的时候会出现以下错误信息。此时可以再次执行db2 force applications all 命令。 STEP 4 对数据库进行离线状态下的备份 C:\Documents and Settings\Administrator>db2 backup database ncc to d:\db2\backup

注意:指定的备份文件的输出目录必须是已创建的,否则会报错。 STEP 5 查看备份历史记录 C:\Documents and Settings\Administrator>db2 list history backup all for ncc

1.2在线备份 注意:如果要做在线的备份,要对两个参数作修改:USEREXIT和LOGRETAIN,将其修改为on,默认是off的,默认使用日志模式,修改完参数后,可以变为归档日志模式,启用了userexit做数据库日志的归档。 STEP 1 查看数据库当前的属性 C:\Documents and Settings\Administrator>db2 get db cfg STEP 2 设置userexit、logretain参数的状态为on C:\Documents and Settings\Administrator>db2 update db cfg for ncc using userexit on C:\Documents and Settings\Administrator>db2 update db cfg for ncc using logretain

Informix数据库备份和恢复图文详解

Informix数据库备份和恢复Informix-Online数据库因其具有高性能、高可靠性、支持数据完整性定义/检查等特性而得到广泛应用。对于使用中的数据库,数据备份的安全可靠性便成为人们关注的焦点。以下详细介绍Informix-Online 数据库常用的三种数据备份和恢复方式。 一.ontape方式 1.ontape工具的功能 ontape工具具有如下功能:备份和恢复数据、备份和恢复逻辑日志、改变数据库日志状态等(本文着重介绍数据备份和恢复功能)。 2.执行备份前的准备 a)在执行ontape备份前需要对Onconfig文件中的TAPEDEV、TAPEBLK、TAPESIZE 参数进行正确的设置,Onconfig文件一般在安装目录的etc文件夹下(如我的在 “C:\Program Files\IBM\IBM Informix Dynamic Server\11.50\etc”),每一个实 例对应着一个Onconfig文件(如我的是“ONCONFIG.ol_ids_1150_1”),找到对 应的Onconfig文件,用记事本打开,搜索到如下位置: TAPEDEV D:\ifmxdata_bak\test_db_20150824 --注:备份文件存放的位置 TAPEBLK 16 TAPESIZE 102400 --注:单个文件的大小,当到达这个尺寸时会提示生成第二个文件。 b)按自己的要求修改完成后,保存退出。 3.执行备份数据的语法 备份语法为:ontape -s -L n(n=0-2)--注意此处的L是大写,n为备份级别 在online处于联机或静止方式时,Informix用户或具有DBA权限的用户可以通过执行上面的命令进行备份。根据备份方案安排进行0级、1级、2级备份。0级备份是对整个

数据库《数据备份与还原》实验报告

x x大学计算机与信息技术学院 实验报告 姓名学号专业班级 课程名称数据库系统概论实验日期成绩指导教师批改日期实验名称数据备份与还原 实验内容[目的和意义] ?理解数据库的备份策略 ?掌握如何创建和执行备份 ?理解数据库的还原策略 ?掌握还原数据库的方法 [实验内容] 使用SQLServer2005对象资源管理器完成以下操作:. ?创建备份设备 ?备份数据库 ?还原数据库 [实现步骤] 1.使用SQL Server 管理平台创建备份设备 (1)在SQL Server 管理平台中,选择需要创建备份设备的服务器,打开“服务器对象”的文件夹,在“备份设备”图标上单击鼠标右键,从弹出的快捷菜单中选择“新建备份设备”命令。如图6-1。 (2)打开“备份设备”对话框,在“设备名称”文本框中输入设备名称,该名 称是设备的逻辑名称,另外还要选择备份设备的类型。如图6-2。

2.使用SQL Server管理平台进行备份 (1)在SQL Server管理平台中,打开数据库文件,在要进行备份的数据库图标上单击鼠标右键,在弹出的快捷菜单中选择“任务”-“备份”命令。如图6-3。 (2)打开“备份数据库”对话框,在该对话框中又两个选项页,即“常规”与“选项” 在常规选项页的上部分,可以选择备份的数据库的名称,恢复模式,备份类型,中间可以设置备份集的名称,说明以及备份集的过期时间,下部分可以设置备份的目标。默认值是磁盘,单击“添加”按钮,在打开的“选择备份目标”对话框中,可选中“文件名”单选按钮来指定文件名和路径,也可以选中“备份设备”单选按钮,从组合框中选择备份设备。同样可以设置“选项”选项页的内容。如图6-4、6-5。

嵌入mdf文件的方式

在项目中用程序中嵌入mdf文件的方式来进行SQLServer数据库开发非常方便,用来发布开源项目等很方便,点击就可以运行,免部署,特别是在教学中用起来更加方便,老师不用先将数据库文件detach再发给学生,学生也不用将数据库文件attach。采用项目中嵌入mdf 文件的方式,老师把讲课的代码发给学生,学生打开就可以运行。我在传智播客.net培训班教学中就是用的这种方式进行讲解。 在https://www.doczj.com/doc/b19043626.html,程序中只要将mdf文件放到项目的App_Data文件夹即可,在连接字符串中使用Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\CallCenter.mdf;Integrated Security=True;User Instance=True 做连接字符串即可。 但是在WinForm程序中,如果在项目的App_Data文件夹中新建一个mdf文件,然后用Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\CallCenter.mdf;Integrated Security=True;User Instance=True 进行连接会提示找不到CallCenter.mdf。原来WinForm程序并不会去App_Data中找mdf文件。原来在https://www.doczj.com/doc/b19043626.html,中DataDirectory的值是当前项目的App_Data路径,而WinForm中的DataDirectory值则是当前项目的路径,因此Winform中mdf文件不用放到App_Data中,放到项目根目录下就可以。 但是新问题随之又来了,在WinForm中用这种方式开发的时候有时候改了项目中mdf文件中的表中的数据或者表结构,运行的时候却发现运行时通过程序读取的数据或者表结构没有变,而有时调试时Insert插入的数据在这次调试的时候竟然没有了。经过研究发现,WinForm 程序运行的时候连接的是bin/Debug下的mdf文件,而不是项目中的mdf文件,这是和https://www.doczj.com/doc/b19043626.html, 程序行为不同的地方。每次程序发生Build行为的时候,项目中的mdf就会覆盖bing/Debug 下的mdf文件,也就是有两个mdf文件的存在,项目中的mdf相当于“源文件”。虽然可以通过修改文件的“BuildToOuput”属性来部分解决问题,但是仍然不是很完美。 有一个比较很直接的想法,就是让程序去连接项目中的mdf文件,而不是连接bin/Debug下那个。 经过查询资料找到了修改方法,在Program.cs文件Main函数最开始加入如下代码: string dataDir = AppDomain.CurrentDomain.BaseDirectory; if (dataDir.EndsWith(@"\bin\Debug\") || dataDir.EndsWith(@"\bin\Release\")) { dataDir = System.IO.Directory.GetParent(dataDir).Parent.Parent.FullName; AppDomain.CurrentDomain.SetData("DataDirectory", dataDir); } 原理简单分析:连接字符串中的DataDirectory的值就是通过AppDomain.CurrentDomain.SetData赋值过去的,如果当前程序的目录以"\bin\Debug\"或者"\bin\Release\"则认为它是运行在VisualStudio环境中,就取项目的目录然后赋值给DataDirectory这个key。既然是CurrentDomain.SetData,估计对于非默认AppDomain中的数据库连接代码可能会不起作用(只是猜测,没验证),这就要需要创建子AppDomain的时候再去赋值了。

(完整word版)数据库备份与恢复方案

数据库备份与恢复方案 随着计算机的普及和信息技术的进步,特别是计算机网络的飞速发展,信息安全的重要性日趋明显。数据备份是保证信息安全的一个重要方法。 只要发生数据传输、数据存储和数据交换,就有可能产生数据故障。这时,如果没有采取数据备份和数据恢复手段与措施,就会导致数据的丢失。有时造成的损失是无法弥补与估量的。 数据故障的形式是多种多样的。通常,数据故障可划分为系统故障、事务故障和介质故障三大类。从信息安全数据库备份与恢复方案的角度出,实际上第三方或敌方的“信息攻击”,也会产生不同种类的数据故障。例如:计算机病毒型、特洛伊木马型、“黑客”入侵型、逻辑炸弹型等。这些故障将会造成的后果有:数据丢失、数据被修改、增加无用数据及系统瘫痪等。作为系统管理员,要千方百计地维护系统和数据的完整性与准确性。通常采取的措施有:安装防火墙,防止“黑客”入侵;安装防病毒软件,采取存取控制措施;选用高可靠性的软件产品;增强计算机网络的安全性。 世界上没有万无一失的信息安全措施。信息世界“攻击和反攻击”也永无止境。对信息的攻击和防护好似矛与盾的关系,螺旋式地向前发展。 在信息的收集、处理、存储、传输和分发中经常会存在一些新的问题,

其中最值得我们关注的就是系统失效、数据丢失或遭到破坏。 威胁数据的安全,造成系统失效的主要原因有以下几个方面: 1、硬盘驱动器损坏; 2、人为错误; 3、黑客攻击; 4、病毒; 5、自然灾害; 6、电源浪涌; 7、磁干扰; 因此,数据备份与数据恢复是保护数据的最后手段,也是防止主动型信息攻击的最后一道防线。 SQL SERVER数据备份方案 SQL SERVER数据库的备份方法主要有完整备份,差异备份,事务日志备份等。根据数据安全性的要求,推荐的备份方式为每周一次完整备份,每天一次差异备份,每半个小时一次事务日志备份。 默认情况下,为sysadmin 固定服务器角色以及db_owner 和

使用SQL语句来完美压缩.mdf文件的方法

大家都用过企业管理器中的--“收缩数据库”,里面的功能的确可以收缩数据库的日志文件(.ldf)和数据文件(.mdf),但都会发现同样的问题,在收缩“数据文件”(.mdf)时根本收缩不了多少。最多截段自动增长部份的,没有根本释放在日常操作中删除数据库的沉冗空间。 上述应该是很多人遇到过的,笔者也千试万试试出来的方法,为了确定您的数据库安全,在执行下例的操作前,请先备份你的数据库。 1.首先你要找到你的数据库最大的表,一般是数目最大的表,如果不清楚,请在查询分析器查询: DBCC SHOWCONTIG 接着用 sp_spaceused 表来查询reserved 的值和 data 的值的差异可看来此表比较沉冗。 2.复制你的转移旧表的数据到新表; SELECT * INTO 新表 FROM 旧表 (如果你数据比较多,可能你会看到待压缩的数据库对应的mdf和ldf文件大小在猛增,没事在复制表) 注:此命令不能把数据库结结构完全复制,需要您重新把旧表与新表对应的主键,自动增长值,索引,默认值等修改。 3.更新一下; DBCC UPDATEUSAGE (0) 4.把旧表删除,然后把新表的名字改成旧表的名字,这些可以到企业管理器里操作(注意重命名名时的提示); 5.收缩mdf文件,也是最想要实现的一步; DBCC SHRINKDATABASE('库名') DBCC shrinkfile(2,0) DBCC UPDATEUSAGE (0) /* 2 -> 要收缩的文件的fileid,对应sysfiles中的fileid。 0 -> 收缩到初始大小

*/ (注:红字是收缩你的数据库mdf文件,时间可能有点长;蓝字是收缩ldf文件;紫字是更新一下,非重要) 完工,这时候你应该可以看到数据库的mdf文件大小变化差异,不说几十M,笔者的数据库就从6G收缩到1G左右,再次执行查询一些数据,明显快多了。 文章来自学IT网:https://www.doczj.com/doc/b19043626.html,/html/2010-02/26-5919134552010218160811484.html

数据库的备份与恢复-模板

数据库的备份与恢复 ---- 当我们使用一个数据库时,总希望数据库的内容是可靠的、正确的,但由于计算机系统的故障(包括机器故障、介质故障、误操作等),数据库有时也可能遭到破坏,这时如何尽快恢复数据就成为当务之急。如果平时对数据库做了备份,那么此时恢复数据就显得很容易。由此可见,做好数据库的备份是多么的重要,下面笔者就以ORACLE7为例,来讲述一下数据库的备份和恢复。ORACLE 数据库有三种标准的备份方法,它们分别为导出/导入(EXPORT/IMPORT)、冷备份、热备份。导出备份是一种逻辑备份,冷备份和热备份是物理备份。 ---- 一、导出/导入(Export/Import) ---- 利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回Oracle数据库中去。 ---- 1. 简单导出数据(Export)和导入数据(Import) ---- Oracle支持三种类型的输出: ---- (1)表方式(T方式),将指定表的数据导出。 ---- (2)用户方式(U方式),将指定用户的所有对象及数据导出。 ---- (3)全库方式(Full方式),将数据库中的所有对象导出。 ---- 数据导出(Import)的过程是数据导入(Export)的逆过程,它们的数据流向不同。 ---- 2. 增量导出/导入 ---- 增量导出是一种常用的数据备份方法,它只能对整个数据库来实施,并且必须作为SYSTEM来导出。在进行此种导出时,系统不要求回答任何问题。导出文件名缺省为,如果不希望自己的输出文件定名为,必须在命令行中指出要用的文件名。 ---- 增量导出包括三个类型: ---- (1)“完全”增量导出(Complete)

只有MDF文件的恢复技术

速达5000系列产品常见问题处理方法详解 1、怎样取回用户帐套密码! 通常很多客户会发现帐套管理员或者某些操作员的登陆密码忘记了,怎么取回呢,方法如下:A.首先打开SQLSERVER企业管理器,找到对应的帐套数据库文件 点开表。在右边会显示所有的数据库表列表。 找到密码存放的数据表m_operator.单击鼠标右键,选择“打开表”,选择“返回所有行”。

所有的用户资料信息和密码数据会显示出来。 字段opname 是用户名称,oppassword 是用户密码。 2、打开帐套的时候抱如下错误处理方法 该问题原因是最早的3。04的补丁才会出现该问题,在公司网站行下的最新的3。04的补丁不会有该问题,只要修复一下帐套即可 3 、SQLSERVER版本只有mdf文件的恢复技术 很多客户会在使用SQL版本的软件时,碰到软件不能正常启动的时候,想重新安装的时候,又没有备份数据,只能将DA TA文件夹COPY出去。但是再引入MDF文件的时候又引入不了。遇到此类情况。处理方法如下: 第一步:我们使用默认方式建立一个供恢复使用的数据库(如test)。可以在SQL Server Enterprise Manager里面建立。 选择新建数据库

输入数据库名称为test(该数据库名称并不一定要是TEST。但是一定要保持和我下列语句中的数据库名称一致,我在次只是列举例子) 建好之后回在企业管理器中看到数据库名为TEST的数据库

第二步:停掉数据库服务器。 打开SQLSERVER服务管理器,单击停止,停止掉SQLSERVER服务。 当SQLSERVER服务管理器显示该状态时,表示已经停用。 第三步:将刚才生成的数据库的日志文件test_log.ldf删除,用要恢复的数据库mdf文件覆盖刚才生成的数据库数据文件test_data.mdf。该日志文件在SQLSERVER的安装目录,距离如下: C:/Program Files/Microsoft SQL Server/MSSQL/Data/ 一般是在该目录下。 第四步:启动数据库服务器。此时会看到数据库test的状态为“置疑”。这时候不能对此数据库进行任何操作。

相关主题
文本预览
相关文档 最新文档