在Oracle Database 12.1中,闪回数据库操作仅限于 CDB ,Oracle Database 12.2支持 CDB 与 PDB 数据库的闪回。

PDB 的还原点种类:
1. normal restore point:          create restore point pdb1_point1;
2. guaranteed restore point:      create restore point pdb1_point1 guarantee flashback database;
-- 在需要设定干净还原点的 PDB 容器下 shutdown immediate , 然后在创建干净还原点。
3.1 clean normal restore point:    create clean restore point cdb1_before_changes;
3.2 clean guaranteed restore point:create clean restore point cdb1_before_changes guarantee flashback database;
补充:PDB 中执行,如果是 CDB 中执行的话,在对应代码后面多添加 for pluggable database pdb_name 指定PDB名称

PDB 中支持的闪回数据库方式:
1.还原点
2.scn
3.timestamp

演示操作:
1、首先,我们开启数据库闪回功能:
[oracle@12c01 ~]$ mkdir -p /home/oracle/fast_recovery_area
SQL>alter system set db_recovery_file_dest_size=10G;
SQL>alter system set db_recovery_file_dest='/home/oracle/fast_recovery_area' scope=both;
SQL>shutdown immediate;
SQL>startup mount;
SQL>alter database archivelog;
SQL>alter database flashback on;
SQL>alter database open;
SQL>select flashback_on from v$database;
FLASHBACK_ON
------------------
YES
闪回日志保留的数量是受参数DB_FLASHBACK_RETENTION_TARGET控制的,该参数表示保留时间(分钟),默认为1天。
-- 查询闪回日志保留天数,如果有必要,就修改保留时间。
SQL>show parameter db_flashback_retention_target
NAME     TYPE VALUE
------------------------------------ ----------- -------------------
db_flashback_retention_target     integer1440
查看当前数据库实例状态:
show pdbs
    CON_ID CON_NAME  OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED  READ ONLY  NO
3 PDB01  READ WRITE NO
SQL>alter session set container=pdb01;
模拟业务
SQL> select current_scn from v$database;

CURRENT_SCN
-----------
    1628859
SQL> create table c##andy.pdbfla (id int);

Table created.

SQL> insert into c##andy.pdbfla values(1);

1 row created.

SQL> commit;

Commit complete.
SQL>alter session set container=cdb$root;
SQL>create table c##andy.cdbfla (id int);
SQL>insert into c##andy.cdbfla values(1);
SQL>commit;
下面是local undo模式下 PDB 闪回数据库操作步骤:

SQL>alter pluggable database pdb01 close;

SQL> flashback pluggable database pdb01 to scn 1628859;
Flashback complete.
SQL>alter pluggable database pdb01 open resetlogs;
Pluggable database altered.
SQL> select * from c##andy.cdbfla;
ID
----------
1
SQL> alter session set container=pdb01;
SQL> select * from c##andy.pdbfla;
ORA-00942: table or view does not exist
说明:可以看不到 PDB 级别的数据库闪回不影响 CDB 的记录。
_______________________________________
补充:
如果使用的shared undo模式下 PDB 闪回数据库,语法有点不同,就是你需要制定辅助实例的位置。
SQL>flashback pluggable database pdb_name to scn the_scn auxiliary destination '/XXX/auxiliary';
SQL>flashback pluggable database pdb_name to restore point restore_point auxiliary destination '/XXX/auxiliary';

