f 十二月 2019 ~ 迪貝之家

Microsoft SQL Server Log Shipping

SQL 7就有的技術,簡單的說就是資料庫複本資料同步的技術,而這份複本可以開放讀取的功能以分散營業資料庫的負載,也可純粹當成備援資料庫,不管是在本地還是異地。怎麼達成? 透過SQL Agent自動化排程進行備份、傳檔及復原等作業。

Oracle GolGateden

機房搬遷跨Site能即時同步資料庫利器

Nagios 資料庫維運自動化

一開始設計這架構時,就排除使用remote agent的想法因為在專業分工的組織下,要求安裝新軟體於既有系統是一件不太可行的方案,既然身為DBA就只能把資料庫instance當作是一個最大的agent 想辦法在資料庫內做到我想做的事情

This is default featured post 4 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured post 5 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

Oracle 開啟Client 端Network Trace

這是一個AP Server 搬了網段之後,連不上RAC資料庫,就來找我這個DBA要求debug。這間公司的DBA到底是多麼卑微阿!!明明就是網段改變,不找網路單位trace封包,卻找我幫你debug,真是..........
被盧到一個不行後,我就只好在AP Server上安裝了一個instant client,然後於sqlnet.ora內設定下列參數,收集資料後就把case拋到metalink
TRACE_LEVEL
生氣的是,trace file丟上去了,他們的SRDC就一直回應你缺甚麼檔阿...有的沒的!!然後就遲遲沒回應。我火大了,乾脆我自己看,於是我就打開了trace file,當看到底下這段的時候,我就知道問題出在哪裡了!!

再往下的內容就是跟timeout有關
這個case是11個多月的case,為了抓上傳到metalink的檔案,以示整個case案例,我剛剛還特地上metalink找該case,結果case是查得到,但檔案不見了。所以我就只能口述囉,就是出現timeout字眼
其實重點是在於172.22.5.192這個IP是VIP,我一看到它,我就叫AP單位去開通AP Server 開通 SCAN IP + VIP 總共5個IP的1521 Port。防火牆的rule一開通,sqlplus 就能連進資料庫了
instant client
172.22.5.188是SCAN IP
如果你想了解SCAN是怎麼運作的去看這本書Pro Oracle Database 11g RAC on Linux網路上隨便找一找都可以下載得到

HA架構下, 怎麼綁定Oracle Listener 只聽Cluster IP

一般listener.ora是不會設定任何records,靠的是pmon daemon的自動註冊。單機架構下這麼處置當然是OK,因為listener預設是聽取主機上所有的IP,但是在Fail Over Cluter 的架構下不能這樣設定,不能讓AP連到Local IP,一旦發生問題,只有Cluster IP才能Fail Over。
最主要是要把local_listener 的系統參數做一個指向,有了那一個IP的指向,pmon就知道去你指定的IP註冊資料庫。
首先在你的tnsnames.ora 加上一筆你所指定要解析的local_listener的名稱
local_listener =
(DESCRIPTION =
(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.1)(PORT=1521))
)
192.168.1.1當然就是cluster IP
再來就是在listener指定聽取Cluster IP
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1521))
)
)
再來就是修改系統參數
alter system set LOCAL_LISTENER= 'local_listener' scope=both;

標紅字的部分,你可以任意取名稱,接著當然就是下上listener及資料庫。
今天是2020/07/24
在跟同事設定peacemaker ha時
發生如下錯誤
Jul 24 09:50:53 buohan1 oralsnr(listener)[21671]: ERROR: Probable Oracle configuration error
怪了~~ 上次怎麼沒發生 ??
後來我把實體IP加進listener.ora後
就解決了
我去比對了前一個環境
還真的沒有放實體IPㄝ.....
真是 .....怪了~~~

Postgres Table Bloat

這是一個跟AP單位溝通的案例

依照底下的數據, 表格大小大約32GB, 裡頭可用空間應該佔了一半以上54%
如果要把空間吐回給作業系統
那得透過vacuum full或者CTAS+DROP+RENAME 等方式來重整表格
依照Infra與AP部門間的默契,
要怎麼處置該表得由貴單位自己決定,因為這是物件level的管理
DB Team 僅提供數據給你們參考
怎麼調出數據的語法如下
你們想看其他表格的數據只要替換掉表格名稱即可
它是透過掃表的方式來取得每一個資料頁內部的數據
所以會比較耗I/O, 但不會影響到一般的交易
除非碰到有session 進行table lock,才會受它運作時的影響
table bloat


AP Leader 回問了autovacuum 的問題
因為他曾經幫我在客戶前說過話
我也就耐著性子回覆他所要的

Postgres 預設一定都會啟動autovacuum的功能
表格的可用空間54%
就表示autovauum 是有在持續地收回deadtuple 的空間
但是如果要把空間歸還給作業系統
就得重整表格

opensource 的世界其實很可愛

opensource 的世界其實很可愛,我也不過就是嚐試的問一下,有沒有解?人家還真的改了程式。真的搞技術的人,其實真的很可愛。這世界要是這麼可愛就好囉。
我在GitHub 上的詢問marshaller的問題
當然不能只靠社群,倒是將來本事夠了,可以借鏡他的code,寫出我自己的東西。

不用UI 安裝Oracle 12.2 on RedHat 7.4

同事這次是很負責啦!! 交付給我的作業系統環境該ready 的都ready了
連Oracle帳號及群組都主動建了出來,我想是為了設定VNC的登入環境來讓我安裝Oracle用的
不過~~建出來的帳號及群組帳號不是我要的阿
想要砍掉他所建立的Oracle帳號,建出我自己的時候....噗!!居然砍不掉
reboot os也不行!!後來去oracle 帳號帶起來的process名稱
才知道,原來是為了設定X環境喔.....
問題是....他環境丟出來後,人就休假去了.....我找誰溝通阿???
雖然沒有跟我壓Oracle環境的建置時間
但在這裡,哪裡來的好過日子,拖到下個禮拜人回來再進行的話
搞不好有人又會借題發揮...實在是......
想了一想...乾脆建其他帳號來取代Oracle這個帳號好了
但是X環境怎麼辦 ??
我又不想花那個時間研究及修改他的設定
轉念一想,18c的安裝我用過silent mode,查查看12.2 是否支援好了!!
谷歌了一下, 國外有人寫得很完整,幾乎完全是照他的步驟就做得出來了
Install Oracle in silent mode 12C Release 2 (12.2) on OEL7
當然得修改response file及.bash_profile內容來符合環境
有點怕他的網頁會消失
還是把我自己的response file 放到git好了
反正就是三個步驟嘛!!
1. 安裝軟體
./runInstaller -silent \
-responseFile /u01/database/response/db_install.rsp
這個裝完之後,當然就是打上今年第四季的Patch
DB RU : p30138470_122010_Linux-x86-64
OJVM  : p30133625_122010_Linux-x86-64
2. 建立listener
netca -silent \
-responseFile /u01/database/response/netca.rsp
3. 建立資料庫
dbca -silent -createDatabase -responseFile /u01/database/response/dbca.rsp
response file
response file