12c不可见列

在12c中,Oracle允许隐藏某些列。这个操作可以由用户自己来控制,通过CREATE TABLE或者ALTER TABLE等方式。被隐藏的列之后也可以通过ALTER TABLE还原。一般访问表时都是无法显示出隐藏字段的,比如select * from table或者DESC TABLE。 隐藏列的基本特性: 一般对表的访问都不会显示隐藏列(SELECT * FROM TABLE, DESC TABLE) 数据库通……

阅读全文

12c返回指定行数

如果对返回结果进行行数的过滤时,通常都是通过order by + rownum <的方式,对于返回中间行数的情况就需要通过嵌套分页的写法,而在其他类型的数据库比如Mysql中可以比较方便的直接通过limit的方式 SELECT * FROM t1 ORDER BY 1 LIMIT 0, 10; row limiting概念 从12c开始,oracle对这方面的功能大大的增强,引入了Row_limiting_clause语句格式,允许查询sql……

阅读全文

linux下帐号密码过期

早上看到告警备份失败,检查发现今天并未发起备份任务,查看定时任务时报错 [oracle@ ~]$ crontab -l Authentication token is no longer valid; new one required You (oracle) are not allowed to access to (crontab) because of pam configuration. 看提示是oracle用户的认证有问题,不允许其调用crontab任务,可能跟pam配置文件的设置有关。 检查secure日志文件,查看具体报错信息 vim /var/log/secure su: pam_unix(su-l:session): session opened for user oracle by (uid=0) su: pam_unix(su-l:session): session closed for user oracle su: pam_unix(su-l:session): session closed for user oracle su: pam_unix(su-l:session): session opened for user oracle by root(uid=0) crontab: pam_unix(crond:account): expired password for user oracle (password aged) 看样子是……

阅读全文

In-Database Archiving

数据库内归档可以将表中的行标记为非活动状态来进行归档,这些非活动的行可以使用压缩来进行优化,但是应用程序看不到这些数据。如果想要看到这些数据的话可以通过在会话级别设置参数。 通过数据库内归档的技术,可以在一个数据库当中保存更多的数据,并维持更长的数据保存周期,并且不会降低应用程序的性能。这些归档数据也可以通过压缩来提高性能,应用升级的过程中,也可以延迟对这些归……

阅读全文

Identity Columns

标识列是12c的一个新特性,能自动生成列里的值,一部分功能与mysql中的自增列有点类似,简化了应用程序的开发和其他关系型数据库迁移到oracle。这个特性主要是利用一个默认的序列生成器,通过这个生成器来绝对字段增加或者减少的整数值。 drop table t1 purge; create table t1 (id number generated by default as identity, name varchar2(10)); insert into t1 (name) values ('xb'); commit; select * from t1; ID NAME ---------- ---------- 1 xb 对于标识列来说,我们要么指定一个默认的序列去生成字段值或者只……

阅读全文

在线迁移pdb

在线迁移pdb的目的 某些情况下要对cdb进行升级、停机等操作,而其中的部分pdb需要保持对外提供服务,那么就可以将pdb迁移到其他的cdb上运行。在线迁移pdb是目前在不停机或者最短停机时间情况下移动pdb的最快方法,如果采用其他的拔下再插入的方式,那么就需要一定的停机时间。 将pdb在不同的数据中心移动时,或者从私有机房迁移到云上环境时,所有的数据都需要物理……

阅读全文

Proxy PDB

关于proxy pdb proxy pdb可以让你访问远端cdb像在本地访问一样,类似一个符号链。 可以通过创建一个本地代理pdb来引用一个不同cdb里的pdb,这个被引用的pdb则称为引用pdb。如果要访问引用pdb的数据,那么可以直接访问本地代理pdb即可,简化了一些书写。当不同cdb里的应用容器有相同的应用程序时,可以通过代理pdb来同步应用容器的根节点。 创建代理pdb时……

阅读全文

Application Container

顾名思义,表示应用容器。与之前的cdb不同的是,它是作为CDB中的一个pdb存在的,在应用容器下面还可以创建新一级的pdb给应用程序使用。这个应用容器中的程序是可以同步到挂在它下面的一个或多个相同业务模块的pdb当中去。 关于应用容器 应用容器是一个可选的、用户创建的CDB组件,用于存储一个或多个应用端的数据和字典信息。一个CDB可以包含0个或多个应用容器。 比如……

阅读全文

12c新特性:只读分区

除了只读表以外,12c中引入了只读分区特性,每个分区或子分区可以独立的设置成只读或者读写,这样对于那些需要对指定分区数据的访问权限做控制的情况带来了方便。如果这个分区或子分区被设置成了只读模式,那么任何对这个分区或子分区的数据进行修改的操作都会报错,这样对这些数据进行了很好的保护。 只读分区: 只读属性确保了数据的不变 数据的不变并不会阻止表的DDL操作,比如新增……

阅读全文

刷新克隆PDB

可刷新的克隆pdb是指一个可以定期从源pdb同步的只读克隆库,可以用来当做报表库或者准生产环境来做测试用途。 刷新pdb 只有在创建的时候指明了是可刷新的克隆pdb,你才可以进行刷新操作。 当手动刷新pdb时,源端pdb自从上次刷新时间之后所有的变化都会同步到被刷新pdb当中来,你也可以手动刷新那些配置成自动刷新的pdb。 所以在创建pdb时,你必须要通过REFRE……

阅读全文