AEM 6.4中的RDBMS支持 rdbms-support-in-aem
概述 overview
使用Document Microkernel实现对AEM中关系数据库持久性的支持。 文档微内核也是用于实现MongoDB持久性的基础。
它包含一个基于Mongo Java API的Java API。 还提供了BlobStore API的实现。 默认情况下,Blob存储在数据库中。
有关实施详细信息的详细信息,请参阅RDBDocumentStore和RDBBlobStore文档。
支持的数据库 supported-databases
有关AEM中关系数据库支持级别的详细信息,请参阅技术要求页。
配置步骤 configuration-steps
通过配置DocumentNodeStoreService
OSGi服务创建存储库。 除了MongoDB之外,它还扩展了以支持关系数据库持久性。
数据源需要配置为AEM才能正常工作。 这是通过org.apache.sling.datasource.DataSourceFactory.config
文件完成的。 相应数据库的JDBC驱动程序需要作为OSGi捆绑包在本地配置中单独提供。
有关为JDBC驱动程序创建OSGi捆绑包的步骤,请参阅Apache Sling网站上的此文档。
捆绑包准备就绪后,请按照以下步骤使用RDB持久性配置AEM:
-
确保数据库守护程序已启动,并且您有一个用于AEM的活动数据库。
-
将AEM 6.3 jar复制到安装目录中。
-
在安装目录中创建名为
crx-quickstart\install
的文件夹。 -
通过在
crx-quickstart\install
目录中创建具有以下名称的配置文件来配置文档节点存储:org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService.config
-
通过在
crx-quickstart\install
文件夹中创建另一个具有以下名称的配置文件来配置数据源和JDBC参数:org.apache.sling.datasource.DataSourceFactory-oak.config
note note NOTE 有关每个受支持数据库的数据源配置的详细信息,请参阅数据Source配置选项。 -
接下来,准备要与AEM一起使用的JDBC OSGi包:
-
在
crx-quickstart/install
文件夹中,创建一个名为9
的文件夹。 -
将JDBC jar放在新文件夹中。
-
-
最后,使用
crx3
和crx3rdb
运行模式启动AEM:code language-java java -jar quickstart.jar -r crx3,crx3rdb
数据Source配置选项 data-source-configuration-options
org.apache.sling.datasource.DataSourceFactory-oak.config
OSGi配置用于配置AEM与数据库持久层之间通信所需的参数。
可以使用以下配置选项:
-
datasource.name:
数据源名称。 默认为oak
。 -
url:
需要与JDBC一起使用的数据库的URL字符串。 每种数据库类型都有自己的URL字符串格式。 有关详细信息,请参阅下面的URL字符串格式。 -
driverClassName:
JDBC驱动程序类名。 根据您要使用的数据库以及随后连接到该数据库所需的驱动程序,该选项会有所不同。 以下是AEM支持的所有数据库的类名:- PostgreSQL的
org.postgresql.Driver
; - DB2的
com.ibm.db2.jcc.DB2Driver
; - oracle的
oracle.jdbc.OracleDriver
; - MySQL和MariaDB (实验性)的
com.mysql.jdbc.Driver
; - c
om.microsoft.sqlserver.jdbc.SQLServerDriver
for Microsoft SQL Server(实验性)。
- PostgreSQL的
-
username:
数据库运行所使用的用户名。 -
password:
数据库密码。
URL字符串格式 url-string-formats
数据源配置中会使用不同的URL字符串格式,具体取决于需要使用的数据库类型。 以下是AEM当前支持的数据库格式列表:
- PostgreSQL的
jdbc:postgresql:databasename
; - DB2的
jdbc:db2://localhost:port/databasename
; - oracle的
jdbc:oracle:thin:localhost:port:SID
; - MySQL和MariaDB (实验性)的
jdbc:mysql://localhost:3306/databasename
; - Microsoft SQL Server的
jdbc:sqlserver://localhost:1453;databaseName=name
(实验性)。
已知限制 known-limitations
虽然RDBMS持久性支持同时使用具有单个数据库的多个AEM实例,但并不支持并发安装。
要解决此问题,请确保先使用单个成员运行安装,并在第一个成员完成安装后添加其他成员。