阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Oracle 12c中性能优化增强新特性之数据库智能闪存

209次阅读
没有评论

共计 2349 个字符,预计需要花费 6 分钟才能阅读完成。

智能闪存功能最初在 XD 中引入。从 Oracle11.2.0.2 开始,除了用于 XD 存储,还可用于任何闪盘。Oracle12c 中,不需卷管理器就可以使用闪盘。

1.  简介

智能闪存在 solaris 和 linux 上都可用,允许用户把闪盘当做第二层缓冲使用来改善性能。通常,当缓存中的数据因超时而被刷出后,下次使用时需被再次从磁盘读取到内存。通过智能闪存,超时的数据可以被放在智能缓存中,当这些数据被再次使用时,比从磁盘上读取能更快些。

为了能优化性能,官方文档建议智能闪存应该为缓存的 2~10 倍。这里,我们有 1G 缓冲,因此,应该配置 2G 以上大小的闪存。如下,我通过两块磁盘来模拟闪存。

# dd if=/dev/zeroof=/mnt/smt_flschc1 bs=1024 count=1024000

# dd if=/dev/zeroof=/mnt/smt_flschc2 bs=1024 count=1024000

# chownoracle:oinstall /mnt/smt_flschc1 /mnt/smt_flschc2

智能闪存内容的元数据在缓存中,如果你不考虑这点,实际缓存的大小在用智能缓存时会被减小。为了计算减小的缓存大小,可以通过智能缓存中每个块占用 100 字节来计算。RAC 中,你还需要考虑共享池的大小,每个 GCS 资源需要多占 208 个字节。

2.  启用智能缓存

DB_FLASH_CACHE_FILE 参数用来鉴定用于智能闪存的闪盘。

DB_FLASH_CACHE_FILE = /mnt/smt_flschc1,/mnt/smt_flschc2

盘大小通过 DB_FLASH_CACHE_SIZE 参数确定。

DB_FLASH_CACHE_SIZE = 1G, 1G

这些参数可以通过 ALTERSYSTEM 命令来设置,也可以通过编辑 pfile 来进行设置,编辑 pfile 的方式如下。

SQL> CREATE PFILE=’/tmp/pfile.txt’ FROMSPFILE;

SQL>host edit;

*.db_flash_cache_file=/mnt/smt_flschc1,/mnt/smt_flschc2

*.db_flash_cache_size=1073741824,1073741824

SQL> CREATE SPFILE FROMPFILE=’/tmp/pfile.txt’;

重启数据库。

SHUTDOWN IMMEDIATE;

STARTUP;

重启后,可以看到配置的参数。

SQL> SHOW PARAMETER db_flash_cache

NAME                                TYPE        VALUE

———————————————– ——————————

db_flash_cache_file                  string      /mnt/smt_flschc1, /mnt/smt_flschc2

db_flash_cache_size                  big integer 1G, 1G

SQL>

智能闪存使用信息可以查询视图 V$FLASHFILESTAT。

SET LINESIZE 100

COLUMN name FORMAT A20

SELECT * FROM v$flashfilestat;

FLASHFILE# NAME                      BYTES    ENABLED SINGLEBLKRDSSINGLEBLKRDTIM_MICRO    CON_ID

———- ——————– ——————– ———— ——————– ———-

        1 /mnt/smt_flschc1        1073741824          1            0                    0          0

        2 /mnt/smt_flschc2        1073741824          1            0                    0        0

SQL>

3.  禁用智能闪存

重置初始化参数以禁用智能闪存。

ALTER SYSTEM RESET DB_FLASH_CACHE_FILESCOPE=SPFILE;

ALTER SYSTEM RESET DB_FLASH_CACHE_SIZESCOPE=SPFILE;

SHUTDOWN IMMEDIATE;

STARTUP;

SELECT * FROM v$flashfilestat;

no rows selected

SQL>

4.  修改表的智能闪存设置

缓存中过期数据块将被默认刷到智能闪存中。ALTER TABLE 命令的 FLASH_CACHE 子句可以进行另外设置。

— 禁止 TEST 表使用智能闪存

ALTER TABLE TEST.TEST STORAGE (FLASH_CACHENONE);

— 强制 TEST 表保留在智能闪存中

ALTER TABLE TEST.TEST STORAGE (FLASH_CACHEKEEP);

— 重置 TEST 表的默认行为

ALTER TABLE TEST.TEST STORAGE(FLASH_CACHE);

ALTER TABLE TEST.TEST STORAGE (FLASH_CACHEDEFAULT);

5.  性能

智能闪盘对性能的提升时,我们应该注意。很多人说,把数据文件放在闪盘上比用智能闪存性能更好。不过,测试结果和使用的硬件及应用需求有很大关系,不可一概而论。

更多 Oracle 相关信息见 Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-01/140021.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计2349字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中