根据.mdf、.ndf和.ldf文件恢复数据库数据

article/2025/10/23 23:19:42

 

一、.mdf、.ndf和.ldf文件是什么

在微软的SQL Server 2000 数据库有三种类型的文件:

类型缩写中文意思
mdfprimary data file主要数据文件
ndfsecondary data files次要数据文件
ldfLog data files事务日志文件

1、主要数据文件:(扩展名.mdf是 primary data file 的缩写)

      主要数据文件包含数据库的启动信息,并指向数据库中的其他文件。用户数据和对象可存储在此文件中,也可以存储在次要数据文件中。每个数据库有一个主要数据文件。

2、次要数据文件(扩展名.ndf是Secondary data files的缩写)

      次要数据文件是可选的,由用户定义并存储用户数据。通过将每个文件放在不同的磁盘驱动器上,次要文件可用于将数据分散到多个磁盘上。另外,如果数据库超过了单个 Windows 文件的最大大小,可以使用次要数据文件,这样数据库就能继续增长。

3、事务日志 (扩展名.ldf是Log data files的缩写)

      事务日志文件保存用于恢复数据库的日志信息。每个数据库必须至少有一个日志文件。

二、恢复数据

  1. 把mdf文件或.ndf文件和ldf文件拷贝到数据库的默认路径C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA里也可是自定义路径(这里是自定义路径演示)
  2. 在数据库可视化工具中新建查询运行以下代码既可既可产生名为cst的数据库
  3. 刷新数据库,就出现了新的数据库cst;
USE master;
GO
CREATE DATABASE cstON (FILENAME = 'D:\Program Files\MS_SQLSERVER_DATA\cst.ndf'),(FILENAME = 'D:\Program Files\MS_SQLSERVER_DATA\cst_log.ldf')FOR ATTACH;
GO

 

例如:

 

说明:

  • 以上代码也可将.ndf文件替换为.mdf文件进行恢复。
  • 在数据恢复后恢复文件将成数据库的引用文件,数据库的操作日志及数据都会在此进行保存,切记不可删除和移动。

三、遇到的问题

  • 恢复文件后数据库状态是“只读”,不能写入

        解决办法:将.mdf、.ndf和.ldf文件的权限改为完全控制,选中.ndf文件---->右击----->安全------> Authenticated Users---->编辑---->完全控制,按照同样的方法,更改日志文件。

                       如果不行则将数据库分离处理,然后在将.mdf、.ndf和.ldf文件的权限改为完全控制,然后重新执行上面sql语句恢复数据。

                       分离步骤:打开Microsoft SQL Server Management Studio管理工具,右键你要压缩的数据库 -> 任务 -> 分离 -> 勾选删除连接、更新统计信息的框框->点击确定即可

 

 

           

 

 

 

 

 

 


http://chatgpt.dhexx.cn/article/ppA9ncAU.shtml

相关文章

清除SQLServer数据库日志(ldf文件)的几种方法

概述 我是下面有三个ldf:**_log2.ldf,**_log3.ldf,**_log.ldf,我是通过方案2减小了**_log.ldf。另两个改了后缀名还没有报错,因为我这个是测试环境,运行一段时间没事我就删掉。 随着系统运行时间的推移,数据库日志文件…

mdf文件和ldf文件ndf是什么,怎么用?如何给SQL server添加数据文件?分离和附加数据库的操作

目录 三种文件介绍: 附加数据库操作: 分离数据库: bak备份文件: 三种文件介绍: 在微软的SQL Server 2000 数据库有三种类型的文件: 类型缩写中文意思mdfprimary data file主要数据文件ndfsecondary d…

SqlServer如何将mdf、ldf文件导入数据库—两种解决方法

在导入之前将mdf和ldf文件的权限修改成everyone完全控制,避免导入失败;无everyone用户添加一个即可。 操作步骤: 选择对应文件右键—属性—安全—编辑—选中everyone—完全控制打勾—点击确定按钮即可 方法一: 注意:如…

sqlsever2019:添加mdf和ldf文件

文章目录 右键数据库,点击附加: 点击添加: 复制这个路径到文件夹:(以后所有的mdf,和ldf文件都在这) 把需要添加的文件复制粘贴到这个路径下: 再回到这点击添加: 选确定 再确定&#…

清除SQL Server数据库日志(ldf文件)的几种方法

随着系统运行时间的推移,数据库日志文件会变得越来越大,这时我们需要对日志文件进行备份或清理。 解决方案1 - 直接删除本地ldf日志文件:(比较靠谱方案!) 1. 在SQL管理器分离数据库。 2. 对数据库日志文件进…

C语言表白代码分享

#include <stdio.h> #include <math.h> #include <stdlib.h> #define I 20 #define R 340 #include <string.h> int main() {char answer[10];printf("和我私奔吧\n趁夜色和爱你正浓\n在落日跟暮色当中\n都是属于浪漫和刚刚好\n\n");printf(…

爱心代码(c语言)

