Sybase master 库日志满了应该如何清除呢?可以通过以下的方法对 master库进行管理,如果确实没有足够的空间了,可以考虑对 master库进行扩容操作。
1、简单的情况下 dump trans with no_log 就可以了,master库一般不会满。
1> use master2> go1> checkpoint2> go1> dump tran master with no_log2> go00:00000:00011:2006/02/22 14:53:38.06 server WARNING: ***************************00:00000:00011:2006/02/22 14:53:38.06 server Attempt by user 1 to dump xact ondb master with NO_LOG00:00000:00011:2006/02/22 14:53:38.06 server Attempt by user 1 to dump xact ondb master with NO_LOG was successful00:00000:00011:2006/02/22 14:53:38.06 server WARNING: *************************** ;2、如果是windows平台,则找到RUN_your_server_name.bat
如果是Unix平台,则找到RUN_your_server_name文件
编辑上面的启动文件,在行尾加上 -T3067
然后使用启动文件启动数据库,启动后
dump tran master with truncate_onlyu
go
1)备份master数据库
dump database master to '备份路径及文件名'
2)停止sybase服务
shutdown
3)编辑sybase服务启动文件(在unix下一般是“RUN_服务名的文件,在windows下一般是“RUN_服务名.bat的批处理文件)。在启动文件的命令行最后加上 -T3607)
4)使用启动文件启动服务后,再dump tran master with truncate_only
5)这时dump清理日志一般多会成功。然后在停止shutdown服务,去掉-T3607,以正常方式启动服务
3、不行的话,则需要建立一设备来进行扩展或按以下方式重建:
1)备份master数据库
启动backup server,进入isql环境执行:
1>dump database master to '/sybase/master.dump'
2>go
(如果 不行的话 dump 日志 with no log)
hut down SQL/ASE Server
1>shutdown
2>go
2)创建新的足够大的master设备
$buildmaster -d -ssize(size以2K为单位)
例:$buildmaster-d/sybase/data/master.dat -s102400
3)修改RUN_servername文件
编辑RUN_server_name文件,-d参数指向新建的设备名。
4)单用户模式重启server
$startserver -f RUN_servername -m
5)执行installmaster脚本
6)由备份文件装载master数据库
1>load database master from '/sybase/master.dump'
2>go
7)修改sysdevices信息
sp_configure 'allow updates', 1
go
begin tran
go
update sysdevices set high = 102399 , phyname = 'e:sybasedatamaster_test.dat' where name = 'master'
go
(102399=200*512-1 master设备大小为200M)
commit tran
go
8)扩展master数据库
1>alter database master on master设备名称=size(此值以M为单位)
2>go
例:alter database master on master=10
将master数据库在master设备上扩展10M
这个操作比较危险,注意先做好备份(比如 GHOST)