oracle利用as of timestamp语句找回误删除的数据

7 篇文章 0 订阅
3 篇文章 0 订阅

oracleXE是oracle数据库的一个免费版本,占用内存小,适合我们学习使用。

一、安装oracle

这里我们利用docker安装oracleXE
1.搜索OracleXE镜像

docker search oracle

在这里插入图片描述2.下载OracleXE镜像

docker pull oracleinanutshell/oracle-xe-11g

3.运行一个临时容器

docker run --name oracle -d -p 1521:1521 -e ORACLE_ALLOW_REMOTE=true oracleinanutshell/oracle-xe-11g

4.将运行容器的持久化目录复制在我们宿主机的data目录下
cp后面的oracle代表容器名称,/u01/app/oracle为容器内部目录,/data/oracle为宿主机目录

docker cp oracle:/u01/app/oracle /data/oracle

5.删除临时容器

docker stop oracle
docker rm oracle

6.重新运行容器

docker run --name oracle -d -p 1521:1521 -v /data/oracle:/u01/app/oracle -e ORACLE_ALLOW_REMOTE=true oracleinanutshell/oracle-xe-11g

7.测试连接
这里我们直接用idea连接,默认的账号是system,密码是oracle
在这里插入图片描述8.创建表空间
初始大小为100m,自动拓展10m,最大为500m

--创建表空间
create tablespace adminSpace datafile '/u01/app/oracle/oradata/XE/admin.dbf' size 100M autoextend on next 10M MAXSIZE  500M;

命令执行成功后我们在服务器目录下可以看到创建的.dbf文件
在这里插入图片描述9.创建用户
账号为admin,密码为admin123456,表空间为adminSpace

--创建用户test
create user admin identified by admin123456 default tablespace adminSpace;

10.授权为管理员
一定要授权,至少要有连接权限,否则账号无法登录

--授予管理员角色
grant dba to admin;

此时我们就可以用我们创建的用户登录
在这里插入图片描述

二、数据找回

用plsql连接,并准备一张表名为sys_user的表,初始如下数据
在这里插入图片描述
在这里插入图片描述
2.先删除ID为2的数据,手动提交事务,再执行查询语句,结果如下
在这里插入图片描述3.利用时间戳查询’2022/8/5 9:10:45’这个时间点的数据
可以看到我们用delete删除的数据又能查出来了

select * from sys_user as of timestamp to_timestamp('2022/8/5 9:10:45','yyyy-mm-dd hh24:mi:ss');

在这里插入图片描述这样我们就可以利用这个数据达到恢复数据的目的

insert into sys_user
  (id, user_id, user_name, age, create_time)
  with tab as
   (select id, user_id, user_name, age, create_time
      from sys_user as of timestamp to_timestamp('2022/8/5 9:10:45', 'yyyy-mm-dd hh24:mi:ss'))
  select id, user_id, user_name, age, create_time
    from tab t
   where not exists (select 1 from sys_user x where x.id = t.id);

注意:此方式只适用于找回delete语句删除的数据,并且期间表结构不能发生改变

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值