您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關Oracle數據庫部分遷至閃存存儲的示例分析的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
環境:Oracle 11.2.0.4 RAC(2 nodes)
說明:假設新增閃存掛載點是/flash(使用了第三方的集群文件系統),如果是使用Oracle的ASM,則本文提及的所有/flash目錄都可以認定是新的閃存磁盤組是+FLASH。
1 實施需求
為提高數據庫IO性能,采購了全閃存陣列存儲,但由于前期預算有限,只能將部分數據遷移到閃存存儲上(當然,如果條件允許,還是強烈建議將數據庫整體全部遷移到閃存)。經評估,最終確認將業務高峰時刻,IO壓力最大的表空間整體遷移到閃存存儲上,此外,將數據庫的redo和undo遷移到閃存存儲上。
注:本文方案實際是我對某生產環境的真實需求而編寫,由于該場景具有普適性,故脫敏后發表。
2 確認遷移表空間信息
主要根據業務高峰(以歷史DBTime為主要參考指標),從對應AWR報告中的Tablespace IO Stats部分篩選出IO壓力最大的表空間。比如我這里確定數據庫需要遷移到閃存的表空間是TBS_D_JINGYU。
具體依據:
a.抽查平日數據庫的AWR報告,根據Tablespace IO Stats部分,TOP1就是TBS_D_JINGYU,而且比其他表空間高一個數量級。
b.抽查業務高峰時段數據庫的AWR報告,根據Tablespace IO Stats部分,TOP1多數情況也是TBS_D_JINGYU,但由于業務高峰期很多表空間都比較忙,不如平日明顯,但綜合考慮,還是選擇TBS_D_JINGYU表空間。
TBS_D_JINGYU表空間大小:當前大小是2160G,預估數據量按30%的增長率,至少需要空間為2810G。
3 確認redo信息
將所有redo日志文件遷移到閃存。
很多年前,在Oracle界就一直流傳一個說法:不建議將redo放在SSD上,就連Oracle官方文檔都有對應的說法。所以直到現在還有很多人不敢將redo放在SSD上。而實際上,這個觀點早已經過時,目前的企業級閃存卡經實際測試,是完全可以用來存放redo的。
確認redo信息,我這里是2節點RAC,redo相關信息是:一共有兩個線程,每個線程有7組日志,每個日志大小為2G。總大小28G。group組號是31-37,41-47。
4 確認undo信息
確認undo信息:
TABLESPACE_NAME FREE_SPACE USED_SPACE TABLESPACE_SIZE USED_PERCENT ------------------------------ ---------- ---------- --------------- ------------ UNDOTBS1 176.668823 4.33117676 181 2.39291534 UNDOTBS2 47.9354248 .064575195 48 .134531657
可以看到,UNDOTBS1大小181G,UNDOTBS2大小48G。總大小229G。
5 表空間遷移到閃存
5.1 確認閃存空間符合最小需求
假設閃存掛載目錄是/flash;按表空間30% 預留增長空間計算,對應閃存掛載目錄空間最小值:
數據庫遷移至閃存的空間最小需求:top tablespace + redo + undo =2810G + 28G + 229G=3067G
注:如果數據表空間和對應索引表空間是分開規劃的,那么強烈建議將這個IO最高的數據表空間對應的索引表空間也一起遷移,這樣總空間需求量就還要加上對應索引表空間的需求。
5.2 表空間遷移到閃存
使用backup as copy tablesapce來實現表空間TBS_D_JINGYU的遷移工作:
RMAN> backup as copy tablespace TBS_D_JINGYU format '/flash/oradata/jydb5/'; SQL> alter tablespace TBS_D_JINGYU offline; RMAN> switch tablespace TBS_D_JINGYU to copy; RMAN> recover tablespace TBS_D_JINGYU; SQL> alter tablespace TBS_D_JINGYU online;
6 redo遷移到閃存
新增redo logfile,刪除歷史redo。
redo遷移到閃存的操作命令:
--新增redo logfile alter database add logfile THREAD 1 group 11 '/flash/oradata/jydb5/redo11.log' SIZE 2147483648; alter database add logfile THREAD 1 group 12 '/flash/oradata/jydb5/redo12.log' SIZE 2147483648; alter database add logfile THREAD 1 group 13 '/flash/oradata/jydb5/redo13.log' SIZE 2147483648; alter database add logfile THREAD 1 group 14 '/flash/oradata/jydb5/redo14.log' SIZE 2147483648; alter database add logfile THREAD 1 group 15 '/flash/oradata/jydb5/redo15.log' SIZE 2147483648; alter database add logfile THREAD 1 group 16 '/flash/oradata/jydb5/redo16.log' SIZE 2147483648; alter database add logfile THREAD 1 group 17 '/flash/oradata/jydb5/redo17.log' SIZE 2147483648; alter database add logfile THREAD 2 group 21 '/flash/oradata/jydb5/redo21.log' SIZE 2147483648; alter database add logfile THREAD 2 group 22 '/flash/oradata/jydb5/redo22.log' SIZE 2147483648; alter database add logfile THREAD 2 group 23 '/flash/oradata/jydb5/redo23.log' SIZE 2147483648; alter database add logfile THREAD 2 group 24 '/flash/oradata/jydb5/redo24.log' SIZE 2147483648; alter database add logfile THREAD 2 group 25 '/flash/oradata/jydb5/redo25.log' SIZE 2147483648; alter database add logfile THREAD 2 group 26 '/flash/oradata/jydb5/redo26.log' SIZE 2147483648; alter database add logfile THREAD 2 group 27 '/flash/oradata/jydb5/redo27.log' SIZE 2147483648; --刪除歷史redo alter database drop logfile group 31; alter database drop logfile group 32; alter database drop logfile group 33; alter database drop logfile group 34; alter database drop logfile group 35; alter database drop logfile group 36; alter database drop logfile group 37; alter database drop logfile group 41; alter database drop logfile group 42; alter database drop logfile group 43; alter database drop logfile group 44; alter database drop logfile group 45; alter database drop logfile group 46; alter database drop logfile group 47;
7 undo遷移到閃存
undo遷移實質就是通過創建新的undo表空間,然后修改默認undo表空間的設置,最終刪除歷史undo表空間。
undo表空間遷移到閃存:
create undo tablespace UNDOTBS11 datafile '/flash/oradata/jydb5/undotbs101.dbf' SIZE 30G; create undo tablespace UNDOTBS21 datafile '/flash/oradata/jydb5/undotbs201.dbf' SIZE 24G; alter tablespace undotbs11 add datafile '/flash/oradata/jydb5/undotbs102.dbf' SIZE 30G; alter tablespace undotbs11 add datafile '/flash/oradata/jydb5/undotbs103.dbf' SIZE 30G; alter tablespace undotbs11 add datafile '/flash/oradata/jydb5/undotbs104.dbf' SIZE 30G; alter tablespace undotbs11 add datafile '/flash/oradata/jydb5/undotbs105.dbf' SIZE 30G; alter tablespace undotbs11 add datafile '/flash/oradata/jydb5/undotbs106.dbf' SIZE 31G; alter tablespace undotbs21 add datafile '/flash/oradata/jydb5/undotbs202.dbf' SIZE 24G; --show parameter undo alter system set undo_tablespace=UNDOTBS11 sid = 'jydb51'; alter system set undo_tablespace=UNDOTBS21 sid = 'jydb52'; --select SEGMENT_NAME ,STATUS ,TABLESPACE_NAME from dba_rollback_segs;(確認offline) drop tablespace undotbs1 including contents and datafiles; drop tablespace undotbs2 including contents and datafiles;
8 備庫修改參數
數據庫環境中還有一個ADG備庫。
針對備庫,主要需要修改db_file_name_convert和log_file_name_convert參數值,增加對新目錄的映射關系。
感謝各位的閱讀!關于“Oracle數據庫部分遷至閃存存儲的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。