當前位置:首頁 » 操作系統 » 資料庫擴內存

資料庫擴內存

發布時間: 2022-04-21 20:05:02

❶ 當資料庫內存增大,sga會自動增大嗎

Oracle資料庫可以自動內存管理SGA的,所以不用擔心。具體可以參考一下,如有幫助請採納。
ASMM自動共享內存管理:
自動根據工作量變化調整
最大程度地提高內存利用率
有助於消除內存不足的錯誤
SYS@PROD>show parameter sga
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
lock_sga boolean FALSE
pre_page_sga boolean FALSE
sga_max_size big integer 1G
sga_target big integer 1G
SYS@PROD>show parameter memory
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
hi_shared_memory_address integer 0
memory_max_target big integer 0
memory_target big integer 0
shared_memory_address integer 0
SYS@PROD>show parameter pga
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_target big integer 208M
ASMM 的工作原理 :
ASMM 以 MMON 在後台捕獲的工作量信息為基礎。
MMON 使用內存指導。
將內存移到 MMAN 最迫切需要的地方。
如果使用 SPFILE:在關閉時保存組件大小 、保存的值用於引導程序組件大小 、無需再確定最佳值
自動共享內存管理功能使用由以下兩個後台進程實施的 SGA 內存中介:可管理性監視器 (MMON) 和內存管理器 (MMAN)。MMON 定期將統計信息和內存指導數據捕獲到內存中。MMAN 根據 MMON 的決定調整內存組件的大小。SGA 內存中介會不斷跟蹤組件的大小和待處理的大小調整操作。
SGA 內存中介會觀察系統和工作量,以便確定理想的內存分配方案。SGA 內存中介每隔幾分鍾就執行一次這種檢查,使內存始終用在需要的地方。如果沒有自動共享內存管理功能,必須分別預計各組件在峰值時的內存需求,然後對其內存大小進行調整。
在工作量信息基礎上,自動共享內存管理功能會:
定期在後台捕獲統計信息
使用內存指導
進行假設分析,確定最佳內存分配方案
將內存移到最迫切需要的地方
如果使用了 SPFILE,則在關閉時保存組件大小(這些大小可以在最後一次關閉前重新起用)
啟用自動共享內存管理功能 :
要從手動共享內存管理模式下啟用 ASMM,請執行以下操作:
1.獲取 SGA_TARGET 的值:
SELECT ((SELECT SUM(value) FROM V$SGA) - (SELECT CURRENT_SIZE FROM V$SGA_DYNAMIC_FREE_MEMORY)) "SGA_TARGET" FROM DUAL;
2.使用該值設置 SGA_TARGET。
3.將自動設置大小的 SGA 組件的值設置為 0。
要從自動內存管理模式切換到 ASMM,請執行以下操作:
1.將初始化參數 MEMORY_TARGET 設置為 0。
2.將自動設置大小的 SGA 組件的值設置為 0。
自動優化的 SGA 參數的行為:
未設置 SGA_TARGET 或將其設置為 0 時:
自動優化的參數指定相應組件的實際大小
、可能需要增加 SHARED_POOL_SIZE
SELECT SUM(bytes)/1024/1024 size_mb FROM v$sgastat WHERE pool = 'shared pool';
SGA_TARGET 設置為非零值時:
自動優化的參數的默認值為零 、指定的值用作下限大小
SELECT component, current_size/1024/1024 size_mb FROM v$sga_dynamic_components;
手動優化的 SGA 參數的行為:
有些組件不能自動優化。
--DB_KEEP_CACHE_SIZE 和 DB_RECYCLE_CACHE_SIZE
--非標准塊大小的緩沖區高速緩存,DB_nK_CACHE_SIZE
--
LOG_BUFFER
這些組件必須使用資料庫參數手動配置。
這些組件使用的內存會減少可用於自動優化 SGA 的內存量。
修改 SGA_TARGET 參數 :
--是動態參數
--
最多可增大到 SGA_MAX_SIZE
--可以減小,直到所有組件都達到其下限大小為止
更改 SGA_TARGET 的值只會影響自動調整大小的組件
SGA_TARGET 是一個動態參數,可以通過 Database Control 或使用 ALTER SYSTEM 命令更改。

