关于relink命令
一段文本代码,首先第一部做的是 编译,将文本文件编译成 obj 文件(*.o),为了特定的需求有的还打包
然后是link ,link的时候生成可执行文件。
对于编译生成目标文件这一部,是需要编译器的。对于oracle开说,发布的安装程序一般都是已经编译好的 目标文件或者归档文件,在安装的时候拷贝这些文件到相应目录下之后,通过make 程序进行 link 再生成可执行程序。 在生成可执行程序的时候,除了oracle自身的目标文件外,还要倚赖一些os 的文件 以及自身的环境变量(有些可执行程序中直接引用环境变量,有些是hardcode了)。
所以当os 或者数据库打补动使得一些相关文件发生变化,则需要重新link相关文件,环境变量的变化也可能导致可执行文件运行发生问题(我认为这是oracle做的不好)。
cd $ORACLE_HOME/bin
more relink
看看这个shell脚本,一步一步理下去就知道了
relink一般是oracle的可执行文件出现问题后,重新生成一下sqlplus等程序;或操作系统打完影响Oracle执行相关的补丁重新生成部分oracle的lib;还有比如说如果你做备份项目用legato结合rman去备份oracle,也需要重新link libobk.a这个库文件。
一段文本代码,首先第一部做的是 编译,将文本文件编译成 obj 文件(*.o),为了特定的需求有的还打包
然后是link ,link的时候生成可执行文件。
对于编译生成目标文件这一部,是需要编译器的。对于oracle开说,发布的安装程序一般都是已经编译好的 目标文件或者归档文件,在安装的时候拷贝这些文件到相应目录下之后,通过make 程序进行 link 再生成可执行程序。 在生成可执行程序的时候,除了oracle自身的目标文件外,还要倚赖一些os 的文件 以及自身的环境变量(有些可执行程序中直接引用环境变量,有些是hardcode了)。
所以当os 或者数据库打补动使得一些相关文件发生变化,则需要重新link相关文件,环境变量的变化也可能导致可执行文件运行发生问题(我认为这是oracle做的不好)。
cd $ORACLE_HOME/bin
more relink
看看这个shell脚本,一步一步理下去就知道了