1. 首页 > 电脑手机 >

sql server数据恢复(sqlserver如何恢复数据)

sqlserver2012数据库提示正在还原和停止(sql2008数据库显示正在恢复)

输入用户名和密码,先登录数据库

sql server数据恢复(sqlserver如何恢复数据)sql server数据恢复(sqlserver如何恢复数据)


找到无法还原的数据库,右键-属性

数据库属性页面,点击左侧的‘选项’

点开状态,找到限制访问,修改选择值,把原来的multi_user,改成single_user,点击确定,保存修改

修改保存后,刷新数据库列表,可以看到该数据库后面已经显示‘单个用户’

这个时候,在重新还原数据库,应该就可以成功了

SQLServer2008R2如何还原数据库

1.左下角点击开始,程序,MicrosoftSQLServer2008R2 ,找到SQLServerManagementStudio,进入企业管理器;

2.选择服务器实例名,登录名选择sa,输入sa登录密码,点击连接;

3.进入企业管理器界面,鼠标右键单击“数据库”,选择“新建数据库”;

4. 输入数据库名称,然后点击确定;

5. 鼠标右键点击数据库,选择“任务”“还原”“数据库”;

6. 进入还原数据库页面,选择“源设备”,然后点击后面的三个小圆点;

7.点击“添加”;

8.选择要恢复的BAK文件;

9. 点击下面的“选择用于还原的备份集”,把还原下面的方框全部勾选,然后点击左侧的“选项”;

10.在选项的设置里,把“覆盖现有数据库”前面的方框勾选,然后点击下面的“确定”;

11.成功完成数据库的还原。

餐饮软件怎么恢复sql数据库

数据库恢复:

1、打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQL Server

2、SQL Server组--双击打开你的服务器--点图标栏的新建数据库图标,新建数据库的名字自行取

3、点击新建好的数据库名称--然后点上面菜单中的工具--选择恢复数据库

4、在弹出来的窗口中的还原选项中选择从设备--点选择设备--点添加--然后选择你的备份文件名--添加后点确定返回,这时候设备栏应该出现您刚才选择的数据库备份文件名,备份号默认为1(如果您对同一个文件做过多次备份,可以点击备份号旁边的查看内容,在复选框中选择新的一次备份后点确定)--然后点击上方常规旁边的选项按钮

5、在出现的窗口中选择在现有数据库上强制还原,以及在恢复完成状态中选择使数据库可以继续运行但无法还原其它事务日志的选项。在窗口的中间部位的将数据库文件还原为这里要按照你SQL的安装进行设置(也可以指定自己的目录),逻辑文件名不需要改动,移至物理文件名要根据你所恢复的机器情况做改动,如您的SQL数据库装在D:\Program Files\Microsoft SQL Server\MSSQL\Data,那么就按照您恢复机器的目录进行相关改动改动,并且后的文件名改成您当前的数据库名(如原来是zw0001.mdf,现在的数据库是zw0002,就改成zw0002.mdf),日志和数据文件都要按照这样的方式做相关的改动(日志的文件名是.ldf结尾的),这里的恢复目录您可以自由设置,前提是该目录必须存在(如您可以指定d:\sqldata\zw0002.mdf或者d:\sqldata\zw0002.ldf),否则恢复将报错

6、修改完成后,点击下面的确定进行恢复,这时会出现一个进度条,提示恢复的进度,恢复完成后系统会自动提示成功,如中间提示报错,请记录下相关的错误内容并询问对SQL操作比较熟悉的人员,一般的错误无非是目录错误或者文件名重复或者文件名错误或者空间不够或者数据库正在使用中的错误,数据库正在使用的错误您可以尝试关闭所有关于SQL窗口然后重新打开进行恢复操作,如果还提示正在使用的错误可以将SQL服务停止然后重起看看,至于上述其它的错误一般都能按照错误内容做相应改动后即可恢复

SQL数据库里的表误删除要怎么恢复?

1、实现运行Recovery for SQL Server操作如下。

2、点击:Next > Next--》进入 Recovery Configuration 界面--》选择了Custom才可以选择从日志中恢复误删除的数据的操作如下。

3、Next 进入 Recovery options 窗口--》选中 Search for deleted records,并选择要恢复的数据库的日志文件路径log file path操作如下。

4、实现点击next-》开始恢复操作如下。

5、点击:Next选择被恢复数据存放的目标数据库。

6、点击:Finish然后就完成数据的恢复数据的操作如下。

SQL Server:无日志恢复数据库

