HOWTO: Do a clean XML DB installation…

Just here as a small side note, some steps to do a XMLDB clean installation without other more unnecessary functionality. Depending on using the Protocol Server or not, also take into account database parameter settings like SHARED_SERVERS (eg. value=5), JAVA_POOL (XQuery and other support), PGA_AGGREGATED_TARGET (DOM validation), SGA_TARGET or MEMORY_TARGET, LARGE_POOL (shared server). My advise would be to not use automatic memory wizards while using XML DB. Although I don’t have a good example anymore at hand, I have seen no or to late response of the database while working with statements that needed a lot of DOM validation in memory. If possible use unicode characterset for your database, AL32UTF8, to avoid future issues within your environment regarding NLS conversion issues.

startup nomount;
 
CREATE DATABASE "xmldb"
MAXINSTANCES 8
MAXLOGHISTORY 1
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
DATAFILE '/u02/app/oradata/xmldb/system01.dbf' SIZE 400M REUSE AUTOEXTEND ON NEXT
10240K MAXSIZE UNLIMITED
EXTENT MANAGEMENT LOCAL
SYSAUX DATAFILE '/u02/app/oradata/xmldb/sysaux01.dbf' SIZE 200M REUSE AUTOEXTEND ON NEXT
10240K MAXSIZE UNLIMITED
SMALLFILE DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE '/u02/app/oradata/xmldb/temp01.dbf' SIZE 20M REUSE AUTOEXTEND ON NEXT
640K MAXSIZE UNLIMITED
SMALLFILE UNDO TABLESPACE "UNDOTBS1" DATAFILE '/u02/app/oradata/xmldb/undotbs01.dbf' SIZE 200M REUSE AUTOEXTEND ON
NEXT 5120K MAXSIZE UNLIMITED
CHARACTER SET AL32UTF8
NATIONAL CHARACTER SET AL16UTF16
LOGFILE GROUP 1 ('/u02/app/oradata/xmldb/redo01.log') SIZE 51200K,
GROUP 2 ('/u02/app/oradata/xmldb/redo02.log') SIZE 51200K,
GROUP 3 ('/u02/app/oradata/xmldb/redo03.log') SIZE 51200K
USER SYS IDENTIFIED BY "change_on_install" USER SYSTEM IDENTIFIED BY "manager";
 
@/u02/app/product/11.1.0/rdbms/admin/catalog.SQL
@/u02/app/product/11.1.0/rdbms/admin/catblock.SQL
@/u02/app/product/11.1.0/rdbms/admin/catproc.SQL
@/u02/app/product/11.1.0/rdbms/admin/catoctk.SQL
@/u02/app/product/11.1.0/javavm/install/initjvm.SQL
@/u02/app/product/11.1.0/rdbms/admin/catqm.SQL change_on_install SYSAUX TEMP YES
@/u02/app/product/11.1.0/rdbms/admin/utlrp.SQL
 
The created DATABASE contains following options:
 
SQL> SELECT comp_name FROM dba_registry;
 
COMP_NAME
------------------------------
Oracle XML DATABASE
Oracle DATABASE Catalog Views
Oracle DATABASE Packages AND Types
JServer JAVA Virtual Machine
.

I know the example is far from perfect and it is not easy nowadays to get rid of the overhead or privileges granted via public. Avoid using a SYSAUX tablespace, if not only that it is crowded with non XDB related stuff, but create a dedicated XDB tablespace with ASSM enabled.