GA_MAX_SIZE 是可分配給 SGA 的內存量的上限。更改該值後,必須重新啟動資料庫才能生效。SGA_TARGET 最多可增大到 SGA_MAX_SIZE 值。它可以減小,直到任一自動優化的組件達到其下限大小:用戶指定的下限值或內部確定的下限值。
如果增大 SGA_TARGET 的值,則會根據自動優化策略在自動優化的組件之間分配增加的那部分內存。
如果減小 SGA_TARGET 的值,則這部分內存將按照自動優化策略從一個或多個自動優化的組件處提取。
假定 SGA_MAX_SIZE 設置為 10 GB,SGA_TARGET 設置為 8 GB。如果 DB_KEEP_CACHE_SIZE 設置為 1 GB,並且將 SGA_TARGET 增大為 9 GB,則增加的 1 GB 只會在 SGA_TARGET 控制的組件之間進行分配。DB_KEEP_CACHE_SIZE 的值不受影響。同樣,如果將 SGA_TARGET 減小到 7 GB,則這 1 GB 也只會從 SGA_TARGET 控制的那些組件中提取。這種減少並不會影響手動控制的參數(如 DB_KEEP_CACHE_SIZE)的設置。
禁用 ASMM :
將 SGA_TARGET 設置為 0 可禁用自動優化功能。
自動優化的參數設置為其當前大小。
SGA 大小總體上不受影響。
eg:
SGA_TARGET 的值為 8 GB,SHARED_POOL_SIZE 的值為 1 GB。如果系統將共享池組件的大小內部調整為 2 GB,則將 SGA_TARGET 設置為 0 會導致 SHARED_POOL_SIZE 被設置為 2 GB,從而覆蓋用戶定義的原始值。
手動調整動態 SGA 參數的大小
對於自動優化的參數,手動調整大小會:
導致組件大小立即調整(如果新值大於當前值) 、更改下限大小(如果新值小於當前大小)
調整手動優化的參數的大小隻會影響 SGA 的可調部分。
調整了自動優化的參數的大小並設置了 SGA_TARGET 值後,只有當新值大於組件的當前大小時,這種調整才會導致組件的大小立即發生更改。例如,如果將 SGA_TARGET 設置為 8 GB,將 SHARED_POOL_SIZE 設置為 2 GB,可確保共享池始終不小於 2 GB,以滿足必要的內存分配需求。之後,即使將 SHARED_POOL_SIZE 值調整為 1 GB,也不會對共享池的大小產生直接影響。只會使自動內存優化演算法以後可以將共享池大小減少到 1 GB(如果需要)。相反,如果共享池的大小最初設置為 1 GB,那麼將 SHARED_POOL_SIZE 值調整為 2 GB 時,共享池組件的大小會立即增加到 2 GB。此大小調整操作中使用的內存從一個或多個自動優化的組件中提取,手動優化的組件的大小不受影響。
手動調整大小的組件的參數也可以動態變更,但不同之處在於,參數的值會立即指定相應組件的精確大小。因此,如果手動調整的組件的大小增大,則增加的那部分內存將從一個或多個自動調整大小的組件處提取。如果手動調整的組件的大小減小,則釋放的內存將會提供給自動調整大小的組件。
程序全局區 (PGA)
程序全局區 (PGA) 是包含某伺服器進程的數據及控制信息的內存區。這是 Oracle 伺服器在伺服器進程啟動時創建的非共享內存,只有該伺服器進程才能訪問。由關聯到某個 Oracle 實例的所有伺服器進程分配的 PGA 總內存,也稱為該實例分配的聚集 PGA 內存。
使用共享伺服器時,部分 PGA 可位於 SGA 中。
PGA 內存通常包含以下各項:

