IBM Cognos 最佳实践: IBM Cognos 8 内容存储备份与清理

文档性质:故障排除;产品:IBM Cognos BI 8.4;关注领域:基础架构

学习在 Cognos 部署中如何备份与恢复 Content Store。同时,针对 Cognos Content 支持的数据库,学习运行数据清理脚本的必须步骤。

Suyash Jape, 软件工程师, IBM

Suyash Jape 在 Pune IBM India Software Lab 工作,是 Cognos on System z 产品的质量控制分析师,他负责运行在 System z 平台上的 IBM Cognos Business Intelligence 与 Performance Management 产品线的质量保障。



Gurpreet Singh, 软件测试专家:脚本语言, IBM

Gurpreet Singh 是 Cognos on zLinux QC 产品的软件测试专家。他具有 5 年的 Linux 平台相关产品测试经验。



2011 年 7 月 22 日

免费下载:IBM® Cognos® Express V9.5 或者 Cognos® 8 Business Intelligence Developer Edition V8.4 试用版
下载更多的 IBM 软件试用版,并加入 IBM 软件下载与技术交流群组,参与在线交流。

简介

目的

在本文中,学习如何在 Cognos 部署中备份与恢复 Content Store。同时还要学习数据库清理脚本的步骤,针对支持 Cognos Content 数据库:IBM DB2、Oracle、Microsoft SQL server 2005 以及 Apache Derby。

适用性

本文提供的技术与操作已在 IBM Cognos 8.4 中测试过。


IBM Cognos Content Store

IBM Cognos 8 Content Store 是 Cognos 服务器示例的核心元数据存储库。它存储着 Cognos 模型、包、报告模板以及说明、用户偏好及数据源连接信息。它还包含针对所有 Cognos 对象的安全名称空间信息以及访问控制策略。

IBM Cognos 8 包含 IBM Cognos Content Database,Apache Derby 数据库的一个实例,作为默认内容存储。所支持的其他数据库有 Microsoft SQL Server、Oracle、IBM DB2、以及 Sybase。


Cognos 部署中的 Content Store 备份

IBM Cognos Content Store 可作为 Cognos 部署进行备份,来实现迁移、重新部署或复制 Cognos 包,并将其恢复到新的 Cognos 服务器实例中。

想要备份 IBM Cognos content store,可登录 IBM Cognos 主页

加载 -> IBM Cognos Administration.

图 1:加载 Cognos Administration
图 1:加载 Cognos Administration

单击 Content Administration 选项卡中的 “New Export” 按钮。

图 2:创建新导出
图 2:创建新的导出

指定部署名并选择 “Select the entire Content Store” 选项。

图 3:部署选项
图 3:部署选项
图 4:输入新的存档名
图 4:输入新的存档名
图 5: 安排导出任务时间表
图 5: 安排导出任务时间表

完成导出向导后。新的导出部署条目将会出现在 Content Administration 选项卡中。而且,可在 <Cognos Installation Path>\deployment 中看到部署存档,如图 6 所示。

图 6:部署存档位置
图 6:部署存档位置

Content Store 清理:执行数据库脚本

有些故障排除状况可能需要启动新的内容存储配置数据。这通过在 Content Store 数据库中使用 SQL 脚本(IBM Cognos 8 为支持的所有数据库所提供的)清理 Cognos 特定表来实现。这样能够解决由于不存在安全名称空间,以及损坏到连接包的链接和 Content Store 中旧报告内容所引起的配置问题。清理脚本从数据库中删除所有 Cognos Content Store 表,其他表保持不变。

考虑清理 Content Store 的场景和优势,而不是删除数据库本身:

  • 在有些环境中,Cognos 管理员可能没有权限在所给数据库实例中删除并创建数据库。如果数据库环境中有很多用户,而且对数据库实例的访问必须进行控制,这就可能出现此种情况。如果访问权限只针对所给数据库,那么采用 Content Store 清理脚本是正确的。
  • 分配给 Content Store 的数据库可能是与其他系统或应用程序数据分享的。在这些情况下,不应该删除或重新创建整个数据库。
  • 在分布式 Cognos 部署中,可以存在多个 Content Manager 安装:一个是活动 CM 实例,其他是备用 CM 实例。在这一环境中,如果创建了新的 Content Store 数据库(具有新名字),Content Manager 上所有实例的连接设置必须进行更新。

在执行清理脚本之前,备份 Cognos Content(包/报告)或是所需的整个 Content Store,清理后将删除所有内容。

清理脚本需要从服务器节点来执行,该节点上安装了 Content Manager。以下是作为 Content Store 在支持的各种数据库中清理内容存储的步骤。

Content Store 清理的脚本位于:

${cognosInstallLocation}\configuration\schemas\content\

例如 C:\Program Files\cognos8\configuration\schemas\content\db2

IBM DB2

为了运行清理 DB2 内容存储,需要将数据库增加到服务器节点的 DB2 目录中,在此处将执行清理脚本。

Catalog DB2 数据库

  • 使用以下命令来创建实例别名,对远程 DB2 数据库实例进行分类:

    db2 "catalog tcpip node remoteinst remote remotehost server 50000"
    // ‘remote’ 后面紧跟服务器的 ip/hostname 地址,而 ‘server’ 关键字后面紧跟实例名或端口号。

    e.g.:
    # db2 catalog tcpip node bluehost remote remotehost.com server 60000
    # db2 "terminate"
  • 使用以下命令来创建实例别名和,并对一个远程 DB2 实例目录进行分类:

    db2 "catalog database testdb as remotedb at node bluehost"

    e.g.:
    # db2 "catalog database SALES as SALESDB at node svlxcog8"
    # db2 "terminate"

