AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题 / 31016
Accepted
madziikoy
madziikoy
Asked: 2012-12-25 11:04:52 +0800 CST2012-12-25 11:04:52 +0800 CST 2012-12-25 11:04:52 +0800 CST

我在 SQL Server 2008 R2 中丢失了我的数据库

  • 772

我的数据库突然停止工作,从检查错误日志中它说主数据库已损坏。

所以我尝试使用以下命令重建系统数据库:

setup /ACTION=REBUILDDATABASE   /QUIET 
      /INSTANCENAME=<instance name>  /SQLSYSADMINACCOUNTS=<accounts>

运行命令后,数据库服务器又开始工作了,但是我所有的数据库都找不到了。我真的需要一些关于我没有备份数据库的想法。

我认为数据库文件(mdf、ldf、ndf)仍在我的本地驱动器上,因此是否可以将这些文件重新链接到数据库?


更新

我尝试在实例上创建一个同名的数据库并收到错误

Create failed for Database 'db'.  (Microsoft.SqlServer.Smo)

Cannot create file 'D:\Program Files\Microsoft SQL Server\MSSQL10_50.db\MSSQL\DATA\db.mdf' because it already exists. Change the file path or the file name, and retry the operation.
CREATE DATABASE failed. Some file names listed could not be created. Check related errors. (Microsoft SQL Server, Error: 5170)

这证明了我认为文件仍然存在的想法。那么如何将其重建/恢复到我的数据库中呢?

sql-server sql-server-2008-r2
  • 2 2 个回答
  • 7274 Views

2 个回答

  • Voted
  1. Best Answer
    Brandon leach
    2012-12-25T11:15:36+08:002012-12-25T11:15:36+08:00

    您可以尝试使用这些文件附加丢失的数据库。您可以右键单击 Management Studio 中的数据库文件夹并选择“附加”。

    另一种选择,也是我通常会选择的选择,是使用您拥有的任何备份。但是,您会遇到一些数据丢失。如果您对数据库使用完全恢复模式,您应该能够恢复到上次的事务日志备份。否则,如果您使用的是简单恢复模式,您只能从最新的完整备份中恢复。

    • 8
  2. Carol Baker West
    2012-12-27T13:23:14+08:002012-12-27T13:23:14+08:00
    1. 在 SSMS 中,右键单击 SQL Server 实例的数据库节点
    2. 选择附加

    在此处输入图像描述

    3.点击添加

    4.转到D:\Program Files\Microsoft SQL Server\MSSQL10_50.db\MSSQL\DATA 5.选择db.mdf 会自动添加对应的ldf文件

    在此处输入图像描述

    如果由于 mdf 文件损坏而失败,您可以尝试使用读取损坏的 mdf 文件的工具,例如ApexSQL Recover

    • 3

相关问题

  • SQL Server - 使用聚集索引时如何存储数据页

  • 我需要为每种类型的查询使用单独的索引,还是一个多列索引可以工作?

  • 什么时候应该使用唯一约束而不是唯一索引?

  • 死锁的主要原因是什么,可以预防吗?

  • 如何确定是否需要或需要索引

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何查看 Oracle 中的数据库列表?

    • 8 个回答
  • Marko Smith

    mysql innodb_buffer_pool_size 应该有多大?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    从 .frm 和 .ibd 文件恢复表?

    • 10 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    如何选择每组的第一行?

    • 6 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    pedrosanta 使用 psql 列出数据库权限 2011-08-04 11:01:21 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST
  • Martin Hope
    bernd_k 什么时候应该使用唯一约束而不是唯一索引? 2011-01-05 02:32:27 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve