您当前的位置:首页 > 美文分享

数据库数据恢复(如何还原sql数据库)

时间:2023-01-30 19:11:53

本文目录

  • 如何还原sql数据库
  • sqlserver数据库数据被删除了怎么还原
  • 数据库被删除了怎么恢复
  • 数据库备份和恢复的作用和价值
  • 如何恢复数据库
  • 数据库中的数据误删,又没有进行备份,怎样恢
  • 如何恢复数据库文件呢
  • SQL数据库里的表误删除要怎么恢复
  • 怎么使用数据库恢复程序
  • 数据库恢复可以用哪些方法实现

如何还原sql数据库

1、要进行还原数据库操作我们先需要有一个数据库,这里直接打开SQL Server Management Studio,然后打开实例,在左侧按照下图中红色箭头指示右键点击数据库,然后点击 新建数据库,如下图:

2、在新建数据库的对话框中 修改数据库名称,然后其他都保持默认即可,然后点击确定即可,如下图:

3、然后就可以在SQL Server Management Studio的左侧看到新建的数据库了,如下图:

4、然后开始还原操作,右键点击新建的数据库,然后依次点击 任务-》还原-》数据库如下图:

5、在弹出的还原数据库对话框中,选择 源设备,然后选择右面的两个点,如下图:

6、然后就会弹出 指定备份 的对话框,然后点击添加,如下图:

7、然后这里添加备份的数据库备份文件,数据库备份文件后缀名为bak,如下图:

8、然后按照下图中红色箭头指示位置 勾选数据库备份,然后点击 选项,如下图:

9、然后进入还原数据库 的 选项 页,这里首先勾选一下 覆盖现有数据库,然后开始选择下面的 将数据库文件还原为,如下图:

10、然后选择和数据库备份文件在一个文件夹下的mdf 文件,如下图:

11、然后选择和数据库备份文件在一个文件夹下的dlf 文件,如下图:

12、只有bak文件,这两个文件不是备份出来的,这两个文件是小编直接创建的文本文档然后直接改后缀名得到的,选择好这两个文件之后直接点击确定,如下图

13、稍等片刻之后就会看到数据库还原操作成功完成,如下图:

14、然后就可以回到之前创建的数据库中看到,所有的表格已经还原了,如下图:

sqlserver数据库数据被删除了怎么还原

sqlserver数据库数据被删除了怎么还原SQLServer中误删除数据的恢复本来不是件难事,从事务日志恢复即可。但是,这个恢复需要有两个前提条件:1.至少有一个误删除之前的数据库完全备份。2.数据库的恢复模式(Recoverymode)是“完整(Full)”。

数据库被删除了怎么恢复

数据库删除了数据是一个很棘手的问题,数据的删除首先包括三个层面:

1.删除放入回收站,没有在回收站中清除数据。这种情况是最简单的,进入回收站,找到删除的数据,右击选择恢复。

2.删除后未放入回收站或者删除后清空回收站,尽量先不要往原数据所在盘符下储存内容,刚刚删除的数据只是文件结构被删除,真正的文件数据还没被覆盖。通过数据恢复软件是可以找回来的,专业的软件例如有超级兔子数据恢复软件。

3.如果是删除很久以后才想到数据库数据要恢复,并且磁盘一直在使用,磁盘被填满的话数据就已经被覆盖了,这样的数据是无法找回的。

数据库备份和恢复的作用和价值

数据库备份和恢复的作用和价值主要体现在以下几个方面:

1、提高系统的高可用性和灾难可恢复性,在数据库系统崩溃的时候,没有数据库备份就没法找到数据。

2、使用数据库备份还原数据库是数据库系统崩溃时提供数据恢复最小代价的最优方案,如果让客户重新填报数据,代价那就太大了。

3、没有数据就没有一切,数据库备份就是一种防范灾难于未然的强力手段,没有了数据,应用再花哨也是镜中花水中月。

如何恢复数据库

