• 1. Sybase基础知识及操作
  • 2. 培训目的概述本次培训从Sybase ASE基础知识开始,一步一步了解Sybase ASE的相关概念和体系结构,初步掌握Sybase数据库 从安装到配置、从设备到数据库、从数据库对象到编程、从实用工具到性能调优,了解Sybase数据库相关原理 对Transact-SQL进行阐述,对其内部函数、顺序分枝循环结构、存储过程和函数进行讲解 通过上述的讲解,基本上涵盖了sybase数据库的方方面面,另外需要通过实践操作验证相关知识
  • 3. 内容提要Sybase基础知识 Sybase产品及数据库特点 Sybase ASE体系结构 Sybase ASE安装与配置 Sybase ASE系统管理及日常维护 数据库设备 数据库创建及维护 数据库参数设置 段管理设备 安全管理 数据库对象 备份与恢复
  • 4. 内容提要T-SQL Transact-SQL概述 Transact-SQL 常用命令 Transact-SQL构建块 实用工具 Sybase Central isql bcp 性能调优 调优原理 调优的方法和工具
  • 5. 一、Sybase基础知识
  • 6. Sybase产品1984年Sybase成立,1987推出Sybase SQL Server 1.0 Sybase SQL Server 2.0,4.2,4.8,4.9 1989年OpenClient/OpenServer 1992年Sybase System 10(Sybase SQL Server 10为核心) 1993年Replication Server 1995年SQL Server 11.0
  • 7. Sybase产品199 7年Adaptive Server Enterprise 11.5 1998年Adaptive Server Enterprise 11.9.2 ASE 11.9.3;ASE 12.0, 12.5 2006年ASE 15,之后 15.5, 15.7 2010年被德国SAP收购
  • 8. Sybase数据库特点关系型DBMS,多数据库(master,model, tempdb,sybsystemprocs,sybsystemdb等) 采用单进程多线程体系结构 基于客户/服务器体系结构的RDBMS 开放式、可编程 支持内存数据库
  • 9. Sybase数据库特点
  • 10. Sybase ASE体系结构数据库
  • 11. Sybase ASE安装与配置安装
  • 12. 二、Sybase ASE系统管理及日常维护
  • 13. 数据库设备设备
  • 14. 数据库创建及维护SybaseASE安装完毕后,缺省产生4个数据库 Master库 存储了
  • 15. 数据库参数设置参数
  • 16. 创建数据库命令格式: create database 数据库名 [on { default | 数据库设备名 } [=大小] (以MB为单位) [,数据库设备名 [=大小]]...] [log on 数据库设备名 [=大小] [,数据库设备名 [=大小]]...] [with override] [for load] 例子: create database mydb on data_dev1 = 6 log on log_dev1 = 2
  • 17. 数据库创建注意事项说明: ⑴ with override 选项说明: 允许on 和log on选项指定同一设备名,但分配不同的设备片; for load 选项说明: 新建数据库仅用于装入数据库的转储备份 (不需清页,建库快); ⑵ 建库者(DBO): SA:SA可将DB所有权转让。(用sp_changedbowner) master、model、tempdb、sybsecurity库的所有权不能转让。 SA授权的用户: 用 grant create database to 用户名。 建议SA集中管理DB的创建。 ⑶ 最多可管理32767个数据库 ⑷ 如未指定位置和大小,DB建在缺省设备上,大小为max{model库大小, database size参数值}
  • 18. 修改数据库 命令格式: alter database 数据库名 [on { default | 数据库设备名 } [=大小] (以MB为单位) [,数据库设备名 [=大小]]...] [log on 数据库设备名 [=大小] [,数据库设备名 [=大小]]...] [with override] [for load]
  • 19. 数据库修改注意事项  说明: ·for load 选项仅用在 create database for load 之后; ·扩充者: DBO、SA (在主数据库中); ·在数据库使用的同时可做扩展; ·主数据库只能在主设备上扩展; ·当用户指定大小不能满足时,系统会在每个指定设备上分配尽可能多的空间。 其它处理: ⑴ 日志饱和时: dump trans / trancate 扩展日志段 ⑵ 数据段饱和时:drop无用的数据对象 扩展数据段
  • 20. 删除数据库 命令格式 drop database 数据库名 说明: ⑴删库者: DBO、SA ⑵不能删除正在使用的数据库 ⑶只能删除能正常打开的数据库,如果数据库已不能打开,只能用dbcc dbrepair(dbname,dropdb)来删除。
  • 21. 段管理设备单进程
  • 22. 设备管理    设备是Sybase预先配置的专门存放数据库的一块连续的磁盘空间,并且它被映射到一操作系统文件或一原始磁盘分区上。它有两个对应的名称:逻辑名和物理名。NT仅支持设备映射到文件。   设备与数据库之间的关系:多对多关系。一个数据库可以被创建或扩充到多个设备上,一个设备也可以被用来存放多个数据库。不同的设备操作系统可以对其并行地读写,因此我们可以人为地将一个数据库放置到多个数据库设备上。 设备的分类:Database Device和Dump Device。数据库设备存放数据库和事务日志,转储设备用来存放数据库或日志的备份。
  • 23. 设备管理要考虑的问题恢复:将磁盘镜象或另外的设备上管理日志可以在系统磁盘损坏是提供完全的恢复。 性能:将日志和数据库对象放置在不同的设备上可以提高系统的整体性能
  • 24. 设备信息查询Master库 sysusages sysdevices 用户库 syssegments sysindexes 存储过程 sp_helpdevice
  • 25. 设备初始化初始化的过程就是将物理磁盘、磁盘分区或操作系统文件变为SYBASE数据库可以识别的设备。初始化数据库设备使用DISK INIT命令: DISK INIT NAME = "逻辑设备名", PHYSNAME = "物理设备名", VDEVNO = "虚拟设备号", SIZE = 数据库设备大小(以2K的数据页计) [,VSTART = 起始的虚拟地址, ,CNTRLTYPE = 磁盘控制器号(缺省为0)]
  • 26. 设备初始化注意事项只有SA可使用DISK INIT 在使用DISK INIT 前要: ·备份主数据库 ·确保有足够的空间 ·确保将使用的设备尚未初始化 ·确保sybase用户对此设备有写的权限 ·确认sybase的系统配置满足要求 (device、 memory、connection 3)每个设备在 SQL Server 中增加一个连接 4)利用 sp_helpdevice [设备名]查看设备信息 5)最大设备数: 255
  • 27. 转储设备  转储设备一般用于备份数据库 Sp_addumpdevice “type”,device_name,physicalname 例如  sp_addumpdevice “disk”,”mydbdump”,”/opt/sybdata/mydbdump.bak”
  • 28. 缺省设备命令格式: sp_diskdefault 逻辑设备名 { defaulton | defaultoff } 例子: sp_diskdefault data_dev1 defaulton sp_diskdefault master defaultoff 说明: ⑴ 只有 SA 可设置缺省设备 ⑵ 缺省设备只能是数据库设备,不能是转储设备 ⑶ SQL Server安装时,主设备是缺省 (建议改为OFF,便于主设备及主数据库的维护) ⑷ 可创建多个缺省设备,使用时按物理顺序填满 ⑸ 创建DB时应指明建库设备,否则建在缺省设备上 ⑹ 利用 sp_helpdevice 可了解缺省设备信息
  • 29. 主设备创建方法dataserver
  • 30. 磁盘镜像 磁盘镜像是磁盘上数据的绝对拷贝,语法如下: Disk mirror Name=“device_name”,//被镜像的设备名称 Mirror=“physical_name”, //物理磁盘位置名 [,writes=serial|noserial] 注意   sa 权限,先要打开磁盘镜像,使用sp_configure ‘disable disk mirroring’,0 并重新启动服务器
  • 31. 删除设备命令格式: sp_dropdevice 逻辑设备名 例子: sp_dropdevice mydbdev 说明: ⑴ 何时删除设备: ·改变、修复、增加硬件时 ·改变设备大小 (先删,后加) ⑵ 只有 SA 可删除设备 ⑶ 对文件设备,drop后,还要删除目录中的文件,以真正释放空间 ⑷ 不能删除有数据库的设备 注意事项: ·         只有系统管理员有权删除设备。在删除设备之前最好备份master数据库。 ·         用sp_dropdevice删除设备后,需要重新启动SQL Server,该设备的虚拟设备号才可以使用。 ·         磁盘文件形式的设备,在用p_dropdevice删除后,还需要手工删除在磁盘上的相应文件才能回收空间。 在使用sp_dropdevice删除设备之前,必须先删除该设备上的所有数据库。
  • 32. 启动服务器启动服务器 ----两种方式 进入到主目录下的install目录下: 使用由srvbuild创建的RUN_server文件 使用startserver命令 ./startserver –f runserverfile(全路径)
  • 33. SybaseASE服务器关闭关闭服务器 使用isql –Usa –P登陆上数据库 Shutdown 关闭ASE Shutdown SYB_Backup关闭备份服务器 Sms_shutdown 关闭监控服务器 使用kill 命令 先showserver 再kill pid
  • 34. 段(segment) 是数据库设备上磁盘空间的逻辑组合,设备与段的关系是多对多关系。一个数据库设备一般可拥有多达192 个段,一个段也可使用最多255个数据库设备。  数据库创建后会初始创建三个段 system:存储数据库的系统表。 logsegment:存储数据库的事务日志。 default:存储数据库中没有指定片段存放的去他数据库对象。
  • 35. 段(segment)好处控制空间的使用:放在一个段的数据库对象不会在段外增长 提高性能:处于不同磁盘设备上的段可以并行读写 处理大表:利用段,可以将一个大表分段的放大独立的物理设备上,如将一个表的文本或图象数据存储另外一个段上
  • 36. 创建段在某个数据库中创建片段之前需要做两件准备工作: 用disk init初始化设备 用create database或alter database命令将数据库设备分配给数据库 然后执行下列命令: sp_addsegment 片段名,数据库名,设备名
  • 37. 段大小的修改扩展段的范围  sp_exetendsegment 段名,数据库名,设备名 说明:设备在数据库中必须可用,否则需要扩展数据库到新的设备上;指定的段、数据库、设备必须存在。 缩小段的范围  sp_dropsegment 段名,数据库名,设备名 说明:带第三个参数时,该命令并不删除段,只是段的范围缩小了。若某个段包含了别的段要独占的设备,就需要缩小该段的范围。 删除段 删除段是缩小段范围的一个特例: sp_dropsegment 段名,数据库名
  • 38. 使用段两个数据库放在同一设备的不同段上,不会相互影响 数据库增加空间时,增加的空间会自动分配到它的每一个段上
  • 39. 安全管理角色 权限 角色
  • 40. 安全管理基于角色的管理,四类角色 系统管理员(the system administrator ,SA) 用户数据库的拥有者(owners of user databases , DBO) 数据库对象的属主(Owners of databases objects) 普通用户
  • 41. 角色----权限的集合系统预定义角色 系统管理员(sa_role) 系统案例管理员(sso_role) 操作员(oper_role)
  • 42. 角色管理 创建角色与使用角色 创建角色 create role 删除角色 drop 授权角色 grant 分配登陆用户的角色权限 sp_role “grant”|”revoke”,角色名,登录帐号名
  • 43. 用户管理 Sybase 中的用户分为两种:SQL服务器用户(登陆账号)和数据库用户 建立ASE服务器用户名(登陆账号) Sp_addlogin 登陆名,口令,库名,语言,全名 Sp_addlogin eastcom,eastcom,null,null,”Eeastcom.com” Go Select * from syslogins
  • 44. 用户管理 数据库用户 组 数据库用户的集合  sp_addgroup 组名 所有用户自动属于public组 用户 sp_adduser 登陆名,用户名[,组名] 别名用户 sp_addalias 登陆名,数据库中的用户名
  • 45. 用户管理 管理命名 删除登陆用户  sp_droplogin 删除数据库用户 sp_dropuser 信息查询 sp_who sp_helpuser sp_helpgroup
  • 46. 用户权限 命令权限 Create Database create default Create table Create view Create procedure create rule Grant 命令权限组合 to 组名[用户名]角色 对象权限 select update insert delete reference execute Grant 对象权限组合 on 数据库对象 to 组名[用户名]角色 with grant option
  • 47. 数据库对象参见
  • 48. 备份与恢复启动服务器 ----两种方式 进入到主目录下的install目录下: 使用由srvbuild创建的RUN_server文件 使用startserver命令 ./startserver –f runserverfile(全路径)
  • 49. 备份数据库 语法 dump database 数据库名 to 设备名 [ at 备份服务器名 ][,stripe on 设备名 [ at 备份服务器名 ] ...] [ with { dumpvolume = 卷名, [dismount|nodismount], (安装磁带卸下/保留) [nounload|unload], (备份完成后不倒带/倒带) retaindays = 天数, (缺省系统参数tape retention值) [noinit|init], (追加备份/重新初始化磁带卷) [notify = {client|operator_console} } ] 例 dump database mydb to mydbdump
  • 50. 备份数据库注意事项 说明 一个设备可备份多个DB 备份数据库之前必需启动备份服务器 一个DB可备份在多个设备上(备份分解)但<=32个设备 手工备份: 执行dump database命令,易于管理、监控 自动备份: 按指定时间在OS下运行备份程序 在剩余空间达到一定限度时,通过阈值(门限)管理过程执行备份
  • 51. 备份数据库事务日志 语法 dump transaction database_name to dump_device [with truncate_only | with no_log | with no_truncate] 前两项在日志中删除提交的事务,后一项不删除。
  • 52. 恢复数据库 语法 load database 数据库名 from 设备名 [at备份服务器] [,stripe on 设备名 [at备份服务器名]..][ with { dumpvolume = 卷名,[dismount|nodismount], (安装磁带卸下/保留)[nounload|unload], (备份完成后不倒带/倒带)file = 文件名, (数据库备份名)不备份→ listonly [ = full ], (显示磁带卷上所有备份文件信息) 不备份→ headeronly, (显示一个备份文件标题) [notify = {client|operator_console} } ]
  • 53. 恢复数据库注意事项Load重写所有现存数据 接收数据库应存在且足够大 dump与load应是同一用户 (DBO) ·dump与load应在同一OS平台上进行 DB在load时不能使用 应先将"no chkpt on recovery"、"dbo only"、"read only"置为true,load完成后再置为false
  • 54. 三、Transact -Sql
  • 55. Transact-SQL概述SQL 结构化查询语言 ANSI-86 SQL ANSI-89 SQL ANSI-92 SQL T-SQL是标准SQL的超集。
  • 56. Transact-SQL常用命令数据操纵语言DDL ALTER DATABASE ALTER TABLE CREATE DATEBASE CREATE DEFAULT CREATE INDEX CREATE PROCEDURE CREATE RULE CREATE TABLE CREATE TRIGER CREATE VIEW DROP
  • 57. Transact-SQL常用命令数据操作语言DML ALTER DATABASE COMPUTER DELETE INSERT READTEXT SELECT TRUNCATE TABLE UPDATE WEITETEXT
  • 58. Transact-SQL常用数据类型字符类类型 Char(n) Varchar(n) 数值类型 整数类型 integer smallint tinyint 浮点real float number(p,n) decimal(p,n) 货币 money smallmoney 日期。时间类型 Datetime smalldatetime 文本 图像类型 Text image 二进制数据类型 Binary(n) varbinary
  • 59. Transact-SQL构建块
  • 60. 四、Sybase实用工具
  • 61. isql
  • 62. bcp
  • 63. Sybase Central
  • 64. 常用过程Sp_addlogin 建立一个SQL服务器用户 Sp_addgroup 在当前数据库中建立一个数据库用户组 Sp_adduser在当前数据库中增加一个用户 sp_changegroup 改变数据库用户组 Sp_dboption 查询或改变数据库系统设置 Sp_dropdevice删除设备 Sp_dropgroup 删除组 Sp_droplogin 删除帐号 Sp_help 查询数据库对象及所有数据库信息 Sp_helpdb 查询数据库信息
  • 65. 常用过程Sp_helpdevice 查询设备信息 Sp_helpgroup 查询组信息 Sp_helpindex 查询给定表信息 Sp_helpuser 查询用户信息 Sp_lock 查询当前加锁信息 Sp_monitor 查询SQL服务器统计信息 Sp_password 改变登录帐号口令 Sp_spaceused 查询表中的行数、数据页数及空间大小 Sp_who 查询当前用户及过程信息 Sp_syntax 查询操作语法 Sp_configure 配置系统参数
  • 66. 五、Sybase性能调优
  • 67. 调优原理
  • 68. 调优的方法和工具
  • 69. isql简述-U username 用户名 -P password 密码 -p password 要输入的密码 -S server 指定Sybase ASE服务器 执行一条命令go 清除缓冲 reset 调用编辑器 vi 退出 quit/exit 输入批文件 –i 输出文件 -o
  • 70. THE ENDThanks!