Sybase 培训 秘密▲ 课程学习目标 sybase 的概念 Sybase 的安装 Sybase 的应用 Sybase 的日常维护操作 秘密▲ 讲解内容大纲 Sybase 简介  Sybase 有关概念  Sybase 安装  Sybase 网络配置说明  Sybase 系统参数说明  Sybase T-SQL 语言介绍  Sybase 的实用工具  Sybase 与 oracle 比较  其他 秘密▲ Sybase 数据库简介  Syabse 的历史 1. 1984 年, Mark B. Hiffman 和 Robert Epstern 创建了 Sybase 公司,并在 1987 年推出了 Sybase 数据库产品 ( 表示 system+database 二词合一之义 ) . 第一个关系数据库产品是 1987 年 5 月推出的 Sybase SQLServer1.0 . Sybase 首先提出 Client/Server 数据库体系结 构的思想,并率先在 Sybase SQLServer 中实现 . 2. Sybase 目前版本: 12.5 系列和 15.0 系列 3. Sybase 的产品线 :  Sybase Adaptive Server Enterprise (ASE) : Sybase 历史最悠久的数据库产品  Sybase IQ :一个数据仓库系统。它以独具特色的列存储方式、高可维护性、具备高数据压 缩比、提供近似线性的用户和数据可伸缩性、支持数百至数千名用户以及若干 T 级字节的数 据而著称 .  Powerbuilder :一个旨在快速获得 C/S 、 n-tier (多层架构)应用的开发系统  PowerDesigner :数据库设计软件、数据建模工具  Replication Server :一个在技术上异构的企业、 C/S 、桌面和移动系统之间提供双向复制 的服务系统 Sybase 数据库主要由二部分组成 管理部分 : 关系数据库管理系统 Sybase SQL Server : dataserver 开发部分 : a. 前端工具 Sybase SQL Toolset : isql,bcp… b. 开发接口 ct-lib/db-lib 秘密▲ Sybase 数据库简介 ( 续 )  Sybase 发行的版本术语 EBF (emergency. bug. fixes ,即紧急 . Bug 修复 )    官方软件发行版本。 EBF 号唯一性地标志了在某个 OS 平台上的发行版本。 ESD 官方软件发行版本,它解决了当前发行版本中的一些 Bug 。 ESD( ESD # ) 通常是跨平台的,并且不包含新的特性或功能。 ESD 是针对某一主版本( major version )的累积软件包,它必须在 GA 发行版本上安装。 GA GA ( General Availability )是一个 SYBASE 软件版本全新的、初始发行版本。 除 Bug 修复之外,它通常包含一些新特性。 IR IR ( Interim Release -中间版本)包含了在此之前的所有 ESD 发行版本的 Bug 修复,以及其它 Bug 修复。 IR 发行版本必须基于与之对应的 GA 发行版本的 基础上安装。比如,要安装 12.5.0.3 ,就必须先安装 12.5GA ( ESD)。 MR MR ( Maintenance Release -维护版本)是 GA 发行版本的完整替换包。由 于它是完整的发行包,因此可以直接安装。通常此种类型的发行版本包含一些新特 性以及 Bug 修复。 秘密▲ Sybase 有关概念  Sybase SQL Server 是一个多库数据库系统。这些数据库包括系统数据库和用户数 据库。 而不论是系统数据库还是用户数据库,都建立在数据库设备上。  数据库设备 所有的数据库都创建在数据库设备上。所谓数据库设备,不是指一个可 识别的物理设备,而是指用于存储数据库和数据库对象的磁盘原始分区或操作系统 文件。 增加一个新的数据库设备时,必须对这些设备“初始化”。初始化的过程 就是将物理磁盘、磁盘分区或操作系统文件变为 SYBASE 数据库可以识别的设备。 初始化数据库设备使用 DISK INIT 命令 : DISK INIT NAME= 设备名, PHYSNAME= 物理设备名, 其中 :SIZE= 块数 ( 以 2K 为单位 , 最小的 SIZE 是 model 数据库的尺寸,即 1024 个 2K 的块( 2M )  段 数据库设备从逻辑上被划分为数据库段以允许将某一特定的对象放置在指定 的段上(创建对象时指定),一个数据库设备可拥有多达 192 个段,一段可使用 255 个逻辑设备上的存储空间。当用户创建一个数据库时, SQL SERVER 会自 动在该数据库中创建三个段: SYSTEM、 LOGSEGMENT 、 DEFAULT ,这三 个段分别用来存储数据库的系统表、事务日志和其他数据库对象  页 : sybase 的最小分配单位 , 默认情况下为 2K 秘密▲ Sybase 有关概念 ( 续 )- 存储架构 SqlServer 设备device 索引 表 事务日志 段segment 数据库 database 原始磁盘分 区或os文件 秘密▲ Sybase 有关概念 ( 续 )- 分配架构 设备(device) 设备分片(device fragment) 0 2048 0 256 512 分配单元(units) 312 320 328 336 0 71 扩展单元 extent 数据页pages sysdevices 分配单元:包括256个连续的数 据页,即32个扩展单元 创建数据库时,空间都被划分 成分配单元 一个设备上可以存放多个数据 库,但一个物理设备只能属于 一个逻辑设备 分片表示:创建或修改数据库 时只使用一个设备的部分空 间,这部分空间叫分片 扩展单元:包括8个连续的 数据页 一个表或索引所占用的最 小空间是一个扩展单元. 数据页:sybase基本的 存储单位,默认为2K 344 秘密▲ Sybase 有关概念 ( 续 )- 页结构 头信息:记录页的链接,对象及分配信息 数据行:除text和imageso类型外不能跨 页 除去额外的日志记录的开销(52B,所以一 个数据行的最大长度为1962Bytes 行偏移量表:2Bytes 2016Bytes 32Bytes 2048Bytes 行偏移量表:记录表中行的 位置,即每一数据行相对页 首的偏移量 类型:tinyint/bit: 1bytes smallint: 2Byte int/float/real/smallmoney.smalldatetime: 4Bytes datetime/double precision/money: 8Bytes numeric/decimal:与精度有并,最大17Bytes varchar/nvarchar/varbinary:可变长,其长度是存储地该列的数据的实 际长度(估算时如果不能确定长度,则可以最大长度或平均长度估算 ) 秘密▲ Sybase 有关概念 ( 续 )- 数据库结构  系统数据库 安装 Sybase 数据库时自动生成的下列系统数据库: ● 主数据库 master: 数据库全面控制和管理用户数据库以及 SQL SERVER 上的 一切操作。 ● 模型数据库 model: 为新建的用户数据库提供一个原形 ● 系统过程数据库 sybsystemprocs: SYBASE 的系统存储过程被储存在这个数据 库中 ● 临时数据库 tempdb: 作为临时表和其他的临时工作空间提供一个存储区域。 TEMPDB 的空间为全体数据库用户共享 也可选择下列数据库: ● 安全审核数据库 sybsecurity: 包含 SQL SERVER 的审计系统 ● 示例数据库 pubs2: 这是一个样本库 ● 命令语法数据库 sybsyntax: 为用户提供联机帮助 用户数据库  用户数据库是指用 Create database 命令创建的数据库。  使用” use 数据库名”来切换不同的数据库  执行 sp_changedbowner 改变数据库的属主关系  建议事务日志放在单独的设备上 (log) 秘密▲ Sybase 有关概念 ( 续 )- 数据库对象  数据库对象 (1) 表 (Tables) (2) 视图 (Views) : 视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数 据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并 且在引用视图时动态生成。 对其中所引用的基础表来说,视图的作用类似于筛选。 作用 : 安全 ; 可使复杂的查询易于理解和使用 (3) 索引 (index): 索引就是加快检索表中数据的方法。在数据库中,索引也允许数据库程序迅速地找到表中的数据, 而不必扫描整个数据库。 索引是通过二叉树的数据结构来描述的 . 索引的特点 : 1. 索引可以加快数据库的检索速度      2. 索引降低了数据库插入、修改、删除等维护任务的速度      3. 索引创建在表上,不能创建在视图上      4. 索引既可以直接创建 (create index) ,也可以间接创建 ( 主键约束或者唯一性键约束时 ) 5. 可以在优化隐藏中,使用索引      6. 使用查询处理器执行 SQL 语句,在一个表上,一次只能使用一个索引 7. 索引需要占用额外的物理空间 索引的分类 : a) 普通索引 (create index) 和唯一性索引 (create UNIQUE index) b) 单个索引和组合索引 ( 最多 16 个字段 组成 ) c) 聚簇索引 CLUSTERED 和非聚簇索引 UNCLUSTERED : 聚簇索引:即物理索引,与基表的物理顺序相同,数据值的顺序总是按照顺序排列 . 即索引树的叶级页 包含实际的数据 . 一个表最多只能有一个聚簇索引 非聚簇索引 : 索引顺序与数据物理排列顺序无关 , 即叶级页指向表中的记录 . , 一个表最多可建 249 个非 聚簇索引 . 可以这么理解聚簇索引:索引的叶节点就是数据节点。而非聚簇索引的叶节点仍然是索引节点,只不过有一个 指针指向对应的数据块 . 秘密▲ Sybase 有关概念 ( 续 )- 数据库对象 (4) 存储过程 (Stored procedures): 将常用的或很复杂的一组数据操作,预先用 SQL 语句写好并用一个指定的名称存储 起来 , 并由数据库预编译好存储在系统数据字典里供操作员直接调用的一个功能块 . 注意 : 存储过程中不能使用 DDL 语句 (5) 触发器 (Triggers): 一种特殊类型的存储过程,当使用 UPDATE 、 INSERT 或 DELETE 中的一种或多种数据修改操作在指定表中对数据进行修改时,触发器会生 效。 触发器是自动的 , 有助于强制引用完整性,以便在添加、更新或删除表中的行时保 留表之间已定义的关系 . 但是触发器排错困难 . (6) 缺省与规则 (Defaults and rules) 缺省是在数据录入时,若用户没有输入数据, SQL Server 自动输入的值。 规则是可以理解为对数据库、某一列、某用户数据类型的限制 . 秘密▲ Sybase 有关概念 ( 续 )- 系统存储过程  常用的 sybase 系统存储过程 sp_configure 查看或配置系统参数 sp_syntax 查询操作语法 sp_who 查询当前用户及过程信息 sp_spaceused 查询表中的行数、数据页数及空间大小 sp_password 改变登录帐号口令 sp_lock 查询当前加锁信息 sp_helpuser 查询用户信息 sp_helpdevice 查询设备信息 sp_helpdb 查询数据库信息 sp_help 查询数据库对象及所有数据库信息 sp_dboption 查看或配置数据库的配置项 sp_monitor 查询 SQL 服务器统计信息 秘密▲ Sybase 安装  一.安装前准备 1. 操作系统要求:内存: >=512M 硬盘: >1.5GB 2. 配置操作系统的核心参数    共享内存: shmmax = 物理内存的 2/3 信号量: msgmni =300 3. 创建 sybase 组和用户 sybase 4. 设置 sybase 的环境变量 : SYBASE=/home/sybase SYBASE_HOME=$SYBASE DSQUERY=SERVERNAME SYBASE_DATA=/home/sybase/syb_data LD_LIBRARY_PATH=$SYBASE/ASE-12_5/lib 秘密▲ Sybase 安装 ( 续 )  产品目录结构 /home/sybase sybase安装主目录 /ASE-12_5/ /OCS-12_5/ /shared-1_0/ /ASEP/ /locales/ /sybcent41/ /collate/ /charsets/ /jConnect- 6_0/ /init/ /install/ ASE产品目录 数据库初始资源文件目录 /sample_resource_files/ /logs/ 数据库创建日志目录 数据库启停脚本及配置 文件存放目录 开发及 操作产 品目录 /bin/ 数据库建库及管理命令存放目 录,如srvbuild /bin/ 日常操作命令目录,如 isql ,bcp /lib/ 开发库目录 /include/ 头文件目录 /sample/ 例程文件目录 第三方共享目录 Adaptive Server Plugin 语言支持 字符集支持 Sybase central工具目录 秘密▲ Sybase 安装 ( 续 )  安装分二种情况:  第一种: sybase 安装盘 setup 方式:  使用 sybase 用户登录 SUSE linux 服务器系统  运行安装程序  $ /media/cdrom/setup  第二种 :rpm 包方式  只需要安装以下的包即可:  -r--r--r-- 1 root root 73244143 Jul 1 2002 sybase-common-12.5.0.1SBE- 1.i386.rpm  r--r--r-- 1 root root 51391921 Jun 25 2002 sybase-ase-12.5.0.1ESD-1.i386.rpm  -r--r--r-- 1 root root 38920518 Jun 25 2002 sybase-openclient-12.5.0.1ESD- 1.i386.rpm  -r--r--r-- 1 root root 802179 Jun 25 2002 sybase-chinese-12.5.0.1-1.i386.rpm  -r--r--r-- 1 root root 58611414 Jun 25 2002 sybase-doc-12.5.0.1ESD-1.i386.rpm  安装顺序如上 .  用 root 用户登陆 linux  # rpm –ivh sybase-common-12.5-3  …..  此时, ASE 被装入 /opt/Sybase-12.5 目录,并在系统自动加入了 sybase 用户, 此时 sybase 用户帐号被设为锁定状态。需在 Account Management 中手工激活账 户且修改初始密码 秘密▲ Sybase 安装 ( 续 )  创建数据库 :  Sybase 创建数据库分为二部分 : 一是创建 sybase 系 统数据库 , 二是创建用户数据库 .  sybase 创建数据库的时机有二种 : 一是在软件安装 时用自带的图形界面安装系统数据库 , 二是在软件安 装结束后使用命令行来创建数据库 .  创建系统数据库 : 以命令行为例  创建命令 : $SYBASE/ASE-12_5/bin/srvbuild  创建系统库分为二步 : 1. 准备好系统库的资源文件 2. 创建系统库 秘密▲ Sybase 安装 ( 续 )  创建系统库 1. 将上述的资源文件拷一个备份到别处 , 并按自己的需求进行修改相应的内容 2. 准备好建库空间 3. 创建系统库 执行 : $$YBASE/ASE-12_5/bin/srvbuild –r 资源文件名  在创建好系统库后 , 就可以创建用户自己的数据库 步骤 : a. 用 disk init 初始化二个数据库设备 : 一是数据库数据设备 , 二是日志设备 1>disk init name= 逻辑设备名 , 2>physname=“ 物理设备名” , 3>size= 页个数 (2K 为单位 ) b. 用 create database 创建用户数据库 1>create database 用户数据库名 2>on 数据设备逻辑名 = 大小 (M 为单位 ) 3>log on 日志设备逻辑名 = 大小 (M 为单位 ) 秘密▲ Sybase 安装 ( 续 )  Sybase 启停  启动: startserver –f RUN_servername  停止: $isql –Usa –Psa 密码 -Sservername 1>shutdown with nowait 2>go  Sybase 的运行日志: $SYBASE/ASE-12_5/install/servername.log 秘密▲ Sybase 网络配置说明  Sybase 的网络文件 Unix 中: $SYBASE/interfaces Nt:$SYBASE/ini/sql.ini  格式: 服务器名 服务 协议名 网卡类型 服务器 IP 地址或名 端口 内容:   mmscdb master tcp ether 192.168.10.171 5000 query tcp ether 192.168.10.171 5000 SYBASE网络服务名 master服务 网络协议: TCP/IP 网卡类型: 以太网 服务器IP或名 服务端口query服务 说明: master服务是用于服务器跟踪到来的请求 query服务用于客户机发送数据查询或命令时定位服务器的 秘密▲ Sybase 网络配置说明 ( 续 )  配置工具 :  图形工具 dsedit  .[ 开始 ]->[ 程序 ]->[sybase]->[dsedit utility]  选择 ok 进入配置 秘密▲ Sybase 网络配置说明 ( 续 )  右键点击左边 [server] 的空白处 , 选择 [add] 秘密▲ Sybase 网络配置说明 ( 续 )  输入 Server Name,[ok] 进入配置  右键点击 [Server Address] 栏 秘密▲ Sybase 网络配置说明 ( 续 )  选择” modify attribute”->[add], 输入 sybase 服务器 的 IP 及端口 , 中间用” ,” 隔开  成功后右键点击左边 server 名处 , 选择 [ping] 进行测试配置是否正确 秘密▲ Sybase 网络配置说明 ( 例 )  例 : 机器 10.40.59.58 安装了 sybase server, 它需要访问本机的 sybase server AA_Svr, 也可能访问另一台机器 10.40.157.69 的 sybase server BB_Svr, 则网络配置如下 (interfaces): AA_Svr master tcp ether 10.40.59.58 6000 query tcp ether 10.40.59.58 6000 BB_Svr query tcp ether 10.40.157.69 6000 则在 10.40.59.58 机器访问时 : isql –U –P –SAA_Svr --- 访问本机的 sybase server isql –U –P –SBB_Svr --- 访问 157.69 机器的 sybase server 秘密▲ Sybase 系统参数说明  Sybase 的系统参数分二部分 : 一是选项参数 , 二是性能参数  1. 配置参数 (option) 配置命令 : sp_dboption 数据库名, 选项名 , 值 查看数据库选项命令: sp_helpdb 数据库名 常用的 sybase 选项参数有 : database_options  ----------------------------  abort tran on log full :在日志满时如何处理正在运行的事务 。 default=falase ,表示事务被挂起并只有在空间释放后才被激活, =true 时:所有需要写入事务日志的用户查询均被注销,直到日志中的空间释 放 .  allow nulls by default :允许缺省空值, default=false, 表示不允许列 的缺少空值类型从 not null 改为 null  async log service :异步日志服务  auto identity :自动自增长约束。 Default=false 。如果设置成 true: 则 将在每个表中定义一个 10 位的 identity 列,但该表在创建时未指定主 键、唯一约束或 identity 列。用 select * 时,该列不可见。 秘密▲ Sybase 系统参数说明(续 )  dbo use only :只用于 dbo , default=false, 设置为 true 时,表示只有 数据库所有者才可以使用此数据库  ddl in tran :在 tran 中的 ddl 。设置为 true, 表示在用户定义的事务中 使用下面的命令: [alter|create|drop] table,create default,[create|drop] index, [create|drop] rule,[create|drop} procedure ,create schema, [create|drop] trigger,[create|drop] view, grant, revoke  identity in nonunique index :自动在表的索引键中包含一个 identity 列 , 以使在表上创建的所有索引都唯一。  no free space acctg :禁止对非日志段进行可用空间计算和阀值操作  read only :指用户可检索此数据库的数据,但不能进行任何修改。  select into/bulkcopy/pllsort :设置成 true 时,数据库才能执行不在日 志中保留事务完整记录的操作,操作包括: select into,bcp 及并行排序  single user :设置成 true 时,表示只有一个用户可以访问数据库。除 tempdb.  trunc log on chkpt: 在 checkpoint 时自动截断日志。  unique auto_identity index :设置为 true 时,它向新表添加具有唯一非 聚簇索引的 identity 列。 秘密▲ Sybase 系统参数说明 ( 续 )  Sybase 的参数配置文件 $SYBASE/ASE-12_5/servername.cfg 如 : 彩信 :mmscdb.cfg  配置或查询参数命令 sp_configure ‘ 参数名’ , 参数值  查看参数的帮助信息 sp_helpconfig ,包含最小值,最大值,当前值,单位等信息。 如 : 1> sp_configure "max memory" 2> go Parameter Name Default Memory Used Config Value Run Value Unit Type ---------------- ----------- ----------- ------------ ----------- ------------- ---------- ---------- max memory 32768 512000 256000 256000 memory pages(2k) dynamic  参数包括二种:一是动态参数,即修改后不需要重启 sybase server 就可生效;一种 是静态参数,修改后需要重启 sybase server 才可生效。。  用 sp_configure 修改参数后, sybase 会自动将原参数文件备份成 servername.XXX ,最多 999 个再重用。  Sybase 的性能参数按作用分为以下参数组: 备份与恢复、高速缓存管理器、组件集成服务管理、磁盘 I/O、 DTM 管理、错误日 志、扩展存储过程、一般信息、语言、锁管理器、内存使用、高速缓存、网络资源、 并行查询、物理内存、处理器、安全性的参数、用户环境等  系统参数表: sysconfigures 秘密▲ Sybase 系统参数说明 ( 续 ) 常用的性能参数说明  max memory : sybase server 可使用的最大物理内存。  allocate max shared memory :是否允许 sybase server 在启动时分配最大 的物理内存,值为 0 或 1 , =0 时 (default) , sybase server 在启动时按各参 数的实际所需内存进行分配。 =1 时:按 max memory 分配内存  number of user connections: 最大连接数,最少 5 个。最大值与版本有关。 可查看 @@max_connections  max online engines :最大联机的引擎数:  number of engines at startup :启动时的引擎数  number of locks :最大的锁数  number of open objects :同时打开对象最大数  number of open indexes :同时打开最大的索引数  sybase 二种高速缓存 : 过程高速缓存 :procedure cache, 包括存储过程计划 , 触发器计划 , 视图树 等 数据高速缓存 :data cache, 包括从磁盘读取的数据页 秘密▲ SQL 语言的发展  SQL(Structure Query Language) 语言是数据库的核心语言 , 从 1974 年被提出来后 , 经过多年发展 , 已成为一种数据库管理的规范语言 . 是面向集合的描述性非过程化 语言 .  发展历史 : 1974 年 ----- 由 Boyce 和 Chamberlin 提出,当时称 SEQUEL 。 1976 年 -----IBM 公司的 Sanjase 研究所在研制 RDBMS SYSTEM R 时改为 SQL。 1979 年 -----ORACLE 公司发表第一个基于 SQL 的商业化 RDBMS 产品。 1982 年 -----IBM 公司出版第一个 RDBMS 语言 SQL/DS。 1985 年 -----IBM 公司出版第一个 RDBMS 语言 DB2 。 1986 年 ----- 美国国家标准化组织 ANSI 宣布 SQL 作为数据库工业标准。 秘密▲ SQL 语言的发展  SQL 语言共分为四大类:数据查询语言 DQL,数据操纵语言 DML,数据 定义语言 DDL,数据控制语言 DCL。  DQL 语言 :Database Query Language, 如 select 语句  DDL 语句 :Database Define Language, 如 create,alter,drop 等  DML 语句 :Database Manage Language. 如 insert,delete,update 等  DCL 语句 :Database Control Language. 如 grant,revoke,commit,rollback, 秘密▲ SQL 操作的内部流程  Select 语句的内部流程 1) 由客户端提交给服务器端 2) 服务器进行语法检查 3) 检查 SQL 语句对应的对象在数据库中是否存在 4) 检查表的字段是否正确 5) 判断用户权限 : 是否有操作权限 6) 获取对象锁 , 以确保在分析语句过程中对象不能改变 7) 查找数据存放的卷 , 大小 , 数据存放的位置 , 形成分析树 , 执行计划等 . 8) 形成执行树 , 产生 I/O, 将数据从数据文件里读进内存 buffer 中 9) 执行语句 10 )服务器端将结果集返回给客户端 秘密▲ SQL 操作的内部流程  DML 语句内部流程 (insert/update/delete) 1) 查看内存 buffer, 是否有此语句语法树存在 2) 检查语法 3) 检查表字段是否正确 4) 获取锁 5) 检查用户的权限 6) 分析语法 , 产生分析树或执行计划 7) 执行语句 ( 对于 update/delete 语句 : 先将数据从磁盘中读入内存 buffer 中 , 同时获得一个锁 , 在数 据缓存中先修改此数据 对于 insert 语句 : 则从磁盘中获取一个数据块用来存储新的数据 ) 同时 , 将所有的改动先保存在事务日志 (LOG) 里 , 并加上写锁 8) 产生日志信息 秘密▲ Sybase T-SQL 语言介绍 T-SQL 是 sybase 对标准的 SQL 的扩展集 ,Transact-SQL 。 sybase 增加了自己的个性化事务处 理功能。  提交命令: go : sybase 一条 sql 语句提交命令  查询: select [top N]… from …where…  查询创建新表 select … into 新表名 from ...  修改: update … set … where …  删除: delete from …/truncate table …  新增: insert into … values (…)  检查语句 [not] exists( select ….)  查看当前时间: select getdate()  查询表结构: sp_help [ 表名 ] :如果不加表名,则查询此数据库所有表  打开数据库: use 数据库名  执行存储过程: [exec ] proc_name  取表N条记录: set rowcount N ( 或 select top N …..) 秘密▲ Sybase T-SQL 语言介绍 ( 续 ) 常用的全局变量 :sybase 的全局变量格式为 @@ 变量名  Select @@error :检查最近执行的语句错误状态 =0: 成功,否则为错误号  Select @@rownum :上一个语句影响的行数  Select @@sqlstatus :上次的语句状态信息  Select @@servername :服务器名  Select @@version :版本  Select @@language :使用的语言  Select @@spid :当前 DBServer 服务进程 ID  Select @@max_connections :可连接的最大连接数  Select @@identity :上次用 insert 时插入表的 identiy 值  Select @@client_csname: 客户端的字符集名称  Select @@total_read/write :自启动以来 sqlserver 从磁盘读 / 写的页数 秘密▲ Sybase T-SQL 语言介绍 ( 续 )  存储过程 语法: create procedure 存储过程名 ( 参数名列表 ) as SQL_Block 执行存储过程命令: exec 存储过程名 参数列表 如: exec sp_helpdb ‘mmscdb’ 秘密▲ Sybase T-SQL 语言介绍 ( 续 ) 常见系统存储过程说明  查看当前连接的用户情况: sp_who 1>sp_who 2>go fid spid status loginame origname hostname blk_spid dbname cmd block_xloid ------ ------ ------------ ------------ ------------ ---------- -------- ---------- ---------------- ----------- 0 2 sleeping NULL NULL 0 master DEADLOCK TUNE 0 0 3 sleeping NULL NULL 0 master MIRROR HANDLER 0 0 26 running mmslserv mmslserv linux 0 mmscdb SELECT  查看数据库空间情况: sp_spaceused 1> sp_spaceused 2> go database_name database_size ------------------------------ ------------- mmscdb 7130.0 MB reserved data index_size unused --------------- --------------- --------------- --------------- 5098 KB 2634 KB 304 KB 2160 KB (return status = 0)  统计表信息 sp_statistics table_name 秘密▲ Sybase T-SQL 语言介绍 ( 续 )  查看数据库详细信息 sp_helpdb [db_name] 1>sp_helpdb mmscdb  查看表详细情况 sp_help [table_name] 1>sp_help SUB_0  查看表索引情况 sp_helpindex [index_name]  增加 sybase 用户 sp_addlogin 用户名 , 密码 , 数据库名 1> sp_addlogin mmslserv,mmslserv,mmscdb 2>go  查看 sybase 锁情况 sp_lock  修改用户密码 sp_password 旧密码 , 新密码 , 用户名 1>sp_password null,”mmslserv”,mmslserv 2>go  估算表的空间 sp_estspace 表名,记录条数 1>sp_estspace ‘SUB_0’, 100000  查看当前所有的数据库列表 sp_databases  联机帮助 sp_syntax Eg: sp_syntax ‘select’  监控配置项统计信息数据 sp_monitorconfig “ 配置项名” 一般用于业务高峰期时跟踪参数的情况 eg: sp_monitorconfig “number of open indexes“---- 可统计这个配置项的数据, 秘密▲ Sybase T-SQL 语言介绍 ( 续 ) 常见系统表  Sysobjects: 系统中所有对象的定义 , 其中 :type 表示对象的类型 : =U: 用户表 ; =P: 存储过程 ; =TR: 触发器 =S: 系统表 ;=V: 视图 ; =D:defaullt  syscomments : 存放系统中用户的存储过程 , 函数等的定义信息  syscolumns : 存放所有表的列信息 eg: 查询 SUB_1 的所有字段 select name from syscolumns where id=object_id(‘SUB_1’)  Sysdatabases: 存放系统中的所有数库的信息  Sysconfigures: 系统配置参数信息 ( 系统原始配置 )  Syscurconfigs: 系统当前配置信息  Sysdevices: 系统设备信息  Sysindexes: 索引信息  Syslocks: 锁信息  sysprocesses: 系统当前进程信息  Syssessions: 系统事务信息 秘密▲ Sybase T-SQL 语言介绍 ( 续 )  查看本数据库的所有表列表 sp_tables  查看某一表的属性信息 sp_statistics table_name  查看某一表的各列信息 sp_columns tablename  修改或查看配置参数: Sp_configure eg: sp_configure ‘max memory’ – 查看 sp_configure ‘max memory’, 1048576 – 设置  增加数据库的登录用户 sp_addlogin eg: sp_addlogin 用户名,用户密码,数据库名  修改数据库属主 sp_changedbowner eg: use 数据库 A sp_changedbowner 用户名,‘ true’ -- 将数据库 A 的属主改为本用户  修改用户密码 sp_password 旧密码,新密码,用户名 eg: sp_password ‘test123’,’newtest’, ‘test’  显示参数的详细信息 sp_helpconfig Eg : sp_helpconfig ‘max memory’  dbcc: sybase 的数据一致性维护工具 (Database Consistenecy Checker ) 秘密▲ Sybase T-SQL 语言介绍 ( 续 ) 一些常用的系统管理 SQL 语句  获取数据库的空闲空间 select dbid,db_name(dbid),vstart/(power(2,24)) "device_num", (unreservedpgs*2)/1024.0 "free(MBytes)" from sysusages  获取当前连接的用户与进程信息 select sp.uid,sl.name,sp.status,hostname,program_name,cmd,cpu,physical_io,memusa ge,dbid from master..sysprocesses sp,master..syslogins sl where sp.suid=sl.suid order by cpu 秘密▲ Sybase T-SQL 语言介绍 ( 续 )  获取各数据库设备及空间信息 select db_name=sd.name,logical_dev_name=sdv.name,physical_name=sdv.phyname,fre espace=(su.unreservedpgs*2)/1024.0 from sysdatabases sd, sysusages su, sysdevices sdv where sd.dbid=su.dbid and su.vstart between sdv.low and sdv.high and cntrltype=0  查看某个存储过程的内容 select a.text from syscomments a, sysobjects b where b.type = ‘P’ and b.id = a.id and b.name=“ 存储过程名“  查看当前事务连接执行的 SQL 语句 先用 sp_who 查出 spid , 然后执行 : dbcc traceon(3604) -- 将 dbcc 监控内容打印在屏幕上 dbcc sqltext(spid) --- 打印出此事务最近一次的 SQL 语句 秘密▲ Sybase 的实用工具  ISQL:SQL Server 交互的 SQL 句法分析器 usage: isql [-b] [-e] [-F] [-p] [-n] [-v] [-X] [-Y] [-Q] [-a display_charset] [-A packet_size] [-c cmdend] [-D database] [-E editor [-h header [-H hostname [-i inputfile] [-I interfaces_file] [-J client_charset] [-K keytab_file] [-l login_timeout] [-m errorlevel] [-M labelname labelvalue] [-o outputfile] [-P password] [-R remote_server_principal] [-s col_separator] [-S server_name] [-t timeout] [-U username] [-V [security_options]] [-w column_width] [-z localename] [-Z security_mechanism] 常用的开关有:  -H hostname---Sybase 主机名 -U username---- 登录的用户名。  -P password---- 登录用户密码。  -S Server----Sybase Server 的名称。  -I input_file: SQL 输入文件  -o output_file: 结果输出文件     -w width : 一行列宽 -s col_separator: 各列的分隔符 eg: isql –Ummslserv –Pmmslserv –Smmscdb –w999 1> 秘密▲ Sybase 的实用工具 ( 续 )  Bcp:basic control program .以用户指定的形式将数据库表拷贝到操作系统文件中,或从操作系统文件 中拷贝一个数据库表。提供了在数据库表和操作系统文件之间传递数据的一个方便、快速的方法。  bcp [[database_name.]owner.]table_name {in | out} datafile [-c] [-t field_terminator] [-r row_terminator] [-U username] [-P password] 其中 : table_name 是想要拷贝的数据库表名; {in/out} 为拷贝方向, in 表示从文件到数据库的拷贝, out 表示从 数据库到文件的拷贝; datafile 是操作系统文件的全路径名。   常用的开关有: -f formatfile---- 存有上次使用 bcp 处理同一表时得到的应答文件的全路径名,格式文件名的扩展名为 .fmt 。 使用格式文件,省去了再重复回答前面的问题。  -U username---- 允许用户指定一个注册名。  -P password---- 允许用户指定当前的 SQL Server 口令。如果未使用 -P 选项, bcp 将提示输入一个口令。  -S Server---- 允许用户指定与其相连的 SQL Server 的名字。  -c : 以 sybase 缺省方式载数据 -t field_terminator: 字段间的分隔符 -r row_terminator: 记录间的分隔符 如 : bcp SUBINFO_VIEW out subinfo.txt –c –t’|’ –Ummslserv –Pmmslserv –Smmscdb bcp SUB_0 in sub0.txt –c –t’|’ –Ummslserv –Pmmslserv –Smmscdb 注意 : 但对视图不能导入 , 只能导出 秘密▲ Sybase 的实用工具 ( 续 )  srvbuild: 创建 sybase 系统数据库 $ srvbuild [-s ] [-I ] [-r ] [-v] 说明 : -s :sybase 的安装主目录 , 不指定就是由环境变量 SYBASE 生成 -I : 网络接口文件 , 不设置则默认为 $SYBASE/interfaces -r : 数据库资源文件 , 默认的资源模版文件在 $SYBASE/ASE- 12_5/init/sample_resource_files/ 下 : srvbuild.adaptive_server.rs: sybase 主服务器资源文件 srvbuild.backup_server.rs: sybase 备份服务器资源文件 通过修改这二个资源文件可以创建用户需要的系统数据库 秘密▲ Sybase 的实用工具 ( 续 )  startserver :启动数据库   $SYBASE/ASE-12_5/install/startserver –f 启动文件 RUN_mmscdb  showserver :显示数据库状态 $showserver  dscp/dsedit :网络配置工具。 dsedit 是图形工具。而 dscp 是 字符界面  查看 sybase 的版本 dataserver –v 或 @@version  Sybase SQL 图形界面 SQL Advantage  Sybase 系统管理工具 sybase central windows 下 :[ 开始 ]->[ 程序 ]->[sybase]->[sybase central Java Edition] unix: $SYBASE/sybcent41/bin/scjview 或 $SYBASE/ASEP/bin/aselogin 此工具可以管理 sybase 的各种对象及性能  Charset: 加载字符集 秘密▲ Sybase 的实用工具 ( 续 )  系统管理工具 sybase central 秘密▲ Sybase 与 oracle 比较 命令名 Oracle Sybase SQL 交互程序 Sqlplus (PL/SQL) isql (T-SQL) 查看数据库信息 查看视图: v$database v$tablespace v$datafiles ssp_helpdb 数据库名 查看数据库版本 select * from v$version select @@version 查看当前用户 show user sp_who 查看表结构 desc 表名 sp_help 表名 设置一次查询的行数 Select …. Where rownum < 行数 Set rowcount 行数 提交 sql 命令 ; 或 / go 执行 SQL 脚本文件 @ 脚本文件 isql …-i 脚本文件 将查询结果生成文件 spool 文件名 isql … -o 文件名 批量加载 sqlldr bcp 查看数据库进程状态 Ps –ef|grep ora_ Showserver 秘密▲ Sybase 与 oracle 比较 命令名 Oracle Sybase 启动数据库 Sqlplus … 1>startup Startserver –f RUN_XXX 停止数据库 Sqlplus … 1>shutdown Isql …. 1>shutdown 网络配置文件 Listener.ora Tnsnames.ora Interfaces (unix) Sql.ini (*\windows) 网络服务启停 Lsnrctl start|stop 随数据库自动启动 网络服务监控 Lsnrctl status 客户端的工具 dsedit 网络服务配置 NET*CONFIG dsedit 系统管理工具 Enterprise Manager Console(EMC) 命令: oemapp comsole& Sybase Central($SYBASE/sybcent41/bin 下 ) scjview& 查看数据库空间使用情况 用 EMC 或 select 语句查询 Sp_spaceused 参数配置文件 $ORACLE_HOME/dbs/ initSID.ora spfileSID.ora Servsername.cfg 日志文件 $ORACLE_BASE/admin/ SID/bdump/alert_SID.log $SYBASE/ASE-12_5/ 数据库名 .log 取系统时间 Sysdate Getdate() 秘密▲ 其他  字符集的修改 1. 先查询 sybase 系统中已加载的字符集情况 1> select name, id from syscharsets name by name 2. 如果 sybase 没有加载需要的字符集,则加载 sybase server 中 没有的字符集 , 下面以加载 utf8 字符集为例 $cd /home/Sybase/charsets/utf8 $ charset -Usa -Pzxmesa -Smmscdb binary.srt utf8 3. 修改默认字符集 $isql –Usa –P –Smmscdb 1>select name, id from syscharsets name by name ------ 先 查出字符集的序号 id 2>go 1>sp_configure “default character set id”, 查出的 id 值 2>go 4. 然后将 sybase 重启二次。 5. 查询字符集 :sp_helpsort 秘密▲ 其他  恢复 sa 密码: sa 密码丢失后,恢复 sa 密码的步骤:  1.shutdown server 或 kill 掉落 dataserver 进程  2. 修改 RUN_servername 数据库 server 启动脚本,在最后加入 这样一行 -psa 保存退出  3. startserver -f RUN_SYBASE 启动数据库,  4. 在屏幕的启动信息中有新的 sa 用户的密码,格式为: New SSO password for sa:twjkhjfnmtykm1 将密码记下。  4 、 shutdown server  5 、将 RUN_servername 中的 -psa 一行去掉,重新启动。  6 、用 sa 新密码登陆,然后在修改 sa 用户密码
还剩50页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 20 金币 [ 分享pdf获得金币 ] 1 人已下载

下载pdf

pdf贡献者

ericzp

贡献于2011-04-26

下载需要 20 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf