Suite à un crash disque sur un serveur mutualisé de base de données de développement - non sauvegardé, nous avons du recréer la partie base de données.
La base Oracle a été créée par les DBA, conformément aux recommandations avec les tablespaces ENROLE_DATA et ENROLE_INDEXES.
Le paramètre nls_length_semantics doit avoir pour valeur BYTE. Dans le cas contraire, oracle ne peut pas créer certains index, trop longs.
Il faut ensuite :
- préparer le fichier de configuration /tmp/configResponse.properties (voir ci-dessous)
- modifier le fichier ITIM_HOME/bin/DBConfig.lax et changer 2 variables
IS_SILENT=true
RESPONSE_FILE=/tmp/configResponse.properties
Il faut arrêter le serveur WebSphere qui fait tourner ITIM, puis lancer le programme de configuration de la base de données :
ITIM_HOME/bin/DBConfig
Exemple :
/product/itim/bin/DBConfig
Les traces se trouvent dans le fichier dbConfig.stdout situé dans le répertoire ITIM_HOME/install_logs.
Exemple de fichier configResponse.properties
# For Oracle only, if true indicates the Service Name is used, otherwise the SID is used.
dbConfigResponse.database.db.isOracleServiceName=false ###########################################################
# LDAP directory configuration response information ###########################################################
# The IP address of LDAP directory server
# For IPv6, the ip should be enclosed in '[' and ']'. ldapConfigResponse.enrole.ldapserver.ip=localhost
# The listening port of the LDAP directory server ldapConfigResponse.enrole.ldapserver.port=389
# The tenant id (organization short name) ldapConfigResponse.enrole.defaulttenant.id=Example
# The organization name
ldapConfigResponse.enrole.organization.name=Example-IIR
# The root DN
ldapConfigResponse.enrole.ldapserver.root=o=example-iir
# The hash bucket number
# The value should be equal to or greater than 1. ldapConfigResponse.enrole.ldapserver.hashBuckets=1 ###########################################################
# System configuration response information ########################################################### #================================
# General information
#================================
# The scheduling heartbeat (in seconds) and the recycle bin's age limit sysConfigResponse.enRole.enrole.scheduling.heartbeat=60 sysConfigResponse.enRole.enrole.ldapserver.agelimit=62 #================================
# LDAP connection pool information
#================================
# The maximum and the initial number of connections to the LDAP server
# The increment number of the connections if more connections are needed sysConfigResponse.enRole.enrole.connectionpool.maxpoolsize=100 sysConfigResponse.enRole.enrole.connectionpool.initialpoolsize=50 sysConfigResponse.enRole.enrole.connectionpool.incrementcount=3 #================================
# Database connection pool information
#================================
# The initial and the maximum number of connections to the database
# The delay in seconds between the connections sysConfigResponse.enRoleDatabase.database.jdbc.connectionPool.initialCapacity=5 sysConfigResponse.enRoleDatabase.database.jdbc.connectionPool.maxCapacity=50 #================================
# Mail information
#================================
# The base URL to the ITIM login page
# This should be the format of http://: sysConfigResponse.enRoleMail.mail.baseurl=http://itim.example.com/ibm/console
# The sender for the mail that will appear in From field sysConfigResponse.enRoleMail.mail.from=itim_admin@example.com
# The IP or the host name of the mail server sysConfigResponse.enRoleMail.mail.host=smtp.example.com #================================
# logging information
#================================ sysConfigResponse.enRoleLogging.logger.trace.level=DEBUG_MID #================================
# UI information
#================================
# The customer logo
#
sysConfigResponse.ui.enrole.ui.customerLogo.image=ibm_banner.gif
# The link for the customer logo sysConfigResponse.ui.enrole.ui.customerLogo.url=www.example.com
# The page size for the displaying lists sysConfigResponse.ui.enrole.ui.pageSize=50
#================================
# Security information
#================================ sysConfigResponse.enRole.enrole.password.database.encrypted=true sysConfigResponse.enRole.enrole.password.ldap.encrypted=true sysConfigResponse.enRole.enrole.password.appServer.encrypted=true sysConfigResponse.enRole.enrole.appServer.systemUser=wasadmin sysConfigResponse.enRole.enrole.appServer.systemUser.credentials=waspassword sysConfigResponse.enRole.enrole.appServer.ejbuser.principal=wasadmin sysConfigResponse.enRole.enrole.appServer.ejbuser.credentials=waspassword
#
# === Variables instanciées pour Example.com ===
#
dbConfigResponse.database.db.ip=itimdb.example.com dbConfigResponse.database.db.port=1521
dbConfigResponse.database.db.name=ENROLE
dbConfigResponse.database.db.user=enrole dbConfigResponse.database.db.password=enrolepwd dbConfigResponse.database.db.admin=system dbConfigResponse.database.db.adminPwd=manager ldapConfigResponse.java.naming.security.principal=cn=root ldapConfigResponse.java.naming.security.credentials=secret
Pertes de données
La perte de la base de données a finalement peu d'impacts, la majorité des informations est stockée dans l'annuaire ITDS.
Ce qui est notamment stocké en base :
- Views : tables VIEW_DEFINITION et TASKS_VIEWABLE
- Libellés : table I18NMESSAGES
- Import / Export : tables BULK_DATA_SERVICE, BULK_DATA_STORE, BULK_DATA_INDEX et MIGRATION_STATUS
- Réconciliation : tables RECONCILIATION et RECONCILIATION_INFO
Les vues doivent être recréées manuellement, sauf si on dispose d'une autre base de données.
Les libellés peuvent être recréés en réimportant les données (adaptateurs notamment).