Using an Oracle multitenant container database (CDB)
Content Manager Enterprise Edition supports Oracle multitenant container databases (CDB).
This feature requires Content Manager Enterprise Edition V8.6 fix pack 1 or later and Oracle 12c R2.
You must create a container database with no pluggable databases by using the template that is included with Content Manager Enterprise Edition, and then create the pluggable databases for the Library Server and the Resource Manager by using the Oracle DBCA tool.
You can also reuse an existing container database, or customize the template file. If you do so, you must test them thoroughly before using them in your production system.
See:
Configuring a new installation of Content Manager Enterprise Edition
Configuring an existing installation of Content Manager Enterprise Edition
Architecture
Content Manager Enterprise Edition supports a system in which:
- there are one or more container databases
- the pluggable databases (PDBs) for the Content Manager Enterprise Edition Library Server and Resource Manager belong to the container database root.
Configuring a new installation of Content Manager Enterprise Edition
- Create a container database with no pluggable databases.
To do this, see Creating an container database in Oracle.
If you want to plug in the library server database and the resource manager database into different contain databases, you must create multiple container databases.
- Create the pluggable databases for the library server, resource manager or the shared
database. You can create one pluggable database at once. Repeat these steps for each
database that you want to create:
- Run the DBCA tool.
- In the Select Database Operation panel, select Manage Pluggable databases.
- In the Manage Pluggable Databases panel, select Create a Pluggable database.
- On the rest of the panels, accept the default values. Enter a name for the pluggable database, and then complete the rest of the steps to create it.
- Open the pluggable database. For example, to open the library server database, run
these
commands:
export ORACLE_SID=cmcdb SQL> Conn /as sysdba SQL> alter pluggable database icmnlsdb open;
Repeat these commands for the resource manage database or the shared database.
- Edit the Oracle network configuration file, tnsnames.ora. Add
one entry for each pluggable database. For example, add an entry for the library
server pluggable database ICMNLSDB, like
this:
ICMNLSDB= (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = cmserver)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = icmnlsdb.ibm.com) ) )
(The entry is the same as for a non-container database.)
Add a similar entry for the resource manage database or the shared database.
- Make sure that the pluggable database connections are working. To do this, run this
command:
sqlplus sys/password@icmnlsdb as sysdba
- (Optional.) You can update the XML files which are in the Content Manager Enterprise Edition
AdvSetup/Oracle directory:
- Library server database: ICM_Library_Server_Storage.xml
- Resouce manager database: ICM_Resource_Manager_Storage.xml
- Shared database: ICM_Share_Database_Storage.xml
- You can change the value of schema-related variables. For example, in the
ICM_Library_Server_Storage.xml
file:
<Variables> <variable name="ICM_LS_ADMINID" value="icmadmin"/> <variable name="ICM_LS_PASSWD" value="password"/> <variable name="ICM_LS_DBCONNECTID" value="icmconct"/> <variable name="ICM_LS_DBCONNECTPASSWD" value="password"/> <variable name="ICM_LS_DEFAULT_TBLSPC" value="ICMLFQ32"/> <variable name="ICM_LS_TEMP_TBLSPC" value="TEMP"/> </Variables>
You do not have to change the passwords here, because the database administrator can change them later. If you do change them here, delete them after you have finished the operations for the pluggable databases.
- You can change the tablespace nodes. For example, in the
ICM_Library_Server_Storage.xml
file:
<Tablespace name="ICMLFQ32"> <Datafile id="1" name="{PDB_NAME}_ICMLFQ32_01.dbf"> <size unit="MB">300</size> <reuse>true</reuse> <autoExtend>true</autoExtend> <increment unit="MB">10</increment> <maxSize unit="KB">-1</maxSize> </Datafile> <Datafile id="2" name="{PDB_NAME}_ICMLFQ32_02.dbf"> <size unit="MB">300</size> <reuse>true</reuse> <autoExtend>true</autoExtend> <increment unit="MB">10</increment> <maxSize unit="KB">-1</maxSize> </Datafile> </Tablespace>
You can change the value for the tablespace name and the datafile attributes: name, size, reuse, autoExtend, increment, and maxSize.
If you want to create multiple datafiles for a tablespace, add a <Datafile> node as the child node of the tablespace node, for example: Add a datafile id="2" node, and its name is end with ICMLFQ32_02.dbf, this name should be different than the other Datafile nodes.
- Create the Library Server and the Resource Manager database table spaces and the schema
users, by doing one of the following:
- Windows: Run this
script:
icmcreatepdbdata.bat lsdb|rmdb|sharedb PDB_NAME [preview]
- UNIX: su to the Oracle user, and then run this
script:
icmcreatepdbdata.sh lsdb|rmdb|sharedb PDB_NAME [preview]
The script is in the Content Manager Enterprise Edition
AdvSetup/Oracle
directory.Parameters
lsdb|rmdb|sharedb
-
(Required.) Specify which database you want to create:
- To create the library server database, use
lsdb
. - To create the resource manager database, use
rmdb
. - To create a shared database for the library server and the resource manager,
use
sharedb
.
- To create the library server database, use
PDB_NAME
- (Required.) Specify the net service name of the pluggable database which is
defined in the Oracle
tnsnames.ora
file. preview
- (Optional.) Creates a file containing the SQL commands, which you can check and edit, and then run manually. After using the file, delete the password from it.
Examples
To create a library server database, use:
icmcreatepdbdata.bat lsdb icmnlsdb
To create the SQL file for a shared database, use:
icmcreatepdbdata.bat sharedb shared preview
- Windows: Run this
script:
- Configure the Oracle external proc related settings in the listener.ora and tnsnames.ora files. For more information, see Support for Oracle 12cR2 in Content Manager Enterprise Edition V8.6.
- Configure the Library Server and the Resource Manager by using the Content Manager Enterprise Edition Configuration Manager.
The container database architecture is transparent to the runtime: you can use the same Oracle type 4 URL as before. For example:
Oracle service name: icmnlsdb.ibm.com
JDBC connection string: jdbc:oracle:thin:@//cmserver:1521/icmnlsdb.ibm.com
Configuring an existing installation of Content Manager Enterprise Edition
- If you are using Oracle 12c R1, upgrade it and the databases to Oracle 12c R2.
- Upgrade Content Manager Enterprise Edition to V8.6 Fix Pack 1.
- Create a container database with no pluggable databases.
To do this, Creating an container database in Oracle.
- Create the pluggable databases for the Library Server and the Resource Manager from the existing Library Server and Resource Manager databases. To do this, see the Oracle Database Administrator’s Guide.
- Reconfigure the Library Server and the Resource Manager by using the Content Manager Enterprise Edition Configuration Manager.
Creating an container database in Oracle
This section provides an outline of the steps that are required to create a container database in Oracle. For more information, see the Oracle documentation.
- Install Oracle12c R2.
- Download and install the Oracle patches that are mentioned in the Required patches section in Support for Oracle 12cR2 in Content Manager Enterprise Edition V8.6.
- Copy the CDB template (
ICM_CDB.dbt
) from the Content Manager Enterprise EditionAdvSetup/Oracle
directory to theORACLE_HOME/assistants/dbca/templates
directory. - Start the Oracle DBCA. To do this, run
dbca
.The DBCA window opens.
- Click Create a database, and then click Next.
- Click Advanced configuration.
The Select Database Deployment Type step appears.
- Click ICM_CDB, and then click Next.
The Database Identification Details step appears.
- Enter the Global database name and
SID.
Oracle uses the same domain name for the container database and pluggable databases by default. If you want to include the domain name in the pluggable database service name, you must enter the domain name in the Global database name field. For example, set the Global database name to
cmcdb.ibm.com
, and set SID tocmcdb
. - Select Create as Container database, Use Local Undo
tablespace for PDBs, and Create an empty Container
database. Click Next.
The Select Database Options step appears.
- Select Include in PDBs for the Oracle Text component.
- Complete the rest of the steps, using the default settings.
Limitations
- Pluggable databases are supported only in the container database root.
- Application containers are not supported.