高穩定、高效能、高安全資...

Preview:

Citation preview

高穩定、高效能、高安全資料庫系統SQL Server 2008資料庫管理體驗營(1)

陳俊宇 http://sharedderrick.blogspot.com/

精誠公司 恆逸資訊

討論主題

營運持續管理

提昇資料安全性,降低支出成本

降低儲存成本

營運持續管理

容錯移轉叢集資料庫鏡像點對點複寫記錄傳送線上索引作業與線上還原熱新增 CPU與熱新增記憶體

容錯移轉叢集(1)容錯移轉叢集(Failover Clustering)

提供熱備援(Hot Standby)機制防護各個節點伺服器不會有已完成認可(Commit)資料的損失支援版本:SQL Server 2008 Standard、Enterprise Edition

整合Windows Server 2008叢集伺服器功能更簡易的叢集伺服器設定工具支援 16 個節點支援SAS、iSCSI、FC支援 GUID 磁碟分割表(GPT)的磁碟叢集仲裁(Cluster Quorum)的改善

包含整個叢集組態設定利用多數節點集合或複合多數節點集合與仲裁資源模式設定叢集不會成為單一點故障

容錯移轉叢集(2)

節點 B節點 A

私有網路,用於傳送 -跳動訊息 (heartbeat message)

節點 B

共用的叢集磁碟

虛擬伺服器

對外的公眾網路

客戶端

資料庫鏡像(1)

資料庫鏡像(Database Mirroring)叢集替代方案

熱備援

無硬體限制

支援個別使用者資料庫執行容錯移轉

資料庫鏡像的成員模型主體伺服器(Principal Server)

鏡像伺服器(Mirror Server)

見證伺服器(Witness Server)

支援版本Standard、Enterprise Edition

資料庫鏡像(2)

各自獨立的磁碟儲存體

主體伺服器

鏡像伺服器

客戶端

見證伺服器

新的主體伺服器

超快感3 秒鐘

(Immediate)

資料庫鏡像新增強的功能效能再提昇

備份壓縮

自動修復頁面可處理的錯誤類型:823、824、829在背景中執行的非同步程序避免錯誤的資料分頁造成資料庫無法提供服務

主體伺服器偵測到錯誤的資料庫分頁從鏡像伺服器要求正確的分頁

支援不使用完整網域名稱(FQDN)

壓縮傳輸的交易記錄

自動修復損毀的資料頁

主體

見證

DataLog

鏡像

Data Log1. 偵測到分頁錯

X

2. 要求分頁

3. 找出分頁

4. 取回分頁

5. 傳輸分頁

6. 寫回分頁

資料庫鏡像

點對點複寫(1)

點對點複寫(Peer-to-Peer Replication)提供熱備援每個節點(Node)的位階均相同

兼任發行者(Publisher)、散發者(Distributor)、訂閱者(Subscriber)

複寫整個資料庫大幅提升效能沒有硬體限制已完成認可(Commit)資料,有可能來不及執行複寫利用備份檔案即可啟始複寫機制支援版本

Enterprise Edition

點對點複寫(2)

Log Reader Agent

DistributionAgent

New York

Log Reader Agent

DistributionAgent

Taipei

Log Reader Agent

DistributionAgent

Seattle

Log Reader Agent

DistributionAgent

New York

點對點複寫新增強的功能

使用「設定點對點拓撲精靈」

輕鬆設定

線上新增節點

衝突偵測使用「衝突檢視器」來確認偵測到的衝突

設定衝突警示(Alert)

點對點複寫

記錄傳送(1)

記錄傳送(Log Shipping)對交易記錄檔,定期自動執行「備份(Backup)」、「複製(Copy)」「還原(Restore)」

適用於使用者資料庫

支援一對多的記錄傳送

支援版本Web、Workgroup、Standard、Enterprise Edition

記錄傳送(2)

監視伺服器

主要伺服器

次要伺服器(可多台)

3. 還原交易記錄

