OGG mgr 进程无法启动问题解析
在迁移数据库的时候,遇到一个比较奇怪的问题
在ogg中运行 start mgr
界面中提示mgr已经运行,但是通过 info all命令查看 mgr进程还是stop状态
随后去dirrpt目录查看mgr进程日志,发现ogg报错信息如下:
cd dirrpt
cat MGR.rpt
Source Context :
SourceModule : [ggdb.ora.sess]
SourceID : [/scratch/aime1/adestore/views/aime1_adc4150256/oggcore/OpenSys/src/gglib/ggdbora/ocisess.c]
SourceFunction : [oci_try]
SourceLine : [642]
ThreadBacktrace : [14] elements
: [/opt/ggs/libgglog.so(CMessageContext::AddThreadContext()+0x1e) [0x2adda13be06e]]
: [/opt/ggs/libgglog.so(CMessageFactory::CreateMessage(CSourceContext*, unsigned int, ...)+0x2cc) [0x2adda13ba44c]]
: [/opt/ggs/libgglog.so(_MSG_ERR_ORACLE_OCI_ERROR_WITH_DESC(CSourceContext*, int, char const*, char const*, CMessageFactory::Messa
geDisposition)+0x41) [0x2adda13a68b7]]
: [./mgr(OCISESS_context_def::oci_try(int, char const*, ...)+0x4e0) [0x4f2070]]
: [./mgr(OCISESS_context_def::logon(ggs::gglib::ggapp::CLoginName const&, ggs::gglib::ggapp::CDBObjName<(DBObjType)12> const&, ggs
::gglib::ggunicode::UString const&, int, bool, int, int, int)+0x86f) [0x4f346f]]
: [./mgr(DBOCI_init_connection_logon(ggs::gglib::ggapp::CLoginName const&, ggs::gglib::ggapp::CDBObjName<(DBObjType)12> const&, ch
ar const*, int, int, int, char*)+0xd6) [0x4d8b26]]
: [./mgr [0x4ebbf5]]
: [./mgr(gl_odbc_param(char const*, char const*, char*)+0x4c) [0x4ebf2c]]
: [./mgr(param_file_args(char*)+0x12d3) [0x4479e3]]
: [./mgr(init_functions(int, char**)+0x5f0) [0x448030]]
: [./mgr(main_loop(int, char**)+0x4c) [0x44e13c]]
: [./mgr(main+0xdc) [0x44e8bc]]
: [/lib64/libc.so.6(__libc_start_main+0xf4) [0x33a801d994]]
: [./mgr(__gxx_personality_v0+0x14a) [0x43a49a]]
2016-03-16 00:04:47 ERROR OGG-00664 OCI Error beginning session (status = 1034-ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux-x86_64 Error: 2: No such file or directory).
2016-03-16 00:04:47 ERROR OGG-01668 PROCESS ABENDING.
看到这个错误感觉比较奇怪,Oracle实例没有启动的时候会报这个错误,但是我的实例已经启动了,为什么还是会报这个错误呢。
通过网络搜索资料也没有得到解决办法,随后便自己研究。
检查ogg用户,是否因为ogg用户组导致无法识别到实例:
[ggs@qfangsh2 dirrpt]$ id ggs
uid=1008(ggs) gid=1000(oinstall) groups=1000(oinstall),1001(dba),1004(asmdba)
检查ogg目录权限发现也没有问题。
查看mgr进程配置
GGSCI (qfangsh2) 2> view params mgr
DYNAMICPORTLIST 7840-7914
PORT 7809
PURGEOLDEXTRACTS /opt/ggs/dirdat/*****/*, USECHECKPOINTS, MINKEEPFILES 30
AUTORESTART ER *, RETRIES 3, WAITMINUTES 5
USERID ***, PASSWORD *******
PURGEDDLHISTORY MINKEEPDAYS 3, MAXKEEPDAYS 5, FREQUENCYMINUTES 30
PURGEMARKERHISTORY MINKEEPDAYS 3, MAXKEEPDAYS 5, FREQUENCYMINUTES 30
LAGREPORTHOURS 1
LAGINFOMINUTES 30
LAGCRITICALMINUTES 45
发现除了用户以外,也没有其他关于数据库的配置,此前怀疑ORACLE_HOME变量配置错误的想法也不攻自破了。
那么配置文件中没有相关参数的配置,ogg的mgr进程是通过什么来确定oracle实例呢?
后来想到是不是通过 ORACLE_SID 环境变量呢,就去检查一些环境配置,
结果发现ORACLE_SID配置成了另外一个节点的SID,修改正确,并且使其生效。
从新进入ogg客户端
./ggsci
start mgr
start *
GGSCI (******) 3> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
EXTRACT RUNNING ****** 00:00:09 00:00:05
EXTRACT RUNNING ****** 00:00:00 00:00:02
EXTRACT RUNNING ****** 00:00:00 00:00:00
REPLICAT RUNNING ****** 00:00:00 00:00:06
REPLICAT RUNNING ****** 00:00:00 00:00:03
mgr进程正常启动,问题解决
遇到问题多想想,多检查一下,总是可以解决问题的