程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SyBase數據庫 >> SyBase綜合文章 >> 如何做Rebuild Master

如何做Rebuild Master

編輯:SyBase綜合文章
提示1:

  如果有可能,在執行這個任務之前,請先做操作系統級SYBASE DEVICES的後備。UNIX操作系統可使用命令"dd"。因為如果disk reinit使用了錯誤的信息,那麼,在執行了disk refit之後就會產生無法彌補的錯誤。倘若,存在一個SYBASE DEVICES的後備文件,將會給我們一個彌補的機會。例如:當disk reinit 使用了過小的size值,我們還可以重新恢復Sybase DEVICES文件,重新做disk reint、disk refit。

  提示2:

  在使用disk reinit命令時,將覆蓋SYBASE DEVICE(請參照以下語法),安全的做法是size值使用裸分區或系統文件的大小的最大值。如果使用的是UNIX裸分區,即使你不能確認Sybase DEVICE最初大小是不是最大值,都要使用裸分區大小的最大值。

  步驟:

    1. 獲得將要被恢復的Sybase DEVICE的信息。
      這些信息被用來重建sysdevices,sysusages以及sysdatabases。
      1. 從error log的server啟動信息中獲得Sybase DEVICE的設備名、指定路徑。
      2. 使用裸分區或系統文件的大小的最大值作為Sybase DEVICE的
        大小。
      3. 以上信息也可以通過最近的sysdevices系統表的內容來獲得。如果
        對此信息懷有疑問,還是使用以上的方法比較穩妥。
    2. 做操作系統級的Sybase DEVICE後備。UNIX操作系統,使用"dd"命令實現。
    3. 配置一個新的ASE Server。在以後的步驟中會用到這個新的master。
    4. 如果需要,請再配置一個Backup Server。
    5. 用單用戶模式啟動Server。
    6. 運行disk reinit,用來重建sysdevices系統表,而沒有重新初始化Sybase DEVICE。
      語法如下:
      disk reinit
      name="device_name",
      physname="physical_name",
      vdevno=virtual_device_number,
      size=number_of_blocks
      完成後,請查看error log。
    7. 確認重建的sysdevices系統表中信息正確:
      ——select * from sysdevices
      比較表中的信息是否與error log或者保留的sysdevices中的信息相同。
    8. 運行disk refit,用來重建sysdevices以及sysdatabases。
      用法如下:
      use master
      go
      disk refit
      go
      查看error log中是否有錯誤提示。
    9. 當disk refit完成後,會自動shut down ASE Server。
    10. 確認重建的系統表的信息是否正確:
      ——單用戶模式啟動ASE Server
      ——select * from sysusages、select * from sysdatabases
      ——sysusages系統表看起來是否正確?可以和以前保留的的信息進行比較。如果沒有這種可能,那麼應該保證不出現顯而易見的錯誤。例如:是否缺少dbid;是否缺行;是否對於一個數據庫來說只有segmap=4(表示為日志行)的行等等。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved