資料庫磁碟
① 中小型資料庫用什麼類型硬碟
塔式伺服器硬碟。
企業可以使用一台相對低配,但磁碟容量較大的伺服器,用作專門的備份伺服器。專家推薦型號DELLPowerEdgeT310塔式伺服器,最大內部存儲可支持8TB,選用RAID方式0,1,5,6,10,同時T310可利用可選的高級系統管理功能(包括遠程管理)進行自定義。
② 如何優化Urchin配置文件資料庫的磁碟空間
Urchin 的報告數據存儲在各個配置文件所獨有的每月資料庫中(註:Urchin分析後的數據是按月歸檔),這些資料庫一般位於 Urchin 的 data/reports 目錄下。每個配置經過處理的資料庫大小為原日誌大小的5% 至10%。
默認情況下,Urchin 會保留每月的這些配置文件資料庫,但經過長時間的數據積累數據量會變大,導致Urchin處理後的數據佔用空間越來越大,並且在用戶查看時也會降低Urchin的響應效率。因此,需要優化Urchin 配置文件每月資料庫的磁碟存儲空間。
優化 Urchin 配置文件每月資料庫的磁碟存儲空間的方法通常有以下五種:
1.將配置文件設置為,在處理日誌後自動刪除原始跟蹤數據
2.設置配置文件以存檔歷史記錄數據
3.限制保留歷史記錄報告數據的月份數。
4.壓縮配置文件資料庫。
5.合理設置資料庫自動備份。
方法 1:在處理日誌後,刪除原始跟蹤數據
可對配置文件加以配置,以便在處理完成後刪除原始訪問者和會話信息。這可改善大型網站的性能,降低所存儲的數據量。請注意:選擇此配置後,跨日期的會話會顯示為兩個會話(一天一個會話),而不是一個會話。對大部分網站來說,結果中的差異可以忽略不計。
對配置文件加以配置,以便在處理完成後刪除原始訪問者和會話信息:
1.在管理界面中,點擊」配置」,然後再點擊」Urchin 配置文件」–》」配置文件」。
2.修改所需配置文件。
3.在」存儲/資料庫」標簽中,將」保留原始跟蹤數據」欄位設為」關閉」。
4.點擊」更新」。
方法 2:自動存檔歷史記錄數據
可對配置文件加以配置,將每月歷史記錄數據壓縮到存檔文件中。報告可以查看存檔的數據,但不會再為已存檔的月份處理額外的點擊。
對配置文件加以配置以存檔歷史記錄數據:
1.在管理界面中,點擊」配置」,然後再點擊」Urchin 配置文件」–》」配置文件」。
2.修改所需配置文件。
3.在」存儲/資料庫」標簽中,將」存檔資料庫」欄位設為」打開」。
4.為」在此後存檔資料庫」欄位指定月份數字(此選項指定數據保留多少個月後開始自動存檔)。
5.點擊」更新」。
方法 3:定期移除不用的配置文件數據
Urchin配置文件data/reports/profile-name」目錄下的數據是可以移動的,因此對於不使用的數據信息定期移除移除即可。這是最簡單直接的方法,建議通過自動腳本實現。
方法 4:壓縮配置文件資料庫
將舊的 Urchin 每月資料庫壓縮所產生存檔的大小一般只有未壓縮前資料庫集的 20% 到 30% 左右。雖然 Urchin 報告引擎無法直接讀取 ZIP 存檔,但它可隨時從 ZIP 存檔中提取所需資料庫。報告引擎不會刪除已解壓縮的資料庫,這可提高用戶查看 Urchin 報告時對數據的訪問速度。不過,原始的 ZIP 存檔會保留在原處,因此定期清除操作可直接刪除解壓縮後的資料庫,以重新獲取磁碟空間。
方法5:合理設置資料庫自動備份
資料庫備份和清除功能提供了對配置文件備份信息的設置:
1.啟用自動回滾資料庫,如果處理過程中途停止或中斷,數據可以自動得到修復。Urchin 會自動檢測到這種情況並將數據回滾到最近的備份(如果有),然後再繼續。
2.清除備份,使用此選項可以根據需保留在下一選項中的備份的數量,自動清除以前的備份。如果啟用此功能,Urchin 將自動刪除以前的備份,以控制存儲量。
3.要保留的備份數,此選項可為上述清除功能指定每月保留的備份數量。
通常從優化伺服器佔用空間的角度考慮會關閉備份所有功能,但從配置文件運行安全形度考慮,可以啟用備份功能。
Urchin 資料庫存儲技術概述
對於每個 Urchin 配置文件,Urchin 會在名為 YYYYMM(年月) 的目錄下,維護每月存儲的一組資料庫文件。這些目錄分別包含約 50 個為報告引擎提供數據的文件。這些目錄和資料庫文件以其存儲數據的月份來命名。完整的資料庫列表是:
YYYYMM-uhed –> 資料庫標頭
YYYYMM-usti –> 字元串索引
YYYYMM-ustd –> 字元串數據
YYYYMM-udai –> 匯總表索引
YYYYMM-udXX –> 匯總數據表(XX 由數據地圖的表編號替換)。
YYYYMM-uvii –> 訪問者索引
YYYYMM-uvid –> 訪問者數據
YYYYMM-used –> 會話數據
YYYYMM-upad –> 路徑數據
YYYYMM-utrd –> 交易數據 (Ecommerce)
YYYYMM-uitd –> 項目數據 (Ecommerce)
YYYYMM-ulti –> 日誌跟蹤索引
YYYYMM-ultd –> 日誌跟蹤數據
YYYYMM-utod –> 總計數據
YYYYMM-uhid –> 柱狀圖數據
YYYYMM-umad –> 訪問者矩陣數據
每一組資料庫對於所包含數據的月份來說都是完整的。因為每月的資料庫集之間並無相關性,因此可對每個資料庫集獨立進行存檔和修剪操作,其他月份的數據不會受到影響。
正常操作下會保留每個月的整套月份資料庫文件。不過,Urchin 日誌處理引擎只會使用這些資料庫文件的 4 個文件。這些資料庫文件是:
YYYYMM-usti
YYYYMM-udai
YYYYMM-ulti
YYYYMM-ultd
Urchin 日誌處理引擎會使用下列資料庫文件處理跨群體和訪問者深入查看報告。刪除這些內容僅會影響到這些報告功能。
YYYYMM-uvii
YYYYMM-uvid
YYYYMM-used
YYYYMM-upad
YYYYMM-utrd
YYYYMM-uitd
這些資料庫包含有關訪問者、會話、路徑、交易和產品的信息。這些文件會使用當月所需總存儲空間的某個百分比,大約 10% 到 50% 左右。因此,如果將」配置文件配置」的」存儲/資料庫」屏幕的」保留原始跟蹤數據」選項設為關閉的話,即可贏得較大的磁碟空間。
建議只有訪問量極高、保留原始跟蹤數據會造成磁碟或 CPU 資源消耗問題的網站,才停用」保留原始跟蹤數據」選項。
文章來源:搜索營銷藝術
③ 如何判斷資料庫磁碟是否為損壞及數據恢復
首先可以下載一個天盾數據恢復軟體。
1.啟動「天盾數據恢復軟體」點擊硬碟數據恢復進入下一步。
2.選擇丟失文件的分區,點擊下一步。
3.等待軟體掃描,這一過程中軟體不會對存儲設備進行任何操作,不會損壞文件。
4.掃描完成後會在軟體中顯示出文件,常用格式的文件可以進行預覽,勾選要恢復的文件,點擊「下一步」。
5.選擇文件的存儲位置,恢復的文件可以在這里找到。
④ 資料庫伺服器如何掛載磁碟陣列
一般資料庫伺服器和磁碟陣列是一塊使用的。磁碟陣列掛載到資料庫伺服器上。
資料庫伺服器是一台伺服器,跑的是數據應用程序,所以叫資料庫伺服器,一般核心數據是不會放在資料庫伺服器的本地磁碟的(出於安全和性能的考慮)。
磁碟陣列就是存儲盤櫃。支持IPSAN、FCSAN等。
⑤ 資料庫在磁碟上的文件組織分幾種類型其中那個是必需的
3種
一個資料庫中必須有至少一個主文件和日誌文件。但是主文件只能有一個,日誌問及可以有多個。還有一種文件就是輔助文件,後綴名是.ldf。主要存儲資料庫的一些輔助信息。
⑥ 資料庫對象有對應的磁碟文件嗎
資料庫對象有對應的磁碟文件,比如mdf資料庫主文件,ndf數據從文件,ldf資料庫日誌文件。
資料庫中的表與我們日常生活中使用的表格類似,它也是由行(Row) 和列(Column)組成的。列由同類的信息組成,每列又稱為一個欄位,每列的標題稱為欄位名。行包括了若干列信息項。
資料庫對象特點:
視圖看上去同表似乎一模一樣,具有一組命名的欄位和數據項,但它其實是一個虛擬的表,在資料庫中並不實際存在。視圖是由查詢資料庫表產生的,它限制了用戶能看到和修改的數據。由此可見,視圖可以用來控制用戶對數據的訪問,並能簡化數據的顯示,即通過視圖只顯示那些需要的數據信息。
⑦ 資料庫所在磁碟空間 剩餘多大為好
這個需要預估你後期的數據增長規模和速度了。如果增長速度快,比如一天就要增長1G,那你如果要保存一年的數據,加上備份那些雜七雜八的,預估留個600G吧
⑧ 如何判斷MSsql資料庫磁碟出現了瓶頸
具體問題具體分析,舉例來說明為什麼磁碟IO成瓶頸資料庫的性能急速下降了。
為什麼當磁碟IO成瓶頸之後, 資料庫的性能不是達到飽和的平衡狀態,而是急劇下降。為什麼資料庫的性能有非常明顯的分界點,原因是什麼?
相信大部分做資料庫運維的朋友,都遇到這種情況。 資料庫在前一天性能表現的相當穩定,資料庫的響應時間也很正常,但就在今天,在業務人員反饋業務流量沒有任何上升的情況下,資料庫的變得不穩定了,有時候一個最簡單的insert操作, 需要幾十秒,但99%的insert卻又可以在幾毫秒完成,這又是為什麼了?
dba此時心中有無限的疑惑,到底是什麼原因呢? 磁碟IO性能變差了?還是業務運維人員反饋的流量壓根就不對? 還是資料庫內部出問題?昨天不是還好好的嗎?
當資料庫出現響應時間不穩定的時候,我們在操作系統上會看到磁碟的利用率會比較高,如果觀察仔細一點,還可以看到,存在一些讀的IO. 資料庫伺服器如果存在大量的寫IO,性能一般都是正常跟穩定的,但只要存在少量的讀IO,則性能開始出現抖動,存在大量的讀IO時(排除配備非常高速磁碟的機器),對於在線交易的資料庫系統來說,大概性能就雪崩了。為什麼操作系統上看到的磁碟讀IO跟寫IO所帶來的性能差距這么大呢?
如果親之前沒有注意到上述的現象,親對上述的結論也是懷疑。但請看下面的分解。
在寫這個文章之前,作者閱讀了大量跟的IO相關的代碼,如非同步IO線程的相關的,innodb_buffer池相關的,以及跟讀數據塊最相關的核心函數buf_page_get_gen函數以及其調用的相關子函數。為了將文章寫得通俗點,看起來不那麼累,因此不再一行一行的將代碼解析寫出來。
咱們先來提問題。buf_page_get_gen函數的作用是從Buffer bool裡面讀數據頁,可能存在以下幾種情況。
提問. 數據頁不在buffer bool 裡面該怎麼辦?
回答:去讀文件,將文件中的數據頁載入到buffer pool裡面。下面是函數buffer_read_page的函數,作用是將物理數據頁載入到buffer pool, 圖片中顯示
buffer_read_page函數棧的頂層是pread64(),調用了操作系統的讀函數。
通過解析buf_wait_for_read函數的下層函數,我們知道其實通過首先自旋加鎖pin的方式,超過設定的自旋次數之後,進入等待,等待IO完成被喚醒。這樣節省不停自旋pin時消耗的cpu,但需要付出被喚起時的開銷。
再繼續擴展問題: 如果會話線程A 經過物理IO將數據頁1001讀入buffer之後,他需要修改這個頁,而在會話線程A之後的其他的同樣需要訪問數據頁1001的會話線程,即使在數據頁1001被入讀buffer pool之後,將仍然處於等待中。因為在數據頁上讀取或者更新的時候,同樣需要上鎖,這樣才能保證數據頁並發讀取/更新的一致性。
由此可見,當一個高並發的系統,出現了熱點數據頁需要從磁碟上載入到buffer pool中時,造成的延遲,是難以想像的。因此排在等待熱點頁隊列最後的會話線程最後才得到需要的頁,響應時間也就越長,這就是造成了一個簡單的sql需要執行幾十秒的原因。
再回頭來看上面的問題,mysql資料庫出現性能下降時,可以看到操作系統有讀IO。 原因是,在資料庫對數據頁的更改,是在內存中的,然後通過檢查點線程進行非同步寫盤,這個非同步的寫操作是不堵塞執行sql的會話線程的。所以,即使看到操作系統上有大量的寫IO,資料庫的性能也是很平穩的。但當用戶線程需要查找的數據頁不在buffer pool中時,則會從磁碟上讀取,在一個熱點數據頁不是非常多的情況下,我們設置足夠大的innodb_buffer_pool的size, 基本可以緩存所有的數據頁,因此一般都不會出現缺頁的情況,也就是在操作系統上基本看不到讀的IO。 當出現讀的IO時,原因時在執行buf_read_page_low函數,從磁碟上讀取數據頁到buffer pool, 則資料庫的性能則開始下降,當出現大量的讀IO,資料庫的性能會非常差。
⑨ 如何節省資料庫磁碟儲存空間
這個是經典問題了
是採用int型(自增量或手動增量),還是GUID還是聯合主鍵(combo)
考慮這些問題無非從高效性和易用性上進行考慮。下面列出四種主鍵生成方式優缺點的比較:
自動增長欄位
優點1. 使用簡單
缺點1. 不同資料庫獲取當前值方式不同;
2. 難以應用在多個資料庫間進行數據遷移的情況。
3.不能集群化
手動增長型欄位
優點1.可以獲得最新鍵值
2. 可以確保數據合並過程中不會出現鍵值沖突
缺點1.通常情況下需要建立一張單獨的表存儲當前主鍵鍵值;
2.增加一次資料庫訪問來獲取當前主鍵鍵值;
3. 考慮並發沖突等,增加系統的復雜程度。
4. 不能集群化
使用GUID
優點 1. 直接生成GUID,獲得最新鍵值以填充主鍵,使用方便;
2.可以確保數據合並過程中不會出現鍵值沖突;
3. 避免了前兩種方式獲取當前鍵值所增加的開銷。
缺點1.佔用較多存儲空間;
2.索引耗時;
3. 在多表鏈接查詢時效率不如int型
使用「COMB」類型
優點1. 保留GUID的已有優點;
2. 利用時間信息與GUID組合起來,增加有序性以提高索引效率。
缺點1.需要設計COMB的生成演算法;
2. 和GUID一樣佔用較多存儲空間;
3. 在多表鏈接查詢時效率不如int型,但優於GUID。
從上表的對比中可以看出,問題的焦點還是在是採用高效的,但可控性、可移植性差的整形,還是採用能使用GUID這樣可控性和移植性高,但是效率低,存儲大的字元型主鍵,真有點魚和熊掌不能兼得的味道。(COMB需要設計生成演算法,增加程序的復雜度,如果演算法不當,會產生意想不到的結果,GUID也可以通過優化索引的方式提升性能,暫不使用COMB)
從資料庫的角度來看,整形雖然查詢的效率最高,但是數據的合並、移植存在著很大的問題,同時高並發的情況下,各種整形的生成方式都面臨這問題,而且不利於集群化處理。而採用GUID生成方式的字元型,能很好解決集成和並發性的問題,但佔用空間大,查詢效率低可能成為系統運行後將出現的問題。
從程序開發的角度上看,整形生成方式的生成主鍵非常方便,但是主鍵的獲取,需要整個事務結束,才能從資料庫中取到,同時在多關聯表保存的時候,需要先保存主表,將產生的主鍵傳給字表,從而也可以造成性能的缺失,並且無法直接獲取主鍵,會增加程序開發處理的復雜性。而字元型的主鍵,需要程序人員自定義主鍵生成規則,需要認為的干預主鍵的生成,但是主鍵可以在插入資料庫之前就能拿到,方便程序的處理。
從系統數據的角度來看,業務數據可能存在大量的並發,採用GUID的方式是非常方便的,在數據級別很大的情況下,可以方便的進行集群化處理。檔案型數據並發量小,但是被引用的多,數據合並和集成的情況也很多,完全使用整形是不合適的,完全採用GUID,又會引起性能的缺失,需要更加折中的方案,既保證使用可控性較強的能唯一標識的字元串,同時又要盡量降低字元串佔得位元組數。而對於系統輔助數據,根據實際情況靈活使用,不做硬性統一,在數據量較小的情況下,盡量採用整形。
⑩ 資料庫的數據一般存放在磁碟中
資料庫的數據一般儲存在磁碟陣列中,和普通電腦的磁碟是不一樣的。