Sybase
Sybase - 如何從我的數據設備中獲取日誌段?
我正在執行 Sybase ASE 15.7 並加快速度清理由非 DBA 安裝的數據庫伺服器。
我有一個具有以下設備配置的數據庫:
我希望 data1 和 tlogs1 設備分別只託管 Data 和 Log,這樣在由於設備故障而導致數據庫還原時我不會遇到任何異常。
如何更正此配置?
注意:刪除按鈕始終顯示為灰色。
我無法修復數據庫,但我確實通過以下方式解決了這個錯誤配置:
- 使用我的最佳設備佈局創建新數據庫
- 使用 DDL 生成腳本遷移架構
ddlgen.bat
- 用於
bcp
遷移表數據注意:您可以使用 Sybase Central 的 DDL 生成器,但由於某種原因它不包括表的索引。
完成後,我將有據可查的數據庫模式腳本放入原始碼控制中。
正如我認為您發現的那樣,解決此問題的唯一真正方法是創建一個新數據庫(或刪除並重新創建現有數據庫)。你不需要對 DDL 做任何事情
bcp
。當您執行時
DUMP DATABASE
,輸出與數據庫中的輸出完全相同。查看 和 的輸出sp_helpdb
應該sp_helpdevice
可以讓您大致了解數據庫的結構。數據庫中的sysusages
表master
是查看數據庫結構的最佳位置:select * from master..sysusages where dbid=db_id(mydb) order by lstart
該
segmap
列指定段是數據、日誌還是數據+日誌。一旦你檢查了所有這些的輸出,你就可以使用正確的 segmap 重新創建數據庫:
CREATE DATABASE mydb ON data1=80 LOG ON tlogs1=20, tlogs1=20
如果您的數據庫是由數據、日誌、日誌、數據、日誌之類的組合構成的(即,它已使用 擴展了多次
ALTER DATABASE
),那麼您可以使用bcp
複制所有表並以連續順序重新創建數據庫.