手工修改observer.config.bin导致启动失败

  1. 环境背景:测试环境,OB 3.1.2

  2. 问题描述:
    手工修改了(vim) etc/observer.config.bin,在启动 observer 时报错:

再修改回原来的内容也启动不成功,发现 etc/observer.config.bin.history,用它替换了 observer.config.bin,然后启动成功

  1. 期待解答
    手工修改observer.config.bin后,启动 observer 时应该会校验 observer.config.bin,然后启动失败,应该如何正确的解决这个问题?用 etc/observer.config.bin.history 替换 observer.config.bin 后启动有什么隐患吗?
  1. observer.config.bin 文件是二进制文件。使用命令 strings observer.config.bin 查看。 主要用于读取参数,不支持直接修改这个文件来改变observer参数。
  2. observer 参数的修改通常是在节点内部通过 alter system 命令修改,修改成功会持久化到这个参数文件。
  3. 如果 observer 进程不在(或者由于某种原因无法启动),可以在 observer 进程启动的时候通过命令行参数 -o 参数名=参数值 方式修改。observer 进程启动成功后也会持久化到参数文件 observer.config.bin 里。下次启动就不用指定了。这个方法只会影响当前节点的 observer进程,主要用于应急处理。

感谢解答,我知道 observer.config.bin 不应该手工修改,但是因为一些习惯误操作修改了它。

想知道如果误操作发生了,正确的解决办法是什么?因为再次修改回原来的内容似乎也不能通过校验。

用它的备份还原一个文件出来。 :slightly_smiling_face:
因为这个文件类似oracle的control files,所以默认放了3份,加上每个有个 history,有6份文件。


[root@c73a9d0cbe22 ob]# find . |grep observer.conf
./etc/observer.config.bin.history
./etc/observer.config.bin
./etc2/observer.conf.bin.history
./etc2/observer.conf.bin
./etc3/observer.conf.bin.history
./etc3/observer.conf.bin

除此之外,还有个隐藏目录
.conf
里面也会保存 observer里正常修改成功后的参数文件。这点现在不确认。

1 个赞

cp etc2/observer.conf.bin etc/observer.config.bin 方法可用,感谢。

备注:
etc、etc2、etc3 都是配置文件目录。这三个目录里的内容是完全一致的,区别是后两个目录是 OBServer 创建的,第一个目录是启动前需要准备的。etc2 和 etc3 是配置文件额外保存的目录,由配置项 config_additional_dir 控制。当配置修改以后,除了会写标准的 etc/observer.config.bin 以外,还会额外在这些目录创建配置项文件。