最简单的爱心代码&#xff0c;复制即可用 #include<stdio.h> #include<windows.h> int main() {for (float y 1.5f; y > -1.5f; y - 0.1f){for (float x -1.5f; x < 1.5f; x 0.05f){float a x * x y * y - 1;putchar(a * a * a - x * x * y * y * y &l…

c语言必背100代码,初学者代码大全(c语言必背100代码)

一个完全入门初学者如何学代码,读代码和写代码,,我想学代码不知道方向谁能给我指明一个方向? 1、学代码:前提是你的复有一个比较系统的学习.认真完成每一个课程中的案例. 2、读代码:分制两步走:前期能读懂自己写的代码.2113 后期能读懂他人写的代码和大致的知道底层的某些源码…

C语言表白代码?

解题思路&#xff1a;这道例题我分了4部分&#xff0c;前3行一部分&#xff0c;4-6行一部分&#xff0c;7-13行一部分&#xff0c;最后一行一部分&#xff0c;读者请仔细阅读注释&#xff0c;小林写的很详细了。 前三行输出&#xff0c;为了让初学者知道&#xff0c;即使最笨的…

用C语言编写爱心代码

又快到情人节了&#xff0c;或者女朋友生日各种纪念日什么的&#xff0c;下面给大家编写一个简单的爱心代码&#xff0c;供大家参考&#xff0c;希望对大家有帮助哦。 #include<stdio.h> #include<windows.h> //心形图案爱心代码编程c语言 int main() { float x,y…

C语言表白代码

C语言实现打印出心形&#xff0c;初学者的表白神器。 这道题分4部分&#xff0c;前3行一部分&#xff0c;4-6行一部分&#xff0c;7-13行一部分&#xff0c;最后一行一部分。 前三行输出&#xff0c;为了让初学者知道&#xff0c;即使最笨的方法也是可以打印的。 4-6行&#x…

C语言烟花代码—兔年顶呱呱

废话不多说&#xff0c;直接上码 代码&#xff0c;歌曲&#xff0c;烟花图片都在压缩包里 链接: https://pan.baidu.com/s/1_459s0fFCAX1DcQa_BnHMQ?pwdqw12 提取码: qw12 要看效果的也可以看我抖音: 1210246294 #include<stdio.h> #include<easyx.h> #inclu…

爱心c语言简单代码

前言&#xff1a;对于c语言&#xff0c;在我看来十分重要&#xff0c;是所有语言编程语言的鼻祖。 今天先跟大家分享一个编程c语言的软件&#xff0c;visual studio 2019 在这里选择你想要的版本。 安装密匙 这是一些&#xff0c;希望可以帮助到大家。 安装以后我们打开vs201…

经典C语言从入门到入坑必学最简单的代码

解锁IT男超哥电脑中沉睡已久的C语言代码 当IT男超哥再看到这一串串代码&#xff0c;其实IT男超哥很久没有写C语言代码了&#xff0c;然后根据以前的片段开始用旧代码写的新代码&#xff0c;这让我想起&#xff0c;我的大学老师有一节课让我回答问题&#xff0c;老师说C语言代码…

C语言初学者必学必会的C语言必背100代码

对于C语言这门计算机语言&#xff0c;算是老生常谈了&#xff0c;现在就由我来给大家分享几个关于C语言的几个代码吧&#xff01;(如果有错的地方还望见谅) 1.入门级别hello&#xff0c;world #include<stdio.h> int main() { printf("Hello,world!\n"); …

【Latex】表格样例大全

1 % 所需包 \usepackage{type1cm} \begin{table*}[t]\caption{Performance of MeFA (Adult). }\label{tab_1

LaTeX表格行高、列间距设置

一、前言 对于如下 LaTeX 代码生成的表格&#xff1a; \begin{table}[!htbp]\centering\begin{tabular}{|l|l|l|l|}\hline~ & col1 & col2 & col3 \\ \hlinerow1 & 1 & 2 & 3 \\ \hlinerow2 & 4 & 5 & 6 \\ \hline\end{tabular} \end{ta…

LaTeX 表格

本系列文章由 @YhL_Leo 出品,转载请注明出处。 文章链接: http://blog.csdn.net/yhl_leo/article/details/50066137 一些LaTeX中表格的使用方法如下: 1.table \documentclass{article}\begin{document}\begin{table}[h]\centering\begin{tabular}{|l|c|c|}\hlineSetting…

【LaTeX教程】六.LaTeX中的表格

欢迎订阅本专栏&#xff1a;《LaTeX教程》 专栏介绍&#xff1a; 博主是一名重度LaTeX使用人员&#xff0c;想借此专栏跟大家分享LaTeX的使用心得&#xff0c;同时为LaTeX初学者们提供一些入门经验。欢迎正在使用或者即将使用LaTeX的小伙们一键三连&#xff08;收藏❤️、点赞…

Latex 表格技巧 - 合并单元格

简介 Latex的表格功能非常强大&#xff0c;但是在初学的过程中可能遇到很多棘手的问题&#xff0c;这里给出了如何合并单元格的几种做法&#xff0c;重点是合并多行多列的做法 合并一行多列单元格 合并1行多列可以使用\multicolumn{cols}{pos}{text}来实现 \documentclass[…