1. 交易記錄備份

LogBackup

2. 複製交易記錄檔

LogBackup

記錄傳送新增強的功能

備份壓縮

主要的高可用性技術之分析功能 資料庫鏡

像容錯移轉叢集

點對點複寫

記錄傳送

資料遺失 依據模式 無 可能 可能

容錯移轉 可自動執行 自動執行 手動 手動

移轉時間 數秒 ~ 20+ 秒 手動決定 手動決定

使用特殊硬體

不需要 Shared Storage 不需要 不需要

支援多點備援

無 無 有支援 有支援

是否可查詢備援伺服器

搭配資料庫快照

不支援 支援 搭配 WITH STANDBY 選項

保護單位 使用者資料庫

節點伺服器 使用者資料庫 使用者資料庫

傳輸距離 TCP/IP 磁碟連線線材 TCP/IP TCP/IP

資料異動的效能衝擊

較高 無(A/P mode) 低 低

線上索引作業與線上還原

減少計畫性停機的時間

支援Enterprise Edition

線上索引作業(Online Index)ONLINE 選項

可讓並行使用者存取基礎資料表

線上建立(CREATE)、線上重建(REBUILD)、線上刪除(DROP)

線上還原(Online Restore)在資料庫還在線上時,還原資料

熱新增 CPU與熱新增記憶體減少計畫性停機的時間熱新增 CPU

將 CPU 動態新增到執行中系統的功能可發生於實體上新增硬體、邏輯上進行線上硬體分割或是虛擬上透過虛擬化層時作業系統

64 位元版本的 Windows Server 2008 Datacenter、Enterprise Edition

支援SQL Server 2008 Enterprise Edition

熱新增記憶體不需要重新啟動伺服器即可增加實體記憶體

硬體廠商支援特殊的硬體

作業系統Windows Server 2003/2008 Enterprise、Datacenter Edition

支援SQL Server 2008 Enterprise Edition

提昇資料安全性,降低支出成本

可延伸金鑰管理透明資料加密

全方位的防禦機制

更安全的資料存取更安全的配置

多樣的驗證機制

更微細的授權權限

協助保全資料金鑰加密資料

透明資料加密 (TDE)

可延伸金鑰管理 (EKM)

防禦術安全性稽核

企業層級的安全原則

安全機制:SQL Server 2005

威脅與挑戰 增強的功能弱式密碼 密碼原則機制:增強式密碼

缺少稽核的資料 利用DDL 觸發程序、登入觸發程序

機密資料的保護 內建:密碼片語(PassPhrase) 、對稱金鑰(Symmetric)、非對稱(Asymmetric)、憑證(Certificate )的加密功能

保護Metadata 安全性目錄檢視

需要各層級的權限配置 精確的顆粒權限:伺服器層級、資料庫層級、結構描述層級、物件、資料行...等

更安全的開發:最小權限原則 模組簽署、內容切換:EXECUTE AS

保護連接的安全性 登入帳號密碼已經加密、使用憑證、端點(Endpoint)

24

資料加密

資料加密透過密碼、加密金鑰等方式讓資料變成模糊無法識別讓具備管理權限的人員或是入侵的駭客,也無從得知資料的原貌早期的資料加密作業

多半是由前端應用程式自行控制需要使用大量的 CPU資源加密金鑰與加密資料一起存放

SQL Server 2005內建:密碼片語、對稱金鑰、非對稱、憑證的加密功能使用 SQL Server 作為金鑰管理加密檔案系統 (Encrypted File System,EFS)BitLocker 磁碟加密功能

SQL Server 2008可延伸金鑰管理(Extensible Key Management,EKM)透明資料加密(Transparent Data Encryption,TDE)

可延伸金鑰管理 (EKM)

使用「硬體安全性模組」(Hardware Security Modules,HSM)

廠商可以對 HSM、金鑰組態和金鑰存取提供管理軟體 -- MSCAPI提供者

SQL EKM金鑰提供代理功能來存取HSM金鑰

