oracle怎么查看删除,oracle 删除命令

在oracle中如何找回被删除的数据?

1、首先新建一张测试表TEST,里面输入记录。由于删除/更新/插入恢复步骤相同,这里仅演示删除数据的情况。

成都创新互联主要从事成都网站建设、成都做网站、网页设计、企业做网站、公司建网站等业务。立足成都服务隆尧,十多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:028-86922220

2、删除其中1条记录,查看表中记录情况,由下图可见,记录2被删除了。

3、恢复之前先确定要恢复到的时间点,下图可以看出2018-03-07 15:33:00数据是正确的。

SELECT *

FROM TEST AS OF TIMESTAMP TO_TIMESTAMP('2018-03-07 15:33:00', 'YYYY-MM-DD HH24:MI:SS');

4、下面进行表数据恢复。

FLASHBACK TABLE TEST TO TIMESTAMP TO_TIMESTAMP('2018-03-07 15:33:00', 'YYYY-MM-DD HH24:MI:SS');

可以看到报错了,原因是没有开启行移动。

5、开启该表的行移动。

ALTER TABLE TEST ENABLE ROW MOVEMENT;

6、再次执行数据恢复。

FLASHBACK TABLE TEST TO TIMESTAMP TO_TIMESTAMP('2018-03-07 15:33:00', 'YYYY-MM-DD HH24:MI:SS');

然后查看数据情况,可以看到已经恢复了。

oracle数据库误操作把表删除了,怎么找回?

一:表的恢复

对误删的表,只要没有使用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 scott.test 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 scott.test 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 执行这个操作

如何查询 oracle 表中被删除的记录情况

可以定义一个触发器,来把删除的记录写到一个日志表中,方法如下。

测试方法:

创建原始表,插入数据:

create table test 

(id int,

name varchar2(10));

insert into test values (1,'张三');

insert into test values (2,'李四');

commit;

创建日志表:

create table test_log

(id int,

name varchar2(10),

deletedate date);

创建触发器:

create or replace trigger  t_delete_test

before delete on test

for each row

begin

insert into test_log(id,name,deletedate)

values( :old.id, :old.name, sysdate);

end;

执行删除操作:

delete from test where id=2;

commit;

检测test表,及test_log表:

所以,可以证明,删除成功,并且将删除的数据写入到了日志表中。

oracle怎么查看删除了哪个表的数据

如果是ddl语句删除的数据,比如truncate,drop什么的,你就去找找alertlog日志,这里会有记录。

如果是dml语句,delete那么就真的没办法了。毕竟dml不记录日志,除非你有相关触发器做记录。

ORACLE表空间内怎样查找已删除的数据

哦,是这样的,oracle就是多了一个用户的概念,一个链接的概念,他们的之间的关系好像是m:n

不过你们说的oracle 11以前的版本,11g 有个racle 11g sqldeveloper 这个可视 的 sql软件

配置

打开sqldeveloper——》Connections——》右键Connections——》弹出New / Select Database Connection

Connection Name

Username

Password

Hostname 默认localhost

Port 默认1521

SID 默认xe

这个和你安装的时候添的东西有关

然后弄个用户,这个用户和你安装的那个不一样

create 用户名 identified by 密码 ----创建用户

grant select to 用户名 ----授权 查找

grant resources to 用户名 ----授权 资源

上面这段是在那个类似CMD里面打的--PL/SQL

总之PL/SQL是一个写代码的,我也是先学的SQLSERVER,MYSQL什么的,后来才用Oracle 对那种代码也烦,后来就用了11g 可视的编辑,快捷好用,就和你们SQLSERVER一样

最后,你要是链接数据库什么的,可以使用odbc,不过,hibernate更好多,写hql比sql简单的多,而其无论什么数据库都是一样hql 至于备份,记得是有那个按钮选项的,至少11g是有导入,导出的,我那个时候做毕业设计的时候老师就要我导出的。

图片找不到了,不过网上应该有~~

备份数据库:mysql\bin\mysqldump -h(ip) -uroot -p(password) databasename database.sql

恢复数据库:mysql\bin\mysql -h(ip) -uroot -p(password) databasename database.sql

复制数据库:mysql\bin\mysqldump --all-databases all-databases.sql

修复数据库:mysqlcheck -A -o -uroot -p54safer

文本数据导入: load data local infile \"文件名\" into table 表名;

数据导入导出:mysql\bin\mysqlimport database tables.txt

mysql 的数据导入,导出

如何看oracle是否卸载干净

1)停止所有oracle相关的服务

2)卸载oracle

10g数据库服务器组件

3)手动删除注册表中与oracle相关的内容

4)删除temp目录下oracle相关的文件夹

5)检查“开始”菜单中是否还有oracle程序组,如果有,则将其删除

6)重新启动计算机

7)删除windows系统安装磁盘中的program

files\oracle

目录

8)删除oracle安装目录

壹佰网欢迎你的加入交流


当前标题:oracle怎么查看删除,oracle 删除命令
转载源于:http://cdiso.cn/article/hdisgd.html

其他资讯