透過表象看本質

 前段時間,好友王胖子問了熊熊一個問題,他們的Oracle數據庫,有個主要的表空間設置的自動增加,每次增加100M,卻沒法知足業務需求,問了一下Oracle方面,說是自動增加的步長過小了,因而胖子在數據庫裏查詢了一下,有了如下的問題面試

胖子:「熊,在麼,問個問題?」 數據庫

熊熊:「? 啥問題」 ide

胖子:「看看,我這個數據文件設置的自動增加是100M,這個步長的單位是字節麼?」 工具

熊熊:「應該不是具體的數量,我真一時想不起來單位是什麼了」 spa

胖子:「我查了一下,我這個是12800,但是除以1024的話怎麼也不是100啊」 orm

熊熊:「讓我想一想,誰沒事關注他啊,咱們平時都是若是低於20%的可用空間,就自動增長數據文件了,那個自動增加只是給本身一個心理安慰罷了」 blog

胖子:「。。。」 事務

這段對話之後,熊熊以爲很沒面子,確實,歷來沒想過那麼深,對於這種表空間的容量激增狀況,大多數是採用再加一個數據文件,這樣也能下降I/O的負載,並且,頻繁的數據文件自動增加,若是步長不足,致使不能立刻知足增加需求,大量的DDL請求會致使死鎖,嚴重的話會拖垮數據庫,所以基本上熊熊對錶空間的增加都採用增長數據文件的方法,固然,存在即合理,既然有自動增加這個選項,確定是有其意義的,那麼究竟是怎麼回事呢,竟然沒深刻研究過,丟人啊~ ci

因而趕忙查官方文檔,終於找到了答案,以下圖所示 文檔

熊熊給每一個表空間都設置了自動增加,分別是每次5M10M不等,跟胖子說,我用的是10M自增加,因此每次是1280,你丫用100M,因此是12800,這樣的話確定沒有說服力,從官方文檔顯示,這個INCREMENT_BY表明的是所需的塊數,那麼一個塊默認是8K,這樣計算就有答案了。

1280*8192/1024/1024=10M

那麼胖子那邊的自增加就是12800*8192/1024/1024=100M,步長爲100M,這樣就合理了,讓胖子用alter命令從新改了步長大小,而且先再手工增長一個數據文件緩解燃眉之急。

經過這件事情,雖然不算啥大事,可是感受,學技術應該學本質,而不僅是知足於會作事,熊熊一直說技術不是重點,可是從未否定過技術不重要,這就像好比Oracle,你的RACDGGCGGTT等安裝配置弄的很熟練了,可是不瞭解真正的原理,不瞭解事務本質,出了問題,照樣無法解決,而後最後的辦法就是大不了重裝一下。

這個事讓熊熊想起了剛學計算機的時候,基本上Windows系統出點問題,就會重作系統,以致於老媽老是說,熊熊的系統不多用超過一個月,基本上總是看熊熊在裝系統~

就比如是去面試,面試官問咱們,備份策略如何考慮啊?一般你們應該是按照本身很熟悉的正向思惟去考慮問題,可是熊熊以爲不僅如此,應該透過問題本質,就是面試官問這個問題的實際含義,備份恢復是數據的重中之重,不會隨便問問技術細節,而是要問到本質,熊熊感受,應該考慮到對方的數據當量是多少? 如何考慮備份狀況,要保留多長時間,出了問題如何恢復,對業務的影響,數據是否須要審計,有沒有帶庫,存儲是否存在單點?有沒有作容災考慮,備份採用的是內置的腳本策略(好比RMAN)仍是第三方工具(好比NBUTSM),恢復的時間,操做的複雜性,模擬演練等,總之,我的認爲考慮的越全面,既是對本身的面試負責,也同時讓對方以爲你夠專業~

經過這件小事讓熊熊感受路還很長,光可以知其然還不夠,更要知其因此然,這樣咱們才能在工做中出現問題的時候作到不慌亂,井井有理~

一家之言,僅供參考~

相關文章
相關標籤/搜索