iT邦幫忙

0

請問VM的架構,對於SQL的設計,會有甚麼不一樣嗎

vm
vamos168 5 年前8681 瀏覽

我們公司在正委外一個專案,專案有SQL資料的交換運算,我也正在規劃,是要放在中華電信的雲端,還是自己買硬體,架設VM,但之後若是使用端增加,必須在VM多增加幾台SERVER出來,但是SQL好像不能拆開吧,我要問的是,SQL的設計與一般的SERVER與VM會有甚麼不一樣嗎

ganymede iT邦好手 1 級 ‧ 5 年前 檢舉
資料庫不管在一般 server 或 VM 上都一樣, 惟一的差異性是您資料庫的負載重不重? 如果資料庫負載很重, 真的不建議放在 VM 上面, 真的不得已一定要用 VM, 切記一定要把放 db 檔放在實體硬碟上, 再由 VM 去掛實體硬碟.
slime iT邦大師 1 級 ‧ 5 年前 檢舉
應該先把 SQL 架構規劃好.
專案用到的資料庫有多大, 每日/月/年增長的資料量有多大?
哪些資料是會定期刪除的(例如: 日交易資料), 哪些是長期保存的?
一個使用者會用到多少資料? 預估使用者增長量多少?

再來依資料量, 預估可能需要擴充的時間點. 包括 CPU, RAM, 網路頻寬, 硬碟.
擴充時是否需要 SQL 的某些功能? 再選擇 SQL 版本與授權數. (例如: 之前看過 MS-SQL 可以拆 table , 把太久以前的資料搬到另一個 Volume )

而 VM 的部份實在看不出來要做什麼用, VM 適合的是太多主機負載不高而可以整合, 減少硬體. 既然您都寫"使用端增加", 應該是主機負載很高才會"多增加幾台SERVER", 不然應該去考慮授權數的算法, 而不適合用 VM 處理.
10
wiseguy
iT邦超人 1 級 ‧ 5 年前
最佳解答

你的雲端概念有些不正確。

  1. VM 是雲端服務提供者,把強力高效的電腦,分成幾個 VM 服務來提供不同的客戶需求。並不是分越多 VM 就能服務越多使用者端。你一台實體主機,分再多的 VM 還不都是吃同一台硬體資源嗎?還多弄這層 VM 在消耗資源,豈不是多此一舉?

  2. SQL 本身就是一個抽象層,所以後端不管是實體 DB server,或者是雲端 DB service,AP 端均不必做任何改變,均對同一個接口做 DB 存取,至於 DB 後端該怎麼把 DB server 變成是 High Available、Load Balance 的雲端服務,就跟你就沒關係了,你使用端就當它是一台 DB 就好了。

6
外獅佬
iT邦大師 1 級 ‧ 5 年前

vamos168提到:
SQL好像不能拆開

怎麼會??
用cluster去做就可以了啊...
如果用了SQL Server 2012...還可以搭配always on去做...

外獅佬 iT邦大師 1 級 ‧ 5 年前 檢舉

就我粗淺的知識... .net 使用sqlclient provider...可以指定 failover partner...

charmmih iT邦研究生 5 級 ‧ 5 年前 檢舉

SQL好像不能拆開

一個系統在一個資料庫交易通常就綽綽有餘, 若負載大是沒調校好...
一個系統若在多個資料庫交易, 會要處理資料同步一致性...等問題, 是很複雜...

SQL Server 2012...還可以搭配always on去做...

SQL2012的Always on 也僅允許主資料庫做交易, 其他待命資料庫僅能做查詢

外獅佬 iT邦大師 1 級 ‧ 5 年前 檢舉

charmmih提到:
主資料庫做交易, 其他待命資料庫

記得以前有做過類似的東西....不過,那是搭配replication做的...
讀寫分離的作法,分散資料庫的負載...

6
u8526425
iT邦大師 1 級 ‧ 5 年前

資料庫主機另外有一個特性
就是記憶體與硬碟I/O要求比較高
VM是一種資源共享的環境
如果貴單位的資料庫效能需求逼近或超出廠商所提供的虛擬主機
廠商可能會

  1. 要求遷出
  2. 加錢
  3. 做I/O控制, 讓你的服務慢一點
    這個也要考量一下
6
insider
iT邦研究生 5 級 ‧ 5 年前

If MS Azure cloud computing available in the region, may try to deploy on it ==>Microsoft SQL Azure Database is a cloud-based relational database service that is built on SQL Server technologies and runs in Microsoft data centers.
As I know, Singapore and HongKong have the Azure cloud data centers to ensure 99.95% SLA+ NOC+SOC+DR+Audit requirements.

4
carl830
iT邦研究生 5 級 ‧ 5 年前
  1. 以SQL的設計來看,並無差別
  2. 以實體和VM來比,實體機器效能會比較好,會想使用VM應該會是因為幾個好處:
    (1) 管理方便
    (2) 如果系統負載不大的話,利用VM的方式將多個服務放在同一個Server會是節省成本的好辦法,不過如果你只有一個服務的話,可能還不如就直接用實體的了,除非非常考慮上面管理方便這點
    壞處:
    (1) 效能差,VM特別是硬碟IO的部份效能比較沒那麼好,所以一般可能不會推荐DB使用VM的方式
  3. 以放雲端和自己架設VM來看,放在cloud的好處:
    (1) 節省硬體維護成本
    (2) 管理商通常會保證HA這一部份
    其他:
    (1) 如果要處理資料的server在本地端而DB在cloud,速度應該會滿差的,可以的話就一起放cloud或是本地端

我要發表回答

立即登入回答