Community Tip - Want the oppurtunity to discuss enhancements to PTC products? Join a working group! X
I am planning to migrate from Aphelion LDAP to Windchill DS so that I can update my Windchill 9.1 M030 System in the future.
I have setup WindchillDS LDAP on my Test System and for resilience I have setup a second WindchillDS installation in a Multi-Master configuration so that the data is replicated to another host.
I perform a nightly backup of the WindchillDS server with the command "backup.bat --backUpAll --compress --backupDirectory <path>"
I have realised that restoring from backup is perhaps not quite so simple in a Multi-Master configuration as, if I restore one of the servers from the previous night's backup, the restored data will be older than that on the other server and it will be immediately overwritten - Is this how it would work or am I completely mistaken?
On the OpenDS website. there seem to be some commands that will re-initialise the entire Multi-Master installation in readiness for loading data from an LDIF export file and replicating it to both nodes but the problem I see with this is that my backup files are not LDIF export files.
Can anyone shed any light on how this should be done?
Thanks in advance
Gary
Its actually fairly straightforwardto do the recovery, assuming you knowthat serverA needs recovery and serverB has the latest information.
Execute the dsreplication initialize command on either the source (serverA)or replica (serverB)host. Then enter theserverB as the “source server” and serverA as the “destination server”. The changes will be copied back to the source.
Tim Atwood
PTC Enterprise Deployment Center
Thanks for getting back to me Tim but I was thinking about a scenario where I might want to revert the whole WindchillDS database on both hosts to a previous backup.
I have had a response from the OpenDS mailing list and they say that the backups I am doing are a Binary Copy so the instructions on their website will work with this (I was just getting muddled up with terminolgy). I will be giving something like the following a go in a week or so on my test system:
To Change the Data Set With import-ldif or Binary Copy:
Clear the generation ID from the directory servers by running the dsreplication pre-external-initialization command. It is sufficient to run this command on only one directory server in the topology. All directory servers in the topology will be updated, unless you specify that only one server should be updated. For example, the following command prepares all servers in the topology for initialization by using import-ldif or binary copy:
$ dsreplication pre-external-initialization -h host1 -p 4444 -X \
-b dc=example,dc=com -I admin -w password
Are you going to initialize only the contents of server host1:4444 (type
'no' if you will initialize contents of all replicated servers for the given
Base DNs)? (yes / no) [no]:
Preparing base DN dc=example,dc=com to be initialized externally ..... Done.
Now you can proceed to the initialization of the contents of the base DNs on
all the replicated servers. You can use the command import-ldif or the binary
copy to do so. When the initialization is completed you must use the subcommand
{post-external-initialization} for replication to work with the new base DNs contents.
Use import-ldif or binary copy to initialize all directory servers in the topology with data.
Reset the generation ID by running the dsreplication post-external-initialization command. It is sufficient to run this command on only one directory server in the topology. All other directory servers are updated. For example, the following command resets the generation ID for all directory servers in the topology after initialization using import-ldif or binary copy:
$ dsreplication post-external-initialization -h localhost \
-p 4444 -b dc=example,dc=com -I admin -w password -X
Updating replication information on base DN dc=example,dc=com ..... Done.
Post initialization procedure completed successfully.
I have had a chance to try this process now and I think that I understand the correct procedure to restore a multi-master replicated WindchillDS installation from backup.
This seems to work for me but please can someone who knows about WindchillDS confirm that my understanding is correct.
Take a backup of the WindchillDS installation with the following command:
C:/ptc/WindchillDS/server/bat/backup.bat --backUpAll --compress --backupDirectory <backup dir=" location=">
Prepare the replicated servers for restore from backup:
C:\ptc\windchillDS\server\bat\dsreplication.bat pre-external-initialization --hostname <hostname> --port 4444 --trustAll --baseDN "o=ptc" --adminUID admin --adminPassword <password>
Enter no when prompted to ensure that both replicated servers get restored
Restore the WindchillDS server data from backup with the following command:
C:/ptc/WindchillDS/server/bat/restore.bat --backupDirectory <backup dir=" location=">\userRoot --hostname <hostname> --port 4444 --bindDN "cn=manager" --bindPassword <password>
Finalise the replicated servers for use:
C:\ptc\windchillDS\server\bat\dsreplication.bat post-external-initialization --hostname <hostname> --port 4444 --trustAll --baseDN "o=ptc" --adminUID admin --adminPassword <password>
Note: WindchillDS is left running throughout the entire process.
Further Note: It seems that it might be wise to force an initial replication from the source machine that the restore was done on to the second machine with a command like this:
dsreplication.bat initialize --baseDN "o=ptc" --adminUID admin --adminPassword <password> --hostSource <source host="> --portSource 4444 --hostDestination <target host="> --portDestination 4444 -X -n
Rgds