專用 sql 區:
專用 SQL 區包含綁定信息和運行時內存結構等數據。這些信息是每個會話的 SQL 語句調用所特有的;在其它方面,綁定變數有不同的值,游標的狀態也不同。發出 SQL 語句的每個會話都有一個專用 SQL 區。提交同一 SQL 語句的每個用戶也都有其自己的專用 SQL 區,該專用 SQL 區使用一個共享 SQL 區。這樣,許多專用 SQL 區可與同一個共享 SQL 區關聯。專用 SQL 區的位置取決於為會話建立的連接類型。如果會話是通過專用伺服器連接的,則專用 SQL 區位於該伺服器進程的 PGA 中。不過,如果會話是通過共享伺服器連接的,則部分專用 SQL 區將保留在 SGA 中。
游標和 SQL 區

Oracle Pro*C 程序或 Oracle OCI 程序的應用程序開發人員可以顯式打開特定專用 SQL 區的游標或句柄,並在該程序的整個執行過程中將它們用作命名資源。資料庫為某些 SQL 語句隱式發出的遞歸游標也使用共享 SQL 區。
工作區

對於復雜查詢(例如,決策支持查詢),會將大部分 PGA 供內存密集型運算符分配的工作區專用,例如:
基於排序的運算符(如 ORDER BY、GROUP BY 和 ROLLUP)和窗口函數
散列聯接
點陣圖合並
點陣圖創建
批量裝載操作使用的寫緩沖區
排序運算符使用工作區(排序區),對一組行執行內存中排序。與此類似,散列聯接運算符使用工作區(散列區),根據其左側輸入內容生成散列表。
工作區的大小是可以控制和優化的。通常,較大的工作區可以顯著改進特定運算符的性能,不過代價是消耗較多的內存。
會話內存

會話內存是用於存放會話的變數(登錄信息)以及與會話相關的其它信息的內存。對於共享伺服器,會話內存是共享的,而不是專用的。
自動 PGA 內存管理
根據 PGA_AGGREGATE_TARGET 參數,動態調整供工作區專用的 PGA 內存量
有助於最大限度地提高所有內存密集型 SQL 操作的性能
默認情況下是啟用的
PGA 管理資源
管理 PGA_AGGREGATE_TARGET 初始化參數的統計信息,如 PGA 高速緩存命中百分比
可以在下列動態性能視圖中查看有關工作區內存分配和使用的統計信息:
V$SYSSTAT
V$SESSTAT
V$PGASTAT
V$SQL_WORKAREA
V$SQL_WORKAREA_ACTIVE
用於調整 PGA 工作區大小的視圖有:
V$PGA_TARGET_ADVICE
V$PGA_TARGET_ADVICE_HISTOGRAM
V$SQL_WORKAREA_HISTOGRAM
-----------------Oracle DB 內存參數

ALTER SYSTEM SET MEMORY_TARGET=300M;
雖然僅需要設置 MEMORY_TARGET 來觸發自動內存管理,但仍可以為各種高速緩存設置下限值。因此,如果子參數是用戶設置的,則這些參數值將是 Oracle DB 伺服器自動優化該組件時的下限值。
有效使用內存:准則
盡量使 SGA 適合物理內存。
優化以實現高緩沖區高速緩存命中率,但要注意以下幾點:
--即使有效且必需的全表掃描也會降低命中率。
--可能存在因不必要地重復讀取同一塊而出現命中率虛升的情況。
使用內存指導。
庫高速緩存的內存優化准則:提高命中率
為開發人員制定格式使用約定,以便 SQL 語句符合高速緩存的要求。
使用綁定變數。
消除不必要的重復 SQL。
考慮使用 CURSOR_SHARING。
盡可能使用 PL/SQL。
緩存序列號。
連接庫高速緩存中的對象。

