1、打开 SQLServerManagementStudio。
2、右击要备份的数据库——任务——还原——数据库。
3、d出还原数据库界面。选择“源设备”,点击后面对应的“”。
4、d出路径选择界面,点击“添加”。
5、选择要还原的数据库备份文件。点击“确定”,再点击“确定”。
6、将选好的还原集前打勾(如下图),后点击左上角的“选项”。
7、在还原选项中将“覆盖现有数据库”打勾;在恢复状态中,选择“回滚未提交的事务,使数据库处于可以使用的状态”。
一般我们希望把一系列的数据作为一个原子 *** 作,这样的话,这一系列 *** 作,要么提交,要么全部回滚掉。
当我们提交一个事务,数据库要么告诉我们事务提交成功了,要么告诉我们提交失败。
数据库为了效率等原因,数据只保存在内存中,没有真正的写入到磁盘上去。如果数据库响应为“提交成功”,但是由于数据库挂掉, *** 作系统,数据库主机等任何问题导致这次“提交成功”的事务对数据库的修改没有生效,那么我们认为这个事务的数据丢失了。这个对银行或者支付宝这种业务场景来说是不能接受的。所以,保证数据不丢失也是数据库选择的一个重要衡量指标
mysql的架构和普通的数据库架构最大的差异在于它使用插件式的存储引擎。数据的存取由存储引擎负责。要了解MySQL数据丢失的问题就需要从MySQL server层和InnoDB目前最流行的支持事务的存储引擎分别来分析了。
3 INNODB事务数据丢失
首先,我们来看一下InnoDB事务数据丢失的情况。
31 INNODB事务基本原理
InnoDB的事务提交需要写入undo log,redo log,以及真正的数据页。专业的介绍可以参考 丁奇 和 云华 的两篇文章。我们这里通俗一点简单介绍一下。
InnoDB跟Oracle非常类似,使用日志先行的策略,将数据的变更在内存中完成,并且将事务记录成redo,转换为顺序IO高效的提交事务。这里日志先行,也就是说,日志记录到数据库以后,对应的事务就可以返回给用户,表示事务完成。但是实际上,这个数据可能还只在内存中修改完成,并没有刷到磁盘上去,俗称“还没有落地”。内存是易失的,如果在数据“落地”之前,机器挂了,那么这部分数据就丢失了。而数据库怎么保证这些数据还是能够找回来列否则,用户提交了一个事务,数据库响应请求并回应为事务“提交成功”,数据库重启以后,这部分修改数据的却回到了事务提交之前的状态。
32 INNODB事务崩溃恢复基本原理
InnoDB和Oracle都是利用redo来保证数据一致性的。如果你有从数据库新建一直到数据库挂掉的所有redo,那么你可以将数据完完整整的重新build出来。但是这样的话,速度肯定很慢。所以一般每隔一段时间,数据库会做一个checkpoint的 *** 作,做checkpoint的目的就是为了让在该时刻之前的所有数据都"落地"。这样的话,数据库挂了,内存中的数据丢了,不用
1 找个别的机器安装个同版本的mysql或从已安装同版本的其他机器上(非同版本的也可以试下):
拷贝 mysql/data/mysql 目录到你的mysql/data/ 下吧
2 试着启动mysql服务,如果能启动了,理论上应该丢失的只有用户、授权等一些系统信息,不影响你的使用的数据;
如果不能启动,看错误日志,争取启动了。
3 赶紧把数据备份一份出来,重新把所有库(只是你后来创建的业务相关的库,不包括mysql库)都删了,重新导入一遍。理论上不这样也可以,但只是非生产重要的环境下。
4 重新做用户授权。
分两种情况。一、如果有意识地重装系统,应在重装前将原帐套备份。备份方法,在系统管理里以admin注册,将帐套输出到指定目录。待系统重装完毕后,重新在系统管理里引入备份帐套。二、如果服务器因异常情况瘫痪,更要命的是,财务数据没有备份,解决的方法如下:重装系统后,先安装SQL SERVER(选择混合验证模式,否则无法正常启动U8管理软件服务),再安装用友系统,为避免安装后出现其他故障,通常将其安装在原来的盘符路径上。在安装时,建议先关闭杀毒软件及电脑防火墙,以免系统冲突或出现误杀。打开企业管理器,进行如下 *** 作:1、将数据库中UFSub、ufsystem删除(为保险起见可先备份,等替换完再删除);2、将原安装目录下Admin文件夹中对应的UFSub、ufsystem附加到数据库中(在数据库右键-所有任务-附加数据库);3、附加原帐套存放目录(一般为ZT001)所有年度账数据库文件;4、展开ufsystem数据库,找到表UA_acount,返回所有行将其打开,确认帐套路径是否在用友安装盘符,如不一致,可直接修改;5、在客户端系统管理中重新进行远程配置(无论服务器名称有无改动),在服务器打开UFO,重新定义初始帐套号(重装后默认为999)。在服务器端和客户端测试重装后帐套其他功能是否可用,至此帐套恢复完毕。在会计电算化的时代,企业若干年的财务信息都集中到一个硬盘里,财务人员必须认识到电子数据的脆弱性。对电算化下财务数据的保护,本人有以下建议:1、定期打印凭证、账簿和报表;2、将财务服务器安装双硬盘镜像;3、于每个会计年末,将已结转的年度账数据刻录成盘,至少复制两份保存在不同的空间位置;4、每周备份当前年度帐(为避免手工备份懈怠,建议同时开启SQL Server和SQL Server Agent服务并设置数据库自动备份计划);5、定期将服务器硬盘数据拷贝到其他外界存储材质上(如移动硬盘);6、如有条件,可设置一台备用服务器。
这个时候我要看你做的是哪一类型的阵列,如果是1系列这恢复的可能性不是特别大,只能通过扫盘。但如果你做的是阵列5,那么可以通过读取阵列的形式交数据重新恢复,但是需要整理。和少盘的这个速度数据是差不多的。在网上有详细的这个恢复教程和详细的过程,建议对你的服务器配备一个UPS。防止下一次出现同类型的问题。
以上就是关于sql server误删了数据库怎么找回全部的内容,包括:sql server误删了数据库怎么找回、本地数据库有数据另一个数据库丢失、mysql数据库删除了怎么恢复等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)