導讀:SYBASE公司在企業解決方案、電子商務應用(e-Business)、商務智能(BI)、移動與嵌入計算及企業級電子金融應用(e-finance)等領域為客戶提供了業界領先的技術,其SYBASE數據庫系統管理擁有許多成功的應用案例和廣泛的用戶群。在系統管理過程中,數據庫系統管理員(DBA)如果采取有效的措施,將使SQL Server持續地運行在高效率狀態下,並且可以盡快地解決系統故障,盡可能有准備地處理緊急事件,達到最小化非計劃停機時間的目的。
一、SYBASE數據庫系統管理之安裝完畢後應立即修改有關的缺省設置
SQL Server安裝完畢後,有些缺省設置沒有實際意義,因此DBA用sa登錄以後應該立刻進行修改。
1. 設置sa口令,並根據用戶安全管理的需要,通過sp_role向用戶授予角色,包括系統管理員(sa_role)、安全員(sso_role )、操作員(oper_role )。
2. 使用命令sp_diskdefault master、defaultoff關閉master設備作為缺省數據庫設備,同時應指定另一用戶數據庫設備作為缺省設備。
3. 增加tempdb的空間。
4. 為服務器命名。雖然安裝時在接口文件中記錄了服務器名,但如果你使用的Backup Server名非缺省值SYB_BACKUP,則必須在sysservers表中進行定義。具體命令為:spa ddserver[backup_server name]。
5. 設置常用的配置項。一般來說,我們需要立即修改的配置項有:“max online engines”,“total memory”,“additional network memory”,“max network packet size”,“number of devices”,“deadlock checking period”,“number of locks”,“lock promotion HWM”,“deadlock checking period”,“default data cache”等,尤其是和內存有關的配置項。
6. 設置常用的數據庫選項。使用sp_boption來許可或禁止一個數據庫選項。常用的選項有:“select into/bulkcopy”,“trunc log on chkpt”,“ddl intran”。
二、SYBASE數據庫系統管理之tempdb和性能
當SQL Server安裝完畢後,tempdb缺省駐留在master設備上,大小為2MB。為了獲得更好的性能,有以下兩點建議:
1. 在Unix平台上,把tempdb建在文件系統設備而不是裸設備上。
2. 把tempdb從master設備上移走。
Tempdb中的主要瓶頸是磁盤I/O,因此當tempdb的使用頻率很高時,出於性能的考慮DBA可考慮把tempdb在master設備上的2MB碎片移走,以便不使tempdb I/O與master設備上的其它活動發生沖突。另外,如果新增了更快速的存儲設備時,也希望能把tempdb從master設備移動到該設備上來。
有兩種方法可實現上述目標:
(1)使用sp_dropsegement方法。先把tempdb擴展(alter)到新的數據庫設備上, 然後使用sp_dropsegement依次從master設備上卸掉system、default和logsegment三個段。使用該方法可去掉master設備上tempdb的全部內容,但仍在mcaster設備上留下一塊完全沒有被使用的2MB碎片。
(2)修改系統表sysdatabases和sysusages,使tempdb完全從master設備上移走,並去掉2MB碎片。
具體操作過程如下:
①用Trace Flag 3608(僅恢復master庫)和-m選項,啟動SQL Server進入單用戶模式,以sa登錄執行下列命令,在新的存儲設備上創建tempdb的數據庫設備,然後將tempdb的有關信息從sysdatabases和sysusages表中移去。
1> dis k initn ame="tempdev", physname="/home/sybase/ temp.dat",
2> vdevno=[free vdevno],size=[x MB * 512]
3> go
1> disk init name="templogdev", phys-name="/home/ sybase/templog. dat",
2> vdevno=[free vdevno],size=[y MB * 512]
3> go
1> use master
2> go
1> deletef rom sysusages whered bid=2
2> go
1> delete from sysdatabases where dbid=2
2> go
1> checkpoint
2> go
1> shutdown with nowait
2> go
②用Trace Flag 3608和-m選項,重啟SQL Server進入單用戶模式,以sa登錄執行下列命令重建tempdb。
1> create database tempdb on tempdev=[x]log on templogdev=[y]
2> go
1> sp_dboption tempdb,"select into/bulkcopy",true
2> go
1> use tempdb
2> go
1> checkpoint
2> go
1> shutdown with nowait
2> go
③以正常模式重啟SQL Server(去掉Trace Flag 3608),用sa登錄執行下列命令,確認結果正確。
1> sp_helpdb tempdb
2> go
慎重建議:由於上述過程要修改系統表,如果操作有誤有破壞系統的風險,因此應首先寫好腳本,在開發機上測試確認無誤後再到生產機上執行。另外,如果我們將tempdb從master設備上移走,當master設備或tempdb駐留的新設備出現問題而需要恢復時,既費時又復雜,因此需要慎重考慮、權衡利弊。
三、SYBASE數據庫系統管理之使用冗余磁盤設備
為了避免因硬件設備的偶爾故障而引起數據庫的損壞,有必要考慮采用冗余的磁盤設備來保障數據庫系統的可用性。在具體實施時,可根據實際情況,綜合考慮安全性、性能、成本等諸方面因素,選擇在硬件級(如:RAID1、RAID5、RAID10)、操作系統級(如:AIX的邏輯卷拷貝)或SQL Server級建立數據庫設備的鏡像。如果采用既通過物理磁盤又通過磁盤控制器(adaptor)的方案來做雙重鏡像,則可以進一步減少潛在的故障和由此帶來的風險。
在選用SQL Server級的數據庫設備鏡像時,理想的解決方案是鏡像所有的數據庫設備,並且把事務日志和用戶庫放在不同的物理磁盤設備上。
關於SYBASE數據庫管理經驗就為大家介紹這門多,如果大家感興趣,以後我還會繼續為大家介紹更多的這方面的知識,希望大家能夠有所收獲。