❷ 如何給Oracle資料庫分配內存

內存是影響資料庫性能的重要因素,Oracle8i使用靜態內存管理,Oracle 10g使用動態內存管理。所謂靜態內存管理,就是在資料庫系統中,無論是否有用戶連接,也無論並發用量大小,只要資料庫服務在運行,就會分配固定大小的內存;動態內存管理允許在資料庫服務運行時對內存的大小進行修改,讀取大數據塊時使用大內存,小數據塊時使用小內存,讀取標准內存塊時使用標准內存設置。

❸ 資料庫內存不足,如何設置內存管理

1、 主要設置min server memory 和 max server memory ,如果同台伺服器有多台吃內存大戶服務, max server memory 給設置一個值稍大的值出來,別讓SQL server把WINDOWS內存都吃完了也別讓其他的服務把WINDOWS內存吃完了,這樣才會相安無事2.設置方法可以通過命令方式的,樓上的挺好,還有就是通過SQL SERVER企業管理器進行:滑鼠右鍵伺服器\屬性\內存 可以看多最大內存和最小內存設置選項。

❹ 如何進行mysql的動態擴容和縮容

mysql在線擴容和縮容一般涉及到的內容,主要包括三個方面,1.在線也就意味著需要把增量的數據重新分布到新的拓撲結構中,我們一般稱做增量復制,2.原有的數據需要一條不漏的掃出來重新分布到新的拓撲結構中,這個一般叫做全量復制,3.全量做完,增量正在同步,把應用的數據路由拓撲切到新的路由拓撲上來,並且做到無數據丟失,這個我們叫做停寫切換。做好這三個方面的工作,能夠達到的效果就是應用在最後切換數據分布拓撲的時刻,只要停寫非常短的時間(秒級別)就能夠做到無數據丟失的擴容和縮容。

增量同步一般有2種方式,一種是應用端或者資料庫前端做trigger,記錄變更數據的特徵值log(比如pk,sharding key),然後非同步復制到新的拓撲結構中。另外一種方式是通過分析mysql的binlog再進行不同數據拓撲的復制。兩者本質上來說應該是一樣的,後者可能更加簡便,並且對應用無侵入,前者雖然也能夠做到,實際實現或者推廣和操作上都有不少阻力,最起碼解析binlog方式是mysql一上去,更新的log已經天然存在與binlog中了。

增量同步的兩種方式如果要考慮到同步的可伸縮性(也就是多台機器可以同時消費相同的變更日誌),需要在原數據中添加數據的版本信息防止更新亂序,或者通過唯一鍵進行復制機器的sharding,也就是不同進程(線程)同時消費相同的更新日誌,必須讓同一條記錄的更新落在同一個線程裡面,如果還需要保證復制的事務,那麼實現會非常復雜,一般不會去支持多線程下復制的事務。

全量復制,也就是掃描需要復制的表的數據進行重新分布,主要存在的問題是復制速度和對資料庫的寫入壓力的矛盾,其實能夠做到整個拓撲連資料庫都全部換掉,來達到對正在使用資料庫的0影響,這個是一種可行的方案,另外是分時段調整復制線程數,一般單線程復制對於資料庫的影響不會很大,在凌晨再轉換成多線程方式達到提速的目標。

擴容或者縮容在最後階段如何切換,這個涉及到的問題主要是如何避免新更新進來以至於增量沒完沒了,方式有很多,最簡單的方法就是停掉應用,一般時間只有幾分鍾是可以接受的。另外一種是邏輯停寫,因為我們遷移的時候是有一個規則去重新散列數據,也就是如果新的規則和舊的規則兩者算出來的結果不一致,那麼這個數據就是需要被遷移的,如果在停寫的時刻,向前端拋錯即可。邏輯停寫最大的好處就是避免PE的介入,並且配合動態的數據路由數據推送,可以完全避免重新發布達到擴容或者縮容,這個就是真正的在線擴容,停寫不可避免(等待延遲的增量同步完成),但是不影響讀。

