f 十二月 2018 ~ 迪貝之家

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.

MPP 初體驗 — PGXL

 這個solution我個人是覺得不能用,架構是很好,但我用dbt-3來進行測試,第三項throughput test 就是會hang 住;後來我用GreenPlum 進行測試,人家的系統可是一次就Pass。國外維護XL程式碼的那家公司2ndQuadrant 發了mail詢問我測得如何,我就直接說,你們家的東西不能用,結果對方回應我,很遺憾沒經過顧問的諮詢,你們做出了這個結論。這就怪了,你如果要推方案給我,是不是該主動進行POC給我看阿,怎會感覺是要我付錢給你來測給我看哩!!我會把數據貼出來供大家參考。
這是XL95在 factor 10下的測試結果,紅色框框部份結果空白,就是它測試不過
 XL10根本不用看了,它連第二項測試Power test都過不了。
數字沒比較,就看不出差異,所以我就測了Postgres 9.5 ,然後拿它的數據跟XL95進行比較
有興趣的人應該會想知道Q9、Q20及Q21到底是甚麼,文章最後我會把這三個SQL Query貼出來。
測試過程中一直失敗,我就一直在Intenet 谷哥相關資訊,所以就找到了GreenPlum的資料。一開始我還覺得以postgres 8.3這麼舊的系統為底子的東西有甚麼好測的,後來研究了一下,就想說隨便架設一個來測看看好了,想不到這隨便一架,dbt-3的三項完整測試就過了,當下我實在是無言,浪費那麼多的時間在XL的測試上頭,底下就是GP在Factor 10下的測試數據
光看GP 與XL第一張圖的比較,就可以看出差異了。
我當然也拿它跟Postgres 9.5做了比較。
GP 在dbt-3 Factor 30下我也測過,是OK的;反倒是Postgres 9.5 在這個資料量下的throughput test 同XL一樣會hang住,所以我就沒再繼續測下去。
在進行XL dbt-3 測試前,我用過pgbench 進行OLTP的測試,跟Postgres 9.5 的測試結果相比較的話,真是慘不忍睹,所以它也不能拿來當成線上交易系統來使用。
這是測試環境 :
Postgres XL 9.5及10 (三台主機, 9 nodes ) 測試環境 :
GTM and Coordinator 在獨立一台主機
Datanode * 8 分散在兩台與GTM不相同的主機
gtm proxy * 8 與 Datanode 放在一起
shared buffers 各2GB,共 18GB
dbt3 獨立於在上述三台主機
Greenplum Cluster 5.9 (三台主機, 9 nodes ) 測試環境 :
Master 在獨立一台主機
Segment * 8 分散在兩台與Master不相同的主機,各own 有4 segment
shared buffers 各2GB,共 18GB
dbt3 獨立於在上述三台主機
Postgres 9.5 Single instance 測試環境 :
db instance 一台 , shared buffer 18GB
dbt3 獨立於在上述postgresql 9.5 主機

Q9:
select  nation, o_year, sum(amount) as sum_profit
from  (
select n_name as nation, extract(year from o_orderdate) as o_year,
l_extendedprice * (1 - l_discount) - ps_supplycost * l_quantity as amount
  from  part, supplier,lineitem,partsupp,orders, nation
  where  s_suppkey = l_suppkey and ps_suppkey = l_suppkey and ps_partkey = l_partkey and p_partkey = l_partkey 
   and o_orderkey = l_orderkey and s_nationkey = n_nationkey and p_name like '%floral%'
 ) as profit group by  nation, o_year order by  nation, o_year desc;
 
Q20:
select  s_name, s_address
from
 supplier,
 nation
where
 s_suppkey in ( select ps_suppkey from partsupp where ps_partkey in (select p_partkey from part where p_name like 'papaya%')
   and ps_availqty in ( select 0.5 * sum(l_quantity) from lineitem
    where l_partkey = ps_partkey and l_suppkey = ps_suppkey and l_shipdate >= '1996-01-01'
     and l_shipdate < cast(date '1996-01-01' + interval '1 year' as date) ))
 and s_nationkey = n_nationkey and n_name = 'UNITED KINGDOM'order by s_name;
 

Q21:
select s_name, count(*) as numwait from supplier, lineitem l1, orders, nation
where s_suppkey = l1.l_suppkey  and o_orderkey = l1.l_orderkey  and o_orderstatus = 'F'
 and l1.l_receiptdate > l1.l_commitdate
 and exists (select * from lineitem l2 where l2.l_orderkey = l1.l_orderkey and l2.l_suppkey <> l1.l_suppkey )
 and not exists ( select * from lineitem l3 where l3.l_orderkey = l1.l_orderkey and l3.l_suppkey <> l1.l_suppkey
   and l3.l_receiptdate > l3.l_commitdate) and s_nationkey = n_nationkey and n_name = 'MOZAMBIQUE'
group by s_name order by  numwait desc,s_name LIMIT 100;