m4a3gz 发表于 2016-12-23 16:30

请教大家SYABSE的恢复

我现在有一台旧机器,已经不能开机,但数据文件和日志文件由于放在存储上还能找到。现在我在另外一台主机上安装了同样版本的sybase。问题是我怎么在这台新机器上把原来的数据库online起来,请大家指教,谢谢!

andkylee 发表于 2016-12-23 18:27

第一种方法:
disk reinit
disk refit
第二种方法:
如果能够找到备份的数据库分配信息,在新机器上按照之前的方式创建数据库。
覆盖sybase设备文件。

m4a3gz 发表于 2016-12-28 17:15

andkylee 发表于 2016-12-23 18:27
第一种方法:
disk reinit
disk refit


谢谢你的回复。前几天出差把这件事放下了。现在才上来弄。
我想你的第二种方法由于历史原因看来已经不可实现了。
第一种方法我还想知道如何实现。毕竟我对SYBASE不熟,只对ORACLE有了解。还请你指教。或者给一篇文档我做参考。非常感谢!

Eisen 发表于 2016-12-29 17:26

先把原master设备copy过来试着启动一下,如果可以,立刻检查sysdatabase和sysusages两个表。
这个就是第二种方法里面说的db分配信息。
如果没有的话,第一种方法里面也不好讲怎么来disk reinit

m4a3gz 发表于 2018-01-19 12:37

大家好,还是楼主我,以下是我能找到的方法,大家觉得有问题吗?
将生产环境中AIX5.3平台上的Sybase ASE12.5.2迁移到备机作测试用,下面简单记录下主要步骤。

环境:

Sybase ASE version: 12.5.2 32bit

OS Version: AIX 5.3

$SYBASE: /home/syb123

Instance name: TEST

database name: testdb

备机上建立好了与主机相同的vg与lv



主要步骤:

1.将主机上的目录/home/syb123打包,拷贝到备机,解开tar包到备机的相同目录下。删除备机/home/syb123下的interfaces文件。

2.修改资源文件resource file中的实例名(srvbuild.server_name),主机名(srvbuild.network_hostname_list)等信息。主要有3个rs文件: syb_dataserver.rs,syb_backupserver.rs,syb_sqlloc.rs

3.新建Sybase ASE实例。执行:

srvbuildres -r /home/syb123/syb_dataserver.rs

在新建实例的过程中,因为异步IO没有开启,报错Symbol resolution failed for /usr/ccs/lib/libc.a 。解决方法见:

AIX上未启动异步IO导致Sybase服务创建失败

4.配置字符集roman8。

源数据库的字符集为roman8,使用资源文件配置新建的备机上的字符集为roman8、排序规则为:bin_roman8。unix/linux环境上新建的实例默认没有安装bin_roman8这个排序规则,需要手动添加:

cd /home/syb123/charsets/roman8

charset-Usa -P -STEST binary.srt roman8

然后在执行:srvbuildres -r /home/syb123/syb_sqlloc.rs 来修改实例的默认字符集和排序规则。

5.新建备份服务

srvbuildres -r /home/syb123/syb_backupserver.rs

6.从源实例中导出disk init脚本

使用下面的SQL语句能够导出:

select 'disk init name="'+name+'",physname="'+phyname+'",size="'+convert(varchar,convert(int,(high-low+1)*2.0/1024.0))+'M"'+char(10)+'go' from master.dbo.sysdevices
where low/power(2,24)>0
go

7.导出create database语句

使用ddlgen导出源实例中用户数据库的create database语句。

/home/syb123/ASEP/bin/ddlgen -Usa -P -STEST -TDB -Ntestdb -O./ddlgen-testdb.sql

从上面的输出文件ddlgen-testdb.sql中将create database命令提取出来,加上for load选项。类似如下的命令:

create database test on .....

log on ......

for load

go

8.在备机上上初始化设备和创建用户数据库

在执行disk init命令先配置参数: number of devices,

sp_configure "number of devices",50

go

然后分别执行上面得到的disk init命令来初始化Sybase逻辑设备,执行create database来创建用户数据库以备恢复用。

