當我轉儲一個Sybase數據庫時,表中是否有數據並不重要,文件大小是一樣的。我被告知這是由於我的轉儲文件是二進制文件而不是邏輯文件,因此轉儲文件的文件基於數據庫的分配大小。我知道Oracle可以使用邏輯轉儲文件,但是我可以讓Sybase執行類似的操作,還是有其他一些偷偷取得轉儲文件大小的方法?有沒有辦法減少Sybase數據庫的轉儲文件大小?
回答
由於在版本12的某個位置,您可以在ASE中執行壓縮轉儲。
The syntax is:轉儲數據庫DATABASE_NAME到file_name [與壓縮= compress_level]
compress_level是0-9。 0沒有壓縮,9是最多的。壓縮得越多,運行轉儲時的CPU使用率就越高。您只需進行一些測試即可找到尺寸與性能之間的適當平衡。
加載轉儲時不需要特殊命令。
如果您已經在使用compress_level 9並且仍想要更多壓縮,可以使用bzip2重新壓縮該文件。
如果您只是簡單地使用bzip2壓縮文件,您將獲得〜10%的提升。如果你解壓並重新壓縮,你可能會看到30%範圍內的改進。但請記住,您必須再次解壓縮和/或gzip文件,以便Sybase加載它。
gunzip -c pubs_1.dmp | bzip2 > pubs.dmp.bz2
雖然上面的鏈接(語法是)顯然是正確的,因爲它指向的是sybase文檔,但註釋有誤導性。
簡單格式的語法是:
轉儲數據庫{}數據庫名稱爲 「壓縮:: {#compression_level} {::} stripe_device」 去
如:轉儲mydb數據庫「壓縮: :1 ::/sybase_dumps/mydb_17022009「
在加載數據庫轉儲:: compress;方面需要再次給出。
例如。從「compresss ::/sybase_dumps/mydb_17022009」加載數據庫mydb
注意壓縮級別不是必需的,也不需要後面的額外分隔冒號。
測試以找到您的平衡是一個很好的觀點,記住你越高期望轉儲花費相當長的時間。我發現1-3比較充足,我從未超過6,收益遞減是不值得的。
如果我絕望,我會bzip2文件如上所述{點賺}。如果這是一個生產主機,我會將該文件運送到另一個主機並執行此操作。資源衝擊可能會相當大。
這兩種方法都有效。該文檔指出「with compression = compress_level」是更新和首選的語法。「 」較舊的compress ::選項僅適用於本地存檔;不能使用servername選項。要壓縮到遠程計算機,必須使用首選的compress = compress_level選項。 – AdamH 2009-11-17 15:03:54
- 1. 有沒有辦法減少小數點後的位數?
- 2. db.repairDatabase()沒有減少數據庫的大小
- 3. 調整大小後圖像的文件大小沒有減少
- 4. 有沒有辦法減少WCF帶寬?
- 5. 有沒有辦法進一步減少?
- 6. 有沒有辦法減少if語句?
- 7. 有沒有辦法減小NSWorkSpace啓動的窗口大小?
- 8. 有沒有辦法減少TinyMCE文件和文件夾的數量?
- 9. 有沒有辦法讓parsec報告「轉移 - 減少」衝突?
- 10. 減少ASP.NET菜單控件大小(沒有第三方庫)
- 11. 有什麼辦法可以減少libreoffice中嵌入字體文件的大小?
- 12. 減少AWS RDS數據庫大小
- 13. 減少SQL Server數據庫大小
- 14. mysql轉儲文件大小和數據庫大小的差異
- 15. 有沒有辦法減少這段代碼中的行數?
- 16. 有沒有辦法將文本文件放入數據庫(SQLite)?
- 17. 有沒有辦法讓文件大小隻有FileDescriptor?
- 18. 爲什麼python tarfile gz沒有減少文件大小
- 19. 有沒有辦法在firebase URL獲取數據的大小?
- 20. 減少HTML文件大小?
- 21. 減少SWF文件大小
- 22. 減少.XAP文件大小?
- 23. 有沒有辦法unfork heroku數據庫
- 24. 減少PNG存儲大小
- 25. 有沒有辦法從數據庫中過期文件?
- 26. C# - 有沒有辦法將csv文件流入數據庫?
- 27. 有沒有辦法轉換彈簧數據存儲庫返回的對象?
- 28. 編譯後有沒有辦法知道全局數據大小?
- 29. 有沒有辦法使用python formencode驗證文件大小?
- 30. 有沒有辦法根據窗口大小調整所有項目的大小?
這個效果很好,其中的好處是截斷表,我不需要作爲轉儲的一部分現在有一個效果,因爲壓縮轉儲的過程擠出以前佔用的空表的任何空間!感謝Adam! – ninesided 2008-10-18 22:08:01