1. 首页
  2. IT资讯

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

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

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8484829/viewspace-2120163/,如需转载,请注明出处,否则将追究法律责任。

主题测试文章,只做测试使用。发布者:深沉的少年,转转请注明出处:http://www.cxybcw.com/184982.html

联系我们

13687733322

在线咨询:点击这里给我发消息

邮件:1877088071@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code