iMC一些进程启动异常,运行环境栏里显示无法连接数据库
无法连接数据库
客户自行使用第三方p2v迁移工具,把一台物理机装的iMC迁移到vmware中的虚拟机上。
IMC和oracle对IP地址有一定的依赖性,不建议做p2v迁移后,修改IP地址。
OS可以正常起来,既然报错信息是无法连接数据库,就需要确定数据库是否可以为IMC提供服务。
是否做了一些修改操作,导致虚拟机和原物理机配置信息有差异。
一、发现用户对虚拟机IP地址进行了修改,为了不和原物理机IP地址冲突
解决方法:改回原IP地址
二、排查数据库问题
查看数据库目录,发现权限属主是oracle用户(oracle数据库安装不会使用root用户的,使用root用户也无法安装)。
1、通过 su - oracle切换用户
2、Lsnrctl status查看oracle监听器是否开启,可以通过lsnrctl start {start|stop|status}命令,没有开启的话,进行手动开启
3、使用sys用户查看oracle数据库是否开启,本地登录命令:sqlplus sys/密码 as sysdba,数据库没有开启的话,连接后,执行startup force命令;远程登录建议使用oracle客户端,如PL/SQL Developer或navicat。iMC是通过IP地址连接数据库的,所有相当于远程连接了数据库。发现本地和远程都可以连接数据库,且数据库是开启的。
4、在运行环境栏里点击[配置],出现如下报错:
Oracle数据库不同于sql server。Sql server是使用不通的数据库区分不同组件,而oracle是通过不通数据库用户来区分的。例如使用imc_wsm用户登录数据库,无线组件也是真正用这个用户使用数据库的。
用户imc_wsm的密码可以通过imc提供的工具pwdmgr.sh查看到:
/opt/iMC/deploy/pwdmgr.sh -query 127.0.0.1 orcl imc_wsm
登录成功。
5、进行了上面这些验证,发现数据库一切正常。由于是p2v迁移,且使用了第三方工具,迁移到了vmware上,中间有很多不确定因素。
三、排查iMC自身问题
1、查看iMC安装目录,权限属主是root,说明使用root用户开启imc是正确的。开启命令是sh /opt/iMC/deploy/dma.sh
2、使用oracle用户开启imc,发现数据库可以正常连接,但是由于权限问题,imc一些进程无法开启
3、使用oracle用户,通过su临时赋予root的权限,su sh /opt/iMC/deploy/dma.sh,发现oracle用户不是sudoers
4、细心不难发现,root用户是没有oracle的一些命令的,如sqlplus。而IMC后台可能使用了这些oracle工具,但又没有oracle的环境变量。于是把oracle的环境变量添加给root用户。
环境变量内容参考/home/oracle/.bash_profile的内容。
把上面的内容追加到/root/.bash_profile里
然后执行source /root/.bash_profile,是环境变量生效。
最终成功开启iMC,数据库连接正常。
所以,解决方法是是root用户获得oracle的环境变量。
但问题是,原物理机root用户是否有oracle的环境变量,用户是否对root用户做过一些操作。
目前对IMC p2v迁移,绝大多数是重新安装IMC,然后通过备份&恢复配置的方法,使新的IMC获得原IMC同样的配置和功能。如果很难直接通过p2v迁移IMC,不建议使用此方法。
该案例暂时没有网友评论
✖
案例意见反馈
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作