想在公司的服务器上安装OpenLDAP,安装RPM包时报了一堆的依赖包错误,因为是在公网的虚拟机上,不想费那么大的劲去拷贝安装RPM包,决定直接从映射光盘上通过建立YUM仓库解决。
步骤如下:
1、挂载光驱
# mount –o loop /dev/sdc /mnt
2、安装建立仓库工具
# rpm –ivh /mnt/Server/createrepo-0.4.4-2.fc6.noarch.rpm
3、创建包仓库文件夹,并建立仓库
# mkdir /var/RHEL5
# cd /var/RHEL5
# createrepo .
4、配置YUM客户端
# vi /etc/yum.repos.d/server.repo
[RHEL Repository]
name=RedHat Linux Linux
baseurl=file:///mnt/Server
enabled=1
gpgcheck=0
保存退出
5、进行RPM包的安装
# yum install RPM包名
在我安装时,报一个warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID 37017186的错误,按道理已经在配置文件里指定不检查KEY,听说是RHEL的一个bugs,不理这么多,直接绕过,用# yum install –nogpgcheck RPM包名实现RPM包的安装。

利用YUM安装的方式,可以实现安装RPM包时自动把相关的依赖包给装上。
附:
YUM简单使用:
安装:
yum install RPM包的名称
删除:
yum remove RPM包的名称
搜索:
yum search  RPM包的名称
显示仓库所有文件:
yum list
显示安装包详细说明信息:
yum info  RPM包的名称
更新安装:
yum update  RPM包的名称
清楚服务器仓库缓存等:
yum clean all
本地安装:
yum localinstall  /路径/RPM包的名称
本地更新:
yum localupdate /路径/RPM包的名称
显示安装包所安装的文件列表:
yum provides  RPM包的名称
反查文件所属安装包:
yum whatprovides  /路径/文件
注:
若安装时需要安装到指定的文件夹,则需要 –installroot
举例:
       yum install –installroot=/mnt  vim

Oracle UCM11g把应用服务器绑定在Weblogic上,但是怎么样利用外部LDAP作为安全提供者却语焉不详,官方文档里也只是描述怎么样配置Oracle Directory Manager,我不想用IDM这又臭又大的东西,怎么样配置其它LDAP基本就自己摸索了,鄙视这种不负责任的行为。
   废话少说,在Linux AS5上安装并编写LDIF文件,建立LDAP的基础结构如下:
image
登录Weblogic服务器的管理Console,在Domain Sturcture下选择Security Realms,在列表中选择myrealm,打开安全配置页面。
image
点击Provider,配置新的安全提供者。选择类型为“OpenLDAPAuthenticator”,并起名为OpenLDAP。
image
创建Provider后对Provider Specific进行配置并保存。
image
Host:LDAP服务器
Port:LDAP服务端口
Principal:LDAP服务管理用户名
Credential:LDAP服务管理员密码
User Base DN:LDAP中与用户对应的DN
User Name Attribute: cn
User Object Class: person
Group Base DN:与用户组对应的DN,这个要特别注意,因为UCM中的用户组就是对应与此DN下的Entry。
Use Retrieved User Name as Principal:勾选
Propagate Cause For Login Exception:勾选
配置好后保存,重新启动Weblogic AdminServer,从myrealm的Users and Groups页面可以看到LDAP中的用户。
image
打开UCM,确认LDAP中用户可以登录访问UCM,同时正确映射用户角色与账户。
image
image

客户生产环境的数据库不知什么原因突然挂了,无论怎么调整也不能启动监听器服务,用JDBC访问永远是访问不通,折腾了大半天终于忍无可忍,决定重新创建一个数据库实例,然后再恢复数据。

停下的应用服务,数据库,然后把原来的UCM数据库文件导入,启动UCM,发现UCM服务没法正常启动。从Admin Server查看日志,发现报如下错误:
.Unable to create result set for query ‘select * from CpdLinks where dCpdGuid=’0”. ORA-00942: table or view does not exist
ORA-00942: table or view does not exist

intradoc.common.ServiceException: !csDbUnableToCreateResultSet,select * from CpdLinks where dCpdGuid=’0′!$ORA-00942: table or view does not exist

at intradoc.server.IdcServerManager.init(IdcServerManager.java:148)
at IdcServer.init(IdcServer.java:64)
at IdcServer.main(IdcServer.java:37)
Caused by: intradoc.data.DataException: !csDbUnableToCreateResultSet,select * from CpdLinks where dCpdGuid=’0′!$ORA-00942: table or view does not exist

at intradoc.jdbc.JdbcWorkspace.createResultSetSQL(JdbcWorkspace.java:826)
at folios.FolioInstallFilter.contentFoliosUpgrade(FolioInstallFilter.java:385)
at folios.FolioInstallFilter.doFilter(FolioInstallFilter.java:62)
at intradoc.shared.PluginFilters.filter(PluginFilters.java:92)
at intradoc.server.IdcExtendedLoader.executeFilter(IdcExtendedLoader.java:285)
at intradoc.server.IdcExtendedLoader.extraBeforeCacheLoadInit(IdcExtendedLoader.java:255)
at intradoc.server.IdcSystemLoader.loadCaches(IdcSystemLoader.java:928)
at intradoc.server.IdcServerManager.init(IdcServerManager.java:79)
… 2 more
Caused by: java.sql.SQLException: ORA-00942: table or view does not exist

at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743)
at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:207)
at oracle.jdbc.driver.T4CStatement.executeForDescribe(T4CStatement.java:790)
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1037)
at oracle.jdbc.driver.T4CStatement.executeMaybeDescribe(T4CStatement.java:830)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1124)
at oracle.jdbc.driver.OracleStatement.doScrollExecuteCommon(OracleStatement.java:4051)
at oracle.jdbc.driver.OracleStatement.doScrollStmtExecuteQuery(OracleStatement.java:4191)
at oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java:1279)
at intradoc.jdbc.JdbcWorkspace.createResultSetSQL(JdbcWorkspace.java:802)
… 9 more

从另外一台机器看UCM系统的数据库,又找不到这个表。奇怪了,只好一个个校对,后来突然发现恢复的UCM系统启用了Folio组件,会不会是这个影响呢?在组件管理把Content Folio功能禁用,重新启动UCM服务,果然顺利启动。

解决方法:

   1. Open a connection to the content server’s database schema using SQL Developer, SQL+, etc.
   2. Delete the record in the config table that has a dName value of ContentFolios
    3.Drop all the database tables that start with Cpd if they exist

    CpdArchivedLinks
    CpdBasketLinks
    CpdChangeHistory
    CpdLinks

    4.Reinstall the ContentFolios component on the content server
    5.Restart the content server