在项目实践中,通常不会选择cognos自带的Cognos Content Database作为内容库。因为按照IBM的官方文档中的说法,这个自带的数据库只是为了方便测试之用,不推荐在实际项目中使用。从我个人体验来看,因为Cognos Content Database不是主流的通用的数据库,操作维护都有很多不确定性。不推荐使用。
那么推荐什么呢?当然是所有主流的关系型数据库:DB2,Oracle,SQLServer之类的。要说还是对IBM自己的数据库支持好,也可能是因为一开始我就是使用的DB2,觉得对DB2的支持就是好。后来使用Oracle和Cognos配合使用的时候确实遇到了一些问题。这个会在后面的博文里面说。下表为Cognos支持的数据库以及字符编码、协议一览:
书归正传,今天要演示的是如何使用Oracle数据库作为Cognos的内容库。
1. 环境
Oracle10g
2. 安装计划
假定机器上已经安装有Oracle10g服务器。这里就不再演示Oracle服务器的安装。现在,我们要在这个Oracle数据库服务器上面为Cognos安装一个新的实例。
3. 开始安装
3.1 从下面位置启动Database Configuration Assistant:开始/程序/Oracle--oraDb10g_home1。
3.2 点击下一步。
3.3 选择创建数据库,然后点击下一步。
3.4 选择一般用途,然后点击下一步。
3.5 为你的数据库实例去一个名字,然后点击下一步。这里我取的名字是 cognos8。
3.6 点击下一步。
3.7 为你数据库的账户设置一个密码。这里可以所有的账户使用相同的密码,也可以为每个账户独立的设置不同的密码。当然在项目实践中,为不同的账户设置不同的密码是必须的。但是在这里,仅作为测试,我为所有的用户设置相同的密码。
3.8 选择文件系统,然后点击下一步。
3.9 这里选择数据库文件的创建位置。依个人喜好,以方便管理为原则,选择一个你喜欢的位置。这里,我选择使用模板中数据库文件的位置。这个位置也就是oradata文件夹。然后点击下一步。
3.10 点击下一步。
3.11 不选择示例方案,点击下一步。
3.12 点击字符集标签,选择 使用Unicode(AL32UTF8),然后点击下一步。
3.13 点击下一步。
3.14 点击完成。
3.15 点击确定,然后数据库实例开始安装。视电脑性能的不同,安装时间大约在5分钟左右。
3.16 点击退出结束安装。
4. 配置新安装的数据库实例。
4.1 用PL/SQL客户端,以 sys 用户名,使用sysdba的方式登录数据库实例cognos8
4.2 新建一个用于cognos连接的账户,并赋予相应的权限。这里我取的用户名是 cognos。下面是需要赋予的权限:
——连接到数据库
——创建、更改和删除表、触发器、视图、步骤和顺序
——插入、更新和删除数据库表中的数据
可以使用一下代码创建用户以及为cognos用户赋予权限:
create user cognos identified by ******(此处为你所取的密码)default tablespace users temporary tablespace temp;
grant resource,connect to cognos;
grant create session to cognos;
grant create table to cognos;
grant create view to cognos;
grant create trigger to cognos;
grant create procedure to cognos;
grant create sequence to cognos;
grant alter any table to cognos;
grant alter any trigger to cognos;
grant alter any procedure to cognos;
grant alter any sequence to cognos;
grant drop any table to cognos;
grant drop any view to cognos;
grant drop any trigger to cognos;
grant drop any procedure to cognos;
grant drop any sequence to cognos;
grant select any table to cognos;
grant insert any table to cognos;
grant update any table to cognos;
grant delete any table to cognos;
5. 配置cognos服务器。
5.1 copy Oracle的连接驱动jar包到Cognos安装目录的合适位置。
以下是IBM官方文档(V8.4)对驱动jar包的说明和解释:
从ORACLE_HOME/jdbc/lib目录 将相应的 JAR 文件复制到安装了 Content Manager 以及向 Oracle 数据库发送通知的计算机上的 c8 位置/webapps/p2pd/WEB-INF/lib 目录。
如果使用的是 Java 1.4,则复制 ojdbc14.jar 文件
如果使用的是 Java 1.5,则复制 ojdbc5.jar 文件
如果该目录包含 classes12.jar 文件,请在安装 ojdbc14.jar 或 ojdbc5.jar 文件前将其删除。
因为我们的java环境是Java1.5,按照以上的说明,我们应当使用ojdbc5.jar这个驱动jar包。但是因为我的机器上得oracle安装位置ORACLE_HOME/jdbc/lib 下面不存在ojdbc5.jar这个文件,所以我用class12.jar以及ojdbc14.jar进行测试,发现这两个文件都可以成功驱动cognos连接上oracle数据库。但是使用ojdbc5.jar这个文件进行测试的时候,反而连接不了。我猜测可能是我使用的oracle的版本只能被自带的连接驱动文件连接。不确定。希望哪位了解其原因的同行解释一下,不胜感谢!
这里我采用class12.jar文件进行驱动。
5.2 启动cognos configuration。
5.3 删除已有的content store。
5.4 建立新的content store。
选择新建的数据库的类型为oracle database,修改用于数据库连接的用户名和密码为你已经设定的用户名和密码,输入新建的数据库名称作为service name。
5.5 启动cognos服务。
5.6 连接http://localhost/cognos8,显示cognos欢迎页面。配置成功。
6. 意外情况
因为本例集成安装了Cognos Content Database,所以每次启动Cognos服务的时候,总是要先启动Cognos Content Database,虽然这个服务在安装了第三方的数据库作为内容库之后是无用的。有的时候会出现无法启动Cognos Content Database的错误,遇到这种情况,可以进入操作系统的计算机管理器中手动的停掉这个服务,然后再启动Cognos服务。
To Be