在create database命令中加入for load选项,能够提高创建库的速度,因为不需要将逻辑设备上的页面清空。

9.恢复源数据库

在备机上恢复从主机上拷贝过来的testdb数据库的备份。

load database testdb from '/syb_backup/testdb20110920.dump'

go

在主机上备份数据库testdb的时候,加入了压缩选项:compress=4。在恢复的时候不需要加入压缩选项,sybase备份服务器能够自动识别压缩级别。这点还是挺方便的!

10.增加临时数据库tempdb的空间

alter database tempdb on tempdb_data01='4000m'

11.在备机将数据库testdb的属主有sa改为syb

use testdb

go

sp_changedbowner syb

go

12.重建登录、角色、用户信息

因为主机与备机是相同的平台,可以直接导出源实例master数据库中系统表的数据。从源实例中导出下面4张系统表的数据。

syslogins,sysloginroles,sysroles,sysusers

在备机上导入:

先开启选项:allow updates to system catalog。sp_configure "allow updates",1

导入4张系统表的数据,只追加新添加的登录、用户信息。

bcp master.dbo.syslogins in ./syslogins-20110920.bcpout -c -Usa -P -STEST -t~# -b1

bcp master.dbo.sysloginroles in ./sysloginroles-20110920.bcpout -c -Usa -P -STEST -t~# -b1

bcp master.dbo.sysroles in ./sysroles-20110920.bcpout -c -Usa -P -STEST -t~# -b1

bcp master.dbo.sysusers in ./sysusers-20110920.bcpout -c -Usa -P -STEST -t~# -b1

13.配置用户数据库testdb的options

use master

go

sp_dboption testdb,'select into',true

go

sp_dboption testdb,'trunc',true

go

use testdb

go

checkpoint

go

14.配置备机的参数

如果备机与主机环境相同的话,可以将主机上的<servername>.cfg直接拷贝到备机。否则,根据主机的cfg文件适当调整sybase ase的参数。

15.备份master数据库、导出几张重要系统表的数据

初始化设备、新建数据库,添加登录等操作后,要及时备份master数据库。最好对几张重要的系统表再做一次备份。使用bcp导出系统表sysusages,sysdatabases,sysdevices,syslogins,sysloginroles,sysroles,sysusers。

m4a3gz 发表于 2018-01-19 12:38

大家好,还是楼主我,以下是我能找到的办法,可行吗?
将生产环境中AIX5.3平台上的Sybase ASE12.5.2迁移到备机作测试用,下面简单记录下主要步骤。

环境:

Sybase ASE version: 12.5.2 32bit

OS Version: AIX 5.3

$SYBASE: /home/syb123

Instance name: TEST

database name: testdb

备机上建立好了与主机相同的vg与lv



主要步骤:

1.将主机上的目录/home/syb123打包,拷贝到备机,解开tar包到备机的相同目录下。删除备机/home/syb123下的interfaces文件。

2.修改资源文件resource file中的实例名(srvbuild.server_name),主机名(srvbuild.network_hostname_list)等信息。主要有3个rs文件: syb_dataserver.rs,syb_backupserver.rs,syb_sqlloc.rs

3.新建Sybase ASE实例。执行:

srvbuildres -r /home/syb123/syb_dataserver.rs

在新建实例的过程中,因为异步IO没有开启,报错Symbol resolution failed for /usr/ccs/lib/libc.a 。解决方法见:

AIX上未启动异步IO导致Sybase服务创建失败

4.配置字符集roman8。

源数据库的字符集为roman8,使用资源文件配置新建的备机上的字符集为roman8、排序规则为:bin_roman8。unix/linux环境上新建的实例默认没有安装bin_roman8这个排序规则,需要手动添加:

cd /home/syb123/charsets/roman8

charset-Usa -P -STEST binary.srt roman8

然后在执行:srvbuildres -r /home/syb123/syb_sqlloc.rs 来修改实例的默认字符集和排序规则。

5.新建备份服务

srvbuildres -r /home/syb123/syb_backupserver.rs

6.从源实例中导出disk init脚本

