`
lzj0470
  • 浏览: 1264790 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

恢复单个mdf文件

阅读更多

在做仓库作业的时候,遇到了一些比较特殊的情况,sql server2005中没有传统sql server附带的两个实例数据库,pubs和northwnd,在附加sql server2k的mdf的时候遇到了一些麻烦,系统会提示ldf文件丢失,通常回复单个mdf文件有以下几种办法:

2k:

对SQL中的日志文件不慎删除后,附加MDF文件,提示LDF文件有问题,导致MDF无法附加的情况,错误提示是

未能打开新数据库   'smartcard'。CREATE   DATABASE将终止
  日志文件   'C:\Program   Files\Microsoft   SQL   Server\MSSQL\Data\smartcard_log.ldf'   与主文件不匹配,可能该文件来自另一个数据库,也可能重建过该日志。

一种解决办法是:

1、把需要附加的数据库的MDF文件改名;

2、建一个相同的数据库。库文件名称为要附加的数据库名。

3、打开服务管理器(通常情况下应该在托盘),停止服务

3、将新建的数据库文件的MDF文件删掉,并将原有的数据库mdf文件该为原来的名字

4、重启sql  server服务 ,此时数据库变为置疑状态

5、执行以下语句:

Sql代码 复制代码
  1. sp_configure    'allow updates' ,  1 reconfigure    with    override  
  2. update    sysdatabases    set    status= '32768'     where     name = 'northwnd'   
  3. DBCC   rebuild_log   ('northwnd' , '日志路径\northwnd' )  
  4. update    sysdatabases    set    status= '0'     where     name = 'northwnd'   
  5. sp_configure   'allow updates' ,  0 reconfigure    with    override  
sp_configure   'allow updates',  1 reconfigure   with   override
update   sysdatabases   set   status='32768'   where   name='northwnd'
DBCC   rebuild_log   ('northwnd','日志路径\northwnd')
update   sysdatabases   set   status='0'   where   name='northwnd'
sp_configure   'allow updates',  0 reconfigure   with   override


重置数据库异常状态命令

Java代码 复制代码
  1. sp_resetstatus  'database_name'   
sp_resetstatus 'database_name'


到此时,表面上数据库没有什么问题了,实际上此时数据库处于回避恢复模式。

新建一数据库,将原来的数据导入到新建的数据库中,完毕后将原来的数据库删除,新建,

然后将数据重新导入,就行了。

需要注意的是,SQL在进行数据导入导出的时候,原始表的主建信息会丢掉,所以需要注意以下。

2K5:

2k5已经不再提供操作sysdatabases的办法了,所以用allow updates也没有什么用,但是仍然提供了一下的方法:

Sql代码 复制代码
  1. EXEC    sp_attach_single_file_db   @dbname   =    'northwnd' ,      
  2.         @physname   =   'e:\northwnd.mdf'      
EXEC   sp_attach_single_file_db   @dbname   =   'northwnd',    
        @physname   =   'e:\northwnd.mdf'   



同样可以附加数据库上去。

分享到:
评论

相关推荐

    mdf文件修复导出工具(真实可用)

    通过这个工具可以直接打开mdf文件,并导出数据、视图、存储过程等到sqlserver服务器。 网上能找到很多这类工具,这个鱼那个鱼、mdfview等,不付费都没有导出功能,但这个真实可用,刚刚用它恢复了一个2g左右的mdf。

    recovery-for-sql-server-4.7 DEMO版本,支持小于单个24G MDF文件数据恢复.zip

    【标题】"recovery-for-sql-server-4.7 DEMO版本,支持小于单个24G MDF文件数据恢复.zip"所涉及的知识点主要集中在SQL Server数据库的恢复技术和MDF文件的理解上,同时,DEMO版本也提示了这是一个软件试用版。...

    SQL数据库只有MDF文件数据库恢复方法.txt

    --单个MDF文件附加到数据库中的操作 --例子数据目录:d:\Data --例子数据库MDF文件为:d:\Data\SD303N_001.Mdf --设置服务器允许对系统目录进行直接修改 use master go sp_configure 'allow updates',1 go ...

    恢复.mdf 数据库步骤

    ### 方法一:只有.mdf文件的情况 1. **新建同名数据库**:首先,你需要在SQL Server中创建一个与丢失数据库同名的新数据库。这将是存储恢复数据的容器。 2. **设置数据库为脱机**:将新创建的数据库设置为脱机状态...

    sql单个文件管理.rar

    6. **故障转移和镜像**:在高可用性和灾难恢复场景中,单个文件的管理也非常重要。例如,使用数据库镜像时,需要配置主数据库和镜像数据库的文件路径。 7. **文件组管理**:数据库可以包含多个文件组,这有助于数据...

    详细讲解SQL Server数据库的文件恢复技术.doc

    本文将详细介绍SQL Server数据库中的两种主要恢复方式——正常的备份恢复方式以及仅有mdf文件的情况下的恢复技术。 #### 二、正常的备份、恢复方式 正常的备份与恢复通常遵循以下步骤: 1. **卸载数据库**: - ...

    SQL server 六种数据移动方法

    对于单个数据库文件(.mdf)或事务日志文件(.ldf),可以直接将其从一台服务器复制到另一台服务器上,并使用T-SQL语句将这些文件附加到新的数据库实例中。这种方法特别适用于较小的数据库或特定的开发测试环境。...

    SQL Server 2005的文件及文件组.pdf

    当数据库规模增长,超过单个Windows文件的最大值时,可以添加次要数据文件来分散数据,提高数据库性能。次要数据文件可以有零个或多个,根据数据库的大小和需求来决定。 为了优化磁盘I/O和提升性能,SQL Server引入...

    批量删除数据库文件

    # 检查文件是否为.mdf文件 if filename.endswith('.mdf'): # 构建完整文件路径 file_path = os.path.join(db_directory, filename) # 删除文件 os.remove(file_path) ``` 在PowerShell中,可以使用以下命令:...

    SQL数据库置疑项目解决方案(原因、预防、修复)附图.pdf

    2. 只有.mdf文件的恢复:如果只有.mdf文件,恢复过程会复杂一些。如果文件与当前数据库匹配,可能可以使用`sp_attach_db`或`sp_attach_single_file_db`尝试恢复。但如果.mdf来自其他计算机,可能需要创建新数据库,...

    使用文件组优化SQL Server数据库性能.pdf

    SQL Server 2000数据库包含了三种类型的文件:主要数据文件(.mdf)、次要数据文件(.ndf)和日志文件(.ldf)。主要数据文件是数据库的起点,指向数据库中其他文件部分;次要数据文件包含除主要数据文件外的所有...

    iso文件制作 anytoiso_setup.zip

    3. **支持多种格式**:除了ISO,AnyToISO还兼容其他光盘映像格式,如BIN、NRG、MDF等,可以将这些格式转换为标准的ISO文件,提高文件兼容性。 4. **可引导ISO制作**:对于系统安装盘或恢复盘,AnyToISO可以创建可...

    recovery-for-sql-server-4.7

    recovery-for-sql-server-4.7 DEMO版本,支持小于单个24G MDF文件数据恢复

    SQL SERVER 文件和文件组

    首先,随着数据库的增长,单一的mdf文件可能会超出Windows系统允许的最大文件大小,导致数据库无法正常工作。其次,没有充分利用磁盘阵列的并行读写能力,降低了存储系统的性能。为解决这些问题,可以创建多个次要...

    SQLServer数据库结构和管理PPT学习教案.pptx

    在SQL Server中,数据库由不同类型的文件组成,包括主数据库文件(.mdf)、次数据库文件(.ndf)和事务日志文件(.ldf)。主数据库文件是数据库的起点,存储数据库的元数据和其他文件的引用。次数据库文件用于扩展...

    SQL数据库置疑解决方案(原因、预防、修复)附图

    - 如果只有`.mdf`文件而没有`.ldf`文件,可以尝试以下方法进行恢复: - 在目标系统上创建一个新的数据库,并命名与原始数据库相同。 - 删除新创建数据库的日志文件,用原始的`.mdf`文件覆盖新创建的数据库的数据...

    SQLserver 2005文件和文件组的作用说明

    - **主数据文件**(*.mdf):每个数据库至少有一个主数据文件,存储数据库的元数据以及用户数据和对象,如表、索引、存储过程和视图。它是数据库的起点,包含了数据库的启动信息,并指向其他文件。 - **次要数据...

    数据库应用软件:第3-1章 数据库和表.ppt

    在SQL Server 2005中,数据库文件主要有三种类型:主数据文件(.MDF)、次要数据文件(.NDF)和事务日志文件(.LDF)。主数据文件是数据库的起点,存放数据并包含其他文件的引用,每个数据库必须且仅有一个主数据...

    SQL批量附加

    在SQL Server管理中,"SQL批量附加"是一个高效的操作,用于一次性将多个数据库从备份文件快速恢复到服务器。这个过程可以极大地节省时间,特别是在需要处理大量数据库时,比逐个附加单个数据库更为便捷。下面我们将...

Global site tag (gtag.js) - Google Analytics