收藏 分销(赏)

sybase日常操作和维护.doc

上传人:人****来 文档编号:3316632 上传时间:2024-07-01 格式:DOC 页数:26 大小:103.50KB 下载积分:10 金币
下载 相关 举报
sybase日常操作和维护.doc_第1页
第1页 / 共26页
sybase日常操作和维护.doc_第2页
第2页 / 共26页


点击查看更多>>
资源描述
中国现代化支付系统 SYBASE日常操作和维护 深圳金融电子结算中心 二○○二年五月 目 录 1. SQL SERVER基本框架 2 1.1. 系统数据库 2 1.2. interfaces文件 3 1.3. SYBASE.cfg 3 1.4. 数据库设备 4 1.5. 常见问题及解决方法 5 2. 数据库启动/关闭 6 2.1. 查看数据库状态 6 2.2. 数据库启动 6 2.3. 数据库关闭 6 2.4. 出错日志 7 2.5. 常见问题及解决方法 7 3. 用户数据库管理 11 3.1. 数据库选项 11 3.2. 查看数据库信息 13 3.3. 常见问题及解决方法 14 4. 用户管理 16 4.1. 增加/删除用户 16 4.2. 查看用户信息 17 4.3. 常见问题及解决方法 17 5. 数据库备份/恢复 19 5.1. 数据库备份 19 5.2. 恢复数据库 20 6. 如何调整SQL SERVER基本配置参数 22 6.1. 配置sqlserver参数的方法 22 6.2. 常见问题及解决方法 23 1. sql server基本框架 sql server由系统数据库、用户数据库、数据库设备和一些辅助文件组成。 1.1. 系统数据库 sql server是个多数据库结构的数据库管理系统。分为系统数据库和用户数据库。系统数据库是在安装时自动创建的。 (1) master数据库 master数据库全面控制和管理用户数据库及sql server上的一切操作。 Master数据库主要包含以下纪录: l 用户账号。 l 正在处理的进程。 l 环境变量的配置。 l 系统出错信息。 l 每个数据库的存储分配。 l 活动锁。 l 联机的 sqlserver引擎。 (2) temp数据库 它为临时表和其他临时工作空间提供一个存储区域。是公用的。 1、 当对大表进行order by 或group by操作时 2、 当建立过多的临时表时。 (3) model 数据库 它为新建的用户数据库提供一个原型。 (4) sybsystemproc数据库 存储系统存储过程。 其他系统数据库: 审计数据库(sybsecurity)、样本数据库(pubs2)、句法数据库(sybsyntax) 查看当前数据库服务器中的用户数据库和系统数据库的信息的命令如下: $isql –Usa –P<password> 1> sp_helpdb 2> go 要查看某一个数据库的信息,用下面命令 $isql –Usa –P<password> 1> sp_helpdb dbname 2> go 1.2. interfaces文件 interfaces位于$sybase目录下, 接口文件就象一个地址本,其中列出每个已知的服务器的名称及网络地址和端口号。结构如下: server_name service_type protocol network machine prot service_type 该登记项的服务类型 query 供客户去找 sql server 的端口 master 供sql server 确定用来监听客户连接请求的端口。 Sort 网络端口号(1025-65535) 例: Sybase Query tcp 168.33.56.171 5000 Master tcp 168.33.56.171 5000 Interfaces文件的作用: 1、 在客户端的interfaces文件中列出可被连接的各个server 的网络地址。 2、 在server端,每个server用于同其它server的连接。 用户可以更改此文件,来改变数据库服务器的地址。 1.3. SYBASE.cfg SYBASE.cfg文件存在于$sybase目录下,用于存放sqlserver的系统参数信息。数据库在启动时,读取该文件。用户可以通过直接修改该文件中的参数的值,来改变数据库的系统参数,必须注意,修改了此文件中的参数以后,只有数据库重新启动以后才生效。 1.4. 数据库设备 数据库设备是指逻辑磁盘上的一组连续磁盘空间。用来存放数据库的数据和日志数据。 存放数据库和事务日志。数据库设备最好建在原始分区上,也可以创建在文件系统上。 只有系统管理员有权建立数据库设备 查看数据库设备的命令如下: $isql –Usa –P<passwd> 1 >sp_helpdevice 2> go device_name physical_name description hisdatadb /home/sybase/mbfe/hisdatadb special, physical disk, 1000.00 MB hisdblog /home/sybase/mbfe/hisdblog special, physical disk, 400.00 MB hisindexdb /home/sybase/mbfe/hisindexdb special, physical disk, 200.00 MB master d_master special, default disk, physical disk, 70.00 MB sysprocsdev /home/sybase/systemprocs special, physical disk, 100.00 MB systemdbdev /home/sybase/systemdb special, physical disk, 5.00 MB tempdb /home/sybase/tempdb special, physical disk, 20.00 MB wkdatadb /home/sybase/mbfe/wkdatadb special, physical disk, 200.00 MB wkdblog /home/sybase/mbfe/wkdblog special, physical disk, 100.00 MB wkindexdb /home/sybase/mbfe/wkindexdb special, physical disk, 100.00 MB 要查看某一个数据库设备信息用下面命令: $isql –Usa –P<password> 1 > sp_helpdevice device_name 2 > go 每天在业务开始之前,如果数据库是关闭的,要启动数据库。数据库的启动过程如下: 1、 以SYBASE用户登陆操作系统。 2、 进入install目录。 (1)如果是unixware 操作系统,执行 $cd $SYBASE/install (2)如果是aix操作系统,执行 $cd $SYBASE/ASE-12_0/install 3、 启动数据库服务器,执行下面命令 $ startserver 4、 如果是启动备份服务库,执行下面命令 $startserver –f RUN_SYB_BACKUP 1.5. 常见问题及解决方法 修改主机的IP地址后,如何根该interfaces文件? 安装SYBASE Adapive Server的机器IP地址改变后, 应修改 interfaces 文件及有关的设置。 如果 interfaces 文件中使用的是机器名而不是 IP 地址, 则不需要变动。 但如果客户端联接服务器使用的是服务器的 IP 地址而不是机器名,那么客户端需修改联接服务器的 IP 地址.。 如果 interfaces 文件中使用的是 IP 地址, 那么需要修改 interfaces 文件中和地址有关的部分, 可使用dscp 或 dsedit 进行修改。 如果客户端联结服务器使用的是服务器的地址而不是机器名,那么客户端也需修改。 2. 数据库启动/关闭 2.1. 查看数据库状态 以sybase用户登录到操作系统,用命令showserver查看数据库是否启动。 $showserver USER PID %CPU %MEM SZ RSS TTY STAT STIME TIME COMMAND sybase 24000 0.1 2.0 13924 10856 - A Jun 13 4:46 /sybase/ASE-12_ 0/bin/dataserver -d/sybase/data/master.dat -e/sybase/ASE-12_0/install/SYBASE.log -M/sybase –sSYBASE 输入showserver命令后如果出现上面信息,证明数据库已经启动。 2.2. 数据库启动 以下是数据库启动的步骤: 1>sybase用户登录操作系统 如果是unixware操作系统 2>$SYBASE/install目录 如果是aix操作系统 2>$SYBASE/ASE-12_0 启动数据库服务器: 3>startserver 启动备份服务器: 4> startserver –f RUN_SYB_BACKUP 注意:一般情况,备份服务器是不用启动的,只有需要备份的时候才启动备份服务器。 2.3. 数据库关闭 在一般情况下,数据库并不是每天都关闭,最好每天都不关闭,在特殊情况下才关闭。数据库关闭过程如下: 1、 以SYBASE用户登陆操作系统。 2、 以数据库管理员(超级用户SA)登陆数据库。 $ isql –Usa –P<password> 3、 关闭备份服务器 1〉 shutdown SYB_BACKUP 2〉 go 4、 关闭数据库服务器 1> shutdown 2> go 2.4. 出错日志 也许在数据库启动时,由于各种原因,数据库不能正常启动,数据库会把引起数据库错误的信息方到SYBASE..log文件中,这个文件在$SYBASE/install目录下。 2.5. 常见问题及解决方法 在实际环境中,数据库Server无法启动的原因很多,本文仅列出了几种常见的情况,供您参考。 首先,应检查Server的日志文件。不同版本缺省的日志文件如下(其中<server_name>为Sybase Server的名称: UNIX: 11.0*: $SYBASE/install/errorlog 11.5* 或 11.9*: $SYBASE/install/<server_name>.log 12.0*: $SYBASE_ASE/install/<server_name>.log NT: 11.0* 11.5* 或 11.9*: $SYBASE\install\errorlog 12.0*: $SYBASE\ASE-12_0\install\errorlog · CASE 1: basis_dlock: file '/sybase/master.dat' already in use by a SQL Server kernel kdconfig: unable to read primary master device kernel kiconfig: read of config block failed 检查server是否已经启动( showserver, ps -u sybase 或NT service ) · CASE 2: dopen: open '/sybase/master.dat' failed, permission denied kernel kdconfig: unable to read primary master device kernel kiconfig: read of config block failed 检查master设备文件的所有者及权限 · CASE 3: ninit: All master network listeners have failed. Shutting down 检查network ip 及 port配置 ( netstat -a ) · CASE 4: kernel:kscsinit: connectivity library error. Operation: cs_ctx_alloc(). o 检查操作系统参数是否已经修改并重新启动操作系统 (参见安装手册) 若操作系统异常宕机,ASE未启动而$SYBASE/<server_name>.krg已经存在, 删除该文件 · CASE5 现象:Error 926      Severity Level 14      Error Message Text      Database 'xx' cannot be opened - it has been marked SUSPECT by recover Explanation 解决方法: (1) 当你使用Transact_SQL命令操作这个数据库的数据时, 出现这个信息, 这是一个严重的错误, 如果你要使用这个数据库的数据, 必须改正这个错误.    (2) 启动Backup Server, 后备master数据库   1>dump database master to "/usr/sybase/master.dup"   2>go    (3) 用isql登录到SQL Server, 须用sa帐号 (本文以pubs2数据库为例)   1>sp_configure "allow updates", 1   2>go   1>begin tran   2>go   1>use master   2>go   1>update sysdatabases   2>set status = -32768   3>Where name="pubs2"   4>go    如果得到(1 row affected),则   1>commit   2>go    否则   1>rollback   2>go   (4)重新启动SQL Server. 注:SQL Server重新启动之后,当发现数据库本身存在不可恢复的问题时,如数据页损坏等,且没有完好的数据库备份,一定要用bcp...out备份用户数据库数据。此时,以下步骤省略,并按照“如何删除坏的用户数据库”文章删除此数据库。之后重建此数据库,恢复备份。 dbcc dbrepair ( database_name, dropdb )    否则,按以下步骤继续操作:   用sa帐号注册到SQL Server.   1>begin tran   2>go   1>use master   2>go   1>update sysdatabases   2>set status=0   3>Where name="pubs2"   4>go    如果得到(1 row affected),则   1>commit   2>go    否则 1>rollback   2>go   1>sp_configure "allow updates" ,0   2>go    (5)重新启动SQL Server. 3. 用户数据库管理 用户数据库是用户创建的,用来存放用户数据的数据库。用户数据库的创建分为两部分,一部分是用来存放数据,一部分是用来存放事务日志。为了提高数据库的速度,最好将数据库的数据部分和日志部分分开存储,即存放在不同的数据库设备上,这样也可以单独备份事务日志。 3.1. 数据库选项 sp_dboption [dbname,option_name,{ture false}] l abort tran on log full 该选项决定当指定数据库日志段最后机会阀值越出时,对正在运行的事务的处理方法。缺省值为 false,即事务被暂停直到空间空余出来时再恢复。为ture时,日志存储空间空余出来前,所有需要写入日志的事务都将停止。 l allow nulls by default:置为ture,将列的缺省状态从not null置为null,这与ANSI标准一致。 l dbo use only:置为true时,只有数据库属主可以使用此库。 l ddl in tran:置为ture时,用户可以在事务中使用某些数据定义的命令。如:create table。注意:临时库的ddl in tran 必须为false状态。 l no chkpt on recovery:决定在sql server启动时对数据库进行恢复后是否加入一个checkpoint记录。置为true时,checkpoint记录不被加入。 l no free space acctg:置为ture时,抑制剩余空间记帐及非日志段阀值活动的执行。由于不再计算此时段的剩余空间,所以将加速恢复时间。 l read only:置为true时,用户可以从数据库中检索数据,但不能修改数据。 l select into/bulkcopy:置为ture时,可以执行select into生成永久表;或用bcp批量拷贝库例程,或高速批拷贝到没有索引或触发器的表。 l single user:设置为true时,每次只能有一个用户访问该数据库。 查看数据库当前的具有的数据库选向的命令是sp_dboption: 举例: isql –Usa –P<password> 1> use MBFEWKDB 2> go 1>sp_dboption 2>go database_options ---------------- abort tran on log full allow nulls by default auto identity dbo use only ddl in tran identity in nonunique index no chkpt on recovery no free space acctg read only select into/bulkcopy/pllsort single user trunc log on chkpt trunc. log on chkpt. unique auto_identity index 3.2. 查看数据库信息 查看数据库信息的命令是sp_helpdb。 举例: isql –Usa –P<password> 1> sp_helpdb 2> go name db_size owner dbid created status ---- ------- ----- ----------- ------- ------ MBFEHISDB 1600.0 MB sa 7 Apr 08, 2002 select into/bulkcopy/pllsort, trunc log on chkpt MBFEWKDB 400.0 MB sa 6 Apr 08, 2002 select into/bulkcopy/pllsort, trunc log on chkpt master 28.0 MB sa 1 Jan 01, 1900 no options set model 2.0 MB sa 3 Jan 01, 1900 no options set sybsystemdb 5.0 MB sa 5 Apr 05, 2002 no options set sybsystemprocs 100.0 MB sa 4 Apr 05, 2002 no options set tempdb 22.0 MB sa 2 Jun 14, 2002 select into/bulkcopy/pllsort 查看某一数据库的信息命令是:sp_helpdb db_name isql –Usa –P<password> 1> sp_helpdb MBFEWKDB 2> go name db_size owner dbid created status ---- ------- ----- ----------- ------- ------ MBFEWKDB 400.0 MB sa 6 Apr 08, 2002 select into/bulkcopy/pllsort, trunc log on chkpt device_fragments size usage free kbytes ---------------- ---- ----- ----------- wkdatadb 200.0 MB data only 186608 wkdblog 100.0 MB log only 102368 wkindexdb 100.0 MB data only 101616 3.3. 常见问题及解决方法 由于用户没有为用户数据库设置“trunc log on chkpt”选项,如果用户没有及时备份事务日志,当日志满时,用户事务不能正常执行,处于等待状态,这是任何操作都不能进行,像死机了一样。此时连进行日志备份都不能进行。 解决这个问题的办法如下: 执行命令: dump tran database_name with turncate_only 这条命令的意思就是清空事务日志,其他事务就可以正常运行了。 执行上面命令以后,由于事务日志被请空,为了保证数据的安全性,日志清空后要做完全备份数据库。数据库的备份方法见第5章。 4. 用户管理 4.1. 增加/删除用户 Sql server 存在两个层次的认证: 一个用户首先必须分配一个sql server 注册帐户。 在该用户要求访问的数据库中必须有该用户的标识。 增加帐户: 语法:sp_addlogin login_name,passed[,defaultdb[,deflanguage[,fullname]]] 例如:sp_addlogin chentao,passord,Sybase 修改帐户: sp_modifylogin login_name,option,value 通过此命令可修改帐户访问的缺省数据库、缺省语言及该帐户的全名等选项。 删除帐户: 语法:droplogin login_name 修改口令: sp_password old_passwd,new_passwd[,login_name] 增加用户 sp_adduser login_name[,name_in_db[,grpname]] 别名: 别名是多个sqlserver帐户共享的数据库用户名,多个帐户以同一个数据库用户的身份来访问数据库,并具有与该数据库用户同等的权限。 语法:addalias login_name,name_in_db 别名信息记录在sysalternates系统表中。 锁定/解锁用户: sp_locklogin login_name,”{lock|unlick}” 4.2. 查看用户信息 查看用户信息的命令是sp_helpuser 举例: isql –Usa –P<password > 1> use MBFEWKDB 2> go 1> sp_helpuser 2> go Users_name ID_in_db Group_name Login_name ---------- ----------- ---------- ---------- appuser 6 public appuser ccpcuser 3 mbfe ccpcuser dbo 1 public sa mbuser 4 mbfe mbuser pbuser 5 mbfe pbuser 4.3. 常见问题及解决方法 自增加了用户以后,每个用户就有密码,如果想更改密码为空,步骤如下: 1. 使用sa登录Server: isql -Usa -Psa_password -Sserver_name 2. 记录当前版本号(以当前版本号12000为例): § sp_configure "upgrade version" § go 3. 修改当前值为492: § sp_configure "upgrade version",492 § go 4. 将某用户口令设置为NULL(以sa为例,当前口令为"123456"): § sp_password '123456',NULL,sa § go 5. 重新设置当前版本号: § sp_configure "upgrade version",12000 § go 5. 数据库备份/恢复 每天业务完成后,最好对数据库进行备份,以防止数据库发生意外时数据的丢失。 5.1. 数据库备份 数据库备份主要通过转储数据库(dump database)和转储事务(dump transaction)来完成。都允许动态转储。 转储数据库就是为整个数据库即数据和事务日志做一份物理备份。转储事务就是只为事务日志做一份物理备份。 只有当日志单独放在数据库设备上时,才能做转储事务。 Dump transaction 命令为事务日志做备份。Dump transaction与许多操作系统提供的增量备份相似。它拷贝事务日志,提供自上次数据库或事务日志转储以来所有数据库变化的记录。一旦dump transaction拷贝了日志,它会截去其不活动的部分。 在做数据库备份之前,一定要检查备份数据库是否启动,如果没有启动,要限启动备份服务器,备份服务器的启动方法前面已经讲过。 转储数据库命令语法: dump database <数据库名> to <转储设备名>  [with [noinit|init]] 说明: 转储设备名 可以是文件系统也可以时磁带设备 with init 的作用是当备份到磁带设备是从磁带开始备份,如果原来磁带上已有内容将被删除。 举例: 1. 以sybase用户登录系统。 2. 以sa用户登录数据库。 $isql –Usa –P<password> 3. 备份数据库。 1>use master 2>go 1> dump database MBFEWKDB to “/home/Sybase/mbfewkdb.backup” 2> go 注意:如果修改了sybase数据库中的系统参数,修改后最好备份master数据库。 转储日志命令语法: dump transaction <数据库名> to <转储设备名> [with [truncate_only]no_log|no_truncate] 参数说明: truncate_only:在数据与日志在同一数据库设备上时,用来截短日志,并不转储日志。也不记日志。 No_log:在没有足够空间的情况下截短日志。 No_truncate: 转储日志,但不截短日志 5.2. 恢复数据库 要把以前备份的数据库恢复,必须要先启动备份服务器。备份服务器的启动方法见2.1。 装载数据库命令语法: load database <数据库名> from <转储设备名> 恢复数据库的步骤如下: (1) 以sybase用户登录系统。 (2) 以sa用户登录数据库。 $isql –Usa –P<password> (3) 恢复数据库。 $isql –Usa –P<password> 1> use master 2> go 1> load database DATABASE_NAME from DEVICE_NAME 2> go 1>nline database DATABASE_NAME 2>go 说明: (2) DABASE_NAME是要备份的数据库名字。 (3) DEVICE_NAME是备份设备的名字,也可以是文件系统。如果是文件系统要用“”括起来。 举例:从 /home/sybase/mbfewkdb.backup文件中恢复MBFEWKDB数据库。 1> load database MBFEWKDB from “/home/sybase/mbfewkdb.backup” 2> go 1> online database MBFEWKDB 2> go 装载日志命令语法: load transaction <数据库名> from <转储设备名> 恢复数据库的步骤: 1、 用load database装载最新的数据库备份。Load database把数据库状态设置为”offline” 2、 用load transaction 命令按顺序装载在最近的数据库转储之后生成的事务日志。 3、 用online命令把数据库的状态设置为online,是数据库能为用户使用。 6. 如何调整sql server基本配置参数 为了调节sql server的性能以及系统资源的分配和利用达到最优效果。可以通过调整sqlserver的基本配置参数达到。 sql server中的配置可分为静态和动态两种。 动态参数在使用sp_configure命令配置新值后立即生效。静态参数因需要sqlserver对内存进行重新分配,所以修改静态参数应该重新启动sqlserver。 系统参数存放在maseter库中的sysconfigures 表和syscurconf
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服