可是提交到服务器之后,一切显地都无比陌生。因为不熟悉SQL,准确来说就只会点Select,Update,Delete,Insert而已。昨天不小心误删了一张数据不多但是不在人工处理范围内的一张表内的数据。因为知道SQL Server是有日志这种东西的,事后我表现地无比淡定,在事发一个小时以内。一个小时之后,我发现我无法掌控这一事件了。上网查找了恢复数据的办法。有必要啰嗦一下。 问题1:无论是远程端还是服务器端,都无法对数据库(假设数据库叫Test)进行除‘增删查改’的其它操作,譬如分离,脱机,还原...错误提示是e.g.1 “无法分离 Test 数据库 因为它当前正在使用。”e.g.2 “因为数据库正在使用,未获得对数据的排他访问权,操作异常终止”反正嘛,就是说你丫不能阻止别人的访问。可我们就是要这样做的...只好跟它说拜拜了。 说拜拜的方法就是关掉所有访问数据库Test的进程。createproc killspid (@dbnamevarchar(20))asbegindeclare@sqlnvarchar(500)declare@spidintset@sql=’declare getspid cursor for select spid from sysprocesses where dbid=db_id(’’’+@dbname+’’’)’exec(@sql)open getspidfetchnextfrom getspid into@spidwhile@@fetch_status《》-1beginexec(’kill ’+@spid)fetchnextfrom getspid into@spidendclose getspiddeallocate getspidend--用法use masterexec killspid ’数据库名’PS:代码我是这样理解的,定义一段杀死访问数据库进程的存储过程。写一段获取进程ID的代码,循环杀死每一个进程。最后调用存储过程。虽然不了解存储过程,但是意思就是这样的吧。问题2:没有备份数据库,那该如何恢复数据呢有个软件叫做Log Explorer 这个东西可以根据数据库的日志回到过去的任何一个时刻。View Code Log Explorer for SQL Server 是个好东西,但是这根本无法解决我的问题。数据库在服务器端,学校根本不会让我安装一个软件在服务器上面。而且我证实过,这个软件必须要在服务器端装服务器端软件的。所以,这个对于我来说,是泡汤的。但是不代表这不是一个利器。 最后我用了一个很蛋疼的方法解决了。1.分离数据库,备份一个Test;2.将数据库附加回去,用自带的恢复方式恢复到一个很久以前的状态;3.将需要的那张表复制到备份的那个数据库;4.将备份的那个数据库挂回去,原数据库删了。 这是一个很蛋疼而且碰巧那张表没被改的方法。头一次知道DBA的重要性。我的方法是一个很偶然的东西,希望大家分享一下真正能解决恢复问题的办法。当然,每隔一段时间备份是绝对没有错的。 方法 另外发现一个比较有技术性的可行的方法 1,如果误操作之前存在一个全库备份(或已有多个差异备份或增量备份),首先要做的事就是进进行一次日志备份 (如果为了不让日志文件变大而置trunc. log on chkpt.选项为1那你就死翘了)backuplog dbName todisk=’fileName’----注意:是日志备份! 2,恢复一个全库备份,注意需要使用with norecovery,如果还有其他差异或增量备份,则逐个恢复restoredatabase dbName fromdisk=’fileName’with norecovery 3,恢复最后一个日志备份即刚做的日志备份,指定恢复时间点到误操作之前的时刻restorelog dbName fromdisk=’fileName’with stopat=’date_time’ 完整代码View Code 经过验证,这才叫有技术性!我那纯属“邓艾的屯‘田’”小孩子过家家。。。

数据库中的数据误删,又没有进行备份,怎样恢

