导读: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数据库管理经验就为大家介绍这门多,如果大家感兴趣,以后我还会继续为大家介绍更多的这方面的知识,希望大家能够有所收获。
【编辑推荐】