Configuration Guidelines
This section includes general recommendations for configuring various database objects and includes a brief syntax overview. It covers the general aspects of the database objects and does not cover any specific implementation requirements. This section includes:
Index
Index
Index recommendations specify points that need to be considered when creating indexes on a table.
1. Indexes on a table should be created according to the functional requirements of the table and not in order to perform SQL tuning.
2. The foreign keys on a table should be indexes.
Note: If the implementation creates a CM index on table-columns where the product already provides an index, then the CM index will be overridden by the base index.
Table Partitioning Recommendations
Oracle Utilities recommends using a minimum of 'n' partitions for selective database objects, where 'n' is number of RAC nodes.
Transparent Data Encryption Recommendations
Oracle Utilities supports Oracle Transparent Data Encryption (TDE). Oracle 11gR1 supports tablespace level encryption. The application supports tablespace level encryption for all application data. Make sure that the hardware resources are sufficiently sized for this as TDE uses additional hardware resources. The Oracle Advanced Security license is a prerequisite for using TDE.
Please consider the following when implementing TDE:
Create a wallet folder to store the master key. By default, the wallet folder should be created under $ORACLE_BASE/admin/<sid>.
The wallet containing the master key can be created using the following command:
alter system set encryption key authenticated by "keypasswd"
The wallet can be closed or opened using the following commands:
alter system set wallet open identified by "keypasswd";
alter system set wallet close;
Column level encryption can be achieved using the following commands:
create table <table_name>
(name varchar2(200) default ' ' not null,
bo_data_area CLOB encrypt using 'AES128',
bo_status_cd char(12) encrypt using 'AES128')
lob (bo_data_area) store as securefile (cache compress)
tablespace <tablespace_name>;
AES128 is the default encryption algorithm.
Tablespace level encryption is also supported using the following command:
Create tablespace <tablespace_name> logging datafile '<datafile
location>' size <initial size> reuse autoextend on next <next size>
maxsize unlimited extent management local uniform size
<uniform size> encryption using 'AES128' default storage(encrypt);
Indexed columns can only be encrypted using the NO SALT Option. Salt is a way to strengthen the security of encrypted data. It is a random string added to the data before it is encrypted, causing repetition of text in the clear to appear different when encrypted.
Data Compression Recommendations
Oracle Utilities supports Advanced Data Compression, available with Oracle 11gR1 onwards, to reduce the database storage footprint. Make sure that your resources are sufficiently sized for this as it uses additional system resources. Compression can be enabled at the Tablespace level or at the Table level.
Exadata Hardware
For Exadata hardware the compression recommendations are:
For high volume tables, keep the current table partition uncompressed. All of the older partitions will be compressed based on QUERY HIGH compression.
For high volume tables with CLOBs, always keep the CLOBs in securefiles with MEDIUM compression. Also keep the current table partition uncompressed. All of the older partitions will be compressed based on QUERY HIGH compression.
Load data into the uncompressed table partitions using a conventional load and then, once data is loaded using a CTAS operation, load into a temporary heap table. Then truncate the original partition. Alter the original partition into HCC compressed and then partition exchange this with the temporary heap table.
All multi column Indexes (primary as well as secondary) will be compressed using the default compression. HCC or OLTP compression is not applicable on the top of compressed Indexes.
Non- Exadata Hardware
For non-Exadata hardware the recommendations are the same as above, except that you cannot use HCC compression (it is only available in Exadata database server). Instead of HCC you can use any other compression tool available to you for non-Exadata hardware.
CLOB Fields
All CLOB fields should be stored as SecureFiles and Medium compressed. This requires a separate license for Advanced Data Compression. As a part of the schema, we create the product-owned tables with compression turned OFF at the LOB level. If you have the license for Advanced Data Compression, you can enable compression by updating the storage.xml.
Compression Guidelines
Admin and Metadata tables and their indexes will NOT be compressed.
All Transactional Tables will be compressed.
This includes ILM enabled MOs where applicable.
Compression will be done at the tablespace level.
Different MOs will have different tablespaces.
Partitioned MOs will have one tablespace per partition.
Child tables will use reference partitioning with parent + children sharing the same tablespace. (parent and child will always be managed/archived together).
All multicolumn indexes on transactional tables will be compressed.
Use ‘compress advanced low’.
Local partitioned indexes will reside in the same tablespace as the table.
Each MO will have an index tablespace. All MO (Parent-Child Table) indexes will share this tablespace.
Do NOT specify standard index compression.
Securefile medium compression in row for LOBs and CLOBs.
 
 
Database Vault Recommendations
The product supports Database Vault. All non-application User IDs can be prevented from using DDL or DML statements against the application schema. So SYS and SYSTEM cannot issue DDL or DML statements against CISADM schema.
The application-specific administration account can issue DDL statements but should not be able to perform any DML or DCL statements.
Application user must be given DML only permissions.
Database Vault can be used to control access during patch process and Install/Upgrade process.
Oracle Fuzzy Search Support
The product supports Oracle Fuzzy searches. To use this feature, Oracle Text must be installed. After Oracle Text is installed, an index must be created on the table where the fuzzy search needs to be performed from the application. This is only an Oracle database option and is not supported by other databases. Additionally, not all languages are supported. Refer to the Oracle database documentation for more information about fuzzy searching.
A typical syntax for implementation of fuzzy searching is as below. For the most updated syntax, please refer to Oracle Fuzzy documentation.
GRANT CTXAPP TO <Application schema owner e.g CISADM>;
 