使用下面的SQL语句能够导出:

select 'disk init name="'+name+'",physname="'+phyname+'",size="'+convert(varchar,convert(int,(high-low+1)*2.0/1024.0))+'M"'+char(10)+'go' from master.dbo.sysdevices
where low/power(2,24)>0
go

7.导出create database语句

使用ddlgen导出源实例中用户数据库的create database语句。

/home/syb123/ASEP/bin/ddlgen -Usa -P -STEST -TDB -Ntestdb -O./ddlgen-testdb.sql

从上面的输出文件ddlgen-testdb.sql中将create database命令提取出来,加上for load选项。类似如下的命令:

create database test on .....

log on ......

for load

go

8.在备机上上初始化设备和创建用户数据库

在执行disk init命令先配置参数: number of devices,

sp_configure "number of devices",50

go

然后分别执行上面得到的disk init命令来初始化Sybase逻辑设备,执行create database来创建用户数据库以备恢复用。

在create database命令中加入for load选项,能够提高创建库的速度,因为不需要将逻辑设备上的页面清空。

9.恢复源数据库

在备机上恢复从主机上拷贝过来的testdb数据库的备份。

load database testdb from '/syb_backup/testdb20110920.dump'

go

在主机上备份数据库testdb的时候,加入了压缩选项:compress=4。在恢复的时候不需要加入压缩选项,sybase备份服务器能够自动识别压缩级别。这点还是挺方便的!

10.增加临时数据库tempdb的空间

alter database tempdb on tempdb_data01='4000m'

11.在备机将数据库testdb的属主有sa改为syb

use testdb

go

sp_changedbowner syb

go

12.重建登录、角色、用户信息

因为主机与备机是相同的平台,可以直接导出源实例master数据库中系统表的数据。从源实例中导出下面4张系统表的数据。

syslogins,sysloginroles,sysroles,sysusers

在备机上导入:

先开启选项:allow updates to system catalog。sp_configure "allow updates",1

导入4张系统表的数据,只追加新添加的登录、用户信息。

bcp master.dbo.syslogins in ./syslogins-20110920.bcpout -c -Usa -P -STEST -t~# -b1

bcp master.dbo.sysloginroles in ./sysloginroles-20110920.bcpout -c -Usa -P -STEST -t~# -b1

bcp master.dbo.sysroles in ./sysroles-20110920.bcpout -c -Usa -P -STEST -t~# -b1

bcp master.dbo.sysusers in ./sysusers-20110920.bcpout -c -Usa -P -STEST -t~# -b1

13.配置用户数据库testdb的options

use master

go

sp_dboption testdb,'select into',true

go

sp_dboption testdb,'trunc',true

go

use testdb

go

checkpoint

go

14.配置备机的参数

如果备机与主机环境相同的话,可以将主机上的<servername>.cfg直接拷贝到备机。否则,根据主机的cfg文件适当调整sybase ase的参数。

15.备份master数据库、导出几张重要系统表的数据

初始化设备、新建数据库,添加登录等操作后,要及时备份master数据库。最好对几张重要的系统表再做一次备份。使用bcp导出系统表sysusages,sysdatabases,sysdevices,syslogins,sysloginroles,sysroles,sysusers。

m4a3gz 发表于 2018-01-19 12:39

大家好,还是楼主我,以下是我能找到的恢复方法,大家看可行吗?

