Sybase Health-Check Report
移动集团Sybase数据库系统
巡检报告
工 程 师:_李雷章_______ _____
联系电话:_133xxxxxxxx______
巡检日期:_2014/1/23_____
Sybase Health-Check Report
目 录
一、 移动集团SYBASE数据库综合报告 ................................................................................. 3 二、 SYBASE数据库系统软件环境 .......................................................................................... 4 三、 SYBASE数据库配置 .......................................................................................................... 5
1. 主要配置参数(IPXXXXXXXX) ................................................................................................ 5 2. 主要配置参数(IPXXXXXXXX) ................................................................................................. 6 四、 SYBASE数据库性能报告 .................................................................................................. 7
1. 性能报告(IPXXXXXXXX) .......................................................................................................... 7 2. 性能报告(IPXXXXXXXX) ........................................................................................................... 8 五、 SYBASE数据库使用报告 .................................................................................................. 9
1. 数据设备使用情况(IPXXXXXXXX) ....................................................................................... 9 2. 数据设备使用情况(IPXXXXXXXX) ....................................................................................... 9 4. 日志设备使用情况(IPXXXXXXXX) .............................................. 错误!未定义书签。 5. 日志设备使用情况(IPXXXXXXXX) ..................................................................................... 10 六、 SYBASE数据库ERROR报告........................................................................................... 12
Sybase Health-Check Report
一、 移动集团SYBASE数据库综合报告
巡检综述:
1、SYBASE数据库系统运行基本正常;无性能方面的问题。
建议:无
巡检工程师: 巡检日期:
Sybase Health-Check Report
二、 SYBASE数据库系统软件环境
Sybase Health-Check Report
三、 SYBASE数据库配置
1. 主要配置参数(IP172.16.59.3)
Sybase Health-Check Report
2. 主要配置参数(IP172.16.59.19)
Sybase Health-Check Report
四、 SYBASE数据库性能报告 1. 性能报告(IP172.16.59.3)
性能分析:该SYBASE数据库无性能问题。
Sybase Health-Check Report
2. 性能报告(IP172.16.59.19)
性能分析:该SYBASE数据库无性能问题。
Sybase Health-Check Report
五、 SYBASE数据库使用报告
1. 数据设备使用情况(IP172.16.59.3)
说明:
2. 数据设备使用情况(IP172.16.59.19)
说明:
3. 日志设备使用情况(IP172.16.59.3)
Sybase Health-Check Report
4. 日志设备使用情况(IP172.16.59.19)
Sybase Health-Check Report
Sybase Health-Check Report
六、 SYBASE数据库ERROR报告
第二篇:Sybase数据库系统常用操作
Sybase数据库系统常用操作 目录
附录 D Sybase数据库系统常用操作
D.1 Sybase数据库系统常用操作 D-1
D.1.1 isql D-1
D.1.2 bcp D-3
D.1.3 showserver D-4
D.1.4 startserver D-5
D.1.5 shutdown D-5
D.2 T-SQL语言 D-6
D.2.1 数据定义语句(DDL) D-6
D.2.2 数据操作语句(DML) D-7
D.2.3 数据控制语言(DCL) D-8
D.3 Sybase数据库的备份与恢复 D-12
D.3.1 系统软件故障恢复 D-12
D.3.2 备份数据库及其事务日志 D-12
D.3.3 恢复数据库 D-13
D.3.4 监控事务日志空间大小方法
D-1 D-14
附录 D Sybase数据库系统常用操作 本附录介绍Sybase系统常用操作、T-SQL语言、Sybase数据库的备份与恢复,方便用户在维护过程中进行查询。
D.1 Sybase数据库系统常用操作
Sybase数据库系统为用户的管理、维护和访问SQL Server提供了下面几种常用的操作:
? isql
? bcp Sybase数据库提供的标准接口,也常用于批处理程序的执行 用于SQL Server表和操作系统文件之间的数据的引入和引出
? showserver
? startserver
? shutdown 查看SQL Server是否启动(若没有启动,可以用下面的命令startserver来启动SQL Server;若想关闭,可以用命令shutdown来关闭SQL Server) 启动SQL Server 关闭SQL Server
D.1.1 isql
isql是Sybase数据库系统的一个前台工具,是基于字符的最基本的访问SQL Server数据库服务器的实用程序。能够实现与服务器的连接,向服务器发送T-SQL命令。所有的SQL查询语言和系统存储过程都必须在isql下执行,并可在屏幕上显示返回的结果信息。
1. 启动
[简要说明] isql
在Unix操作系统的命令行下可以启动isql。
[命令格式]
isql [选项]
[选项说明]
-U username
-P password
-S Server 允许用户访问SQL Server的一个登录帐号 允许用户访问当前SQL Server的口令 允许用户指定与其连接的SQL Server的名称
输入文件
输出文件 -i inputfile -o outputfile
-w column_width 为输出设置屏幕列宽
[使用实例]
以sa为用户名启动isql,访问当前SQL Server的口令为1234: $ isql -Usa -P1234
1>
或:
$ isql -U sa
Password:密码不回显
1>
? 说明:
? 上例中,-U和-P后的用户名和密码不用空格也可以。例如:isql -Usa -P1234。
? 当正常启动isql后,isql也会像操作系统一样,提供一个isql工具环境提示符“1>”。此处的“1” 表示即将输入的为一个命令的第一行,当命令分为多行输入时,只要没有提交Sybase数据库系统执行,将会出现“2>”、“3>” 等提示符。当一个命令输入完毕,需要用命令go来结束输入,此时Sybase数据库系统开始执行该命令并显示输出结果或将结果输出到指定的输出文件中。命令执行完毕后,isql工具环境提示符自动复位为“1>”。若在输入时输错了命令,也可以用命令reset清除查询缓冲,回退到“1>”的环境提示符状态。
? 能够正常启动isql,也表明Sybase数据库服务器正常启动。当然,导致isql不能正常启动的原因是多方面的,一方面可能是Sybase服务器未启动,另一方面可能是用户名与密码不符。
2. 退出
[简要说明] isql
退出isql,只需在isql环境提示符下输入命令quit 或exit 即可。 [命令格式]
quit(或者exit)
[使用实例]
退出isql环境:
1> quit
$
或:
1> exit
$
D.1.2 bcp
[简要说明]
批拷贝命令bcp以用户指定的形式,将数据库表拷贝到操作系统文件中,或从操作系统文件中拷贝一个数据库表,该命令提供了在数据库表和操作系统文件之间传递数据的一种快速的方法。
[命令格式]
bcp [[数据库.]所有者.] 数据库表 {拷贝方向 in|out} 数据文件 [选项] [选项说明]
-f formatfile 表明用户存有一个上次使用bcp处理同一表时得到的格式文件(扩展名为.fmt),并提供完整的路径名
-U username 允许用户连接服务器时指定一个注册名(缺省值是由用户环境标识的用户名)
-P password 允许用户指定登录当前SQL Server的口令(若未使用此选项,系统将提示输入一个口令)
-S Server 允许用户指定与其相连的SQL Server的名称(若没有提供服务器名,该选项使用$DSQUERY值;若$DSQUERY值不存在,则使用SYBASE)
-c
[参数说明] 文件类型(如c-char 、t-text 、i-int等)
数据库
所有者 表所在的数据库 欲拷贝的数据库表的所有者
欲拷贝的数据库表 数据库表
拷贝方向 in|out 拷贝方向(in表示从文件到数据库表的拷贝;out表示从数据库表到文件的拷贝)
数据文件 源数据文件或目标数据文件(由拷贝方向是in或out来决定),包含完整的路径名和文件说明
[使用实例]
将数据库warn中的表history备份成history.dat文件,文件类型为char: $ bcp warn.. history out history.dat -U sa -P 1234 -c
Starting copy...
注意:
若将上述命令中的拷贝方向out改为in,则表示恢复数据库表。命令bcp主要用于备份与恢复数据库中某一个表,后面我们将介绍使用命令dump与命令load来对数据库进行备份与恢复操作。
D.1.3 showserver
[简要说明]
showserver可显示当前本机上正在运行的SQL Server ,查看其是否启动,但要注意的是该用户必须是Sybase用户。
[命令格式]
showserver
[使用实例]
显示当前本机上正在运行的SQL Server:
$ showserver
UID PID PPID C STIME TTY TIME CMD
sybase 204 203 1 Feb 19 ? 944:19 /home1/sybase/bin/dataserver -ssybserver -d/dev/rdsk/c0t0d0s4 -e/home1/sybase/i
sybase 208 206 0 Feb 19 ? 0:00 /home1/sybase/bin/backupserver -Ssybserver_back -e/home1/sybase/install/sybserv
如上内容显示主备数据库服务器均已启动。
注意:
若SQL Server已启动,运行该命令后,系统将打印如上有关SQL Server的信息;若SQL Server没有启动,则只打印标题信息。
D.1.4 startserver
[简要说明]
startserver用于启动SQL Server。
[命令格式]
startserver [选项]
[选项说明]
-f run_serverfile 指定一个运行服务器文件(每次重启SQL Server时,以此文件为参考,在实际机器上该文件名为RUN_sybserver或
RUN_sybserver_back)
-m 以单用户方式启动SQL Server ,用于恢复master数据库
D.1.5 shutdown
[简要说明]
系统管理员可用命令shutdown关闭SQL Server或Backup Server,此命令在isql环境下使用。
[命令格式]
(1) 关闭SQL Server
shutdown [选项]
(2) 关闭Backup Server
shutdown 备份服务器 [选项]
[选项说明]
with {wait|nowait} 系统是否立即关闭(若为with nowait则跳过
checkpoint操作,立即关闭系统,此时重启服务器的自动恢复工作量将大大加大;否则相反)
[参数说明]
备份服务器
? 说明: Backup Server名称
? 关闭数据库服务器时,必须注意关闭顺序,即必须先关闭备份服务器,然后再关闭主服务器。
? shutdown后若没有给出服务器名称时,将关闭正在使用的SQL Server。当发出shutdown命令时,SQL Server会执行如下操作:
禁止登录,系统管理员除外。
对每个数据库执行checkpoint操作,将改动过的页从内存刷新到磁盘。
等待当前正在执行的SQL Server语句或过程完成。
以此种方法关闭SQL Server,会使重新启动SQL Server时必须做的自动恢复工作量减到最小。
? 关闭Backup Server时,选项缺省为with wait,因此在Backup Server进程终止之前,进行中的任何转储或装载都将完成。系统一旦发出shutdown命令,将不能再在Backup
Server上进行新的转储或装载会话。
D.2 T-SQL语言
T-SQL (Transact-SQL)是一种增强性型的标准结构化查询语言SQL(Structured Query Language)语言,它不仅与IBM的SQL语言以及其它绝大多数的SQL语言兼容,而且还在SQL语言的基础进行了扩展,增加了许多新的功能,最大限度的降低了用户对编程语言的依赖性。
标准的SQL语言最初被认为是一种查询和执行语言,而不是发展成熟的编程语言。T-SQL对SQL进行了扩展,增加了程序流控制结构、局部变量和允许DBA创建存储过程、触发器等功能。
标准的SQL语言包括数据定义语句(DDL),数据操作语句(DML)和数据控制语句(DCL)。本节内容主要介绍数据定义语句(DDL)和数据操作语句(DML)。
D.2.1 数据定义语句(DDL)
数据定义语句DDL(Data Definition Language)主要用来创建、更改和删除数据库对象。
1. 创建对象——create
这里只介绍表和索引的创建。
(1) 创建表
create table table_name(column_1 datatype,…,column_n datatype)
例如:创建名为teachers的一张表,该表包括三个字段,分别为teacher_name(字符型,长度为18)、phone(字符型,长度为12)和salary(浮点型)。 1> create table teachers(teacher_name CHAR(18),phone CHAR(12), salary FLOAT)
2> go
(2) 创建索引
create index index_name on table_name(column_1,…,column_n) 例如:创建表teachers中teacher_name字段的索引文件names。
1> create index names on teahers(teacher_name)
2> go
2. 删除对象——drop
这里只介绍表和索引的删除。
(1) 删除表
drop table table_name
例如:删除上述新建表teachers。
1> drop table teachers
2> go
(2) 删除索引
drop index table_name.index_name
例如:删除上述新建表teachers 的索引文件names。
1> drop index teachers.names
2> go
3. 清空表内容——truncate
命令truncate只是清空表内容,但保留表结构。注意与命令drop相区别。 truncate table table_name
D.2.2 数据操作语句(DML)
数据操作语句DML(Data Manipulation Language)包括对数据的查询、插入、修改和删除等操作。下面分别对上述操作依次进行介绍。
1. 查询记录——select
用命令select可以查询数据库中的表记录,此命令在isql下执行。
例如:查询数据库warn中表history的记录信息。
1> use warn
2> go
1> select * from history
2> go
2. 增加新记录 ——insert
用命令insert可以向数据库的表中增加新的数据(记录),此命令在isql下执行。
例如:向表teachers中增加一个新记录。
1> insert into teachers(teacher_name,phone,salary) values ('wangjie','3340546',3000)
2> go
3. 更新记录 ——update
用命令update可以更新数据库的表中已有记录的指定字段的值,此命令在isql 下执行。
例如:将表teachers中zhanglin的电话号码更新为3356789。
1> update teachers set phone='3356789' where teacher_name='zhanglin'
2> go
4. 删除记录——delete
用命令delete可以删除数据库的表中的指定记录,此命令在isql下执行。 例如:删除表teachers中wangjie的记录。
1> delete teachers where teacher_name='wangjie'
2> go
注意:
where条件子句在上述命令中作用很大,例如要在students 表中查询年龄不到20岁的女生姓名可以使用如下命令:
1> SELECT name FROM students WHERE age<20 AND sex=F
2> go
D.2.3 数据控制语言(DCL)
数据控制语言DCL(Data Control Language)主要对数据库进行监视、管理、控制访问权限等操作,用于数据库系统中权限的授予和收回。数据库系统中,可以授予和收回的权限包括:
(1) 系统管理员
系统管理员可以授予其他用户create database的权限,使其他用户可以成为数据库所有者(DBO)。
(2) 用户数据库所有者DBO
用户数据库所有者(DBO)在其所拥有的数据库中,可以授予其他用户的操作权限如所示。 表D-1 DBO可授予其他用户的操作权限
表D-1 DBO可授予其他用户的操作权限
(3) 数据库对象所有者
数据库对象所有者可以授予其他用户的操作权限如
表D-2 数据库对象所有者可授予其他用户的操作权限 表D-2 数据库对象所有者可授予其他用户的操作权限所示。
1. 授权——grant
用户授权操作分为两种:一种是对数据库对象的操作进行授权,这些操作包括select、insert、update、delete、execute和reference;另一种是对命令操作进行授权,这些命令包括create database、create procedure、create rule、create view、dump database和dump transaction等。下面分别进行介绍。 ? 对数据库对象操作的授权格式如下:
grant {all | permission_list}
on {table_name [(column_list)]|
view_name [(column_list)]|
stored_procedure_list}
to {pubic | name_list}
[with grant option]
在上述命令中,选择参数all时,将把所有权限都赋予指定的用户或用户组;参数permission_list可以是数据库对象允许的操作的任意组合(各操作命令间用逗号隔开)。
on子句用于指定具体的授权数据库对象,可以是表、视图或列以及存储过程等。对不同的数据库对象允许进行的操作授权如所示。 表D-3 不同数据库对象允许进行的操作授权
表D-3 不同数据库对象允许进行的操作授权
to子句后选择参数public时,将把相应的权限赋予public组中的所有用户;而选择参数 name_list时,指定的既可以是组名,也可以是用户名。
选择参数with grant option时,允许被授权用户将相应授权再转授给其他用户。 ? 对命令操作的授权格式如下:
grant {all | command_list}
to {public | name_list}
在上述命令中,参数command_list可以是下列数据库所有者允许的操作的任意组合(各命令间用逗号隔开)。
? create database
? create procedure
? create rule
? create view
? dump database
?
dump transaction
注意:
因为只有系统管理员才可对命令create database进行授权,所以只有系统管理员才可选择参数all。
例如:授予用户bob,john在数据库表teachers上读取的权限。
1> grant select on teachers to bob,john
2> go
2. 收回授权——revoke
收回授权与授权操作是相互对应的,也分为收回数据库对象操作授权和收回命令操作授权两种,下面分别进行介绍。
? 收回对数据库对象操作的授权的格式如下:
revoke [ grant option for ]
{all | permission_list}
on {table_name [(column_list)]|
view_name [(column_list)]|
stored_procedure_list}
from {pubic | name_list}
[cascade]
在上述命令中,参数grant option for用于收回授权用户转授的相应操作权,如果用户已将授权转授其他用户,则还应选择参数cascade,这时系统把转授的权限同时收回。
? 收回对命令操作的授权的格式如下:
revoke {all | command_list}
from {public | name_list}
例如:收回用户组public在数据库表teachers上的所有权限。
1> revoke all
2> on teachers
3> from public
4> go
D.3 Sybase数据库的备份与恢复
Sybase数据库提供了两种不同类型的数据库恢复功能:一种是系统自动完成的恢复;另一种是人工完成的恢复。
? 系统自动恢复功能是防止系统失败的一种保护措施,每次SQL Server重启时,都要运行自动恢复机制。自动恢复机制确保在系统瘫痪前完成的事务都写到数据库设备上,而未完成的事务都被回退(删除)。
? 人工恢复功能是通过备份命令(dump)和恢复命令(load),从其它地方装入数据库完成的。在Sybase数据库中,备份通常称为转储,恢复通常称为加载,这是由备份与恢复的命令名得来的。
注意:
在Sybase中进行数据库的备份和恢复操作,必须保证备份服务器处于运行状态。
D.3.1 系统软件故障恢复
系统自动恢复功能是指在系统软件出现故障的情况下,通过重新启动SQL Server而进行的数据库恢复操作。
系统自动恢复首先从master数据库开始,然后是model数据库,再是temporary数据库,最后是用户数据库。在每个数据库上,恢复机制都要观察事务日志。如果事务日志已写入比数据库更近的数据,恢复机制则向前恢复数据库,以使它与日志保持一致;如果事务日志尚未完成,则要回退(删除)。
? 说明:
问:什么是事务日志?
答:对任一数据库的每次修改,都可被自动记录于一个系统表中,这个系统表就叫做事务日志(Transaction log)。 事务日志记录更新(update)、插入(insert)和删除(delete)等语句操作。任何修改总是先记录日志,然后才做实际的修改。 事务日志保证了在系统软件出现故障时可以将数据恢复到出错前的状态。
D.3.2 备份数据库及其事务日志
备份是保证数据库可以恢复的最简单容易的方法,不进行备份可能会导致重要数据的丢失,而进行备份可以防止表或数据库的损坏、介质故障和用户错误等情况而产生的数据丢失。为了得到有效的数据,应根据需要尽量频繁地进行备份操作。 备份操作建议在系统比较空闲的时候进行,这样容易保证备份数据的正确性和可用性。
备份数据库的命令格式如下:
dump database database_name to filename | device
例如:将数据库aaa直接备份到操作系统中的文件aaabak中。
1> dump database aaa to aaabak
2> go
备份事务日志(增量备份)的命令格式如下:
dump transaction database_name to filename | device [with truncate_only | with no_log | with no_truncate]
参数with truncate_only和with no_log都表示删除事务日志,其作用是相同的;参数with no_truncate表示不删除事务日志,即备份整个事务日志(从上一次dump transaction以来发生的一切事务)。
例如:备份数据库aaa的事务日志到文件aaalog中。
1> dump transaction aaa to aaalog with no_truncate
2> go
注意:
? 在备份数据库前的所有事务日志备份都是没有意义的。一般情况下,不需要经常备份数据库,但需要经常备份事务日志,这是因为备份事务日志比备份数据库需要更少
的时间和存储空间。
? 恢复事务日志只能在数据库恢复之后才能进行。恢复数据库后,就可以恢复一个或多个事务日志了,但恢复数据库日志的顺序必须按它们被卸出的顺序进行。SQL Server
会检查每个恢复数据库以及每个事务日志的时间戳以确定次序是否正确。
D.3.3 恢复数据库
要恢复被破坏的数据库,可以按如下步骤进行:
(1) 用带参数no_truncate的dump transaction命令卸出用户数据库事务日志;
(2) 用drop database命令删除被破环的数据库;
(3) 用与被破坏的数据库同样的结构建立一个新的数据库(对于OMC Server数据库来说,OMC Server提供重建数据库的程序,不必用create命令建立一个新的数据库);
(4) 用load database命令重新装入数据库;
(5) 用load transaction重新装入事务日志。
装入数据库的命令格式如下:
load database database_name from file_name | device 装入事务日志的命令格式如下:
load transaction database_name from file_name | device 例如:用上述备份的数据库文件和事务日志文件恢复数据库aaa。 操作步骤如下:
(1) 数据库恢复
1> load database aaa from aaabak
2> go
(2) 数据库恢复后,必须运行命令online,使其进入正常工作状态
1> online database aaa
2> go
(3) 事务日志恢复
1> load transaction aaa from aaalog
2> go
(4) 删除事务日志
1> dump transaction aaa with truncate_only
2> go
注意:
? 如果总用命令dump transaction with no_truncate,事务日志将不会被删除,因而会变得非常庞大。因此对于一般的数据库,每次运行命令dump database与命令dump transaction with no_truncate之后,应当运行命令dump transaction with truncate_only来删除日志。
? 命令load仅当该数据库没有被其他用户占用时才起作用.如果有其他用户正在使用该数据库,则命令load执行不成功。
? 恢复数据库比备份数据库所花的时间将更长。
D.3.4 监控事务日志空间大小方法
1. 使用系统存储过程sp_helpdb
例如:监控数据库warn的事务日志空间大小。
1> sp_helpdb warn
2> go
name db_size owner dbid
created
status
------------------------ ------------- ------------------------
--------------
--------------------------------------------------------
------------------------------
warn 200.0 MB sa 6
Mar 12, 2001
trunc log on chkpt, ddl in tran, allow nulls by default
(1 row affected)
device_fragments size usage free kbytes
------------------------------ ------------- ------------------
data_dev1 100.0 MB data only
89392
log_dev1 100.0 MB log only
102384
2. 使用系统存储过程sp_spaceused
命令格式如下:
sp_spaceused tablename
例如:查询数据库warn中的表history占用空间的大小。 1> use warn
2> go
1> sp_spaceused history
2> go
name rowtotal reserved data index_size unused
-------------------- ----------- --------------- --------------- --------------- ---------------
history 35423 11604 KB 9414 KB 2040 KB 150 KB
(0 rows affected)
(return status = 0)
3. 使用dbcc命令
命令格式如下:
dbcc checktable (tablename) 例如:查询表history的信息。 1> dbcc checktable(history)
2> go
Checking history
The total number of data pages in this table is 4707.
Table has 35437 data rows.
DBCC execution completed. If DBCC printed error messages, contact a user with
System Administrator (SA) role.