mysql数据库表数据删除能恢复吗

mysql数据库表数据删除能恢复吗,第1张

1 找个别的机器安装个同版本的mysql或从已安装同版本的其他机器上(非同版本的也可以试下):

拷贝 mysql/data/mysql 目录到你的mysql/data/ 下吧

2 试着启动mysql服务,如果能启动了,理论上应该丢失的只有用户、授权等一些系统信息,不影响你的使用的数据;

如果不能启动,看错误日志,争取启动了。

3 赶紧把数据备份一份出来,重新把所有库(只是你后来创建的业务相关的库,不包括mysql库)都删了,重新导入一遍。理论上不这样也可以,但只是非生产重要的环境下。

4 重新做用户授权。

ORACLE

有备份的话 可以恢复

如果只是删除 了表里的数据的话

select from syssmon_scn_time;

--scn 与时间的对应关系

每隔5分钟,系统产生一次系统时间标记与scn的匹配并存入syssmon_scn_time表。

select from student as of scn 592258

就可以看到在这个检查点的表的历史情况。

然后我们恢复到这个检查点

insert into student select from student as of scn 592258 where id not in (select id from student)

select from v$transaction ---没有提交的事务。

select from flashback_transaction_query; ---回滚事务。 他有一列是 undo_sql 得到他就可以回滚刚才提交的事务。

select from FLASHBACK_TRANSACTION_QUERY a

where astart_timestamp between to_date('2008-12-7 14:40:56','yyyy-MM-dd HH24:mi:ss') and

to_date('2008-12-7 14:59:56','yyyy-MM-dd HH24:mi:ss');

不论是insert delete update 都可以把committ 了的事务给回滚了

一:表的恢复

对误删的表,只要没有使用PURGE永久删除选项,那么从flash back区恢复回来希望是挺大的。一般步骤有:

1、从flash back里查询被删除的表

select from recyclebin

2执行表的恢复

flashback table tb to before drop,这里的tb代表你要恢复的表的名称。

二:表数据恢复

对误删的表记录,只要没有truncate语句,就可以根据事务的提交时间进行选择恢复,一般步骤有:

1、先从flashback_transaction_query视图里查询,视图提供了供查询用的表名称、事务提交时间、UNDO_SQL等字段

如:select from flashback_transaction_query where

table_name='TEST';

2、执行表记录恢复

一般先根据时间进行查询,查询语句模式为select from tb as of timestamp

to_timestamp(time,'yyyy-mm-dd hh24:mi:ss'); tb指表名称,time指某个时间点