将生产环境中AIX5.3平台上的Sybase ASE12.5.2迁移到备机作测试用,下面简单记录下主要步骤。环境:Sybase ASE version: 12.5.2 32bitOS Version: AIX 5.3$SYBASE: /home/syb123Instance name: TESTdatabase name: testdb备机上建立好了与主机相同的vg与lv
主要步骤:1.将主机上的目录/home/syb123打包,拷贝到备机,解开tar包到备机的相同目录下。删除备机/home/syb123下的interfaces文件。2.修改资源文件resource file中的实例名(srvbuild.server_name),主机名(srvbuild.network_hostname_list)等信息。主要有3个rs文件: syb_dataserver.rs,syb_backupserver.rs,syb_sqlloc.rs3.新建Sybase ASE实例。执行:srvbuildres -r /home/syb123/syb_dataserver.rs在新建实例的过程中,因为异步IO没有开启,报错Symbol resolution failed for /usr/ccs/lib/libc.a 。解决方法见:AIX上未启动异步IO导致Sybase服务创建失败4.配置字符集roman8。源数据库的字符集为roman8,使用资源文件配置新建的备机上的字符集为roman8、排序规则为:bin_roman8。unix/linux环境上新建的实例默认没有安装bin_roman8这个排序规则,需要手动添加:cd /home/syb123/charsets/roman8charset-Usa -P -STEST binary.srt roman8然后在执行:srvbuildres -r /home/syb123/syb_sqlloc.rs 来修改实例的默认字符集和排序规则。5.新建备份服务srvbuildres -r /home/syb123/syb_backupserver.rs6.从源实例中导出disk init脚本使用下面的SQL语句能够导出:select 'disk init name="'+name+'",physname="'+phyname+'",size="'+convert(varchar,convert(int,(high-low+1)*2.0/1024.0))+'M"'+char(10)+'go' from master.dbo.sysdevices
where low/power(2,24)>0
go7.导出create database语句使用ddlgen导出源实例中用户数据库的create database语句。/home/syb123/ASEP/bin/ddlgen -Usa -P -STEST -TDB -Ntestdb -O./ddlgen-testdb.sql从上面的输出文件ddlgen-testdb.sql中将create database命令提取出来,加上for load选项。类似如下的命令:create database test on .....log on ......for loadgo8.在备机上上初始化设备和创建用户数据库在执行disk init命令先配置参数: number of devices,sp_configure "number of devices",50go然后分别执行上面得到的disk init命令来初始化Sybase逻辑设备,执行create database来创建用户数据库以备恢复用。在create database命令中加入for load选项,能够提高创建库的速度,因为不需要将逻辑设备上的页面清空。9.恢复源数据库在备机上恢复从主机上拷贝过来的testdb数据库的备份。load database testdb from '/syb_backup/testdb20110920.dump'go在主机上备份数据库testdb的时候,加入了压缩选项:compress=4。在恢复的时候不需要加入压缩选项,sybase备份服务器能够自动识别压缩级别。这点还是挺方便的!10.增加临时数据库tempdb的空间alter database tempdb on tempdb_data01='4000m'11.在备机将数据库testdb的属主有sa改为sybuse testdbgosp_changedbowner sybgo12.重建登录、角色、用户信息因为主机与备机是相同的平台,可以直接导出源实例master数据库中系统表的数据。从源实例中导出下面4张系统表的数据。syslogins,sysloginroles,sysroles,sysusers在备机上导入:先开启选项:allow updates to system catalog。sp_configure "allow updates",1导入4张系统表的数据,只追加新添加的登录、用户信息。bcp master.dbo.syslogins in ./syslogins-20110920.bcpout -c -Usa -P -STEST -t~# -b1bcp master.dbo.sysloginroles in ./sysloginroles-20110920.bcpout -c -Usa -P -STEST -t~# -b1bcp master.dbo.sysroles in ./sysroles-20110920.bcpout -c -Usa -P -STEST -t~# -b1bcp master.dbo.sysusers in ./sysusers-20110920.bcpout -c -Usa -P -STEST -t~# -b113.配置用户数据库testdb的optionsuse mastergosp_dboption testdb,'select into',truegosp_dboption testdb,'trunc',truegouse testdbgocheckpointgo14.配置备机的参数如果备机与主机环境相同的话,可以将主机上的<servername>.cfg直接拷贝到备机。否则,根据主机的cfg文件适当调整sybase ase的参数。15.备份master数据库、导出几张重要系统表的数据初始化设备、新建数据库,添加登录等操作后,要及时备份master数据库。最好对几张重要的系统表再做一次备份。使用bcp导出系统表sysusages,sysdatabases,sysdevices,syslogins,sysloginroles,sysroles,sysusers。
页: [1]
查看完整版本: 请教大家SYABSE的恢复