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).

Previous Post Next Post