讓 SQL Server 可以使用由協力廠商所開發的模組元件,支援進階加密功能和金鑰管理函數

SQL EKM Provider DLL

SQL EKM Key(HSM key proxy)

Data

SQL Server

HSM

EKM的特性

優點安全性

外部加密金鑰儲存 (實體分隔資料和金鑰)

企業能中央管理與儲存金鑰機制

額外的授權檢查 (啟用責任分隔)

分隔資料庫擁有者(db_owner)與資料擁有者(data owner)

效能硬體架構加密/解密的效能高

限制適用 Enterprise版本

EKM密碼編譯提供者與金鑰

EKM提供伺服器層級物件CREATE CRYPTOGRAPHIC PROVIDER DataSafeProvider

FROM FILE = 'DataSafeProvider.dll'

使用EKM的金鑰管理-相同的T-SQL

CREATE SYMMETRIC KEY SymmKeyEkm

FROM Provider DataSafeProvider

WITH ALGORITHM AES_256 …

使用-相同的T-SQL檢視金鑰資訊、資料的加解密等

EncryptByKey、DecryptByKey、EncryptByAsmKey、DecryptByAsmKey 等

EKM 金鑰的階層結構

HSM

Data Data

Native Symmetric key

TDE DEK key

EKM Symmetric key EKM Asymmetric key

SQL Server

Symmetric key Asymmetric key

透明資料加密(TDE)

無需修改應用程式

在資料庫層級:加密與解密

使用資料庫加密金鑰 (DEK)

DEK 使用以下的方法來保護

憑證

硬體安全性模組(HSM)

必須有DEK還原資料庫

附加資料庫檔案

SQL Server 2008

DEK

應用程式

被加密的資料頁

TDE-加密金鑰階層

加密資料選用 AES 或是 3DES加密演算法來雖然會增加 CPU使用量,對於效能的衝擊很低,也不會增加資料庫的使用空間執行資料庫備份作業時,也無須特別處理。

運作原理先對存放在記憶體的資料頁面(Page)進行加密後,再寫入到磁碟上。完成加密後,使用總和檢查碼(checksum)進行分頁保護機制。需要解密的分頁載入記憶體之前,會先檢查總和檢查碼,事先即可偵測分頁是否有受損。資料分頁進行解密,再載入到記憶體內。

使用 TDE 的理由

保護機密資料(data at rest)

整個資料庫受到防護

應用程式無需修改索引或資料類型也沒限制(但不支援 FileStream)

對於效能衝擊很小

備份時無需使用金鑰

33

TDE 使用情境

阻斷使用者直

接存取資料庫

的檔案系統

符合規範:保

護機密的靜態

資料(data at

rest)

防禦未經授權

的使用者取得

資料庫備份檔

沒有使用憑證或HSM解開金鑰,將無法開啟資料庫

使用 TDE 的考量

可與資料壓縮一併使用不建議與備份壓縮一併使用資料庫鏡像

複製憑證到主體與鏡像伺服器上

將虛擬記錄檔案 (virtual log file) 內的其餘部分設為零,以強制使用下一個虛擬記錄檔案

無法使用立即檔案初始化(instant file initialization),對於復原資料庫、取得磁碟空間,有負面影響

一旦某一資料庫使用 TDEtempdb 系統資料庫也將加密,這對於未啟用 TDE 的資料庫將會有效能的影響

適用 Enterprise版本

透明資料加密(TDE)

降低儲存成本

備份壓縮資料壓縮

縮減磁碟IO,進而提升執行效能

磁碟系統提供的倍數成長的使用空間(由GB邁向TB)

執行效能卻未能有倍數的提升

面臨的挑戰,舉例來說備份與還原資料庫的時間大幅拉長

資料量愈大,造成系統在存取大型資料表時,過多的時間耗費在磁碟 I/O上

SQL Server 2008 新增加備份壓縮(Backup Compression)

資料壓縮(Data Compression)

