oracle 基础四 闪回

--DBCA  创建Oracle 数据库


(DBA)数据库管理员的任务


   --评测数据库服务器硬件
   --安装oracle数据库
   --规划数据库
   --创建并且打开数据库
   --注册用户
   --实现数据库计划
   --全库备份
   --调整数据库性能 




--archive log list  (查看数据库日志模式)
数据库状态
shutdown --停止
open --打开
nomount  --加载配置文件  不加载数据文件
mount --加载数据文件  数据库不打开






内存中 的ORACLE  SGA  只有一个实例  PAG  可以有多个实例






--闪回
  --用在  可能错误的操作
1.错误的删除了数据  delete  并且 commit
2.错误地drop table
3.如何获取表上的历史记录
4.如何撤销一个已经提交的事务


--闪回的的类型  对应上面四种情况
1.闪回表:将表回退到过去的一个时间上(SCN);
2.闪回删除(是drop):Oralce的回收站
3.闪回版本查询:
4.闪回事务查询:通过查询得到undo_sql 用来撤销事务;
5.闪回数据库:将数据库回退到过去的一个时间上  --5.6都要求数据库在归档模式上   dba管理员要对 归档  等比较熟悉
6.闪回归档日志




--闪回(FlashBack) 在9i中提出第一中类型 10i中实现后面的类型
    执行表的闪回,需要有 flashback  any talbe的权限
  1.闪回表   
实现表的闪回,需要使用到与撤销表空间相关的undo信息,因为spfile 的信息都是二进制的  所以需要通过show parameter undo命令可以了解这些信息


show parameter cursor    --查光标


show parameter undo;

                                                                        




--在2G以内的数据可以返回  超出了2G以后的数据 看undo_retention 的时间 以s为单位   --这里面的2g是自己创建数据库的时候自定义的。。


alter system set undo_retention=1200 scope=both;
--作用域scope: both momeroy spfile 三个参数
        1.both  是指两者 momeroy spfile
2.momeroy  你的操作只在当前实例中  数据库重启后还是以前状态。  只改当前数据库
3.spfile    只改配置文件  不改当前数据库  数据库重启后生效




--闪回表的语法
flashback table【schema.】<table_name>
to
{
【before drop【RENAME TO TABLE】】
【SCN|TIMESTAMP】expr
【ENABLE|DISABLE】TRIGGERS
}
.schema:模式名,一般为用户名
TO TIMESTAMP:系统油戮,包含年.月.日.时.分.秒
TO SCN: 系统更改号  system change number
ENABLE TRIGGERS:表示触发器恢复以后为enable状态,默认是disable状态
TO DEFORE DROP:表示恢复到删除之前
RENAME TO TABLE:表示更换表名


闪回表操作  :
系统表不能被闪回
不能跨越DDL操作
会被写入警告日志
产生撤销和重做的数据




--记录当前时间  更改号。
   select  TO_CHAR(SYSDATE,'yyyy-mm-dd hh24:mi:mm') 时间,timestamp_to_scn(sysdate);


--闪回因为未启动行移动功能 ,不能闪回表   错误
  --开启表的行移动
alter table talbeName enable row movement;
        --再执行闪回
flashback table talbeName to SCN 900171;


--闪回删除
    --show recyclebin  显示回收站信息
    --PURGE recyclebin  清空回收站信息
    --管理员  没有回收站


    --闪回删除
    flashback table tableName to before drop;


    --当闪回删除表的名字被占用的时候 可以执行下面的
    flashback table tableName to before drop rename to tableName1;


    --通过回收站做闪回 要加“”(双引号)


--闪回版本查询
--语法格式
SELECT COLUMN_NAME【,column_name,.....】
from table_name
versions  between【scn | timestamp】【expr | minvalue】
 and   【epxr | maxvallue】 as of 【scn | timestamp】epxr
    
column_name 是列名  talbe_name  是表名;between ..and  是时间段
scn  是系统改变号;  timestamp 是时间戳 ;as of 表示恢复单个版本
maxvalue最大值   minvalue 最小值 :expr 指定一个值或者表达式






--常用 SELECT 伪列  
versions_operation  数据由什么操作得来 insert update delete
versions_starttime  开始操作时间
versions_endtime    结束操作时间
versions_xid        事务号

--闪回版本查询实例
select id,name,versions_operation,versions_starttime,versions_endtime,versions_xid        
from
tableName
versions between timestamp minvalue and maxvalue 
order by 1,4;






--闪回事务查询
       --首先得熟悉这个事务的视图
 desc   flashback_transaction_query
       --查询上面视图需要一个权限 
 grant select any transaction to 用户;



       --语法
select operation,undo_sql
from flashback_transaction_query
  where xid='003232202' --xid 代表的是  常用伪列的事务号


--把查出来的数据操作一下   就撤销了事务。。
















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值