《sybase-系统管理员培训.ppt》由会员分享,可在线阅读,更多相关《sybase-系统管理员培训.ppt(81页珍藏版)》请在三一办公上搜索。
1、Sybase培训,1、sybase简介2、sybase安装3、数据库客户端与服务端配置4、设备与数据库的管理5、数据库的安全管理6、系统参数设置与性能调优7、数据库对象管理(sql语句)8、浪潮通软常用表及结构9、数据库备份与恢复10、其他,主要内容:,一、Sybase 公司及其产品简介,美国sybase公司 取system+database相结合含义,十大软件供应商 ASE:Adaptive Server Enterprise:面向主流的数据库应用产品集EBD:面向基于Internet架构的应用产品集WAREHOUS STUDIO:面向决策支持、商务智能应用产品集 iAnywhere、M-B
2、usiness STUDIO:面向移动和嵌入计算的应用产品集如何获取sybase的技术资料,SYBASE主要的三种版本:,UNIX操作系统下运行的版本 Novell Netware环境下运行的版本 Windows NT环境下运行的版本,一、Sybase 公司及其产品简介,Sybase数据库的特点:,基于客户/服务器(c/s)体系结构的数据库 其好处:1、支持共享资源且在多台设备间平衡负载 2、允许容纳多个主机的环境,充分利用了企业已有的各种系统真正开放的数据库 高性能的数据库 体现在:1、可编程数据库 2、事件驱动的触发器 3、多线索化,一、Sybase 公司及其产品简介,Sybase数据库的
3、组成:,进行数据库管理和维护的一个联机的关系数据库管理系统:Sybase SQL Server 它是整个Sybase产品的核心软件,起着数据管理、高速缓冲管理、事务管理的作用 支持数据库应用系统的建立与开发的一组前端工具:Sybase SQL Toolset ISQL、DWB、APT把异构环境下其它厂商的应用软件和任何类型的数据连接在一起的接口:Sybase Open Client/Open Server 通过Open Client的DB-LIB库,应用程序可以访问SQL Server。而通过Open Server的SERVER-LIB,应用程序可以访问其它的数据库管理系统。,一、Sybase
4、 公司及其产品简介,三、Sybase安装,服务器上安装SYBASE服务器端(数据库管理系统)每台工作站安装SYBASE客户端启动SYBASE服务(服务器中的控制面板管理工具服务:SQL SEVER服务;备份服务)工作站与服务器的连接配置(DSEDIT)连接测试(ping server),四、工作站与服务器的连接配置,基础:网络连通配置工具:dsedit工具配置内容:连接名 连接协议(SYBASE协议):NLWNSCK;NLMSNMP 地址(服务器的地址)NLWNSCK:服务器机器名,5000NLMSNMP:机器名pipesybasequery,常见问题分析,客户端无法连接服务器1。物理连接是否
5、ping通2。防火墙是否把5000的端口号屏蔽了3。修改配置4。登陆一下客户端的机器,六、设备与数据库,Sybase中的几个概念,数据库设备 所有的数据库都创建在数据库设备上。所谓数据库设备,不是指一个可识别的物理设备,而是指用于存储数据库和数据库对象的磁盘原始分区或操作系统文件。增加一个新的数据库设备时,必须对这些设备“初始化”。初始化的过程就是将物理磁盘、磁盘分区或操作系统文件变为SYBASE数据库可以识别的设备 系统数据库 安装Sybase数据库时会自动生成的系统数据库 用户数据库:用户自己创建的数据库存储实际数据数据库对象,六、设备与数据库-设备管理,创建设备:语法:disk init
6、 name=设备名,physname=物理文件名,vdevno=设备号,需要查询 size=设备大小 2k为单位可以在任何一台工作站上执行创建设备物理文件存放于服务器上,路径必须事先存在,文件不能事先存在,指定的驱动器上,必须有足够的空间。,每一个设备有唯一的设备号(0)参数“number of devices”决定了系统中最多可以存在多少个设备查找可用的设备号:sp_configure“number of device”查看系统中最多可以有多少设备(有效设备号,有效不等于可用。)sp_helpdevice查看系统中已经存在的设备信息(包括已经占用的设备号),六、设备与数据库-设备管理,设备大
7、小单位为2K设备大小=物理文件的大小设备与文件一一对应查看设备信息:sp_helpdevice 设备名删除设备sp_dropdevice 设备名设备一旦创建,其大小就不能再改变,要删除设备必须先删除设备上的数据库,六、设备与数据库-设备管理,创建设备,删除设备也可以通过sybase central 来操作,sybase central是图形化界面,操作起来比较简单。,六、设备与数据库-设备管理,常见问题分析,无法正常创建第三套帐删除多余的设备,或者修改账套编号,六、设备与数据库-Sybase数据库分类:,系统数据库:master,tempdb,model,sybsystemprocs用户数据库
8、:cwbase1,cwbaseN,Master是管理和控制用户数据库以及维护服务器正常运行的核心数据库,它保存了大量的系统信息,如服务器配置、用户、设备等。注意:在master数据库中不允许普通用户在其中创建数据库对象,否则会使得master数据库的事务日志很快变满。如果事务日志用尽,就无法使用dumptransaction命令释放master数据库中的空间,六、设备与数据库-Sybase数据库分类:,Master库,六、设备与数据库-Sybase数据库分类:,Tempdb是个临时数据库,为临时表和其他临时工作空间提供一个存储区域。Tempdb的空间为服务器中所有数据库的所有用户所共享 Tem
9、pdb的缺省大小是2M,由于企业管理软件中用到 的临时表比较多,所以一般需要扩充,在我们的软件,第一次建帐就扩到了100M,Tempdb库,六、设备与数据库-Sybase数据库分类:,创建用户数据库而提供的模板,创建用户数据库时,自动拷贝一个Model数据库,并且根据给定参数,扩展该用户库的尺寸,model 库,六、设备与数据库-Sybase数据库分类:,专门用来保存系统命令(存储过程)的数据库,如sp_help、sp_configure、sp_helpdevice等,sybsystemprocs库,六、设备与数据库-创建数据库,数据库用于存放数据与日志创建数据库 语法:create data
10、base 数据库名 on 设备名1=大小 log on设备名2=大小 with overridefor load数据与日志存放于同一设备时,要用with override参数为改善性能,避免数据与日志争夺空间,数据与日志应放在不同的设备上。,六、设备与数据库-数据库管理,查看数据库信息 sp_helpdb 数据库名 Sp_renamedb 用来重命名数据库名字例如:sp_dboption mm,single,trueuse mmcheckpointsp_renamedb mm,nnuse mastersp_dboption nn,single,falseuse nncheckpoint,删除数
11、据库 drop database 数据库名扩充数据库大小 alter database 数据库名 on 设备名=大小 log on 设备名=大小,数据库大小只能扩大,不能缩小彻底删除一个数据库,并释放其所占用的空间:先删数据库,再删除设备,最后删除设备所对应的物理文件,释放空间。SQL SERVER启动时,物理文件受保护,无法删除;服务停止,物理文件可以删除,文件删除,数据库中所有数据丢失,六、设备与数据库-数据库管理,创建、删除、扩充数据库操作均可以在sybase central工具中进行,六、设备与数据库-数据库管理,常见问题分析,数据库质疑或者recovery/*使系统数据表可改*/sp
12、_configureallowupdate,1/*使数据库在启动时不做检查*/updatesysdatabasessetstatus=-32768wherename=databasename/*清理日志*/dumptranmasterwithno_logdumptrandatabasenamewithno_log然后重启数据库,就可解决问题。但还必须做一步:sp_configureallowupdate,0,七、数据库安全管理,Sybase通过对用户的管理,控制用户对数据的安全访问,来实现其安全管理机制系统管理员sa在系统创建时自动创建,空令默认为空。管理层次:,Sybase帐户,数据库用户,
13、Sp_addlogin,sa,Sp_adduser,操作数据库中数据,Sybase系统,Cwbase1,cwbase2,wyx,Sybase帐户,wxx,yx,Cwbase1库的用户wxx,七、数据库安全管理,七、数据库安全管理-帐户与用户的操作,增加SYBASE帐户 sp_addlogin loginame,passwd,defdb 例:sp_addlogin wang,aaaaaa,cwbase1创建组 sp_addgroup grpname 例:sp_addgroup zu1增加用户,将SYBASE帐户加入到数据库中 use 数据库名 sp_adduser loginame,name_i
14、n_db,grpname 例:sp_adduser wang,wan,zu1用户改变所属组:sp_changegroup newgrpname,username改变帐户口令 sa改变自己口令:sp_password oldpasswd,newpasswd sa改变其他帐户口令:sp_password sa_password(null),newpasswd,loginame,删除SYBASE帐户语法:sp_droplogin loginame例:sp_droplogin wang删除组语法:sp_dropgroup grpname例:sp_dropgroup zu1删除用户:语法:sp_drop
15、user username例:sp_dropuser wan,七、数据库安全管理-帐户与用户的操作,分配权限 1、命令权力 授权:grant 权力清单 to 用户名 回收权力:revoke 权力清单 from 用户名 2、对象操作权 授权:grant 操作权 on 对象名 to 用户名 回收权力:revoke 操作权 on 对象名 from 用户名,七、数据库安全管理-帐户与用户的操作,常见问题分析,增加用户的时候提示:login failed修改ad00?9999的口令 sp_password sa的口令,新口令,ad00?9999举例:sp_password null,aaaaaa,ad0
16、029999,软件常见问题,1。恢复数据后提示无法取得系统id或者进入维护工具提示找不到lsxtmc等出现这种情况一般是id号不一致造成的。解决方案:首先以sa连接数据执行下面的语句Select*from syslogins where name=lc00?9999(其中?表示账套编号)查看一下sid是多少然后连接出问题的数据库,执行下面的语句Select*from sysusers where name like lc%查看该条记录的sid通常和前面的纪录是不一致的,修改成一致的即可,软件常见问题,2。年结的时候提示找不到*表(实际上数据没有问题),或者维护工具备份速度很快,备份不出数据。这
17、时候通常也是sysusers出现了问题Select*from sysusers where name like lc%查询会出现一条记录,其中name应该=lc00?9999(?表示账套编号)如果查询结果和账套编号不一致就会出现上述问题,修改成一致的即可,八、系统参数设置与性能调优,SYBASE运行参数配置 用sp_configure配置SYBASE运行过程中的参 数 语法:sp_configure 参数名 查看参数配置值 sp_configure 参数名,参数配置值 修改参数配置值,需要重启动sql server服务使配置起作用(config valuerun value),八、系统参数设置
18、与性能调优,Total memory:物理内存*35%*512number of devices:10+帐套数*2256number of open databases:4+帐套数number of user connections:根据站点数及所用模块number of open objects:按照默认值可在帐套管理中修改。sybase参数存放于“服务名.cfg”中,九、数据库对象概述,数据库中的表、视图、缺省、规则、触发器、索引、存储过程、用户自定义数据类型统称为数据库对象。可以由该数据库中有权限的数据库用户、数据库属主或系统管理员(sa)来创建数据库对象。创建者成为该数据库对象的属主(
19、拥有者)。数据库对象名区分大小写SYBASE中大小写敏感,九、数据库对象概述,数据库对象的引用格式:数据库名.对象属主名.对象名在当前数据库中操作本数据库的对象,可以省略数据库名。操作当前连接用户所拥有的数据库对象时可以省略对象属主名。在当前数据库中操作当前用户所拥有的数据库对象,数据库名、属主名均可省略,九、数据库对象概述-表,表,表结构,数据,列,每列属性,每列数据类型,常用数据类型 字符型:char(n),varchar(n)数值型:numeric(p,s),int,float 日期时间型:datetime列属性:Null not null,九、数据库对象概述-表,创建表结构 creat
20、e table 表名(列名1 列数据类型 列属性,列名2 列数据类型 列属性,.)同一表中列名必须唯一不同表中列名可以相同,九、数据库对象概述-表,修改表结构-增加列:Alter table table_name add 列名 列数据类型 null如:alter table aa add name char(5)null修改表结构-删除列:Alter table table_name drop 列1,列2,如:alter table aa drop name,九、数据库对象概述-表,常见问题分析,在软件的操作过程中提示*无效,或者invalid column*出现这种提示一般是数据库缺少提示的
21、相应的字段,增加上即可。根据提示我们可以知道缺少的字段,但是缺少字段的类型我们如何确定呢?一般我们可以通过建表sql来搜索。或者通过升级sql来搜索确定了相应的数据类型后可以以lc00?9999(?表示账套编号)登陆数据库执行下面的语句Alter table 表名 add 字段名 数据类型 null这样问题就顺利解决了,修改表名字:sp_rename 表名,新表名 如:sp_rename aa,bb Sp_rename 还可以用来修改索引、视图等数据库对象的名字,九、数据库对象概述-表,系统表名 SysconfiguresSyscurconfigsSysdatabasesSysdevicesS
22、yslocksSysloginsSysmessagesSysprocesses,只有在master数据库中才能有的系统表,一行记录了用户可设置的配置参数有关SQL Server当前正使用的配置参数情况一行记录了SQL Server中的一个数据库一行记录了数据库的每一磁带转储设备,磁盘转储设备,数据库设备和磁盘分区设备和磁盘分区有关动态锁的情况 一行记录了每一有效的SQL Server的用户帐号 一行记录了每一系统错误或警告有关Server进程的情况,表中的内容,九、数据库对象概述-表,查看表结构 sp_help 表名 sp_help 查看当前库中所有表删除表(表结构删除、表中数据丢失)drop
23、 table 表名修改表结构 增加新列,且新列的属性为允许为空。删除列,九、数据库对象概述-表,表中数据的操作 select Insert update delete表中数据的操作只能在isql/sql advantage工具中写语句来完成,不能用sybase central工具,九、数据库对象概述-表,Select从表中查询数据 select*from 表名 select 列1,列2 from 表名 select 列1,列2 from 表 where 条件,九、数据库对象概述-表,条件表达式的书写:大小比较:,=,=,!=,=范围确定:between.and 列表:in 模糊匹配:like
24、通配符:%:通配任意个数任意字符 _:通配一个数任意字符:范围内的一个任意字符 多重条件:and,or,not,九、数据库对象概述-表,Select从表中查询数据 查询结果排序:order by 列1 asc/desc,列2 修改查询结果的显示标题 查询结果列间的计算“+”:数值型相加;字符型连接 常用函数的使用count(),sum(),max(),min(),avg(),substring():修改编码结构 查询分组:group by 分组列 insert 与select连用,九、数据库对象概述-表,Select从表中查询数据 其基本句法为:Select select_list from
25、table_list where search_conditions,九、数据库对象概述-表,1、简单查询 A、选择若干列 Select expression,expression.From table_list B、选择若干行 Select*from table_list where search_conditions注意:查询中消除值重复的行 Select distinct expression from table_list,九、数据库对象概述-表,2、连接查询 A、等值连接和不等值连接:通过=来比较两个表之间的数据时,称为等值连接;而通过其他比较符时,称为不等值连接 等值连接:Sele
26、ct*from publishers,authors where publishers.city=authors.city 不等值连接:略 B、自然连接:在连接的目标列中相同名的列只保留一个 Select publishers.pub_id publishers.pub_name,publishers.state,authors.*From publishers,authors where publishers.city=authors.city,九、数据库对象概述-表,3、子查询 A、表达式子查询 Select au_lname,au_fname from authors where cit
27、y=(select city from publishers where pub_name=abcde)可以使用一切大小比较操作符;在操作符和子查询之间可以使用All 或any。B、限定谓词子查询 Select pub_name from publishers Where pub_id in(select pub_id from titles where type=abcde)C、相关查询 相关查询即嵌套查询依赖于外部父查询的值,嵌套查询要重复执行若干次。Select distinct t1.type from titles t1 Where t1.type in(select t2.type
28、 from titles t2 where t1.pub_id!=t2.pub_id),九、数据库对象概述-表,4、集函数、分组与排序 A、对查询结果进行聚集处理 聚集函数:Sum(all|distinct expression),avg(all|distinct exoression),Count(all|distinctexpression),count(*),max(expression),min(expression)Select count(*)from titles B、用Group by 和 having 子句对查询结果分组 Select type,avg(advance),su
29、m(total_sales)from titles group by type Select type from titles group by type having count(*)1 Having 类似于where,但where 不能用聚集函数。,九、数据库对象概述-表,C、用Order by 对查询结果进行排序 Select type,avg(price)from titles group by type order by avg(price)D、Compute 子句 完成基于每一组中的值的聚集运算,聚集值作为一个新行出现在查询结果中。Select type,price advance
30、 from titles order by type compute sum(price),sum(advance)by type,九、数据库对象概述-表,insert向表中增加数据 语法:insert 表名(列1,列2.)values(值1,值2.)一次向表中插入一行数据 插入的数据要与列的数据类型匹配 insert 表名 values(值1,值2.)默认向表中所有的列插入数据,值的个数与表中列数要一致 向表中部分列插入数据,不出现的列其属性要允许为空Insert与select连用可以实现一次向表中插入多行数据,九、数据库对象概述-表,Update 修改表中数据 Update 表名 set
31、列1=值,列2=值,where 条件表达式用一列的值去修改同一表中另一列的值用一列的值去修改另一表中某列的值,九、数据库对象概述-表,Delete删除表中的数据 Delete 表名 删除表中的所有数据,表结构还存在 delete 表名 where 条件表达式 删除表中满足条件的数据,九、数据库对象概述-表,常见问题分析,查询提示无法找到查询格式,id=.,gsbh=0001这个时候是因为数据库中缺少相应的查询sql造成的,我们可以通过查询相应的建账sql,执行相应的sql即可另一种情况时没有任何提示,屏幕一闪而过,这个时候一般也是因为数据库没有相应的数据查询涉及表LszbgsLstigsLso
32、tgs,使用sybase的bin目录下的外部命令bcp转出:bcp cwbase1.lc0019999.ZWPZK out d:ZWPZK.TXT-Usa-P-Ssybase-c转入:bcp cwbase1.lc0019999.ZWPZK in d:ZWPZK.TXT-Usa-P-Ssybase-c注:命令行中的-U后面是用户名sa,-P后面是sa的口令,-S后面是服务器的名字.Bcp只能转出一个表中所有数据,不能转出表中部分数据。转入的数据是添加到表中原数据的后面,而不是以覆盖的方式转入。Bcp转出数据形成的文本文件是存放在本机上。,九、数据库对象概述-表,索引的作用:加快对表中数据的查询速
33、度唯一索引可以保证表中数据的唯一性索引的缺点:占用空间减慢表中数据的修改及删除速度,九、数据库对象概述-索引,创建索引 语法:create uniqueclustered/nonclustered index 索引名 on 表名(列1,列2.)unique:唯一索引,索引所基于的列不能有重复值。Clustered:聚簇索引,改变数据存放的物理顺序,一个表只能有一个。Nonclustered:非聚簇索引,不改变。,九、数据库对象概述-索引,数据库对象概述-索引,出现以下情况可以为表创建索引经常用于检索、查询的列用于两表连接的列在表中建唯一索引可以增强数据的完整性出现以下情况建议不要建索引很少或不
34、在查询中引用的列只有两三个值的列(例如性别)小表或者行数很小的表,查看索引 sp_help 表名 sp_helpindex 表名删除索引 drop index 表名.索引名,九、数据库对象概述-索引,视图是个虚表,不存储实际数据,它的数据来自其他表或者视图视图的作用方便查询提高行安全性提高列安全性语句:create view view_namecol_name,as select statementDrop view view_name,九、数据库对象概述-视图,触发器是一种特殊的存储过程,用来维护不同表中的相关数据的一致性。当在一张表中插入、删除和修改数据时,触发器就会触发另一个存储过程,从
35、而保持数据的一致性。,九、数据库对象概述-触发器,规则是可以理解为对数据库、某一列、某用户数据类型的限制。Create rule 规则名 as 变量=表达式绑订:sp_bindrule 规则名,表.列名规则必须绑订,规则才能生效。解除绑订sp_unbindrule 表.列名删除规则drop rule 规则名,九、数据库对象概述-规则,数据库对象概述-规则,举例:创建一个值得规则Create rule rul_name as state in(ca,co,wa)注意它带有一个为前缀的参数将规则与表的列(A.F_1)捆绑Sp_bindrule“rul_name”,”A.F_1”注意加引号,缺省是在
36、数据录入时,若用户没有输入数据,SQL Server自动输入的值。Create default 缺省名 as表达式绑订:sp_binddefault 缺省名,表.列名解除缺省sp_unbindefault 表.列名删除缺省drop default 缺省名,九、数据库对象概述-缺省,存储过程是用T-SQL语言编写成的SQL子例程,它存储于SQL服务器上 供用户调用执行。与一般的SQL语句和批处理语句不同的是,存储过程是经过预编译的。当首次运行一个存储过程时,SQL Server的查询处理器将对其分析,并产生最终的执行方案。由于查询处理的大部分工作已经完成,所以以后执行存储过程时速度将会很快。执行
37、存储过程时可带参数并可调用其他存储过程,执行完毕后返回信息以指示是否成功完成相应操作。存储过程有两种:一种是SQL服务器安装时自动建立的系统存储过程(系统过程),另一种是用户自己创建的存储过程。系统过程是用于系统管理,并且为用户提供了从事数据库管理的一种途径。这些系统过程都是以sp_开头的,它们都放在master数据库中且隶属于sa(系统管理员)。也有很多可以在任一个数据库中运行的系统过程。,九、数据库对象概述-存储过程,建立存储过程create proc 过程名 as select_statement调用存储过程:直接写过程名,如果不是批处理的第一条命令,则要加“exec”。,九、数据库对象
38、概述-存储过程,常见的系统过程有:Sp_addgroup 在当前数据库中建立一个数据库用户组 Sp_addlogin 建立一个帐户 Sp_adduser 在当前数据库中增加一个用户 sp_changegroup 改变数据库用户组 Sp_dboption 查询或改变数据库系统设置 Sp_dropdevice 删除设备 Sp_dropgroup 删除组 Sp_droplogin 删除帐号 Sp_help 查询数据库对象信息 Sp_helpdb 查询数据库信息,九、数据库对象概述-存储过程,Sp_helpdevice 查询设备信息 Sp_helpgroup 查询组信息 Sp_helpindex 查询
39、索引信息 Sp_helpuser 查询用户信息 Sp_lock 查询当前加锁信息 Sp_monitor 查询SQL服务器统计信息 Sp_password 改变登录帐号口令 Sp_spaceused 查询表中的行数、数据页数及空间大小 Sp_who 查询当前用户及过程信息 Sp_syntax 查询操作语法 Sp_configure 配置系统参数,九、数据库对象概述-存储过程,十、浪潮通软常用表及结构,LSCONF:记录一套帐基本信息的表LSTABN:关于备份的表GSDBZTXX:关于帐套信息的表LSXTMC:关于应用模块的表LSKJQJ:所建会计期间的表LSPASS:创建用户的表LSGNZD:功
40、能字典LSUSGN:用户功能权限LSUSSJ:用户数据权限,十一、备份与恢复,备份方法:1、维护工具或各功能模块中备份功能 备份后备份数据存放在本机上 2、sybase系统提供的备份方法 创建备份设备 sp_addumpdevice disk,转储设备名,物理文件名(备份文件)创建后,第一次使用该设备备份前,该物理文件不存在,sybase系统提供的备份方法 备份语法:dump database 数据库名 to 备份设备名 备份前要启动数据库备份服务 备份后备份文件存放于服务器上 备份时总是重写备份文件 备份文件,可以任意拷贝 备到设备:dump database cwbase1 to cwba
41、se1_dump 备到文件:dump database cwbase1 to c:datacw1.dup,十一、备份与恢复,恢复 语法:load database 数据库名 from 备份设备名 online database 数据库名(使数据库在线)重载的数据库其空间大小要大于等于原数据库大小。将一套帐的数据恢复到另一套帐中 注意lc0019999的id 号问题 建议:不要用直接拷贝*.dat文件的方式进行备份,十一、备份与恢复,备份恢复数据工具,浪潮账套备份恢复工具 恢复后用户口令是cwpass,如何利用物理文件恢复数据,1。新机器的名字和ip地址保持一样2。备份原来的sybase文件夹3。新装的sybase和以前的路径一样4。覆盖sybase文件夹5。直接可以使用sybase,谢谢!,