Sybase

Sybase - 如何從我的數據設備中獲取日誌段?

  • December 18, 2011

我正在執行 Sybase ASE 15.7 並加快速度清理由非 DBA 安裝的數據庫伺服器。

我有一個具有以下設備配置的數據庫: Sybase 數據庫設備列表

我希望 data1 和 tlogs1 設備分別只託管 Data 和 Log,這樣在由於設備故障而導致數據庫還原時我不會遇到任何異常。

如何更正此配置?

注意:刪除按鈕始終顯示為灰色。

我無法修復數據庫,但我確實通過以下方式解決了這個錯誤配置:

  • 使用我的最佳設備佈局創建新數據庫
  • 使用 DDL 生成腳本遷移架構ddlgen.bat
  • 用於bcp遷移表數據

注意:您可以使用 Sybase Central 的 DDL 生成器,但由於某種原因它不包括表的索引。

完成後,我將有據可查的數據庫模式腳本放入原始碼控制中。

正如我認為您發現的那樣,解決此問題的唯一真正方法是創建一個新數據庫(或刪除並重新創建現有數據庫)。你不需要對 DDL 做任何事情bcp

當您執行時DUMP DATABASE,輸出與數據庫中的輸出完全相同。查看 和 的輸出sp_helpdb應該sp_helpdevice可以讓您大致了解數據庫的結構。數據庫中的sysusagesmaster是查看數據庫結構的最佳位置:

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複制所有表並以連續順序重新創建數據庫.

引用自:https://dba.stackexchange.com/questions/8309