网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
返回列表
0
发起投票  发起投票 发新帖子 回复帖子     
查看: 9166 | 回复: -1  主题: 使用 AIX 命令 genld、 genkld 和 slibclean,避免库文件锁定错误      下一篇 
匿名
发表于:IP:您无权察看 2012-3-5 11:26:08       复制这个帖子   引用回复这个帖子   回复这个帖子      位置

使用 AIX 命令 genld、 genkld 和 slibclean,避免库文件锁定错误

目标

本文档的目标是解释了如何使用 AIX 命令 slibclean、 genld 和 genkld,以避免任何与被锁定文件方面的错误或不能复制的文件,当安装临时的修补程序、 CPU 补丁或patchsets的有可能产生。

解决方案

在安装时临时的修补程序,CPU 补丁程序或 patchsets,您可能会遇到一些关于被锁定文件的错误或也有可能产生无法复制文件,即使要修补ORACLE_HOME 与相关联的数据库,监听和任何其他 被停止的Oracle进程。这可能是这一进程需要终止或一个附加的文件,需要将其从系统高速缓存卸载的结果。尝试和找出可能的原因,请root 用户执行以下命令。

genld l |grep <ORACLE_HOME>
genkld |grep <ORACLE_HOME>


"genld"和"genkld"的可执行文件位于下/usr/bin,如下所示:

/usr/bin/genld
/usr/bin/genkld


在AIX上,/bin 通常是/usr/bin 的链接,所以那个"which genld"可能会返回/bin/genld,而不是 /usr/bin/genld (同样"which genkld")

示例

genld l |grep /u01/app/oracle/product/10.2
genkld |grep /u01/app/oracle/product/10.2


简单案例解决

如果genld 返回的数据,则当前正在执行的进程已在 ORACLE_HOME 目录中打开,请终止进程。如果genkld 命令返回的共享对象列表当前加载到操作系统上系统缓存则以root用户通过运行 slibclean命令删除条目从操作系统缓存。



 操作
使用 AIX 命令 genld、 genkld 和 slibclean,避免库文件锁定错误