打开mysql的bin log功能:对于mysql也是支持增量备份,但要打开mysql的bin log功能。我们修改mysql的配置文件。linux是/etc/my.cnf,windows是mysql的安装目录/my.ini我们在[mysqld]下面加上log-bin一行代码,如下面。[mysqld]log-bin=mysql-bin复制代码加完后重起mysql即可。某客户更新数据的时候,误删了数据库的内容,因为数据库做了主从,但是没有做备份(备份很重要啊!)幸好开启了bin-log,之后只好把整个日志的记录拿回来本地进行恢复。之后自己也做了一个简单的测试,对数据进行恢复,具体如下:1、新建一个表CREATE TABLE `lynn`.`sn_test` ( `name` VARCHAR( 10 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL , `age` INT( 3 ) NOT NULL ) ENGINE = MYISAM;2、插入多条数据INSERT INTO `lynn`.`sn_test` (`name`, `age`) VALUES (’lynn1’, ’1’);INSERT INTO `lynn`.`sn_test` (`name`, `age`) VALUES (’lynn2’, ’2’); INSERT INTO `lynn`.`sn_test` (`name`, `age`) VALUES (’lynn3’, ’3’); INSERT INTO `lynn`.`sn_test` (`name`, `age`) VALUES (’lynn4’, ’4’);3、查看数据并删除mysql》 select * from sn_test;+-------+-----+| name | age |+---------+---+| lynn1 | 1 || lynn2 | 2 || lynn3 | 3 || lynn4 | 4 |+---------+-----+4 rows in set (0.00 sec)mysql》 delete from sn_test;Query OK, 4 rows affected (0.00 sec)mysql》 select * from sn_test;Empty set (0.00 sec)4、mysqlbinlog恢复数据mysqlbinlog mysql-bin.000006 》 1.sql查看1.txt里面数据插入的纪录,把删除之前的数据进行恢复mysqlbinlog mysql-bin.000006 --start-position=2471 --stop-position=2876 | mysql -uroot -p123重新登录,查看数据,OK,已经成功恢复了对于数据库操作,应该注意如下问题:1、要常备份(全备,增量备份),出了问题可以最快恢复数据;2、操作数据库前,要把需要操作的数据库或者表dump出来;3、需要把bin-log打开,就算没有做上面的两步,也可以通过日志恢复数据

如何恢复数据库文件呢

要还原数据库首先得后有数据库的备份文件。如果SQLSever2000没有这个数据库,你先建立一个空数据库,记住这个数据库的数据文件路径和日子文件路径,然后右键数据库,点还原-选从设备-选择设备(就是选数据库的备份文件)-点选项-把刚才记的数据库文件路径和日志文件路径对应下面移至物理文件名弄好,选择在现有数据库库上强制还原,点确定就OK了

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然后就完成数据的恢复数据的操作如下。

怎么使用数据库恢复程序

如果是SQLSERVER的话两种方式:一\数据库物理文件和日志文件都有的话,在企业管理器上单击右键--》附加数据库--》选择数据库物理文件(.mdf)文件--》设置附加后的数据库名--》确认就OK了二\使用.bak备份文件恢复:在企业管理器下数据库上单击鼠标右键--》还原数据库--》选择备份文件--》设置恢复数据库名,单击确认就可以了.

数据库恢复可以用哪些方法实现

数据库恢复的三种方式数据库可能因为硬件或软件(或两者同时)的故障变得不可用,不同的故障情况需要不同的恢复操作。我们必须决定最适合业务环境的恢复方法。在数据库中恢复有3种类型或方法,即应急(crash)恢复、版本(version)恢复和前滚(rool forward)恢复。应急恢复应急恢复用于防止数据库处于不一致或不可用状态。数据库执行的事务(也称工作单元)可能被意外中断,若在作为工作单位一部分的所有更改完成和提交之前发生故障,则该数据库就会处于不一致和不可用的状态。这时,需要将该数据库转化为一致和可用的状态。为此,需要回滚未完成的事务,并完成当发生崩溃时仍在内存中的已提交事务。如在COMMIT语句之前发生了电源故障,则在下一次重新启动并再次访问该数据库时,需要回滚到执行COMMMIT语句前的状态。回滚语句的顺序与最初执行时的顺序相反。版本恢复版本恢复指的是使用备份操作期间创建的映象来复原数据库的先前版本。这种恢复是通过使用一个以前建立的数据库备份恢复出一个完整的数据库。一个数据库的备份允许你把数据库恢复至和这个数据库在备份时完全一样的状态。而从备份建立后到日志文件中最后记录的所有工作事务单位将全部丢失。前滚恢复这种恢复技术是版本恢复的一个扩展,使用完整的数据库备份和日志相结合,可以使一个数据库或者被选择的表空间恢复到某个特定时间点。如果从备份时刻起到发生故障时的所有日志文件都可以获得的话,则可以恢复到日志上涵盖到的任意时间点。前滚恢复需要在配置中被明确激活才能生效。

数据库

最新文章