For an existing prod instance in Linux/PostgreSQL, the steps for switching to unicode are as follows:
Stop the processes writing to the database:
su - neolane
nlserver shutdown
Dump the database:
su - postgres
pg_dump mydatabase > mydatabase.sql
Create a Unicode database:
createdb -E UNICODE mydatabase_unicode
Restore the database:
psql mydatabase_unicode < mydatabase.sql
Update the option indicating that the database is Unicode:
psql mydatabase_unicode
update XtkOption set sStringValue = 'u'||sStringValue where sName='XtkDatabaseId' and sStringValue not like 'u%';
On the tracking servers:
su - neolane
cd nl6/conf
vi config-prod.xml
Add the u character in front of the value relating to the database identifier (databaseId):
<web>
<redirection databaseId="u7F0000010554364C" trackingPassword="myPassword="/>
</web>
On servers calling the database:
su - neolane
cd nl6/conf
vi config-prod.xml
Modify the database reference:
<dataSource name="default">
<dbcnx encrypted="1"
login="<dbuser>:<base_unicode>" password="xxxx="
provider="postgresql" server="yyyy"/>
</dataSource>
Reboot all the machines:
/etc/init.d/apache stop
/etc/init.d/nlserver6 stop
/etc/init.d/nlserver6 start
/etc/init.d/apache start
Confirm the switch. To do this, connect via the Adobe Campaign console and: