Oracle 12C -- in-database archiving

在同一张表中,通过将row置为inactive状态来实现数据的归档。数据库中,可以对那些inactive row进行压缩优化。在实现归档的同时,应用可以被限制只访问那些active状态的数据。默认情况下,那些inactive row对应用是不可见得。

开启表的in-database archiving功能,在创建表的时候要使用关键字"row archival"。使用关键字"row archival"创建的表会增加一个隐藏列:ora_archive_state。

SQL> create table emp_indbarch(emp_id number(6) not null,name varchar2(20),hire_date date not null,job_id varchar2(5) not null ,salary number(6)) row archival;
SQL> insert into emp_indbarch(emp_id, name,hire_date, job_id, salary) values (1, ‘scott‘, ‘21-may-2009‘,‘dev‘, 50000);
SQL> insert into emp_indbarch(emp_id, name,hire_date, job_id, salary) values (2, ‘jane‘, ‘11-jun-2009‘,‘pm‘, 30000);
SQL> commit;
SQL> select ora_archive_state,emp_id,name from emp_indbarch;

ORA_ARCHIVE_STATE                  EMP_ID NAME
------------------------------ ---------- --------------------
0                                       1 scott
0                                       2 jane

SQL> 

隐藏列ora_archive_state的值默认是0,表示row是active的。当值为非0时,表示该row是inactive的。

手动修改active为inactive

SQL> update emp_indbarch set ora_archive_state=1 where emp_id=1;
SQL> commit;

默认时,inactive的row对于会话和应用是不可见的:(等价于alter session set row archival visibility=active)

SQL> select ora_archive_state,emp_id,name from emp_indbarch;

ORA_ARCHIVE_STATE                  EMP_ID NAME
------------------------------ ---------- --------------------
0                                       2 jane

SQL> 

设置inactive数据对应用可见:

SQL> alter session set row archival visibility = all;

Session altered.

SQL> select ora_archive_state,emp_id,name from emp_indbarch;

ORA_ARCHIVE_STATE                  EMP_ID NAME
------------------------------ ---------- --------------------
1                                       1 scott
0                                       2 jane

SQL> 

取消表的in-database archiving功能:

SQL> alter table emp_indbarch no row archival;

Table altered.

SQL> select ora_archive_state,emp_id,name from emp_indbarch;
select ora_archive_state,emp_id,name from emp_indbarch
       *
ERROR at line 1:
ORA-00904: "ORA_ARCHIVE_STATE": invalid identifier

SQL> 
时间: 2024-12-20 05:41:22

Oracle 12C -- in-database archiving的相关文章

Create Oracle 12c Template Database In Silent

1.静默文件 [[email protected] ~]$ cat create_template_db.rsp  [GENERAL] RESPONSEFILE_VERSION = "12.1.0" OPERATION_TYPE = "createTemplateFromDB" [createTemplateFromDB] SOURCEDB = "rhndb" SYSDBAUSERNAME = "system" SYSDBAP

Oracle 12C pluggable database自启动

实验环境创建了两个PDB,本实验实现在开启数据库时,实现pluggable database PDB2自启动: 原始环境: SQL> shu immediateDatabase closed.Database dismounted.ORACLE instance shut down.SQL> startupORACLE instance started. Total System Global Area  943718400 bytesFixed Size                  2

Oracle 12c 12.1.0.1.0管理控制文件官方文档翻译说明

Link: http://download.csdn.net/detail/rlhua/7718571 官方Link: http://docs.oracle.com/database/121/ADMIN/control.htm#ADMIN006 版本: [email protected]>select * from v$version; BANNER                                                                          

【转载】Oracle ACE总监对Oracle 12c的一些新特性总结

本文是Oracle ACE总监Syed Jaffer Hussain对Oracle数据库12c的一些新特性总结,包括数据库管理.RMAN.高可用性以及性能调优等内容. 主要内容:1. 在线迁移活跃的数据文件2. 表分区或子分区的在线迁移3. 不可见字段4. 相同字段上的多重索引5. DDL日志6. 临时undo7. 新的备份用户特权8. 如何在RMAN中执行SQL语句9. RMAN中的表级别恢复10. PGA的大小限制问题11. 对表分区维护的增强12. 数据库升级的改进13. 通过网络恢复数据

【翻译自mos文章】将Oracle 12c数据库从标准版convert到企业版

将Oracle 12c数据库从标准版convert到企业版 来源于: How to Convert Oracle Database 12c from Standard to Enterprise Edition ? (文档 ID 2046103.1) APPLIES TO: Oracle Database - Enterprise Edition - Version 12.1.0.1 and later Information in this document applies to any pl

Kettle连接Oracle 12c

安装Oracle我用的是Win10 64位,官网下载64位 Oracle 12c,两个文件.解压第一个文件之后安装,但是安装到一半错误,提示缺失文件.后来发现原来两个文件要单独解压,解压后根据目录合并在一起.再次安装,安装到88%卡住不动了.我以为安装又失败了,就关了,但是发现可以用,就这么用吧. 创建用户Oracle数据库分为CDB和PDB,他们之间的关系,想了解可以查相关资料,不在此详述.简单来说CDB是一个数据库容器,PDB是可插拔数据库.默认登陆为CDB,只能创建COMMON用户.COM

Oracle 12c 添加scott用户

对于熟悉Oracle或者接触过Oracle的人,scott这个用户大家一定相当的熟悉.12c推出了可插拔数据库,在一个容器cdb中以多租户的形式同时存在多个数据库pdb.pdb中默认不包含scott用户. 为了做数据泵的实验,需要一个测试用户,因此需要在pdb中添加scott用户. oracle 12c自带了scott的脚本,$ORACLE_HOME/rdbms/admin/utlsampl.sql 内容如下: Rem Copyright (c) 1990, 2006, Oracle. All

如何在oracle 12c中创建普通用户

-------如何在oracle 12c中创建普通用户------- [[email protected] ~]$ sqlplus / as sysdba SQL*Plus: Release 12.1.0.2.0 Production on Sun Nov 29 21:43:50 2015 Copyright (c) 1982, 2014, Oracle. All rights reserved. Connected to: Oracle Database 12c Enterprise Edit

oracle 12c grid db 安装的的checklist

oracle 12c 安装 checklist 关闭 iptables NetworkManager selinux service iptables stop chkconfig iptables off service NetworkManager stop chkconfig NetworkManager off 修改/etc/selinux/config 文件 将SELINUX=enforcing改为SELINUX=disabled 重启机器即可 创建oracle用户 groupadd

WIN7上安装Oracle 12c图解

环境: WIN7 64位+ Oracle 12c(12.1.0.2.0) 方式: 图形化安装 以管理员登录系统: 1 双击database目录下的setup.exe 去掉"接收安全更新"的勾,点下一步. 2 等待一段时间后出现 我这里出现了错误INS-30131: 如下图,启动Server服务后正常: 3. 5. 6. 7. 8. 9.注意这里设置的密码最好满足Oracle的密码复杂性策略(即有大写和小写字符.数字,且大于8位),否则后面的监听配置可能会出现问题,而且这里一般建议选择&