Oracle 12c 新特性之 PDB 级别闪回数据库的更多相关文章

  1. Oracle 12C 新特性之 PDB热克隆(本地克隆、远端异机克隆)

    说明:版本12.2.0.1 12c r1版本中 clone 一份PDB源库需要打开在read only只读模式 , 在12c r2版本中引入了local undo mode, 源PDB在read/wr ...

  2. Oracle 12c新特性

    转载自:Oracle 12c新特性(For DBA) 一: Multitenant Architecture (12.1.0.1)      多租户架构是Oracle 12c(12.1)的新增重磅特性 ...

  3. Oracle 12C 新特性之扩展数据类型(extended data type)

    Oracle 12C 新特性-扩展数据类型,在12c中,与早期版本相比,诸如VARCHAR2, NAVARCHAR2以及 RAW这些数据类型的大小会从4K以及2K字节扩展至32K字节.只要可能,扩展字 ...

  4. ORACLE 12C新特性——CDB与PDB

    Oracle 12C引入了CDB与PDB的新特性,在ORACLE 12C数据库引入的多租用户环境(Multitenant Environment)中,允许一个数据库容器(CDB)承载多个可插拔数据库( ...

  5. Oracle 12C 新特性之 db默认字符集AL32UTF8、PDB支持不同字符集

    一. db默认字符集AL32UTF8Specify the database character set when you create the database. Starting from Ora ...

  6. Oracle 12c新特性(For DBA)

    一: Multitenant Architecture (12.1.0.1)      多租户架构是Oracle 12c(12.1)的新增重磅特性,内建的多分租(Multi-tenancy),一个容器 ...

  7. Oracle 12C 新特性之 恢复表

    RMAN的表级和表分区级恢复应用场景:1.You need to recover a very small number of tables to a particular point in time ...

  8. Oracle 12C 新特性 - “可插拔数据库”功能

    Oracle 12C加入了一个非常有新意的功能"可插拔数据库"特性,实现了数据库(PDB)在"容器"(CDB)上的拔功能,既能提高系统资源的利用率,也简化大面积 ...

  9. Oracle 12c新特性之——TABLE ACCESS BY INDEX ROWID BATCHED

    Oracle12c开始,我们在获取SQL语句的执行计划时,也会经常看到"TABLE ACCESS BY INDEX ROWID BATCHED"操作,那么,这个操作到底是什么意思呢 ...

随机推荐

  1. Collect More Jewels(hdu1044)(BFS+DFS)

    Collect More Jewels Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Othe ...

  2. Netty实现java多线程Post请求解析(Map参数类型)—SKY

    netty解析Post的键值对 解析时必须加上一个方法,ch.pipeline().addLast(new HttpObjectAggregator(2048)); 放在自己的Handel前面. ht ...

  3. mysql 分组加行号

    SELECT end AS row_num_v_, case when @v <> _apply.PATIENT_ID then @v := _apply.PATIENT_ID else ...

  4. 反应器模式 vs 生产者消费者模式

    相似点: 从结构上,反应器模式有点类似生产者消费者模式,即有一个或多个生产者将事件放入一个Queue中,而一个或多个消费者主动的从这个Queue中Poll事件来处理: 不同点: Reactor模式则并 ...

  5. 监听并保存ssh账号密码

    有时候渗透搞下一台服务器的权限,想通过此服务器抓取其他服务器的ssh密码.就可以用以下方法,如果管理员通过这台服务器作为跳板登录其他服务器,密码就会记录下来. alias ssh='strace -o ...

  6. hdoj 1455 Sticks 【dfs】

    题意:找最短的木棍可以组成的长度, hdoj  1518 的加强版 代码: #include <stdio.h> #include <string.h> #include &l ...

  7. xcode6

    官方的xcode6下载太慢,这里送上百度网盘地址: http://pan.baidu.com/s/1hqze1hi

  8. linux 中 用户管理 (composer 时不能root 遇到)

    linux 是支持多用户的,可以同时多个用户在线操作,这点与 Windows 不同. 在我们项目组 操作linux 服务器时,可进行多用户管理,并赋予不同权限,下面是我学习并用的比较频繁的命令: 1. ...

  9. Javaweb--- EL表达式 JSTL标准标签库

    一.EL表达式(expression language): 语法  ${...} jsp中page指令有一个属性叫isELIgnored, 用来标记此页面是否忽略EL表达式, 默认为false 举个例 ...

  10. 自动分割nginx服务的日志文件

    nginx服务每天都会产生大量的日志信息,时间一长导致日志文件容量很大,会影响系统性能.通过以下shell代码,配合crontab定时执行可实现nginx日志定时分割的功能. #!/bin/bash ...