希格工作室

2011年9月10日 星期六

SQL2008手記 --- 規劃你的SQL SERVER 2008

規劃你的SQL SERVER 2008

1.選擇你的作業環境及硬體需求和功能,去配合所需版本。
3.盡量安裝到64位元的作業系統上,以獲得最大支援能力。
4.依你的SQL Server版本,盡量加大你的記憶體空間及速度(SQL是記憶體怪獸,根據預設值,SQL是會將記憶體全部配置給自己使用,有其它程式需要才吐出來給它,所以有多少吃多少,Web以上版本就支援到64GB了而Datacenter版本則是根本無限制。)
5.正式環境上不要和domain System或其應用程式混裝在同一台機器上(其一原因如上)
6.SQL Instance最多可以到50組,意思是同一台機器可灌50次相同或不同的SQL Sever版本,但是若沒必要就不需要這麼做。
7.最佳化的硬體分配,將tempdbData FilesTransaction Log拆放在與安裝位置不同的實體硬碟裡(額外還有SnapShot[快照]及備份資料)
8.若有需要,透過File Group再將 Data Files分別切割並存放在不同實體硬體裡(FG有兩種方式,一種是資料表資料分割,一種是資料表分別存放,依需要選擇)
9.若有需要,可將單純只存放SQL Server Data Files的硬碟在規劃時就格式化成64K的檔案配置(SQLpage是以8K為一單位,Table是以8個連續的page為最小基礎單位的)
10.透過磁碟陣列加快或安全化你的SQL Server資料保存及速度(官方建議為RAID 1,5,10,應該不會有人用RAID 0去存資料吧,快歸快,死了就全死了)
11.個人覺得別把T-LOG放在SSDT-LOG這東西是只要有任何活動,它都會直接寫入磁碟,所以I/O次數非常的大,雖然說SSD的寫入限制其實很大,但如果你不希望哪天突然SERVER突然當掉卻找不到原因的話(官方建議置於RAID0+1的環境下)
12.使用整合式Windows驗證,停用SA(2008預設停用),啟用強式密碼驗證。
13.安裝時決定好你的系統定序(中文版預設Chinese_Taiwan_Stroke_CI_ASInstance安裝後無法變更),它將決定非數值之排序與大小寫區分及其它。
14.事先決定好基本空間並給予一個合理的預設大小和成長緩衝。
15.設定適當且正確的資料庫及LOG的預期成長,不要使用預設值MB
16.使用SQL Profiler記錄你的使用者經驗,來改善資料庫規格,以提升效能。
17.完善的備份策略(悲觀的備份策略)
開始前的準備
l預設復原模式(recover mode)最好選擇完整(Full)
l定期進行業完整備份及差異備份
l瞭解Log運作及備份時機
l決定你的備份時間和備份用的裝置(硬碟、磁帶等)
l你能夠承受多少資料的損失?
l何時測試你的備份?
l不要任意變更復原模式,否則每次變更後,必須重做一次完整備份。
l鏡像備份到多個裝置上( MIRROR TO ) , 但此功能在2008上沒有介面,需透過指令設定,最多4個裝置(此為同步備份)
l備份策略最好包含System Database(tempdb可不備)
操作
1.建立備份裝置(Backup Device)
2.建立要備份的資料庫去對應備份裝置
3.第一次備份請用完整備份(Full Backup),並固定時間進行一次完整備份(如每月一次或每星期一次),或者只做第一次。
4.短區間內可進行自動排程的差異備份(Differential Backup)(如每日一次或兩次)
5.如遇移轉或問題時,可建立交易記錄的備份(T-Log)
6.T-Log也可隨時進行備份,在每次Full/Diff備份之間,但無論如何,還原時T-Log只有Full/Diff完後的最後幾次是有用的。
7.建立檔案群組(File Group - FG)並替FG建立各別備份,當FG損壞或誤刪改時,可只針對該FG進行還原而不影響其它DB與資料。
8.備份與還原都要謹記依序備份並依序還原,Full->Diff1->Diff2->Log
9.Copy Only的備份模式,僅以指令操作,該使用好處為不會打亂備份的順序。
10.完整備份請在離鋒時期或第一次建置時或壓縮後再操作,因耗用資源與時間較大,會影響正常使用者。
11.使用VERIFYONLY進行備份檔案(或裝置)的完整性驗證。
還原
1.瞭解需要還原的原因,若是災難復原,需先確定災難發生時間,以決定從什麼時間點的備份開始還原以及能救多少的資料。
2.無論如何,災難發生時記得先手動備份T-LOG,並視情況加上參數WITH No_Truncate,不把Log定義為可清除,以便重做
3.復原模式若是簡單(Simple Mode),則不需要救T-Log了,因為無法得知Log的時間點。
4.若損壞的包含System Database,則需先針對損壞的部份還原。
5.還原時記的要依序還原,而且只有最後一個階段才可下WITH Recovery,其它階段需為WITH NoRecovery
6.STOPMARK -- 在有備份T-Log情況下,若執行過的語法有使用交易(Tran)包起來,並且有給予其別名,亦可當做一還原點,可用來將異常點排除的T-Log還原,但是在還原點以後的資料都會漏失(包含造成異常或正常的語法資料)
7.還原master  database方式,啟動至Single-User Mode再還原,完畢後切還原樣,重啟服務。
8.model database有問題時,可在sql server啟動加註 –T3608 跳過model database,再還原它。`
9.FileGroup可以分開備份也可以分別還原,T-Log的還原不區分FG,在還原時會自行比對FG資料。
註記:
l   備份雖會清除LOG,但並不會釋放實體硬碟空間。
l   復原模式:簡單(Simple)無法建立Log的還原點;完整(FULL)可建立Log還原點;大量記錄(Bulk-logged)在特定處理大量資料時不記錄Log(DBCCbcp…)
l   SQL 2008支援Online Backup/Restore
l   有時master database若壞掉,會連登入都有問題,此時只能重建再還原它。
l   2008以後,還原前會強制要求先做一次T-Log備份,除非你下了With Replace
l   還原備份時的內部流程,先刪除DB,複製裝置(Data Copy)裡的資料成為新的DB,執行Recovery的重做(Redo)和不做(Undo)




以上是整理書上和實務上的經驗。


參考資料:MCTS SQL SERVER 2008 R2


(未完--持續修改)
Copyright by Sigglas 2011

沒有留言:

張貼留言