【动手实践】Oracle 12.2 新特性:只读分区的使用和维护

12.2的分区新特性中引入了只读分区的特性,可以帮助我们将某些分区的数据进行静态化保护。

这一特性通过将表或者分区设置为READ ONLY或者READ WRITE来进行控制,以下是一个测试Demo(可以在 https://livesql.oracle.com )网站验证体验。

以下测试首先将数据表置为READ ONLY模式,对部分分区设置为READ WRITE的读写模式:

drop table YHEM_ODS;

CREATE TABLE YHEM_ODS

(oid  number,

odate  DATE,

omount number

) read only

PARTITION BY RANGE(odate)

(partition q1_2016 values less than (to_date('2016-04-01','yyyy-mm-dd')),

partition q2_2016 values less than (to_date('2016-07-01','yyyy-mm-dd')),

partition q3_2016 values less than (to_date('2016-10-01','yyyy-mm-dd')) read write,

partition q4_2016 values less than (to_date('2017-01-01','yyyy-mm-dd')) read write)

/

insert into YHEM_ODS values(1,to_date('2016-01-20','yyyy-mm-dd'),100);

insert into YHEM_ODS values(1,to_date('2016-10-20','yyyy-mm-dd'),100);

insert into YHEM_ODS values(1,to_date('2016-12-20','yyyy-mm-dd'),100);

select * from yhem_ods;

select * from user_tab_partitions;

alter table YHEM_ODS modify partition q2_2016 read write;

如果向着只读分区插入数据,则会收到ORA-14466的错误提示:

读写分区可以自有的进行数据变更:

最后可以查询这些分区的数据:

分区的属性可以通过modify语句进行在线修改。

alter table YHEM_ODS modify partition q2_2016 read write;

SELECT PARTITION_NAME, READ_ONLY FROM USER_TAB_PARTITIONS;

通过分区表增加的『Read_Only』字段可以查看哪些分区被设置为只读状态:

在官方手册上有如下的范例,对表、分区和子分区都做出了设置,初始状态全表设置为读写,部分分区设置为只读状态:

CREATE TABLE orders_read_write_only (

   order_id NUMBER (12),

   order_date DATE CONSTRAINT order_date_nn NOT NULL,

   state VARCHAR2(2)

   ) READ WRITE

     PARTITION BY RANGE (order_date)

     SUBPARTITION BY LIST (state)

     ( PARTITION order_p1 VALUES LESS THAN (TO_DATE ('01-DEC-2015','DD-MON-YYYY')) READ ONLY

     ( SUBPARTITION order_p1_northwest VALUES ('OR', 'WA'),

       SUBPARTITION order_p1_southwest VALUES ('AZ', 'UT', 'NM')  ),

     PARTITION order_p2 VALUES LESS THAN (TO_DATE ('01-MAR-2016','DD-MON-YYYY'))

     ( SUBPARTITION order_p2_northwest VALUES ('OR', 'WA'),

       SUBPARTITION order_p2_southwest VALUES ('AZ', 'UT', 'NM') READ ONLY),

     PARTITION order_p3 VALUES LESS THAN (TO_DATE ('01-JUL-2016','DD-MON-YYYY'))

     ( SUBPARTITION order_p3_northwest VALUES ('OR', 'WA') READ ONLY,

     SUBPARTITION order_p3_southwest VALUES ('AZ', 'UT', 'NM') ) );

SELECT PARTITION_NAME, READ_ONLY FROM USER_TAB_PARTITIONS WHERE TABLE_NAME ='ORDERS_READ_WRITE_ONLY';

SELECT PARTITION_NAME, SUBPARTITION_NAME, READ_ONLY FROM USER_TAB_SUBPARTITIONS WHERE TABLE_NAME ='ORDERS_READ_WRITE_ONLY';

了解了Oracle这些新的变化,将有助于我们深入和灵活的去使用Oracle数据库。

文章转自数据和云公众号,原文链接

时间: 2024-10-28 00:05:33

【动手实践】Oracle 12.2 新特性:只读分区的使用和维护的相关文章

【动手实践】Oracle 12.2新特性:多列列表分区和外部表分区

Oracle 12.2版本中,增加了大量的分区新特性,这其中包括: 自动的列表分区创建 在线的普通表转换分区表 支持只读分区和读写分区混合 以下介绍的三个特性同样是12.2新增的: 多列列表分区.外部表分区.维护过滤 而对于多列列表分区的支持,也是大家关注已久的特性,先看一下脚本(在 livesql.oracle.com 测试执行,推荐动手实践): CREATE TABLE dba_by_db_in_yhem  (dbalic           NUMBER,    username    

【动手实践】Oracle 12.2 新特性:自动的列表分区创建

2017年来了,我们要启动新的学习征程了.在过去我们一直思考,什么样的内容能够更帮助大家了解和学习到有用的知识? 这个『动手实践』栏目就是这样一个改进和尝试吧,一个小小的范例,几分钟的线上实践(感谢Oracle),就能帮助大家熟悉一个知识点,几个重要的命令.如此是否会有不一样的体验?试一试吧. 在Oracle Database 12.2 之前,如果使用列表分区,当插入的数据超过了分区列表值设定,则会抛出异常:而如果存在大量的列表值需要定义,则可能需要一一设置. 在12.2引入的新特性中 - Au

Oracle 12.2新特性掌上手册 - 第二卷 In-Memory增强

编辑手记: In-Memory 是 Oracle 在 12.1.0.2 中引入的新特性,旨在加速分析型 SQL 的速度.传统的 OLTP 应用通过 buffer cache 修改数据,分析性的 SQL 从 IM 列式存储中扫描数据,避免物理读成为性能瓶颈.那么在12.2最新版本中,In-Memory有哪些增强特性呢?我们一起来学习. 注:文章内容来自官方文档翻译.若需要了解更多,请查阅官方文档.文中配图来自Oracle文档. 1.In-Memory Expressions(列式存储表达式) 内存

Oracle 12.2新特性掌上手册 - 第一卷 Availability

编辑手记:12.2的发布,让很多技术爱好者迫不及待要尝尝鲜了,然而众多的新特性却可能让我们无所适从,为此我们节选12.2中一些重要的新特性,将在接下来的几期晨读中分享给大家,希望大家能够在12.2的应用中游刃有余. 注:文章内容来自官方文档翻译.若需要了解更多,请查阅官方文档. 1.Multi-Instance Redo Apply (多实例redo应用) 在Oracle Database 12.2 之前的版本上,对于物理standby 数据库,将Redo应用于Oracle RAC standb

Oracle 12.2新特性掌上手册 - 第三卷 Core Improvements

编辑手记:Oracle 12.2 在内核上有许多创造性的改进,这些改进让数据库的操作更加高效便捷,同时一些面向智能运维和大数据的改进,则迈出了云和大数据时代的重要一步.在今年的DB-Engines的评选中,Oracle位居榜首,而我们从12.2的这些更新中便知道,Oracle是DBMS当之无愧的领导者. 注:文章内容来自官方文档翻译.若需要了解更多,请查阅官方文档. 1.Partition-Specific Near Real-Time Indexes(近实时索引的配置) 12.2中可以在分区级

Oracle 12.2新特性掌上手册 - 第七卷 Big Data and Data Warehousing

编辑手记:也许Oracle 12.2在内核上的智能改进只能让你眼前一亮,那今天基于Big Data和数据仓库的性能优化增强则会让你伸手触Oracle的强大灵魂.细腻中霸气侧漏,这就是Oracle 12.2. 1Partitioning:External Tables(外部表) 外部分区表提供了将分区的Hive表映射到Oracle数据库生态系统以及在基于Hadoop分布式文件系统(HDFS)的数据存储之上提供声明分区的功能. 作用 Oracle数据库基于外部HDFS的数据存储功能,使得数据库分区能

Oracle 12.2新特性掌上手册 - 第三卷 Sharding 的增强

编辑手记:Sharding技术我们谈了好久,想必大家并不陌生,该功能12.2最新版本中,也将变得越来越完善,今天我们一起来学习. 注:文章内容来自官方文档翻译.若需要了解更多,请查阅官方文档. 1.about Sharding 简单来说,Oracle的Sharding技术就是通过分区(Partioning)技术的扩展来实现的.以前一个表的分区可以存在于不同的表空间,现在可以存在于不同的数据库.不同分区存在于不同数据库,这就将数据隔离了开来,Sharding就此实现. Sharding是一种数据层

Oracle 12.2 新特性 | PDB不同字符集变更深入解析

从12c版本12.1开始,就有了新特性--Pluggable Database,相比较之前通过schema的管理方式实现多用户管理,Pluggable Database实现了进一步的隔离,其中包含如下特点: 将业务用户元数据和数据库本身的元数据进行分离,减少核心数据字典的性能衰减,增加管理便捷性. sga统一分配,各PDB通过各自的标识进行空间管理. 但在12.1中,PDB的字符集与root容器必须保持一致,这样无形中造成了PDB迁移或者克隆的限制性.从12.2开始,同一个cdb中的各个PDB字

Oracle 12.2新特性掌上手册 - 第六卷 ADG的性能与诊断

编辑手记:在Oracle 12.2中,ADG有许多惊人的改进,通过ADG standby数据库的性能数据收集和诊断.快照standby数据库的应用,以及实时的数据库操作监控的实现,能够根据用户需求相协调来提高DBA效率,从而为业务应用程序提供更好的服务质量. 1.Oracle Data Guard Support for Oracle Diagnostics Pack(Oracle DG 提供诊断包的支持) Oracle诊断包可以与以read-only的ADG standby数据库一起使用.能够