GRANT EXECUTE ON CTX_DDL TO <Application schema owner e.g CISADM>;
 
create index <Application schema owner e.g CISADM>.<Index_Name> on Application schema owner e.g CISADM>.<Table_Name> (<column_name>) indextype is ctxsys.context parameters ('sync (on commit)');
begin
ctx_ddl.sync_index(‘Application schema owner e.g CISADM>.<Index_Name>’);
end
/
Storage Recommendations
This section specifies recommended options for storing the database objects.
SecureFile for Storing LOBs
Beginning with Oracle 11g, tables having fields with data type of CLOB or BLOBS should have the LOB Columns stored as SecureFiles.
The storage options with SecureFiles for Heap Tables should be ENABLE STORAGE IN ROW, CACHE and COMPRESS.
For the IOT Table the PCTTHRESHOLD 50 OVERFLOW clause should be specified and the storage options with SecureFiles should be ENABLE STORAGE IN ROW, CACHE and COMPRESS.
The PCTTHRESHOLD should be specified as a percentage of the block size. This value defines the maximum size of the portion of the row that is stored in the Index block when an overflow segment is used.
The CHUNK option for storage, which is the data size used when accessing or modifying LOB values, can be set to higher than one database block size if big LOBs are used in the IO Operation.
For SecureFiles, make sure that the initialization parameter db_securefile is set to ALWAYS.
The Tablespace where you are creating the SecureFiles should be enabled with Automatic Segment Space Management (ASSM). In Oracle Database 11g, the default mode of Tablespace creation is ASSM so it may already be set for the Tablespace. If it's not, then you have to create the SecureFiles on a new ASSM Tablespace.
Note: To enable compression on SecureFiles, you must have an Oracle Advanced Compression license in addition to Oracle Database Enterprise Edition. This feature is not available for the standard edition of the Oracle database.
If you are using Oracle Database Enterprise Edition, please verify that the “COMPRESS” flag is turned on by setting it to “Y” in Storage.xml.
Refer to the Database Syntax section for more information on SecureFiles.
Database Configuration Recommendations
This section specifies the recommended methods for configuring the database with a focus on specific functional area.
Large Redo Log File Sizes
The Redo Log files are written by the Log Writer Background process. These log files are written in a serial manner. Once a log File is full, a log switch occurs and the next log file starts getting populated.
It is recommended that the size of the Redo log files should be sufficiently high so that you do not see frequent Log Switches in the alert logs of the database. Frequent Log Switches impact the IO performance and can be avoided by having a larger Redo log file size.
Frequent Log Switches impacts the IO performance and can be avoided by having a bigger Redo log File Size.
Database Syntax
SecureFile
CREATE TABLE <Table_Name>
( COLUMN1 ….,
COLUMN2 (CLOB)
)
LOB(COLUMN2) STORE AS SECUREFILE (CACHE COMPRESS);
 
CREATE TABLE <Table_Name>
( COLUMN1 ….,
COLUMN2 (CLOB)
CONTRAINT <> PRIMARY KEY(…)
)
ORGANIZATION INDEX PCTTHRESHOLD 50 OVERFLOW
LOB(COLUMN2) STORE AS SECUREFILE (ENABLE STORAGE IN ROW CHUNK CACHE COMPRESS);
Database Initialization Parameters
The recommended initialization parameters are given below. These parameters are a starting point for database tuning. An optimal value for a production environment may differ from one customer deployment to another.
db_block_size=8192
log_checkpoint_interval=0
db_file_multiblock_read_count=8
transactions=3000
open_cursors=30000
db_writer_processes=10
db_files=1024
dbwr_io_slaves=10 (Only if Asynchronous IO is not Supported)
sessions=4500
memory_target=0
memory_max_target=0
processes=3000
dml_locks=48600
_b_tree_bitmap_plans=FALSE