挑戰sybase極限,你能解決問題么?


小弟對sybase完全一竅不通,但最近卻遇到一個棘手的問題,請教論壇里的各位大大。
系統環境:linux red hat 4.7
數據庫版本:sybase ASA 9
問題情況:有一個在運行的數據庫,包含esecurer.db和esecurer.log文件,db文件70M,log文件最近猛增,上個月大到16G,無法啟動,隨后從備機上復制db和log才成功啟動,最近又從30M增到500M,為防止同樣問題出現,想清除log文件內容。
我的解決過程:
1、在網上搜索到dump transaction with truncate_only,但執行后提示
ASA Error -131: Syntax error near 'transaction' on line 1
2、得知該命令在ASE版本下才能執行,又找到另一種方法,詳見
http://bbs.hur.cn/dispbbs.asp?boardid=131&id=10922&page=0&star=1
說可以用sybase central工具去掉log和db的關聯,我在windows 7 下安裝了PB9,用這個工具卻不知道怎么連接linux上的sybase ASA 9數據庫。
疑問:
1、我這樣的情況,能夠在windows下安裝central訪問linux的數據庫嗎?
2、ASA 9是不是不支持dump transaction with truncate_only?

我想要的結果就是不讓linux下sybase數據庫的log文件越來越大。
跪求!!!!~~~~~

6 个解决方案

#1


1. 可以.

2. 不能這么用,使用:
BACKUP DATABASE DIRECTORY 'd:\\abc\\backup' TRANSACTION LOG TRUNCATE;

#2


引用 1 樓 iihero 的回復:
1. 可以.

2. 不能這么用,使用:
BACKUP DATABASE DIRECTORY 'd:\\abc\\backup' TRANSACTION LOG TRUNCATE;

1、如果可以,具體要如何操作?能否取消log文件的關聯。
2、這條命令執行的結果是備份log么?似乎沒有達到我想要清除log的目的啊?
望指教~~~~

#3


引用 2 樓 daefiysq 的回復:
引用 1 樓 iihero 的回復:
1. 可以.

2. 不能這么用,使用:
BACKUP DATABASE DIRECTORY 'd:\\abc\\backup' TRANSACTION LOG TRUNCATE;

1、如果可以,具體要如何操作?能否取消log文件的關聯。
2、這條命令執行的結果是備份log么?似乎沒有達到我想要清除log的目的啊?
望指教~~~~

1. 置頂的ASA幫助,你最好先看一下。將ASA以dbsrv方式啟起來,填上正確的主機名端口以及密碼就可以連。
2. 是備份log,在此命令結束前,server端會截短日志。
   經常備份就好。
  你的日志暴漲,說明要第你的程序中有的事務過長,要么你有些表結構主鍵沒有或者涉及字段太多,或者字段寬度太長。
  為什么不自己動手試試上述命令。

#4


引用 1 樓 iihero 的回復:
1. 可以.

2. 不能這么用,使用:
BACKUP DATABASE DIRECTORY 'd:\\abc\\backup' TRANSACTION LOG TRUNCATE;

剛才在虛擬機上試驗了一遍。大概明白了
1、用這個命令備份出一個db和一個log,log大小有明顯變化,是清除過一些內容了的
2、刪除源目錄下的db和log,把備份目錄的db和log粘貼過去,數據庫能正常運行
3、又嘗試備份命令執行后,直接把備份目錄的log復制到源目錄,這時候數據庫無法啟動,報log文件出錯

最終得出的結果,每次發現log文件過大時,執行backup database,在將源目錄下的db和log刪除,從備份目錄復制db和log,即可啟動數據庫,實現避免log文件過大產生的問題。
我的理解是這樣,不知道是不是正確?
請解答。

#5


引用 4 樓 daefiysq 的回復:
引用 1 樓 iihero 的回復:
1. 可以.

2. 不能這么用,使用:
BACKUP DATABASE DIRECTORY 'd:\\abc\\backup' TRANSACTION LOG TRUNCATE;

剛才在虛擬機上試驗了一遍。大概明白了
1、用這個命令備份出一個db和一個log,log大小有明顯變化,是清除過一些內容了的
2、刪除源目錄下的db和log,把備……

基本上是這樣。
還原時,不能光復制備份的log,還得有備份的數據文件。

經常備份就好。

#6


引用 5 樓 iihero 的回復:
引用 4 樓 daefiysq 的回復:

引用 1 樓 iihero 的回復:
1. 可以.

2. 不能這么用,使用:
BACKUP DATABASE DIRECTORY 'd:\\abc\\backup' TRANSACTION LOG TRUNCATE;

剛才在虛擬機上試驗了一遍。大概明白了
1、用這個命令備份出一個db和一個log,log大小有明顯變化,是清除過一些內……


學習了,這次既解決了問題,又學習到新的知識。
很喜歡這種交流的方式。
問題解決,結貼。

另:backup執行時,不直接截斷源目錄下的log么?因為我發現只是備份目錄下的log變小了,源目錄的log還是原來的大小。

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com