數據擴容或者縮容,我們覺得不應該排入業務的開發日程中,而是由數據管理團隊對應用透明地進行這種操作,最後介入的人員只是DBA而已。但是不像一些nosql一樣按容量或者完全透明的split,資料庫的sharding還是按照應用的數據特性(pk,user_id,gmt_create等等不同欄位,自選策略)進行sharding,應用知道他們的某條數據具體存在哪個機器哪張表上,這個無論對於開發還是測試或者DBA都是一件不錯的事情。

❺ 怎麼設置sql2008資料庫最大伺服器內存

1、1.選擇「開始 > 所有程序 > Microsoft SQL Server 2008 R2 > SQL Server Management Studio」。系統顯示「連接到伺服器」界面。
2、2.輸入各項數據,單擊連接
3、3.系統顯示「對象資源管理器」界面
4、4.上圖單擊右鍵,在彈出的快捷菜單中選擇「屬性」。
5、5.在左側導航欄中選擇「內存」,將右側「最大伺服器內存」的值設置為物理內存的60%,本例以8G內存為例
6、6.最後單擊確定,設置完成

❻ sql資料庫伺服器,內存佔用過大怎麼辦

1、1.選擇逗開始
>
所有程序
>
microsoft
sql
server
2008
r2
>
sql
server
management
studio地。系統顯示逗連接到伺服器地界面。
2、2.輸入各項數據,單擊連接
3、3.系統顯示逗對象資源管理器地界面
4、4.上圖單擊右鍵,在彈出的快捷菜單中選擇逗屬性地。
5、5.在左側導航欄中選擇逗內存地,將右側逗最大伺服器內存地的值設置為物理內存的60%,本例以8g內存為例
6、6.最後單擊確定,設置完成

❼ 如何設置SQLServer資料庫內存

1、打開SQL Sever 2008 R2資料庫

❽ 給資料庫或者事務日誌擴充存儲容量的方法有幾種他們的區別是什麼

當前的解決方法是:把硬碟上的其他文件刪除,以空出硬碟空間,將資料庫的日誌文件大小改成無限制,然後分離資料庫,要確保分離成功,、然後把資料庫日誌文件刪除(最好是先改名,以防萬一)。再附加資料庫,這樣會重建日誌文件。
加回去之後,將資料庫改成自動收縮,把日誌文件改成按mb增長,增長最大設為一個固定的值,值的大小看數據處理情況,存在大指的update操作的話,應設為大一點。

❾ 資料庫伺服器一台,使用Raid 0磁碟陣列,如何在不破壞原有磁碟數據的前提下對存儲空間擴容

有兩種方法:
第一種就是樓上說的,先把數據都備份出來,然後再重新分區或再加硬碟重建RAID0的陣列。
第二種方法,就是看你的伺服器陣列卡能不能支持在線擴容陣列的功能,如果可以,那樣是可以通過管理軟體,把新的硬碟添加進去。

熱點內容
如何避免伺服器暴露ip 發布:2024-10-01 21:38:24 瀏覽:215
pythonrequestjson 發布:2024-10-01 21:37:37 瀏覽:852
珠海java 發布:2024-10-01 21:07:29 瀏覽:819
伺服器剩餘維護是什麼 發布:2024-10-01 21:03:46 瀏覽:543
php擴展編譯安裝 發布:2024-10-01 21:03:45 瀏覽:94
qq號密碼怎麼破解密碼 發布:2024-10-01 20:58:37 瀏覽:714
加密的exe視頻轉換 發布:2024-10-01 20:58:37 瀏覽:285
通過域名查找實際伺服器ip 發布:2024-10-01 20:10:40 瀏覽:186
光貓的密碼怎麼改 發布:2024-10-01 20:02:35 瀏覽:278
數據挖掘常用演算法 發布:2024-10-01 19:52:40 瀏覽:649