備份壓縮的效能分析

增加 CPU 的使用量以 AdventureWorks 資料庫為例

使用備份壓縮的環境,整體的 CPU 使用量增加了10%,但是備份的時間,大幅縮減了 45%,而且備份壓縮下來的檔案約是原來大小的 25% 左右在進行還原資料庫時,使用備份壓縮的環境,整體的 CPU 使用量增加了 6.5%,但是還原的時間,大幅縮減了 50%。

建議搭配 資源管理員 來限制備份壓縮的 CPU 使用量雖然會讓備份的速度受到衝擊,但是仍然擁有還原備份檔案時的優勢

適用 Enterprise版本但是備份壓縮的備份集檔案,是可以還原到 SQL Server 2008 其他的版本上

備份壓縮所節省的時間與空間

0

60

120

180

240

0

100

200

300

400

Uncompressed Compressed

Ba

ck

up

Tim

e (

min

)

Ba

ck

up

Siz

e (

GB

)

Database Backup

Backup Size (GB) Backup Time (min)

0

25

50

75

100

125

150

0

500

1000

1500

2000

2500

3000

Uncompressed Compressed

Bac

kup

Tim

e (

sec)

Bac

kup

Siz

e (

MB

)

Transaction Log BackupBackup Size (MB) Backup Time (sec)

客戶案例 備份壓縮節省的空間 備註

RedPrairie WMS 84% Retail ISV application. Backup time 43% faster.

BWIN.com 74% DB size 1.27 TB, Backup size 0.32 TB

NASDAQ 80% System Resource Allocation post trading system.

GE Healthcare 71% Patient health records database

First American Title

74% Uncompressed backup size = 1.88TB, Compressed backup = 482GB

SAP ERP 80% TLog backups compressed 2x.

Caregroup 85% Database size = 110GB, backup size= 26 GB.

ServiceU 85% Event log archiving database.

0

10

20

30

40

0

400

800

1200

1600

Compressed Uncompressed

Re

sto

re T

ime

(Se

c)

Restore Performance Compressed vs. Uncompressed Backup

Restore Time (Sec) % CPU

備份壓縮(Backup Compression)

資料壓縮

分成資料列壓縮、頁面壓縮

資料壓縮依據其資料行的資料類型,資料值的重複性等等適用物件

叢集索引、非叢集索引、堆積結構的資料表、索引檢視、資料分割資料表與其索引

增加 CPU 的使用量減少存取磁碟 I/O所造成的負載

增加記憶體的重複使用率資料在記憶體內也是持續保持被壓縮狀態

磁碟系統的挑戰額外多使用一點 CPU資源,進而提升系統的整體執行效能

適用情境資料倉儲、報表系統等等

適用於 SQL Server 2008 Enterprise

資料列壓縮(Row Compression)

無需修改前端應用程式

頁面壓縮(Page Compression)

執行以下三種壓縮作業資料列壓縮(Row Compression)

前置詞壓縮(Prefix Compression)

字典壓縮(Dictionary Compression)

前置詞壓縮(Prefix Compression)

壓縮後在第一個資料列的第一個資料行中,值 4b 指出該資料列有前置詞 (aaab) 的前四個字元以及字元 b。這會產生值aaabb,也就是原始的值。壓縮資訊 (CI) 結構

字典壓縮(Dictionary Compression)

在完成前置詞壓縮後,就會套用字典壓縮。字典壓縮會搜尋頁面上的任何位置是否有重複的值,然後將它們儲存在 CI 區域中與前置詞壓縮不同的是,字典壓縮並不是限定於單一資料行。字典壓縮可以取代頁面上任何位置的重複值請注意,值 4b 已由頁面的不同資料行參考

資料壓縮(Data Compression)

結論

使用SQL Server 2008營運持續管理

提昇資料安全性,降低支出成本

降低儲存成本

參考書

SQL Server 2008管理實戰

SQL Server 2008管理實戰

49

Recommended