存档
将生产环境中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文件。
在AIX5.3上使用资源文件新建Sybase ASE12.5.2实例时,报如下的错误:
exec(): 0509-036 Cannot load program /home/sybase/ASE-12_5/bin/dataserver because of the following errors:
0509-130 Symbol resolution failed for /usr/ccs/lib/libc.a[aio_64.o] because:
0509-136 Symbol kaio_rdwr64 (number 0) is not exported from dependent module /unix.
0509-136 Symbol listio64 (number 1) is not exported from dependent module /unix.
0509-136 Symbol acancel64 (number 2) is not exported from dependent module /unix.
0509-136 Symbol iosuspend64 (number 3) is not exported from dependent module /unix.
0509-136 Symbol aio_nwait (number 4) is not exported from dependent module /unix.
0509-136 Symbol aio_nwait64 (number 5) is not exported from dependent module /unix.
0509-136 Symbol aio_nwait_timeout (number 6) is not exported from dependent module /unix.
0509-136 Symbol aio_nwait_timeout64 (number 7) is not exported from dependent module /unix.
0509-028 Symbol used in ? type does not match exported type.
0509-192 Examine .loader section symbols with the
'dump -Tv' command.
检查后发现AIX的异步IO没打开。修改参数后,重启机器。
在aix系统中date命令没有-d这个选项,不接收输入的日期值。
在aix系统中如果想获得当前时间的前几天或后几天的时间,可以用改变当前时区的方法。
export TZ=BEIST-8是系统当前时间。
调整时区可以改变时间。
例如:获取下一周的时间 export TZ=BEIST-176 ,176是由(24*7+8)获得
获取上一周的时间 export TZ=BEIST+160 ,160是由(24*7-8)获得
调整时区只改变当前窗口的时间,对服务器没有影响,但是建议在用完时间后将时区调整回来(export TZ=BEIST-8)这样对系统没有任何影响。
前些日子在ibm-aix下安装sybase15.0.3时遇到了一个su切换用户时不能加载该用户环境变量的问题。现在问题情况及解决方法整理一下。
在aix下用sybase用户安装并配置完服务后,要设定成开机自动启动。
startsybase.sh的脚本为:
su - sybase -c "startserver -f RUN_servername -f RUN_servername_BS "
这句脚本的意思是:从当前用户(root)切换到sybase用户下,并以sybase用户的身份执行startserver -f RUN_servername -f RUN_servername_BS。
遗憾的是:执行该脚本的时候,提示找不到找不到SYBASE环境变量。 导致不能启动sybase主服务和备份服务器。
上面的语句在Linux运行没有任何问题,但在AIX环境就会报错。
然而,用su - sybase手动切换到sybase用户下,再执行env却能够看到所有SYBAE,SYBAE_ASE,SYBASE_OCS等相关的环境变量。
也就是说用su手动切换到sybase用户时,自动加载了sybase的环境变量。在脚本中执行su - sybase -c ..... 不会自动加载环境变量。
经过苦苦的搜索和自己的实验,最后问题解决了。如果想要加载sybase用户的环境变量,需加一个参数:-l
su - sybase -l -c "startserver -f RUN_servername -f RUN_servername_BS "
但是很奇怪的是: -l这个参数在AIX下的man su 中根本就没有提到。
这么一个小小的问题的确苦恼了我很长时间。最后终于解决了。
参考:http://linux.chinaunix.net/bbs/viewthread.php?tid=1059910&extra=&page=1