内容


IBM Cognos 最佳实践

IBM Cognos 8 内容存储备份与清理

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

Comments

系列内容:

此内容是该系列 # 部分中的第 # 部分: IBM Cognos 最佳实践

敬请期待该系列的后续内容。

此内容是该系列的一部分:IBM Cognos 最佳实践

敬请期待该系列的后续内容。

免费下载: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
图 1:加载 Cognos Administration

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

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

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

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

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

图 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 数据库清理脚本的步骤,可用于所支持的大多数数据库。


相关主题


评论

添加或订阅评论,请先登录注册

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