在master库损坏,而且没有备份时候恢复

hobbylu 2002-11-12 09:10:12
提示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最初大小是不是最大值,都要使用裸分区大小的最大值。

  步骤:

获得将要被恢复的SYBASE DEVICE的信息。
这些信息被用来重建sysdevices,sysusages以及sysdatabases。
从error log的server启动信息中获得SYBASE DEVICE的设备名、指定路径。
使用裸分区或系统文件的大小的最大值作为SYBASE DEVICE的
大小。
以上信息也可以通过最近的sysdevices系统表的内容来获得。如果
对此信息怀有疑问,还是使用以上的方法比较稳妥。
做操作系统级的SYBASE DEVICE后备。UNIX操作系统,使用"dd"命令实现。
配置一个新的ASE Server。在以后的步骤中会用到这个新的master。
如果需要,请再配置一个Backup Server。
用单用户模式启动Server。
运行disk reinit,用来重建sysdevices系统表,而没有重新初始化SYBASE DEVICE。
语法如下:
disk reinit
name="device_name",
physname="physical_name",
vdevno=virtual_device_number,
size=number_of_blocks
完成后,请查看error log。
确认重建的sysdevices系统表中信息正确:
——select * from sysdevices
比较表中的信息是否与error log或者保留的sysdevices中的信息相同。
运行disk refit,用来重建sysdevices以及sysdatabases。
用法如下:
use master
go
disk refit
go
查看error log中是否有错误提示。
当disk refit完成后,会自动shut down ASE Server。
确认重建的系统表的信息是否正确:
——单用户模式启动ASE Server
——select * from sysusages、select * from sysdatabases
——sysusages系统表看起来是否正确?可以和以前保留的的信息进行比较。如果没有这种可能,那么应该保证不出现显而易见的错误。例如:是否缺少dbid;是否缺行;是否对于一个数据库来说只有segmap=4(表示为日志行)的行等等。
——sysdatabases系统表看起来是否正确?是不是没有显而易见的错误?
11、 启动ASE Server,查看是否所有的数据库都已经正常恢复。
对所有的库做dbcc检查。
对所有库做后备。
...全文
46 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
chengkai 2002-11-12
  • 打赏
  • 举报
回复
拷贝数据库文件到另外的位置,然后重新安装或构造SYBASE数据库,创建一个同以前数据库名称和大小以及位置一模一样的设备及数据库,SHUT DOWN数据库,然后将原来拷贝的数据库文件覆盖到新创建的数据库文件,启动SYBASE,有可能可以
hobbylu 2002-11-12
  • 打赏
  • 举报
回复
的确,以上信息来自inalover所言站点
奇遇 2002-11-12
  • 打赏
  • 举报
回复
Suggest look at
http://www.sybase.com.cn/cn/content/goto.jsp?resID=167
奇遇 2002-11-12
  • 打赏
  • 举报
回复
studying.....
firefoxh 2002-11-12
  • 打赏
  • 举报
回复
拷贝数据库文件到另外的位置,然后重新安装或构造SYBASE数据库,创建一个同以前数据库名称和大小以及位置一模一样的设备及数据库,SHUT DOWN数据库,然后将原来拷贝的数据库文件覆盖到新创建的数据库文件,启动SYBASE,有可能可以

这样做不行的,不能使用Copy命令来复制数据库设备文件,应该用rename

2,596

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