Oracle12c中效能最佳化增強新特性之資料庫智慧快閃記憶體

sqysl發表於2016-06-14
智慧快閃記憶體功能最初在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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章