Sybase master 庫日志滿了應該如何清除呢?
可以通過以下的方法對 master庫進行管理,如果確實沒有足夠的空間了,可以考慮對 master庫進行擴容操作。
1、簡單的情況下 dump trans with no_log 就可以了,master庫一般不會滿。
1> use master
2> go
1> checkpoint
2> go
1> dump tran master with no_log
2> go
00: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 on
db master with NO_LOG
00:00000:00011:2006/02/22 14:53:38.06 server Attempt by user 1 to dump xact on
db master with NO_LOG was successful
00: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/database/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:\Sybase\data\master_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)