如select from scotttest as of timestamp to_timestamp('2009-12-11

20:53:57','yyyy-mm-dd hh24:mi:ss');

若有数据,恢复极为简单了,语句为flashback table tb to timestamp

to_timestamp(time,'yyyy-mm-dd hh24:mi:ss');

如flashback table scotttest to timestamp to_timestamp('2009-12-11

20:47:30','yyyy-mm-dd hh24:mi:ss');

注意:alter table testvarchar enable row movement;

这个命令的作用是,允许Oracle 修改分配给行的rowid。在Oracle

中,插入一行时就会为它分配一个rowid,而且这一行永远拥有这个rowid。闪回表处理会对EMP

完成DELETE,并且重新插入行,这样就会为这些行分配一个新的rowid。要支持闪回就必须允许Oracle 执行这个 *** 作

数据库唯一标识,即使记录删除了,但是数据库还是有记忆功能,就像即使你把硬盘上的文件或者文件夹shift+delete彻底删除后,一样可以通过软件来恢复这些文件。不过数据库的恢复我没偿试过。可能有这种软件

ACCESS自动编号如何恢复从1开始的方法(1)

重置单个表中的“自动编号”字段:要重置“自动编号”字段值,可以使用方法 1 或方法 2。

方法 1

可以重置“自动编号”字段值,使其与表中的一个字段相对应。为此,请按照下列步骤 *** 作:

1 从主表中删除“自动编号”字段。记下“自动编号”字段名称。

2 在左窗格中单击“查询”。在右窗格中双击“在设计视图中创建查询”。

3 在“显示表”对话框中,选择主表。单击“添加”,然后单击“关闭”。

4 在主表的表视图中双击所需字段,以选择该字段。

5 选择需要的“排序”顺序。

6 在“查询”菜单中,单击“生成表查询”。在“表名称”文本框中键入新的表名称,然后单击“确定”。

7 在“查询”菜单上,单击“运行”。

8 将显示带有以下文本的对话框:“您正准备向新表粘贴 # 行。”单击“是”以插入行。

9 在“文件”菜单上,单击“关闭”。单击“否”关闭“生成表查询”窗口。

10 在左窗格中单击“表”。右键单击新表,然后单击“设计视图”。

11 在表的“设计”视图中,添加与步骤 1 中删除的字段名称相同的“自动编号”字段。将此“自动编号”字段添加到新表中,然后保存该表。

12 关闭“设计”视图窗口。

13 重命名主表。将新表名称重命名为主表名称。

方法 2

也可以使用方法 2 来重置“自动编号”字段值,请按照下列步骤 *** 作:

1 从主表中删除“自动编号”字段。记下“自动编号”字段名称。

2 复制主表的结构,然后创建新表。

3 在左窗格中单击“查询”。在右窗格中单击“在设计视图中创建查询”。

4 在“显示表”对话框中,选择主表。单击“添加”,然后单击“关闭”。

5 要选择字段,请双击需要的字段。在主表的“表”视图中对除了“自动编号”字段外的所有字段进行此 *** 作。

6 在“查询”菜单上,单击“追加查询”。这将更改查询类型。

7 从“表名称”列表中,选择您在步骤 1 中创建的新表。单击“确定”。

8 在“查询”菜单上,单击“运行”。

9 将显示带有以下文本的对话框:“您正准备追加 # 行。”单击“是”将行追加到新表中。

10 在“文件”菜单上,单击“关闭”。单击“否”关闭“追加查询”窗口。

11 在左窗格中单击“表”。右键单击新表,然后单击“设计视图”。

12 在表的“设计”视图中,添加与步骤 1 中删除的字段名称相同的“自动编号”字段。将此“自动编号”字段添加到新表中,然后保存该表。

13 关闭“设计”视图窗口。

14 重命名主表。将新表名称重命名为主表名称。

重置带引用表的表中的“自动编号”字段

下面的步骤说明如何为具有引用表的表重置“自动编号”字段。如果有多个引用表,则必须对每个引用表执行下列步骤。

1 删除表之间的关系。

2 将主表的“自动编号”字段设为数字数据类型。删除主键。

3 在主表中创建数据类型为“自动编号”的新字段。保存该表。

4 在引用表中创建数据类型为数字的新字段。保存该表。

5 要创建更新查询,以将引用表中的新字段更新为主表中的新“自动编号”字段,请按照下列步骤 *** 作:

a 在左窗格中单击“查询”。在右窗格中单击“在设计视图中创建查询”。这将创建新查询。

b 在“显示表”对话框中,选择主表和引用表。单击“添加”来添加主表和引用表。单击“关闭”。

c 单击主表中以前链接到引用表的字段。使用拖放功能将该字段放到引用表中以前链接的字段上。这样将在这两个表之间创建基于原始链接字段的联接。

d 在“查询”菜单上,单击“更新查询”。

e 双击引用表中的新字段,将其添加到字段列表中。

f 在“更新到”字段中,键入 [主表名][新自动编号字段],以更新引用表中的新字段值。

g 在“查询”菜单上,单击“运行”。

h 将显示带有以下文本的对话框:“您正准备更新 # 行。”单击“是”将行追加到新表中。

i 在“文件”菜单上,单击“关闭”。单击“否”关闭“更新查询”窗口。

6 从主表和引用表中删除原始链接字段。

7 将新“自动编号”字段重命名为原始名称。

8 重新创建主键以及表之间的关系。

此过程重置“自动编号”字段,然后用正确的键值更新引用表。

ACCESS自动编号从1开始-如何让access自动编号重新从1开始排序的方法(2)

方法一:

删个那个自动编号的字段,再建一个同样的自动编号字段即可。

方法二:

自动编号是一直增加的(每次都加1),你再增加一条记录它的编号会在前面的基础上加1(删除的也算),如果你编号为1的记录被删除了,你想再要从1开始,可以打开Access数据库,选择工具,再选择数据库实用工具,单击压缩和修复数据库,这样就OK了

方法三:(没试过)

1、在access里新建一个查询。

2、把视图改为sql视图。

3、在里面输入

ALTER TABLE 表名 ALTER COLUMN [自动编号字段名] COUNTER (你要的初始值, 1)

例如:

ALTER TABLE [user] ALTER COLUMN [id] COUNTER (1001, 1)

4、运行后,编号就从1001开始了。

以上就是关于mysql数据库表数据删除能恢复吗全部的内容,包括:mysql数据库表数据删除能恢复吗、如果数据库的数据被你不小心删了 怎样恢复啊、oracle安装目录被删后恢复了,数据库里面表和数据是否还在等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9737614.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存