sybase入门教程.docx
《sybase入门教程.docx》由会员分享,可在线阅读,更多相关《sybase入门教程.docx(41页珍藏版)》请在冰点文库上搜索。
![sybase入门教程.docx](https://file1.bingdoc.com/fileroot1/2023-5/7/b279ecf2-575c-4d67-9d81-aaee14f02f9a/b279ecf2-575c-4d67-9d81-aaee14f02f9a1.gif)
sybase入门教程
Sybase入门教程
概述
70年代,随着大型共享数据库应用的普及,美国SYBASE公司基于当时的关系代数理论所提出的数据库关系模型,开发了Sybase数据库系统;
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>select*fromsysservers
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="lwz_dev",
3>physname="/opt/sybase-12.5/data/lwz.dat",
4>vdevno=2,
5>size=512000
6>go
说明:
物理设备名称为:
joli_dev
物理设备文件路径为:
/opt/Sybase/joli/joli_dev.dat
设备编号(该号不能重复)为:
9
大小(单位为2K)为:
1000M
(一般为用户数据库创建一个数字设备后,再单独为用户数据库创建一个日志设备)
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=”{primary|secondary}]”
[,mode={retain|remove}]
//终止主/次设备:
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
?
恢复临时终止的镜像:
例子:
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>createdatabaselwzonlwz_dev=1024logonlwzdev_log_dev=200
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删除数据库:
例子:
3>drop
databasejoli_db
4>go
2.5.9上线数据库
例子:
1>onlinedatabasedb_name
2>go
2.5.10检查数据库状态
?
一般性检查
1>sp_helpdb
2>go
?
系统性检查
所有库检查:
1>dbcccheckdb
2>go
指定用户数据库检查:
1>dbcccheckalloc(db_name)
2>go
2.6Sybase日志管理
在创建用户数据库的时候,应尽量为事务日志创建独立的日志设备(一般创建为数据库大小的20%),这样可以单独备份事务日志、防止数据库溢满、可以看到事务日志的占用情况及可以镜像等。
dumptransactiondb_namewithtruncate_only//不备份事务日志,直接清除。
dumptransactiondb_namewithnolog
dumptransactiondb_nameto“路径/名字”//备份事务日志
?
检查log大小
1>dbccchecktable(syslogs)
2>go
快速查看log大小
1>selectdata_pgs(8,doampg)fromsysindexeswhereid=8
3>go
2.7修改Sybase系统缺省参数
可修改$SYBASE/ASE-12_5目录“服务名.cfg”文件,重新启动Sybase服务来修改Sybase系统参数。
也可使用Sp_configure来修改部分动态参数。
?
查询当前所有的参数配置
1>sp_configure
2>go
?
查询可动态修改的参数
1>sp_configure“abcdef”
2>go
?
查询特定参数的配置情况
1>sp_configure“参数名
2>go”
?
修改可动态配置的参数
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",{true|false}]命令来修改这些参数的配置。
例子:
1>usemaster
2>go
1>sp_dboptionjoli_db,"trunclogonchkpt",true
2>go
说明:
检查点时,清除以前的日志。
如果设置为off,则一直保留日志,继续增长,直到使用dumptransaction命令。
2.9网络服务配置
?
UNIX
在$SYBASE目录下,interfaces文件提供用户服务名的配置。
一般通过执行命令dsedit来做修改。
执行dsedit后,根据提示,一步一步的添加、修改即可完成配置。
?
Windows
启动dsedit,选择serverobject->add,向server中新添一个数据源,在其属性“serveraddress”中输入IP,Port(注意,IP地址和端口号间用“,”分隔,比如192.168.2.98,4100)。
2.10检查数据库的版本
1>Select@@version
2>go
2.11数据库坏页最小影响维护
在数据库发生可疑坏时,会脱机整个数据库(缺省),可以设置只脱机该可疑页(系统数据库不能改变)。
sp_setsuspect_granularity[dbname[,{"database"|"page"}[,"read_only"]]]
sp_setsuspect_threshold[dbname[,threshold]]
(必须具有sa_role且在master数据库中使用)
?
查看、修改数据库当前脱机设置
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_db
?
详细显示数据库可疑页信息:
sp_listsuspect_page[dbname]
?
使数据库所有页联机联机:
sp_forceonline_dbdbname,{"sa_on"|"sa_off"|"all_users"}
?
使指定页联:
sp_forceonline_pagedbname,pgid{"sa_on"|"sa_off"|"all_users"}(//必须sa_sole在master中执行。
)
2.12其他常用维护
1)可以执行命令$SYBASE/sybcent32/scjview使用图形界面进行维护。
2)查看$SYBASE/ASE-12_5/install目录下的日志文件(*.log)。
3)使用一些过程:
sp_reportstats、sp_helpdb、sp_helpsegmentsegment_name(system,log,default)(sp_helpsegmentlogsegment检查可用于日志增长的空间)、sp_spaceused(sp_spaceusedsyslogs检查日志大小)、dbcccheckdb&dbcccheckcatalog&dbcccheckalloc、sp_lock等;也可以查询一些系统表:
syslogs、master..sysdevices、master..sysusages、syssegments、sysindexes、sysdatabases等。
4)查看当前启动的服务:
showserver。
5)>dbcctraceon(3604)将信息显示在控制台和写入errorlog文件。
;>go;>dbccmemusage;>go;>dbcctraceoff(3604);>go
usexxdb
checkpoint
sp_dboptionmydb,"singleuser","true"
设置单用户模式
sp_logiosize"8k"
设置I/O为8K缓冲池
3备份设置
3.1备份到磁盘
?
本地磁盘备份
例子:
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恢复数据库
?
loaddatabase数据库名from“dev/rmt/0”
3.4建立自动备份
可先把Sybase数据库备份到本地磁盘,压缩后再备份到磁带上。
1)创建一个本地目录或者远程目录的备份设备。
2)创建一备份用户。
3)编写备份脚本,并指定自动备份定时crontab任务。
无法备份解决
sp_dropserverSYB_BACKUP
go
sp_addserverSYB_BACKUP,null,jack_BACKUP#jack_BACKUP改成你的备份数据库名
go
附录1:
Sybase数据库基础
1、SybaseSQLServer数据库介绍
2、Sybase数据库安装
3、Sybase系统管理
4、数据库备份和恢复
5、Transact-SQL
6、SQLServer的封锁机制
一、SybaseSQLServer介绍
1、SybaseClient/Server引论
Client/Server结构起源于80年代,是与主/从体系结构相对而言的,Client/Server计算属于分布式计算环境,是指进程之间的“请求”与“服务”的合作关系,如下图:
请求
Client
Server
网络
结果
Client/Server关系
Client发出服务请求,Server根据服务请求完成相应的作业,并将处理结果回送给Client。
由于Client和Server分别为进程,它们可以并存于一个系统之中,也可以存在于不同的系统中。
一个系统可以同时成为其它系统的Client、Server或两者都是,判断的方法是发出请求还是提供服务。
Sybase是第一个真正建立在Client/Server结构上的关系数据库管理系统。
在硬件上,可以选择方便灵活、用户界面好的机器做为客户机,而选择大中小型机、工作站和PCServer等功能强的机器作为服务器,充分发挥各种机器的优势;在软件上,实行功能分布,把原来单机环境下的RDBMS(关系数据库管理系统)在Client和Server之间作适当的配置,把与具体应用关系密切的用户接口和表示逻辑部分放在客户机上实现,而把RDBMS的事务逻辑和数据存取部分等核心功能放在服务器上实现,这样就可以实现应用和数据库的独立,方便用户开发各种数据库应用程序,同时也可以充分共享服务器上的数据库资源。
如下图:
表示逻辑
用户接口
事务逻辑
数据存取
表示逻辑
用户接口
Client/ServerRDBMS逻辑功能划分
总之,采用Client/Server 体系结构,可以优化系统的整体性能,容易扩充系统和支持开放性。
2、SybaseSQLServer的组成部分
SybaseSQLServer是Sybase公司的一个集成关系型数据库系统,它包含如下组成部分:
产品
功能
SQLServer
Sybase公司的高性能的关系型数据库系统,它具有高级的多线索体系结构、服务器强制的完整性检查的特点。
在多用户环境下,有着很高的事务与查询吞吐量。
BackupServer
一个与SQLServer同时运行的控制服务器,用来实现高速的联机备份或装入,恢复数据。
SQLSERVERMonitor
(仅对NT版)
SQLServer的监控工具由四部分组成:
MonitorServer收集SQLServer和数据库的性能数据;MonitorHistoricalServer为性能分析和检测存储性能数据;MonitorClient是一个用来显示MonitorServer收集到的性能数据的Windows程序;MonitorClientLibrary是一个编程接口,允许用户构造自己的SQLServer监控应用程序。
SQLServerManager
(仅对NT版)
一个利用图形用户接口(GUI)来管理SQLServer的Windows应用程序。
OpenClient
(仅对NT)
Client-Library(和DB-Library)编程接口提供给用户的应用程序、第三方产品及其它的Sybase产品许多函数库,用来与SQLServer进行通信。
它还包含一个Net-Library,用来提供网络协议服务,来支持在多种桌面平台上OpenClient与SQLServer的通信。
ODBCDriverkits
(仅对NT版)
用来支持16位或32位Wind