事情的起因 昨天 系统管理员告诉我 我们一个内部应用数据库所在的磁盘空间不足了 我注意到数据库事件日志文件XXX_Data ldf文件已经增长到了 GB 于是我决意缩小这个日志文件 经过收缩数据库等操作未果后 我犯了一个自进入行业以来的愚蠢的错误:竟然误删除了这个日志文件!后来我看到所有论及数据库恢复的文章上都说道: 无论如何都要保证数据库日志文件存在 它至关重要 甚至微软甚至有一篇KB文章讲如何只靠日志文件恢复数据库的 我真是不知道我那时候是怎么想的?!这下子坏了!这个数据库连不上了 企业管理器在它的旁边写着 (置疑) 而且要命的 这个数据库从来没有备份了 我找得到的是迁移半年前的另外一个数据库服务器 应用倒是能用了 但是少了许多记录 表和存储过程 真希望这只是一场噩梦!数据库日志文件的误删或别的原因引起数据库日志的损坏 方法一 新建一个同名的数据库 再停掉sql server(注意不要分离数据库) 用原数据库的数据文件覆盖掉这个新建的数据库 再重启sql server 此时打开企业管理器时会出现置疑 先不管 执行下面的语句(注意修改其中的数据库名) 完成后一般就可以访问数据库中的数据了 这时 数据库本身一般还要问题 解决办法是 利用数据库的脚本创建一个新的数据库 并将数据导进去就行了 USE MASTERGOSP_CONFIGURE ALLOW UPDATES RECONFIGURE WITH OVERRIDEGOUPDATE SYSDATABASES SET STATUS = WHERE NAME= 置疑的数据库名 Gosp_dboption 置疑的数据库名 single user true GoDBCC CHECKDB( 置疑的数据库名 )Goupdate sysdatabases set status = where name= 置疑的数据库名 Gosp_configure allow updates reconfigure with overrideGosp_dboption 置疑的数据库名 single user false Go 方法二 事情的起因昨天 系统管理员告诉我 我们一个内部应用数据库所在的磁盘空间不足了 我注意到数据库事件日志文件XXX_Data ldf文件已经增长到了 GB 于是我决意缩小这个日志文件 经过收缩数据库等操作未果后 我犯了一个自进入行业以来的愚蠢的错误:竟然误删除了这个日志文件!后来我看到所有论及数据库恢复的文章上都说道: 无论如何都要保证数据库日志文件存在 它至关重要 甚至微软甚至有一篇KB文章讲如何只靠日志文件恢复数据库的 我真是不知道我那时候是怎么想的?!这下子坏了!这个数据库连不上了 企业管理器在它的旁边写着 (置疑) 而且要命的 这个数据库从来没有备份了 我找得到的是迁移半年前的另外一个数据库服务器 应用倒是能用了 但是少了许多记录 表和存储过程 真希望这只是一场噩梦!没有效果的恢复步骤附加数据库_Rambo讲过被删除日志文件中不存在活动日志时 可以这么做来恢复: 分离被置疑的数据库 可以使用sp_detach_db 附加数据库 可以使用sp_attach_single_file_db但是 很遗憾 执行之后 SQL Server质疑数据文件和日志文件不符 所以无法附加数据库数据文件 DTS数据导出不行 无法读取XXX数据库 DTS Wizard报告说 初始化上下文发生错误 紧急模式怡红公子讲过没有日志用于恢复时 可以这么做: 把数据库设置为emergency mode 重新建立一个log文件 把SQL Server 重新启动一下 把应用数据库设置成单用户模式 做DBCC CHECKDB 如果没有什么大问题就可以把数据库状态改回去了 记得别忘了把系统表的修改选项关掉我实践了一下 把应用数据库的数据文件移走 重新建立一个同名的数据库XXX 然后停掉SQL服务 把原来的数据文件再覆盖回来 之后 按照怡红公子的步骤走 但是 也很遗憾 除了第 步之外 其他步骤执行非常成功 可惜 重启SQL Server之后 这个应用数据库仍然是置疑!不过 让我欣慰的是 这么做之后 倒是能够Select数据了 让我大出一口气 只不过 组件使用数据库时 报告说: 发生错误: 未能在数据库 XXX 中运行 BEGIN TRANSACTION 因为该数据库处于回避恢复模式 终成功恢复的全部步骤设置数据库为紧急模式停掉SQL Server服务;把应用数据库的数据文件XXX_Data mdf移走;重新建立一个同名的数据库XXX;停掉SQL服务;把原来的数据文件再覆盖回来;运行以下语句 把该数据库设置为紧急模式;运行 Use MasterGosp_configure allow updates reconfigure with overrideGo 执行结果:DBCC 执行完毕 如果 DBCC 输出了错误信息 请与系统管理员联系 已将配置选项 allow updates 从 改为 请运行 RECONFIGURE 语句以安装 接着运行 update sysdatabases set status = where name = XXX 执行结果:(所影响的行数为 行)重启SQL Server服务;运行以下语句 把应用数据库设置为Single User模式;运行 sp_dboption XXX single user true 执行结果:命令已成功完成 ü 做DBCC CHECKDB;运行 DBCC CHECKDB( XXX ) 执行结果: XXX 的 DBCC 结果 sysobjects 的 DBCC 结果 对象 sysobjects 有 行 这些行位于 页中 sysindexes 的 DBCC 结果 对象 sysindexes 有 行 这些行位于 页中 syscolumns 的 DBCC 结果 ………ü 运行以下语句把系统表的修改选项关掉;运行 sp_resetstatus XXX gosp_configure allow updates reconfigure with overrideGo 执行结果:在 sysdatabases 中更新数据库 XXX 的条目之前 模式 = 状态 = (状态 suspect_bit = ) 没有更新 sysdatabases 中的任何行 因为已正确地重置了模式和状态 没有错误 未进行任何更改 DBCC 执行完毕 如果 DBCC 输出了错误信息 请与系统管理员联系 已将配置选项 allow updates 从 改为 请运行 RECONFIGURE 语句以安装 重新建立另外一个数据库XXX Lost;DTS导出向导运行DTS导出向导;源选择EmergencyMode的数据库XXX 导入到XXX Lost;选择 在SQL Server数据库之间对象和数据 试了多次 好像不行 只是过来了所有表结构 但是没有数据 也没有视图和存储过程 而且DTS向导后报告失败;所以后选择 从源数据库表和视图 但是后来发现 这样总是只能一部分表记录;于是选择 用一条查询指定要传输的数据 缺哪个表记录 就导哪个;视图和存储过程是执行SQL语句添加的 维护Sql Server中表的索引在使用和创建数据库索引中经常会碰到一些问题 在这里可以采用一些另类的方法解决… 第一步:查看是否需要维护 查看扫描密度/Scan Density是否为 %declare @table_id intset @table_id=object_id( 表名 )dbcc showcontig(@table_id) 第二步:重构表索引dbcc dbreindex( 表名 pk_索引名 ) 重做第一步 如发现扫描密度/Scan Density还是小于 %则重构表的所有索引 并不一定能达 % dbcc dbreindex( 表名 ) lishixinzhi/Article/program/SQLServer/201311/22169

