Can't allocate space for object 'syslogs' in database:Sybase
使用Sybase時候,遇到下面的錯誤:
Can't allocate space for object 'syslogs' in database 'master' because 'logsegment' segment is full/has no free extents. If you ran out of space in syslogs, dump the transaction log. Otherwise, use ALTER DATABASE or sp_extendsegment to increase size of the
segment.
執行下面清理log的命令:
dump transaction master with no_log
Go
dump transaction model with no_log
go
dump transaction sybsystemdb with no_log
go
dump transaction sybsystemprocs with no_log
go
dump transaction tempdb with no_log
go
解決
=================
=================
Sybase的日誌管理
在sybase central中選擇一個資料庫,然後按右鍵,然後選擇backup,點選下一步,接著選擇第二項backup
up the transaction log. The transactin log records all changes to a database.
Sybase master 庫日誌滿了應該如何清除呢?可以通過以下的方法對 master庫進行管理,如果確實沒有足夠的空間了,可以考慮對 master庫進行擴容操作。
1、簡單的情況下 dump trans with no_log 就可以了,master庫一般不會滿。
1> use master |
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:\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)