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、不能截断日志该怎么办: