1概述
70年代,随着大型共享应用的普及,美国公司基于当时的关系代数理论所提出的数据库关系模型,开发了系统;
Sybase是基于SQL(StructuredQueryLanguage)的着名关系模型数据库系统,是世界上最流行的DBMS软件之一;它能在多种计算机硬件平台上运行,并能通过连网形成分布式数据库环境;
SQLServer是指运行在主机上,能提供SQL语言查询、修改或控制数据库中内容等操作的一个服务,形象地把它理解为一个数据库;一般地数据库服务器有DataServer和BackupServer两个服务进程组成。数据库就是一系列表格(关系)所描述的客观世界中事实的集合;Sybase中的系统数据库基本包括有:master、model、sysprocs、tempdb,其它为用户库。
SybaseAdaptiveServerEnterprise12.5是Sybase公司开发的智能型数据库。
现场Sybase数据库系统结构
1.1参考资料
《SYBASE数据库维护快速参考手册Version1.1》,SYBASE公司出版
2基础操作、和维护
2.1安装Sybase12.5
包括安装前环境配置、安装过程说明、安装成功测试、卸载等。
(详细请参考V1.00》)
2.2访问SQLServer
在安装配置好的Sybase服务器,可以通过以下操作开始访问SQLServer进行数据的查询和控制等操作:
%isql–U用户名–S服务名?
password://该处输入该明户的密码
2.3Sybase的启动和关闭
2.3.1启动Sybase数据库
在$SYBASE/ASE-12_5/install目录下执行startserver命令启动Sybase数据库,如:
%$SYBASE/ASE-12_5/install/startserver-fRUN_服务名
%$SYBASE/ASE-12_5/install/Startserver–fRUN_服务名_BAKUP
2.3.2关闭Sybase数据库
使用isql命令登录Sybase数据库系统,在查询sysservers表查看可关闭的服务,如
isql–Usa-Sjoli
Password:
1>selectfromsysservers
2>go
一般需要关闭的服务有:服务、系统主服务
在isql提示里先关闭系统备份服务(默认为SYB_BACKUP),再关闭主服务(默认可以不输入主服务名),如:
1>shutdownSYB_BACKUP
2>go
1>shutdown
2>go
2.4Sybase用户管理
2.4.1创建登录用户(login)
sp_addloginlogin_name,passwd[,defaultdb[,deflanguage[,fullname]]]
例子:
1>sp_addloginjoli,joli,joli_db
2>go
2.4.2删除登录用户(login)
例子:
1>sp_droplogintest
2>go
2.4.3创建数据库用户(user)
sp_adduserlogin_name[,name_in_db[,grpname]]
例子:
1>sp_adduserjoli,joli
2>go
2.4.4删除数据库用户(user)
例子:
1>sp_dropusertest
2>go
2.4.5修改该用户为该数据库dbo
例子:
1>usejoli_db
3>sp_changedbownerjoli
2.4.6查看数据库用户
sp_displaylogin[login_name]
sp_helpuser
例子:
1>sp_helpuser
2>go
1>sp_displaylogjoli
2>go
1>sp_who
2>go
2.4.7修改用户口令
如果是修改sa口令,可用sa用户登录,然后执行以下命令修改
1>sp_password“旧命令null”,”new_password”
2>go
如果不是sa用户,则使用希望修改口令的user登录数据库,然后执行
1>sp_password旧命令,新命令
2>go
2.4.8修改系统缺省设备
?关闭创建数据库master缺省设备:
?1>execsp_diskdefault"master","defaultoff"
?指定user_db_dev为缺省设备:
?1>execsp_diskdefault"user_db_dev","defaulton"
2.5创建、删除、修改Sybase设备、数据库
2.5.1创建设备
例子:
1>diskinit
2>name="joli_dev",
3>physname="/opt/sybase/joli/joli_dev.dat",
4>vdevno=9,
5>size=51200
6>go
说明:
物理设备名称为:joli_dev
物理设备文件路径为:/opt/Sybase/joli/joli_dev.dat
设备编号(该号不能重复)为:9
大小(单位为2K)为:100M
(一般为用户数据库创建一个数字设备后,再单独为用户数据库创建一个日志设备)
2.5.2镜像设备
例子:
1>diskmirror
2>name="joli_dev",
3>mirror="/opt/sybase/joli/joli_dev_mirror.dat"
4>go
说明:
创建设备joli_dev的镜像,镜像后的镜像设备为/opt/sybase/joli/joli_dev_mirror.dat。
检查某设备是否被镜像,可使用“sp_helpdevice设备名”查看。
2.5.3终止设备镜像
终止设备可分为:终止主设备和终止次设备两类,同时还可选择是临时性终止还是永久性终止。(如果是永久终止,还需要在上删除物理设备文件)
diskunmirror
name="设备名"
[,side=”]”
[,mode=]
//终止主/次设备:primary/secondary(缺省次)
//临时/永久终止:retain/remove(缺省临时)
例子:
1)临时终止主设备
1>diskunmirror
2>name="joli_dev",
3>side="primary",
4>mode=retain
5>go
2)永久终次主设备
1>diskunmirror
2>name="joli_log_dev",
3>side="primary",
4>mode=remove
5>go
恢复临时终止的镜像:n
例子:
1>diskremirror
2>name="joli_dev"
3>go
2.5.4删除设备
需要确定该设备上没有数据库。
例子:
1>sp_dropdevicetest_dev
2>go
再删除操作系统设备文件。
2.5.5查看设备状态
例子:
1>sp_helpdevice[设备名]
2>go
说明:
可查看设备是否镜像(相关镜像类型、是否有临时取消镜像等)等配置。
2.5.6创建数据库
例子:
1>createdatabasejoli_dbonjoli_dev=50logonjoli_log_dev=20
2>go
说明:
创建用户数据库joli_db,该数据库在设备joli_dev设备上,可使用大小为50M;日志存储在joli_log_dev设备上,可使用大小为20M。
2.5.7扩展数据库:
alterdatabasedb_nameondevice_name=size,device_name=sizelogondevice_name=size,device_name=size
例子:
1>alterdatabasejoli_dbonjoli_dev=10logonjoli_log_dev=5
2>go
说明:
数据库joli_db在设备数字joli_dev上扩展10M,在日志设备joli_log_dev上扩展5M。
2.5.8删除数据库:
dropdatabasedb_name
例子:
3>dropdatabasejoli_db
4>go
2.5.9上线数据库
例子:
1>onlinedatabasedb_name
2>go
2.5.10检查数据库状态
一般性检查n
1>sp_helpdb
2>go
系统性检查n
所有库检查:
1>dbcccheckdb
2>go
指定用户数据库检查:
1>dbcccheckalloc
2>go
2.6Sybase日志管理
在创建用户数据库的时候,应尽量为事务日志创建独立的日志设备(一般创建为数据库大小的20%),这样可以单独备份事务日志、防止数据库溢满、可以看到事务日志的占用情况及可以镜像等。
dumptransactiondb_namewithtruncate_only//不备份事务日志,直接清除。
dumptransactiondb_namewithnolog
dumptransactiondb_nameto“路径/名字”//备份事务日志
检查log大小n
1>dbccchecktable
2>go
快速查看log大小
1>selectdata_pgs
2>fromsysindexeswhereid=8
3>go
2.7修改Sybase系统缺省参数
可修改$SYBASE/ASE-12_5目录“服务名.cfg”文件,重新启动Sybase服务来修改Sybase系统参数。
也可使用Sp_configure来修改部分动态参数。
查询当前所有的参数配置n
1>sp_configure
2>go
查询可动态修改的参数n
1>sp_configure“abcdef”
2>go
查询特定参数的配置情况n
1>sp_configure“参数名
2>go”
修改可动态配置的参数n
1>sp_configure“参数名”,值
2>go
一般可视情况酌情修改以下参数:
cachesize、numberofopendatabases、numberofopenobjects、numberofopenindexes、partitiongroups、numberoflargei/obuffers、numberofdevices、defaultnetworkpacketsize、maxnetworkpacketsize、numberofremoteconnections、numberofremotelogins、numberofworkerprocesses。
2.8修改数据库个例配置
每个在设备上创建的数据库,都可设置如下参数:
aborttranonlogfull、allownullsbydefault、autoidentity、dbouseonly、ddlintran、disablealiasaccess、identityinnonuniqueindex、nochkptonrecovery、nofreespaceacctg、readonly、selectinto/bulkcopy/pllsort、singleuser、trunclogonchkpt、trunc.logonchkpt.、uniqueauto_identityindex
可通过sp_dboption[db_name,"option_name",]命令来修改这些参数的配置。
例子:
1>usemaster
2>go
1>sp_dboptionjoli_db,"trunclogonchkpt",true
2>go
说明:
检查点时,清除以前的日志。如果设置为off,则一直保留日志,继续增长,直到使用dumptransaction命令。
2.9网络服务配置
UNIXn
在$SYBASE目录下,interfaces文件提供用户服务名的配置。一般通过执行命令dsedit来做修改。
执行dsedit后,根据提示,一步一步的添加、修改即可完成配置。
Windowsn
启动dsedit,选择serverobject->add,向server中新添一个数据源,在其属性“serveraddress”中输入IP,Port。
2.10检查数据库的版本
1>Select@@version
2>go
2.11数据库坏页最小影响维护
在数据库发生可疑坏时,会脱机整个数据库(缺省),可以设置只脱机该可疑页(系统数据库不能改变)。
sp_setsuspect_granularity[dbname[,[,"read_only"]]]
sp_setsuspect_threshold[dbname[,threshold]]
(必须具有sa_role且在master数据库中使用)
查看、修改n数据库当前脱机设置
1)查看设置为数据库脱机还是页脱机
1>sp_setsuspect_granularityjoli_db
2>go
2)设置数据库为页脱机
1>p_setsuspect_granularityjoli_db,”page”
3)查看设置的最大脱机页(缺省最大可可疑20页,超出该20页,一样会脱机数据库)
1>sp_setsuspect_thresholdjoli_db
2>go
4)修改数据库最大可脱机页为300
1>sp_setsuspect_thresholdjoli_db,300
2>go
显示可疑页:sp_listsuspect_dbn
详细显示n数据库可疑页:sp_listsuspect_page[dbname]
使n数据库所有页联机联机:sp_forceonline_dbdbname,
使指定页联:sp_forceonline_pagedbname,pgid(//必须sa_sole在master中执行。)n
2.12其他常用维护
1)可以执行命令$SYBASE/sybcent32/scjview使用图形界面进行维护。
2)查看$SYBASE/ASE-12_5/install目录下的(.log)。
3)使用一些过程:sp_reportstats、sp_helpdb、sp_helpsegmentsegment_name(sp_helpsegmentlogsegment检查可用于日志增长的空间)、sp_spaceused(sp_spaceusedsyslogs检查日志大小)、dbcccheckdb&dbcccheckcatalog&dbcccheckalloc、sp_lock等;也可以查询一些系统表:syslogs、master..sysdevices、master..sysusages、syssegments、sysindexes、sysdatabases等。
4)查看当前启动的服务:showserver。
5)>dbcctraceon将显示在控制台和写入errorlog文件。;>go;>dbccmemusage;>go;>dbcctraceoff;>go
usexxdb
checkpoint
sp_dboptionmydb,"singleuser","true"
设置单用户模式
sp_logiosize"8k"
设置I/O为8K缓冲池
3备份设置
3.1备份到磁盘
本地磁盘备份n
例子:
1>dumpdatabasejoli_dbto“备份目标绝对路径/备份文件名”
2>go
还可使用如下命令进行远程备份
dumpdatabase_nameto“/u01/data/0102.dmp”atremote_server
dumptransactiondatabase_nameto“/u01/log/0102.dmp”atremote_server
3.2备份到磁带
dumpdatabasedatabase_nameto“/dev/nrmt4”withinit//初始化(设备被覆盖)
dumpdatabasedatabase_nameto“/dev/nrmt4”//默认noinitnounload
dumpdatabasedatbase_nameto“/dev/nrmt4”withunload//磁带回卷并卸下
dumpdatabase数据库名to“/dev/rmt/0”
dumptransaction数据库名to“dev/rmt/0”withno_truncate
3.3恢复数据库
loaddatabasev数据库名from“dev/rmt/0”
3.4建立自动备份
可先把Sybase数据库备份到本地磁盘,压缩后再备份到磁带上。
1)创建一个本地目录或者远程目录的备份设备。
2)创建一备份用户。
3)编写备份脚本,并指定自动备份定时crontab任务。更多内容请看、、专题,或进入讨论组讨论。