sybase数据库经验总结

  • 格式:docx
  • 大小:30.73 KB
  • 文档页数:21

sybase数据库经验总结

Sybase数据库维护经验总结

1、在sybase中如何重新设置用户的口令为空:

使用sa登录Server:

isql -Usa -Psa_password -Sserver_name

记录当前版本号(以当前版本号12000为例):

sp_configure "upgrade version"

go

修改当前值为492:

sp_configure "upgrade version",492

go

将某用户口令设置为NULL(以sa为例,当前口令为"123456"):

sp_password '123456',NULL,sa

go

重新设置当前版本号:

sp_configure "upgrade version",12000

go

2、如何启动和关闭server的服务:

一:启动ASE Server

UNIX:

以sybase用户登录

11.x 版本: cd $SYBASE/install

12.x 版本: cd $SYBASE_ASE/install

startserver -f RUN_SYBASE (启动SQL SERVER)

startserver -f RUN_SYBASE_back (启动BACK SERVER)

startserver -f RUN_SYBASE_mon (启动MONITOR SERVER)

NT:

通过 Sybase Central

通过 Control Panal Control Panal/Service/Sybase SQLServer -> Start (启动SQL

SERVER) Control Panal/Service/Sybase BCKServer -> Start (启动BACK SERVER) Control Panal/Service/Sybase MONServer -> Start

(启动MONITOR SERVER) 二:关闭ASE Server

UNIX:

以sybase用户登录

isql -Usa -P

shutdown SYB_BACKUP

go

shutdown

go

isql -Usa -P -SSYBASE_mon

go

NT:

通过 Sybase Central

通过 Control Panal

Control Panal/Service/Sybase SQLServer -> Stop (启动SQL

SERVER) Control Panal/Service/Sybase BCKServer -> Stop (启动BACK SERVER) Control Panal/Service/Sybase MONServer -> Stop

(启动MONITOR SERVER) 3、如何查找数据库启动的失败原因:

在实际环境中,数据库Server无法启动的原因很多,下面仅列出了几种常见的情况,供您参考。

首先,应检查Server的日志文件。不同版本缺省的日志文件如下(其中为Sybase Server的名称:

UNIX:

11.0*: $SYBASE/install/errorlog

11.5* 或 11.9*: $SYBASE/install/.log

12.0*: $SYBASE_ASE/install/.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().

检查操作系统参数是否已经修改并重新启动操作系统 (参见安装手册)

若操作系统异常宕机,ASE未启动而$SYBASE/.krg已经存在, 删除该文件

4、日常备份数据库:

SYBASE 数据库的备份主要是通过 dump 命令来实现的,分为数据库备份和

dump database database_name to device_name

dump transaction database_name to device_name

如果使用磁带设备做备份, 还要使用capacity、int选项。

应该多长时间备份一次数据库呢? 这决定于发生系统故障时( 例如磁盘故障 ) 应用系统允许丢失多长时间的数据。如果允许丢失一个小时的数据, 那么可以考虑每天至少备份一次数据库, 并每个小时至少备份一次日志。

备份数据库之前, 应对数据库做 dbcc 检查, 确保备份的数据库是完好的数据库。如果数据库有损坏, 备份时可能不会报错, 但将来可能无法装载(load)。

通常情况下, 只有发生严重故障需要恢复时才进行装载数据库, 但是SYBASE 建议偶尔对备份的数据库装载到一个测试环境上, 以保证备份工作过程正常并熟悉备份和装载工作过程。

Master 数据库的备份也不能忽略。每次master 数据库的内容有变动时, 应及时备份 master 数据库, 例如增加 login, 增加设备, 增加用户数据库等。

举例:Unix平台后备courtdb数据库

启动ASE和BACKUP SERVER

isql -Usa -Pxxxxxx -SSYBASE

dump database courtdb to

"/sybase/dump/courtdb_db.990705"

go

5、如何备份数据量大于2G的数据库:

当在后备数据量大于2GB的数据库时,可能会遇到以下错误:

I/Oerror:

operating system error,server device /backup/data. code 27

messages file too large.

这是由于后备文件的大小超出了操作系统的用户最大文件限制。而有些操作系统不支持大于2GB的文件,这时可以使用Backup

Server将一个数据库后备到多个文件中。

1>dump database courtdb to

"/usr/sybase/courtdb_dump.1"

2>stripe on "/usr/sybase/courtdb_dump.2"

3>stripe on "/usr/sybase/courtdb_dump.3"

4>go

这种方法还可以提高后备及恢复的速度,但注意恢复也必须用相应多的设备。例如:

1>load database courtdb from

"/usr/sybase/courtdb_dump.1"

2>stripe on "/usr/sybase/courtdb_dump.2"

3>stripe on "/usr/sybase/courtdb_dump.3"

4>go

6、如何得到bcp文件:

编辑一个文本文件select.sql,内容如下:

set nocount on

use courtdb

go

select "bcp courtdb.." + name + " out " + name + ".bcp -Usa

-P -c from sysobjects where type="U"

go

如果是unix, 执行:

isql -Usa -P -b -i select.sql -o bcpout

chmod +x bcpout

如果是Windows, 执行:

isql -Usa -P -b -i select.sql -o bcpout.bat 将select.sql中的out换为in, 重复以上步骤即可得到bcp in的命令文件

虽然表上没有索引,服务器执行快速BCP,BCP往表里加载数据仍有可能使日志表溢出,这是因为BCP需要记录页面空间分配日志。如果表上没有索引,并且数据库选项“select into/bulk copy”被置成true,服务器就不给新加载的记录记日志。

另外,如果表上有索引和触发器,那么BCP是慢速的。

不能,SQL Server 11不能与系统10的Backup Server一起工作,但系统11的 Backup Server可以和SQL Server 10兼容。另外,不同版本的Bakcup Server相互兼容,甚至可以在不同版本的Backup

Server之间做远程备份。

6、不能截断日志该怎么办: