Teton, Yellowstone Driving – 2012 US Trip

【前言】 每次都是要等到一年后再要去美国参加Open World之前,才收拾心情,2012年的10月初我开车转了大提顿国家公园和黄石国家公园,选了几张照片放在这里算游记交差。 【正文】2012年10月6日-10月13日 我们从旧金山飞到盐湖城,租了一辆Jeep,这在国内上街会是很巨大的车,但是在美国西部的原野它完全不起眼。 我们去了大提顿国家公园,这里的湖光山色,甚至比后面去的黄石更加让人着迷。 美国的10月秋高气爽。 白帆映影,心若安好,便再无烦恼。 这份难以置信的蓝,沁人心脾。 我们去了黄石国家公园,要赶在2012世界末日之前去看看,世界末日过了,我们现在还活着。居然找不到进黄石时候的公园招牌,只有一张出来时候的留影。 黄石公园里面有广阔的平原,远处冒汽的地穴是黄石的特点。 黄石公园里面也有山有水,眼界开阔。 黄石公园里面还有最著名的各种热喷泉池。 最后在回到盐湖城的时候,我们去看了最大的摩门教堂。 在盐湖城的Apple Store,买了那时候刚刚发布的iPod五代。

Continue ReadingTeton, Yellowstone Driving – 2012 US Trip

【Oracle Database 12c New Feature】ILM – In-Database Archiving

本文介绍Oracle Database 12c中关于数据生命周期管理多个新特性中相对最简单的一个,数据库内归档(In-Database Archiving)。使用的测试表是上一篇介绍数据时间有效期管理中使用的TV表(包括表结构和测试数据),如果你还没有看过上一篇文章,可以先阅读【Oracle Database 12c New Feature】ILM – Temporal Validity。 相比起数据时间有效期管理而言,数据库内归档非常简单,只有一个开关,对于一条数据,要不就是活跃的允许显示,要不就是归档掉不显示,这是由数据库管理员来人工操作的。 在设置数据库内归档之前,必须要在表级别启用该特性。如上一篇文章提到的,In-Database Archiving支持多租户架构,可以在PDB中使用。 SQL> alter table TV row archival; Table altered. Oracle仍然是使用隐藏列来实现这个功能的,在启用该特性以后,会自动在表上增加ORA_ARCHIVE_STATE字段,这是一个VARCHAR2(4000)的字段。 SQL> select COLUMN_NAME,DATA_TYPE,HIDDEN_COLUMN FROM USER_TAB_COLS WHERE TABLE_NAME='TV';…

Continue Reading【Oracle Database 12c New Feature】ILM – In-Database Archiving

【Oracle Database 12c New Feature】ILM – Temporal Validity

ILM全称是Information Lifecycle Management,意思是信息生命周期管理,听上去很高端洋气的一个词,但是实际上几乎每个稍微大些的系统都已经在做ILM了,比如说将生产表中的数据定期插入到历史表中,并把生产表中的这些数据删除,这就是数据生命周期管理;又比如使用了分区,定期将过期的数据分区删除掉,或者置为READONLY,让RMAN不再备份,这也是数据生命周期管理。 因此ILM由来已久,只要数据存在活跃-不活跃-静止这样的周期变化,那么ILM就必不可少,Oracle Database 12c中提供了很多新功能用来方便地进行数据生命周期管理,有些功能甚至是我们期盼已久的。 本文先介绍时间有效期管理(Temporal Validity),下两篇文章会介绍数据库内归档(In-Database Archiving)以及数据热度图(Heat Map)。注意:Temporal Validity和Heat Map目前还不支持多租户架构的数据库,因此想要使用,必须是一个NON-CDB,In-Database Archiving则支持多租户架构,可以在PDB中使用。 一. 时间有效期管理(Temporal Validity) 以下简称TV,TV的功能大致上可以这样描述:在表中手动或者自动建两个时间类型的字段,一个表示有效期的开始时间,一个表示有效期的结束时间,就可以通过设置让只有在有效期内的记录才会被选择出来。 以下这个场景是我构想出来的,一张表里不断地INSERT数据,但是每条数据有效期只有1分钟,过了1分钟再查就看不见了,如果加以仔细策划,应该会是很有趣的功能。直接进入测试。 设置TV,需要使用dbms_flashback_archive包,需要该包的执行权限。 SQL> grant execute on dbms_flashback_archive to kamus; 创建测试表,period for关键字是TV新功能的关键字,valid_time是TV策略的名字,可以随便写。valid_time_start和valid_time_end字段可以不手工定义,只要指定了period for关键字,Oracle会自动创建两个不可见字段。我这里之所以手工定义开始和结束时间字段,是为了能够指定DEFAULT值。有效期开始时间valid_time_start是记录插入的当前时间,有效期结束时间valid_time_end是当前时间的后一分钟。由此定义出了一个跨度1分钟的有效期。 SQL>…

Continue Reading【Oracle Database 12c New Feature】ILM – Temporal Validity