SQL Server的文件恢复技术

SQL Server有两种备份方式 一种是使用BACKUP DATABASE将数据库文件备份出去 另外一种就是直接拷贝数据库文件mdf和日志文件ldf的方式 本文中 我们将主要介绍一下后者的备份与恢复 (本文中假定您目前已经能够熟练使用Server企业管理器和SQL Server查询分析器)

正常的备份 恢复方式

正常方式下 我们要备份一个数据库 首先要先将该数据库从运行的数据服务器中断开 或者停掉整个数据库服务器 然后文件

卸下数据库的命令

Sp_detach_db 数据库名

连接数据库的命令

Sp_attach_db或者sp_attach_single_file_db s_attach_db [@dbname =] ′dbname′ [@filename =] ′filename_n′ [ ] sp_attach_single_file_db [@dbname =] ′dbname′ [@physname =] ′physical_name′

使用此方法可以正确恢复SQL Sever 和SQL Server 的数据库文件 要点是备份的时候一定要将mdf和ldf两个文件都备份下来 mdf文件是数据库数据文件 ldf是数据库日志文件

例子

假设数据库为test 其数据文件为test_data mdf 日志文件为test_log ldf 下面我们讨论一下如何备份 恢复该数据库

卸下数据库

sp_detach_db ’test’

连接数据库

sp_attach_db ’test’ ’C:Program FilesMicrosoft SQL ServerMSSQLDatatest_data mdf’ ’C:Program FilesMicrosoft SQL ServerMSSQLDatatest_log ldf’sp_attach_single_file_db ’test’ ’C:Program FilesMicrosoft SQL ServerMSSQLDatatest_data mdf’

只有mdf文件的恢复技术

由于种种原因 我们如果当时仅仅备份了mdf文件 那么恢复起来就是一件很麻烦的事情了

如果您的mdf文件是当前数据库产生的 那么很侥幸 也许你使用sp_attach_db或者sp_attach_single_file_db可以恢复数据库 但是会出现类似下面的提示信息

设备激活错误 物理文件名 ’C:Program FilesMicrosoft SQL ServerMSSQLdatatest_Log LDF’可能有误

已创建名为’C:Program FilesMicrosoft SQL ServerMSSQLDatatest_log LDF’的新日志文件

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

服务器: 消息 级别 状态 行

未能打开新数据库 ’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’ go reconfigure with override go

F 设置test为紧急修复模式

update sysdatabases set status= where dbid=DB_ID(’test’)

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

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

dbcc rebuild_log(’test’ ’C:Program FilesMicrosoft SQL ServerMSSQLDatatest_log ldf’)

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

服务器: 消息 级别 状态 行

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

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

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

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

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

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

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

H 验证数据库一致性(可省略)

dbcc checkdb(’test’)

一般执行结果如下

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

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

I 设置数据库为正常状态

sp_dboption ’test’ ’dbo use only’ ’false’

假如没有出错 现在你就可以正常的使用恢复后的数据库啦

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

lishixinzhi/Article/program/SQLServer/201311/22357

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至836084111@qq.com 举报,一经查实,本站将立刻删除。

联系我们

工作日:9:30-18:30,节假日休息