Sybase ASE12.5重建存在用户库的master(master库异常,尝试其他方法不能正常启动服务后)

1、编辑$SYBASE/ASE-12_5/install/RUN_etoh2 --RUN_etoh2指的sybase安装目录install下服务启动文件

在命令行最后加入:-T3607

2、单用户模式启动ASE

$su - sybase

$cd $SYBASE/ASE-12_5/install

$startserver -f RUN_etoh2 -m

3、bcp out系统表

$cd $SYBASE/data

$bcp master..sysdevices out sysdevices.txt -Setoh2 -Usa -P -c

$bcp master..sysdatabases out sysdatabases.txt -Setoh2 -Usa -P -c

$bcp master..sysusages out sysusages.txt -Setoh2 -Usa -P -c

$bcp master..syslogins out syslogins.txt -Setoh2 -Usa -P -c

$bcp master..syslogins out sysloginroles.txt -Setoh2 -Usa -P -c

$bcp master..sysconfigures out sysconfigures.txt -Setoh2 -Usa -P -c

$bcp master..syscharsets out syscharsets.txt -Setoh2 -Usa -P -c


4、shutdown ASE服务


5、冷备份好原先的系统库文件以及配置文件,注意判断下剩余磁盘空间

$cd $SYBASE/data

$mv master.dat master.dat.bak

$mv sybsystemdb.dat sybsystemdb.dat.bak

$mv sysprocs.dat sysprocs.dat.bak

$mv tempdb.dat tempdb.dat.bak

$mv $SYBASE/ASE-12_5/etoh2.cfg $SYBASE/ASE-12_5/etoh2.cfg.bak

$mv $SYBASE/interfaces $SYBASE/interfaces.bak


6、创建新master库

--ASE12.5及以后版本用dataserver实用程序创建,ASE12.0及以前的版本用buildmaster实用程序创建,而通过srvbuild和srvbuildres在创建时候可以加入字符的设置。详见:

--http://manuals.sybase.com/onlinebooks/group-as/asg1250e/svrtsg/@Generic__BookTextView/3059;pt=3054

--在这里不推荐用dataserver实用程序,因为通过dataserver创建出来后会跟原先通过srvbuildres配合$SYBASE/rs/db.rs创建出来的数据库环境不一致,所以还是用$SYBASE/ASE-12_5/bin/srvbuildres -r ~/rs/db.rs 来进行创建。

详见我的blog:ASE12.5.3在Linux上的安装配置

http://blog.csdn.net/xujinyang/article/details/5890645

其中db.rs内容:

sybinit.release_directory: /opt/sybase-12.5.4
sybinit.product: sqlsrv
sqlsrv.server_name: etoh2
sqlsrv.new_config: yes
sqlsrv.do_add_server: yes
sqlsrv.network_protocol_list: tcp
sqlsrv.network_hostname_list: 192.168.1.180
sqlsrv.network_port_list: 5000
sqlsrv.server_page_size: 8k
sqlsrv.force_buildmaster: yes
sqlsrv.master_device_physical_name: /opt/sybase-12.5.4/data/master.dat
sqlsrv.master_device_size: 200
sqlsrv.master_database_size: 160
sqlsrv.errorlog: /opt/sybase-12.5.4/ASE-12_5/install/etoh2.log
sqlsrv.do_upgrade: no
sqlsrv.sybsystemprocs_device_physical_name: /opt/sybase-12.5.4/data/sysprocs.dat
sqlsrv.sybsystemprocs_device_size: 250
sqlsrv.sybsystemprocs_database_size: 200
sqlsrv.sybsystemdb_device_physical_name: /opt/sybase-12.5.4/data/sybsystemdb.dat
sqlsrv.sybsystemdb_device_size: 50
sqlsrv.sybsystemdb_database_size: 50
sqlsrv.default_backup_server: SYB_BACKUP


7、编辑$SYBASE/ASE-12_5/install/RUN_etoh2

将指定master设备指定为新创建的master设备,并删除在第1步中增加的参数。

8、删除步骤3中bcp out出来的文件中有关master、tempdb、model、sybsystemdb、sybsystemprocs系统库(srvbuildres创建出来)部分的内容。


9、单用户模式启动ASE

$cd $SYBASE/ASE-12_5/install

$startserver -f RUN_etoh2 -m

10、设置允许更改系统表

sp_configure 'allow updates to system tables',1 --等效sp_configure "allow updates", 1

go


11、 bcp in系统表

$cd $SYBASE/data

$bcp master..sysdevices in sysdevices.txt -Setoh2 -Usa -P -c

$bcp master..sysdatabases in sysdatabases.txt -Setoh2 -Usa -P -c

$bcp master..sysusages in sysusages.txt -Setoh2 -Usa -P -c

$bcp master..syslogins in syslogins.txt -Setoh2 -Usa -P -c

$bcp master..syslogins in sysloginroles.txt -Setoh2 -Usa -P -c

$bcp master..sysconfigures in sysconfigures.txt -Setoh2 -Usa -P -c

$bcp master..syscharsets in syscharsets.txt -Setoh2 -Usa -P -c


12、禁止更改系统表

sp_configure 'allow updates to system tables',0 --等效sp_configure "allow updates", 0

go


13、shudown ASE

--14、执行installmaster脚本 --使用srvbuildres创建master库后无需执行这步,因为installmaster主要是创建sybsystemprocs库中的一系列系统过程,而通过srvbuildres + rs文件创建时已经生成了sybsystemprocs库及过程。

--$isql -Setoh2 -Usa -P <$SYBASE/ASE-12_5/scripts/installmaster

15、启动ASE
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值