- 浏览: 660859 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (609)
- java (139)
- 数据库 (107)
- 微信 (23)
- IT生活 (5)
- web前端 (74)
- SSH (11)
- 设计模式 (12)
- 重要资料 (11)
- 其他 (15)
- java技巧 (23)
- 服务器 (9)
- 2D/GUI (3)
- JAVA3D (2)
- ANT (5)
- Apache项目 (19)
- 数据类型 (10)
- 报表 (3)
- Collections (6)
- SQL/JDBC (15)
- 开发类 (6)
- EJB (6)
- Email (6)
- 文件读写 (2)
- 游戏 (0)
- Flex (2)
- Generic (2)
- HIbernate (12)
- I18N (5)
- Java EE (9)
- java ME (4)
- JDK 6 (8)
- JNDI/LDAP (5)
- JSP (7)
- JSTL (2)
- 正则表达式 (2)
- 安全 (2)
- Struts2 (12)
- Spring (4)
- Web服务 (10)
- Xml (1)
- JavaScript (30)
- AJAX (7)
- 验证 (4)
- 上传下载 (1)
- office办公软件 (1)
- Android (2)
- IOS (0)
- Dubbo (3)
- memcached/redis (1)
- 小程序 (1)
- 微信公众号 (0)
最新评论
-
wf_wangfeng:
怎么我用第一种方法不行呢 alert(document.rea ...
当jsp页面完全加载完成后执行一个js函数 -
Lori_Liu:
有帮助,至少可以解决了目前所遇到的问题!谢谢..
当jsp页面完全加载完成后执行一个js函数 -
starbhhc:
String actionMessage = new Stri ...
Java读取txt文件乱码 -
starbhhc:
Sev7en_jun 写道GOOD
客气,互相交流。。
javaeye论坛规则小测验(答案)--star -
Sev7en_jun:
GOOD
javaeye论坛规则小测验(答案)--star
任何数据库系统都无法避免崩溃的状况,即使你使用了Clustered,双机热备……仍然无法完全根除系统中的单点故障,何况对于大部分用户来说,无法承受这样昂贵的硬件投资。所以,在系统崩溃的时候,如何恢复原有的宝贵数据就成为一个极其重要的问题了。
在恢复的时候,最理想的情况就是你的数据文件和日志文件都完好无损了,这样只需要sp_attach_db,把数据文件附加到新的数据库上即可,或者在停机的时候把所有数据文件(一定要有master等)都copy到原有路径下也行,不过一般不推荐这样的做法,sp_attach_db比较好,虽然麻烦许多。
但是呢,一般数据库崩溃的时候系统是未必能有时间把未完成的事务和脏页等写入磁盘的,这样的情况sp_attach_db就会失败。那么,寄期望于DBA制定了一个良好的灾难恢复计划吧。按照你的恢复计划,还原最新的完全备份,增量备份或者事务日志备份,然后如果你的活动事务日志还能读得出来的话,这样的话你可以还原到崩溃前的状态。
一般的单位都是没有专职的DBA的,如果没有可用的备份,更可能是最近一次备份的时间过于久远而导致不可接受的数据损失,而且你的活动事务日志也处于不可用的状态,那就是最麻烦的情况了。
不幸的是,一般数据库崩溃都是由于存储子系统引起的,而这样的情况是几乎不可能有可用的日志用于恢复的。
首先,你可以试一下sp_attach_single_file_db,试着恢复一下你的数据文件,虽然能恢复的可能性不大,不过假如这个数据库刚好执行了一个checkpoint的话,还是有可能成功的。
我们可以试着重新建立一个Log,先把数据库设置为emergency mode,sysdatabases的status为32768 就表示数据库处于此状态。
不过系统表是不能随便改的,设置一下先Use MasterGosp_configure allow updates, 1reconfigure with overrideGo然后 update sysdatabases set status = 32768 where name = 现在,祈求满天神佛的保佑吧,重新建立一个log文件。成功的机会还是相当大的,系统一般都会认可你新建立的日志。如果没有报告什么错误,现在就可以松一口气了。
虽然数据是恢复了,可是别以为事情就算完成了,正在进行的事务肯定是丢失了,原来的数据也可能受到一些损坏:
先把SQL Server 重新启动一下,然后检查你的数据库吧;
先设置成单用户模式,然后做dbcc sp_dboption , single user, trueDBCC CHECKDB();
如果没有什么大问题就可以把数据库状态改回去了,记得别忘了把系统表的修改选项关掉。update sysdatabases set status = 28 where name = ,当然你的数据库状态可能不是这个,自己改为合适的值吧。也可以用:
sp_resetstatusgosp_configure allow updates, 0reconfigure with overrideGo
checkdb的时候可能报告有一些错误,这些错误的数据你可能就只好丢弃了;checkdb有几种修复选项,自己看着用吧,不过最后你可能还是得REPAIR_ALLOW_DATA_LOSS,完成所有修复;chekcdb并不能完成所有的修复,我们需要更进一步的修复,用DBCC CHECKTABLE对每一个表做检查吧。
表的列表可以用sysobjects里面得到,把OBJECTPROPERTY是IsTable的全部找出来检查一下吧,这样能够基本上解决问题了,如果还报告错误,试着把数据select into到另一张表检查一下。
这些都做完了之后,把所有索引、视图、存储过程、触发器等重新建立一下。可以从DBCC DBREINDEX得到帮助
在恢复的时候,最理想的情况就是你的数据文件和日志文件都完好无损了,这样只需要sp_attach_db,把数据文件附加到新的数据库上即可,或者在停机的时候把所有数据文件(一定要有master等)都copy到原有路径下也行,不过一般不推荐这样的做法,sp_attach_db比较好,虽然麻烦许多。
但是呢,一般数据库崩溃的时候系统是未必能有时间把未完成的事务和脏页等写入磁盘的,这样的情况sp_attach_db就会失败。那么,寄期望于DBA制定了一个良好的灾难恢复计划吧。按照你的恢复计划,还原最新的完全备份,增量备份或者事务日志备份,然后如果你的活动事务日志还能读得出来的话,这样的话你可以还原到崩溃前的状态。
一般的单位都是没有专职的DBA的,如果没有可用的备份,更可能是最近一次备份的时间过于久远而导致不可接受的数据损失,而且你的活动事务日志也处于不可用的状态,那就是最麻烦的情况了。
不幸的是,一般数据库崩溃都是由于存储子系统引起的,而这样的情况是几乎不可能有可用的日志用于恢复的。
首先,你可以试一下sp_attach_single_file_db,试着恢复一下你的数据文件,虽然能恢复的可能性不大,不过假如这个数据库刚好执行了一个checkpoint的话,还是有可能成功的。
我们可以试着重新建立一个Log,先把数据库设置为emergency mode,sysdatabases的status为32768 就表示数据库处于此状态。
不过系统表是不能随便改的,设置一下先Use MasterGosp_configure allow updates, 1reconfigure with overrideGo然后 update sysdatabases set status = 32768 where name = 现在,祈求满天神佛的保佑吧,重新建立一个log文件。成功的机会还是相当大的,系统一般都会认可你新建立的日志。如果没有报告什么错误,现在就可以松一口气了。
虽然数据是恢复了,可是别以为事情就算完成了,正在进行的事务肯定是丢失了,原来的数据也可能受到一些损坏:
先把SQL Server 重新启动一下,然后检查你的数据库吧;
先设置成单用户模式,然后做dbcc sp_dboption , single user, trueDBCC CHECKDB();
如果没有什么大问题就可以把数据库状态改回去了,记得别忘了把系统表的修改选项关掉。update sysdatabases set status = 28 where name = ,当然你的数据库状态可能不是这个,自己改为合适的值吧。也可以用:
sp_resetstatusgosp_configure allow updates, 0reconfigure with overrideGo
checkdb的时候可能报告有一些错误,这些错误的数据你可能就只好丢弃了;checkdb有几种修复选项,自己看着用吧,不过最后你可能还是得REPAIR_ALLOW_DATA_LOSS,完成所有修复;chekcdb并不能完成所有的修复,我们需要更进一步的修复,用DBCC CHECKTABLE对每一个表做检查吧。
表的列表可以用sysobjects里面得到,把OBJECTPROPERTY是IsTable的全部找出来检查一下吧,这样能够基本上解决问题了,如果还报告错误,试着把数据select into到另一张表检查一下。
这些都做完了之后,把所有索引、视图、存储过程、触发器等重新建立一下。可以从DBCC DBREINDEX得到帮助
发表评论
-
mysql创建用户并授权
2016-09-04 23:42 6171.新建用户。 //登录MYSQL mysql -u ... -
java实现文件转换成二进制存储与取出
2016-08-06 01:21 2758一、功能描述: 将文件转成二进制数据放入数据库中,需要的 ... -
Mongodb的全面总结
2016-07-14 16:35 1406MongoDB的官方文档基本是how to do的介绍,而关 ... -
Navicat连接Oracle数据库时报错ORA-28547
2016-07-12 15:46 709用Navicat连接Oracle数据库时出现如下错误提示: ... -
4.ubuntu14.04 安装mongodb笔记
2016-05-06 08:52 6751、使用系统自动获取安装。 1)获取更新 s ... -
3.mongdb mongdb的shell命令
2016-04-14 11:10 1008在mongdb的安装目录,运行mongo.exe,运 ... -
2.mongdb mongdb客户端使用
2016-04-14 10:26 795robomongo,命令行方便 ... -
1. WIN7下安装运行mongodb
2016-04-14 10:11 5431)、下载MongoDBhttp://downloads. ... -
mysql 与mongodb的特点与优劣
2016-04-13 17:37 991介绍: MongoDB是 ... -
报错:1130-host ... is not allowed to connect to this MySql server 开放mysql远程连接 不使用l
2015-07-06 13:16 827报错:1130-host ... is not allow ... -
sql查询今天、昨天、本周、本月、日期的
2015-05-15 10:55 1794sql 求解两个时间差 SELECTDATEDIFF ... -
druid demo
2015-04-08 15:13 1623java程序很大一部分要操作数据库,为了提高性能操作数据库的 ... -
Druid数据库连接池使用
2015-04-08 15:03 732阿里巴巴推出的国产数据库连接池,据网上测试对比,比目前的D ... -
Hibernate与 MyBatis的比较
2015-03-20 00:34 642mybatis是半自动的,hibernate是全自动的,就是 ... -
经典SQL语句大全
2015-01-16 01:02 566一、基础 1、说明:创建数据库CREATE DATABAS ... -
MyBatis的几种批量操作
2015-01-11 22:59 1698MyBatis中批量插入 方法一: &l ... -
spring与mybatis三种整合方法
2015-01-11 22:58 491本文主要介绍Spring与Mybatis三种常用整合方法, ... -
MyBatis(六)、MyBatis主配置文件
2015-01-11 22:58 697在定义sqlSessionFactory时需要指定MyBa ... -
MyBatis(五)、动态SQL语句
2015-01-09 01:01 749有些时候,sql语句where条件中,需要一些安全判断,例 ... -
MyBatis(四)、SQL语句映射文件(2)增删改查、参数、缓存
2015-01-09 01:00 5292.2 select 一个select 元素非常简单。例如 ...
相关推荐
### SQL Server数据库崩溃后的恢复方法 #### 一、引言 在现代企业的信息化管理中,SQL Server作为一种广泛使用的数据库管理系统,其稳定性和安全性至关重要。然而,在实际应用过程中,由于各种原因(如硬件故障、...
* 数据库巡检的重要性在于确保数据库的安全性和稳定性,避免数据库崩溃或遭受攻击,确保数据的完整性和一致性。 五、数据库巡检的频率 * 数据库巡检的频率取决于数据库的使用频率和重要性,一般来说,对于关键业务...
SQL Server数据库损坏后的恢复方法是指在SQL Server数据库系统中,为了避免数据损失和系统崩溃,需要采取的一系列措施。这些措施包括定期备份数据、使用磁盘阵列等设备来提高系统的容错能力、使用Clustered、双机...
SqlServer 数据库的备份和恢复操作图解 .Sql Server 数据库备份是指将数据库中的数据和结构信息保存到一个文件或设备中,以便在数据库出现问题或崩溃时可以快速恢复数据。备份是数据库管理中非常重要的一步,因为它...
【SQL Server数据库技术期末大作业 代码与数据库】 在SQL Server数据库技术的学习中,期末大作业通常会涵盖多个核心概念,以检验学生对数据库管理、查询优化和事务处理的理解。根据提供的文件名,我们可以推断出这...
下面将详细讨论"SQLSERVER数据库恢复与备份"这一主题。 首先,SQL Server的备份主要目的是为了防止数据丢失,这可能由于硬件故障、软件错误、人为误操作或恶意攻击等造成。备份类型主要包括完整备份、差异备份、...
本文将从SQL Server的数据库恢复技术入手,详细解释数据库恢复的重要性、数据库恢复技术的分类、SQL Server数据库恢复技术的实现方法、数据库恢复的常见问题和解决方法等方面,对于SQL Server数据库管理员和开发人员...
总结来说,SQL Server数据库的崩溃恢复策略包括但不限于以下几个方面: 1. 利用现有的备份文件进行恢复,包括完全备份、增量备份和事务日志备份。 2. 在没有可用备份的情况下,尝试使用“SP_ATTACH_DB”或“SP_...
《SQL Server数据库技术大全》是一本全面探讨Microsoft SQL Server数据库管理系统的权威指南。该书深入浅出地介绍了SQL Server的核心概念、功能以及实际应用,旨在帮助读者掌握这一强大的数据库平台。 首先,书中会...
总之,SQL Server数据库还原是一项复杂但关键的任务,需要对数据库恢复策略有深入理解,并且能够熟练运用各种还原模式和工具。通过合理的备份和恢复计划,可以确保在面对数据灾难时,能够快速有效地恢复数据库,保障...
本系统采用Java编程语言进行开发,并结合SQL Server数据库进行数据存储,提供了高效稳定的数据处理能力。 首先,Java作为后端开发语言,具有跨平台性、安全性以及丰富的库支持等优势。在这个图书管理系统中,Java...
Sql Server数据库数据恢复的几种实用方法 Sql Server数据库数据恢复是一种复杂的操作,涉及到数据库的结构、数据存储、事务处理等多个方面。本文将从实践角度出发,介绍 Sql Server数据库数据恢复的几种实用方法,...
本压缩包文件包含的“sql server 数据库结构查看程序”很可能是用于帮助用户查看和理解SQL Server数据库内部结构的工具,尤其对于开发者和数据库管理员来说,这样的工具具有很高的实用价值。 数据库结构主要包括...
SQL Server数据库基础知识是IT行业中非常重要的一个领域,它涵盖了关系数据库管理、SQL语言以及SQL Server 2000系统组件等多个方面。以下是对这些知识点的详细说明: 1. **关系数据库**:关系数据库是一种基于关系...
本篇文章将详细解析如何解决SQL Server数据库出现错误9003(LSN无效)的问题,并提供一种经过多次测试确认可行的恢复方法。 首先,我们需要理解错误9003的含义。LSN(Log Sequence Number)是SQL Server用于跟踪...
标题中的“VB实现SQL Server数据库备份恢复”表明我们将关注如何使用VB编程语言来编写脚本或应用程序,以执行SQL Server的备份和恢复操作。VB是一种面向对象的编程语言,它提供了丰富的库和API,可以方便地与SQL ...
首先,SQL Server数据库备份的主要目的是为了防止数据丢失,确保在系统崩溃、硬件故障或人为错误时能够恢复数据。SQL Server提供了多种备份类型,包括完整备份、差异备份、日志备份和文件组备份。完整备份包含数据库...
SQL Server 2005 如何恢复 mdf 文件的数据库 SQL Server 2005 是微软公司推出的关系数据库管理系统,它提供了强大的数据存储和管理功能。然而,在实际应用中,数据库管理员可能会遇到各种意外情况,如误操作、数据...