- 论坛徽章:
- 0
|
这种情况数据还有救吗?
理论上可行。
假设你的master也在d盘上,并且没有被损坏,也就是master.dat(一般叫这个)还在,方法如下:
1. 先将master.dat文件拷出,重新安装Sybase软件,重新创建sybase服务器到以前相同位置
2. 关闭sybase服务,将以前的master.dat文件覆盖新的master.dat文件
3. 重新启动Sybase服务。
只要你的设备文件都在原来相同的位置,应该就可以了。
如果你的master不在了,不过你至少应该有以前系统中的数据库设备详细信息(原有设备的名称、大小、设备号等相关信息),方法如下:
在拥有正确数据库设备的情况下恢复SYBASE ASE
1. 重新创建 SYBASE 数据库服务器
或者 使用 BuildMaster 重新创建服务器的master 数据设备
2. 通过备份的系统表信息或者人工记录信息精确确定数据库服务器上
原有设备的名称、大小、设备号等相关信息
3. 使用disk reinit 命令重新加载已存在的设备
(注意:如果使用disk init命令将重新初始化设备,破坏原设备上数据信息)
格式如下:
disk reinit name='dev_name',physname='physical_name',size=n(2k),vdevno=valid_number
各参数需跟原前参数匹配
例:
1>; disk reinit name='dev_testdata',physname='d:\temp\testdata.dat',size=10240,vdevno=2
2>; go
1>; disk reinit name='dev_testlog',physname='d:\temp\testlog.dat',size=10240,vdevno=3
2>; go
1>; disk reinit name='dev_testlog1',physname='d:\temp\testlog1.dat',size=2560,vdevno=4
2>; go
4. 使用TraceFlag 3608及单用户模式启动数据库服务器,操作办法如下:
修改SYBASE安装目录下install目录中的RUN_Servername(WINNT下为RUN_Servername.bat) 文件。在dataserver(WINNT下为sqlsrvr )命令行末尾添加 -m -T3608参数
运行 RUN_Servername.bat 文件启动服务器
5. 运行 disk refit 命令让服务器扫描已有设备上已存在的 原数据库 信息。
6. 扫描完成后,使用dbcc checkdb、dbcc checkalloc命令对各数据库进行检查
另:
如果设备各参数精确,恢复几率较大。
但如果 disk reinit 参数与原来不一致,可恢复几率较小,只能从备份上进行恢复。
祝好运!!为什么平时不做备份啊?? |
|