oracle12cr2新特性,Oracle 12cR2新特性 – IM FastStart

1. 什么时IM FastStart

当启用Oracle In-Memory特性后,Oracle需要将具有INMEMORY属性的对象填充到In-Memory

Area内存中,这个填充过程叫populate,这个填充过程根据IO和CPU的情况,可能会比较慢。Oracle将这些具有INMEMORY属性的对象经过计算、压缩等,存放在In-Memory的IMCU中,而如果数据库重启,那这个填充过程需要重新执行。

而IM

FastStart是将已经填充过的IMCU镜像数据定期存放到磁盘上,如果重启库,那就可以直接从磁盘上读取并加载IMCU。磁盘上存储IMCU数据的为IM

FastStart表空间。

2. FastStart 表空间

FastStart区域是一个用于存放IMCU的表空间。指定后,Oracle自动管理,无需DBA介入。

对于每个PDB或非容器库,只允许指定一个FastStart表空间,这个表空间指后,就不能alert或者drop。对于RAC库,所有的节点都使用同一个FastStart表空间。

3. 如何启用FastStart

创建ASSM表空间,该表空间至少为inmemory_size的2倍大小

SQL> create tablespace im_fast_start

datafile '/data/oracle/oradata/test1/im_fast_start_01.dbf' size

200m autoextend on maxsize 1G segment space management

auto;

设置该表空间为FastStart区域

EXEC

DBMS_INMEMORY_ADMIN.FASTSTART_ENABLE('im_fast_start');

空间管理工作进程(Wnnn)会创建一个空间SecureFile

LOB,名字叫SYSDBXXX_LOBSEG$

COL l_owner FORMAT a10

COL l_seg FORMAT a20

COL l_MB FORMAT 999999

SELECT l.OWNER l_owner, l.SEGMENT_NAME

l_seg,

SUM(s.BYTES)/1024/1024 l_MB

FROM DBA_LOBS l, DBA_SEGMENTS s

WHERE l.SEGMENT_NAME =

s.SEGMENT_NAME

AND l.TABLESPACE_NAME =

'IM_FAST_START'

GROUP BY l.OWNER, l.SEGMENT_NAME;

L_OWNER  L_SEG  L_MB

---------- --------------------

-------

SYS  SYSDBIMFS_LOBSEG$

0

注意:这里这个SYSDBIMFS_LOBSEG$段大小为0

强制已填充的对象重新填充

SQL> select bytes/1024/1024 from

user_segments where segment_name = 'IMTEST';

BYTES/1024/1024

---------------

144

SQL> alter table imtest

inmemory;

Table altered.

select count(*) from imtest i;

检查IM列存储

col owner for a10

col segment_name for a25

col MB for 9999999.99

select owner, segment_name, bytes/1048576 MB

from v$im_segments;

OWNER  SEGMENT_NAME  MB

---------- -------------------------

-----------

SCOTT  IMTEST  142.63

检查FastStart区域已被填充

COL l_owner FORMAT a10

COL l_seg FORMAT a20

COL l_MB FORMAT 999999

SELECT l.OWNER l_owner, l.SEGMENT_NAME

l_seg,

SUM(s.BYTES)/1024/1024 l_MB

FROM DBA_LOBS l, DBA_SEGMENTS s

WHERE l.SEGMENT_NAME =

s.SEGMENT_NAME

AND l.TABLESPACE_NAME =

'IM_FAST_START'

GROUP BY l.OWNER, l.SEGMENT_NAME;

L_OWNER  L_SEG  L_MB

---------- --------------------

-------

SYS  SYSDBIMFS_LOBSEG$

8

注意:这个段大小已为25MB

如果没有填充,可以手工进行IM

FastStart的checkpoint

exec

dbms_inmemory_admin.faststart_checkpoint;

L_OWNER  L_SEG  L_MB

---------- --------------------

-------

SYS  SYSDBIMFS_LOBSEG$

16

检查IM FastStart的填充情况和检查点

select * from

v$inmemory_faststart_area;

禁止IM FastStart

exec

DBMS_INMEMORY_ADMIN.FASTSTART_DISABLE();

未禁止IM FastStart前删除FastStart表空间

SQL> drop tablespace im_fast_start

including contents and datafiles;

drop tablespace im_fast_start including

contents and datafiles

*

ERROR at line 1:

ORA-64379: Action cannot be performed on the

tablespace assigned to FastStart while the feature is

enabled

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值