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)