Skip to end of metadata
Go to start of metadata

中文标题【设置 Oracle 数据库】


本页面提供了有关在为 Confluence 设置使用 Oracle 数据库的相关信息和指南。

设置准备

  • 请查看 Supported Platforms 页面来获得 Confluence 系统支持的 Oracle 数据库版本。你需要在安装 Confluence 之前升级你的 Oracle 数据库。
  • 如果你从其他的数据库中迁移到使用 Oracle 数据库,包括你从嵌入的内置评估数据库迁移到 Oracle,在进行安装之前,请阅读 Migrating to Another Database 中的内容。

你需要具有一定的 Oracle 数据库管理员(DBA)的经验来设置和维护你的数据库。

我们的支持小组能够帮你解决有关 Confluence 的问题,但是不能帮助你解决有关你 Oracle 数据库管理相关的问题。

如果你没有相关管理 Oracle 数据库的经验,你可以参考使用其他支持的数据库



1. 安装 Oracle

如果你还没有在安装可以连接的 Oracle 数据库,请先下载后进行安装。请参考 Oracle 文档 来获取有关安装的指南。

当你设置你的 Oracle 服务器的时候:

  • 字符集 必须使用 AL32UTF8 字符集(这个字符集在 Oracle 相当于 Unicode UTF-8 编码)。

2. 创建数据库用户

创建用户后并且指派权限:

  1. 使用 sqlplus 命令行工具通过命令行来访问 Oracle

    sqlplus user/password <as sysdba|as sysoper>

    如果你的登录用户使用的是 'sys' 你需要将 "as sysdba" 或 "as sysoper" 来确定你希望使用的何种 sysy 权限。

  2. 创建 Confluence 用户(例如 confluenceuser),然后仅给这个用户赋予下面的权限:

    create user <user> identified by <password> default tablespace <tablespace_name> quota unlimited on <tablespace_name>;
    grant connect to <user>;
    grant resource to <user>;
    grant create table to <user>;
    grant create sequence to <user>;
    grant create trigger to <user>;
    • Confluence 这个必须用户具有上面描述的的权限。Confluence 仅仅要求上面的这些权限就可以了,因此你需要指派特定的权限给这个用户。这个用户不需要创建表,创建序列,创建触发器这些权限角色。

    • 不要赋予这个用户 select any table 权限。这个权限将会导致其他 schemas 的问题。

    • 当你创建用户的时候,为上面显示表对象指定 tablespace

3. 安装 Confluence 

请参考 Confluence Installation and Upgrade Guide 文档来参考 Confluence 如何一步一步的在你的系统上进行安装。

4. 下载和安装 Oracle thin 驱动

基于许可证的考虑,我们不能将 Oracle 的驱动捆绑到 Confluence 中。如果你希望你的 Confluence 能够连接到 Oracle 数据库,你需要:

  1. 停止 Confluence。
  2. 进入 Database JDBC Drivers 页面然后下载正确的驱动。驱动通常被命名为 ojdbc8.jar。
  3. 将下载的 .jar 文件放置到你的  <installation-directory>/confluence/WEB-INF/lib 目录中。
  4. 重新启动 Confluence,然后使用浏览器访问 http://localhost:<port> 然后按照提示进行下一步的操作。

5. 输入你的数据库细节

Confluence 的安装向导将会指导你一步一步的在 Confluence 中配置安装 Oracle 数据库。

使用 JDBC 连接(默认)

JDBC 是推荐的连接你的 Confluence 到数据库中的方式。

Confluence 的安装向导将会提供给你下面 2 种连接选项:

  • 简单 —— 这个是最简单的方式来连接你的 Confluence 到数据库中。
  • 通过连接字符串 —— 使用这个选项,你需要配置特定的参数同时你还需要具有数据库连接方面的一些只是来构建正确的连接 URL。

基于你设置的类型,你需要提供下面的一些参数。

设置类型字段描述
简单(Simple)主机名(Hostname)

你数据库服务器使用的主机名或者 IP 地址。

简单(Simple)端口( Port)Oracle 服务器的端口,如果你在安装的时候没有修改 Oracle 服务器的端口的话,默认情况下 Oracle 使用 1521 端口。
简单(Simple)服务名(Service name)你 Confluence 数据库使用的服务名称。
通过连接字符串(By connection string)数据库 URL(Database URL)

数据库的 URL 使用下面的格式:
jdbc:oracle:thin:@//<HOST>:<PORT>/<SERVICE>

<SERVICE> 可以是 SID 或者是服务名。例如:  jdbc:oracle:thin:@//localhost:1521/confluence

在默认的情况下,新的 URL 样式使用 thin 驱动提供,你同时还需要制定 tnsnames 样式。

同时需要(Both)用户名(Username)你连接数据库需要使用的用户名,在上面的示例中,用户名是  confluenceuser
同时需要(Both)用户密码(Password)你连接数据库需要使用的用户名密码。

希望确定主机,端口服务名称或者 SID,在 Oracle 中使用运行的 Oracle 用户执行下面的命令(usually 'Oracle'):

lsnrctl status

Here's an example of the output:

SNRCTL for Linux: Version 11.2.0.2.0 - Beta on 29-JUN-2012 15:20:59
Copyright (c) 1991, 2010, Oracle.  All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC_FOR_XE)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.2.0 - Beta
Start Date                06-JUN-2012 08:36:34
Uptime                    23 days 6 hr. 44 min. 25 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Default Service           XE
Listener Parameter File   /u01/app/oracle/product/11.2.0/xe/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/<HOSTNAME>/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC_FOR_XE)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=<HOSTNAME>)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=<HOSTNAME>)(PORT=8080))(Presentation=HTTP)(Session=RAW))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
  Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "XE" has 1 instance(s).
  Instance "XE", status READY, has 1 handler(s) for this service...
Service "XEXDB" has 1 instance(s).
  Instance "XE", status READY, has 1 handler(s) for this service...
The command completed successfully
  • 主机名和地址在 PROTOCOL=tcp 中进行描述(这行 没有 Presentation=HTTP)。
  • 在 Services Summary, 每个服务应该有实例 READY 状态来让服务具可以进行连接。名字 Service 是激活的服务名称,通常使用这个服务名称在下一步通过使用 Instance 进行连接。
  • SID 是服务器的数据库实例名称,在这里通过 $ORACLE_SID 变量进行定义。当你有 shell 的 Oracle 环境下可以确定。

例如,如果你运行 Confluence 和 Oracle 数据库在同一个服务器上的时候,上面的 lsnrctl 状态输出,你应该使用下面的 URLs:

jdbc:oracle:thin:@//localhost:1521/XE
jdbc:oracle:thin:@localhost:1521:XE

URL 可以被用来直接输入 JDBC 连接或者数据源。

请参考 the Oracle JDBC FAQ 来获得 Oracle JDBC URLs 的相关信息。

使用 JNDI 数据源

如果你希望使用 JDNI数据源,请参考 Configuring a datasource connection 中的内容来进行配置。你需要在启动 Confluence 之前进行配置,在设置向导中,Confluence 只使用在你 Tomcat 配置中提供的选项。

6. 测试你的数据库连接

在你的数据库设置界面,有一个 测试连接(Test connection)按钮可以检查:

  • Confluence 可以连接你的数据库服务器
  • 数据库的字符集编码是否正确
  • 你的数据库用户是否具有需要的权限
  • 你的数据库用户没有赋予 SELECT ANY TABLE 权限

一旦上面的测试成功了,单击 下一步(Next )来继续进行 Confluence 的安装进程。

问题解决


  • No labels