执行 DB2 清理脚本

导航到脚本位置并针对 Content Store 数据库来执行 DB2 脚本。

# cd ${cognosInstallLocation}\configuration\schemas\content\db2
# db2 connect to SALESDB user bob using cognos1 
# db2 –tvf dbClean_db2.sql

这将清理/删除来自数据库的所有 Content store 相关表。当重新启动 Content Manager Service 时,将会重新创建表。

清理日志数据库,

cd ${cognosInstallLocation} \configuration\schemas\logging\db2
# db2 –tvf LS_dbClean_db2.sql

清理通知数据库,

# cd {cognosInstallLocation}\configuration\schemas\delivery\db2
# db2 –tvf NC_DROP_DB2.sql

IBM Cognos Content Database (Apache Derby)

IBM Cognos Content Database 是 Apache Derby 的实例,这是默认内容存储,在 IBM Cognos 安装时默认提供。想要清理这一内容存储数据库:

  • 导航到内嵌 Derby 实例所在的目录:
    # cd ${cognosInstallLocation}\derby10.1.2.1\bin
  • 要运行清理脚本,使用 ij,交互式 SQL 脚本工具,目前为 ij.bat(Windows)或者 ij.sh(Unix)。修改该工具以满足 Cognos 环境。
    改变文件中默认提供的主机名、端口、用户以及密码值。
    e.g.:
    set IJ_HOST=localhost
    set IJ_PORT=1529
    set IJ_USER=cognos
    set IJ_PASSWORD=cognos
  • 执行 ij scriptfile:/C:/Documents%20and%20Settings/harringd/Desktop/WIP%20Docs/Templates/CP2-Symphony-Doc-Template.ott
  • CP2-Symphony-Doc-Template
    #ij.bat
    Or
    #ij.sh
  • 连接到 Content Store 数据库。名字默认是 ‘cm’ ,可在 Cognos Configuration -> Content Manager 部分找到。
     # ij>connect ‘cm’;
  • 执行 dbClean_derby.sql。利用真实路径来替代 ${cognosLocation} 。
     # ij>run ‘${cognosLocation}\configuration\schemas\content\derby\dbClean_derby.sql';

这些步骤将会清理 ‘cm’ 数据库中的内存存储,当重启启动 Content Manager Service 时这些将会重新创建。

  • 类似地,想要清理日志存储,可连接到日志数据库并执行 SQL 脚本。
    # ij>connect ‘logdb’;
    # ij>run 
    ‘${cognosLocation}\configuration\schemas\logging\derby\LS_dbClean_derby.sql';
  • 在通知存储与 Content Store 分开时(分布式安装),清理通知存储。
    # ij>connect ‘logdb’;
    # ij>run 
    ‘${cognosLocation}\configuration\schemas\delivery\derby\LS NC_DROP_Derby.sql';

Oracle

想要清理 Oracle 内容存储,可安装 Oracle 客户端来连接远程 Oracle 数据库。需要在 tnsnames.ora 文件中增加远程数据库。

例如 tnsnames.ora 文件位置及数据库条目。

C:\oracle\product\10.2.0\client_1\NETWORK\ADMIN\tnsnames.ora

COGNOSCS =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 9.XXX.XXX.XXX)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = cognoscs)
    )
  )
  • 要从内容存储中删除表
    #  cd   ${cognosInstallLocation}\configuration\schemas\content\oracle
    # sqlplus username@[Alias name for remote database]
    Enter the password
    SQL> @dbClean_oracle.sql
  • 要从日志数据库中删除表
    #cd ${cognosInstallLocation} \configuration\schemas\logging\oracle
    # sqlplus username@[ Alias name for remote database]
    Enter the password
    SQL>@LS_dbClean_oracle.sql
  • 要从通知数据库中删除表
    # cd {cognosInstallLocation}\configuration\schemas\delivery\oracle
    # sqlplus username@[Alias name for remote database]
    Enter the password
    SQL> @NC_DROP_ORA.sql

Microsoft SQL Server

对于 Microsoft SQL,可通过 osql 工具来执行清理脚本。

  • 要从内容存储中删除表
    #cd ${cognosInstallLocation} \configuration\schemas\content\sqlserver
        #osql –U <user> –P <password> -d <database> -i dbClean_mssqlserver.sql
  • 要从日志数据库中删除表
    #cd ${cognosInstallLocation} \configuration\schemas\logging\sqlserver
        #osql –U <user> –P <password> -d <database> -i LS_dbClean_mssql.sql
  • 要从通知数据库中删除表
       #cd ${cognosInstallLocation}\configuration\schemas\delivery\sqlserver
        #osql –U <user> –P <password> -d <database> -i NC_DROP_MS.sql

结束语

本文描述了备份 Cognos Content Store 的步骤,将存储 Cognos 包、报告、数据源、以及其他 Cognos 对象作为部署归档文件。此外,对于故障排除场景,这些使用 Cognos 数据库清理脚本的步骤,可用于所支持的大多数数据库。

参考资料

学习

获得产品和技术

讨论

  • 参与 developerWorks 博客 并加入 developerWorks 中文社区,developerWorks 社区是一个面向全球 IT 专业人员,可以提供博客、书签、wiki、群组、联系、共享和协作等社区功能的专业社交网络社区。

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Information Management
ArticleID=677366
ArticleTitle=IBM Cognos 最佳实践: IBM Cognos 8 内容存储备份与清理
publish-date=07222011