Soit une instance prod existante sous Linux/PostgreSQL, les étapes de transformation en Unicode de cette instance sont les suivantes :
Arrêter les processus qui écrivent dans la base :
su - neolane
nlserver shutdown
Dumper la base :
su - postgres
pg_dump mydatabase > mydatabase.sql
Créer une base Unicode :
createdb -E UNICODE mydatabase_unicode
Restaurer la base :
psql mydatabase_unicode < mydatabase.sql
Mettre à jour l'option qui indique que la base est Unicode :
psql mydatabase_unicode
update XtkOption set sStringValue = 'u'||sStringValue where sName='XtkDatabaseId' and sStringValue not like 'u%';
Sur les serveurs de tracking :
su - neolane
cd nl6/conf
vi config-prod.xml
Ajouter le caractère u devant la valeur relative à l'identifiant de la base de données (databaseId) :
<web>
<redirection databaseId="u7F0000010554364C" trackingPassword="myPassword="/>
</web>
Sur les serveurs appelant la base :
su - neolane
cd nl6/conf
vi config-prod.xml
Modifier la référence de la base :
<dataSource name="default">
<dbcnx encrypted="1"
login="<dbuser>:<base_unicode>" password="xxxx="
provider="postgresql" server="yyyy"/>
</dataSource>
Redémarrer toutes les machines :
/etc/init.d/apache stop
/etc/init.d/nlserver6 stop
/etc/init.d/nlserver6 start
/etc/init.d/apache start
Valider la transformation. Pour cela, se connecter via la console Adobe Campaign et :