Minimizing your server downtime when upgrading
We all love upgrades. They steal the nights, the weekends and the public holidays. But it doesn't have to be that way. For this post let us presume you are running Domino 6.x and want to upgrade to Domino 8.5. While Domino 8.5 can very well run on the same hardware specification as a Domino 6.x server, your server is showing its age and anyway is to small for the data growth you experienced during the last 5 years. So you bought a new box. With that you can get away with a downtime of 10 seconds in 6 easy steps (or phases). Here you go:
- Phase 0
This is where you are now. That phase had a duration of 5 years and ends with the management approval to buy a new box and its delivery to your
- Phase 1
You install and configure a brand new Domino R8.5 server with a new server.id and a new IP address. In our sample that server is called tmpServer/YourOrg at IP 10.34.21.88. Make sure to check the following:
- You make that new R8.5 server the directory server of your Domino Directory
- You have added CREATE_R85_DATABASES=1 to the notes.ini and made the server a member of LocalDomainServers and/or your server group. You have checked all databases to include the group as manager in the ACL
- You made sure that the new server has the same access (ACL level, roles) to your databases like the existing one
- You replicate all databases from your existing server to the new server
- You verified (using document counts) that all documents indeed have been replicated (You could have an agent checking unids if you want to be fully save)
- Ensure that in your database the properties for LZ1, data and design compression are set. It has no effect on the existing database if you have to set it until you do a compact -c or create a new replica
- Update (thanks Matt): Verify that your replication formulas made it. Also check your Unread marks.
- The server document allows only a group "UpgradeProject" access to the new R8.5 server. This group contains LocalDomainServers and the team that does the upgrade
- You copy both server ids to each of the servers
Duration: Anything between a few hours and a few days during regular working hours.
- Phase 2
You unplug the network cable from the new server, shut down the Domino server. You edit the IP configuration of the server to use the existing server's IP address (this is why you unplugged the cable in the first place). You edit the server's notes.ini and point to the existing server.id to be used. Check the notes.ini if you need to set more parameters (e.g. network port addresses for partitioned servers etc.). Restart your server but keep it unplugged.
Duration: 5-10 minutes (depending on how long your server needs to boot), best during off-peak hours since Phase 3 needs to follow immediately.
- Phase 3 (The Downtime)
Best you do that together unless the boxes are close to each other. You type in the Domino server console: Set Config Server_Restricted=1 (thx Thomas) and Drop ALL (If you are a nice guy you warned your users with a broadcast message before you do that. Remember: a (!) sends the broadcast to a dialog box). Your server is now clean of users and no user session can be opened. Pull out the network cable and plug in the network cable of your new server. Since the server name and the IP address is the same as the old server before no other configuration needs to be done. You are back in business.
Duration: 10 sec (If you type and plug fast even shorter).
- Phase 4
You edit the notes.ini of your old server and point to the temporary server.id. You edit the IP address of the server to point to the temporary IP address. You remove the Server_Restriced line from the notes.ini. You shutdown the server, plug the network cable back in and reboot it. A final replication with the new server makes sure that anything created in Phase 2 is back where it belongs. You have full working access to the "old" databases now.
Duration: Take your time. Check everything.
- Phase 5
Everything worked out, you reformat your old server and give it a new lease of life. As usual: YMMV.
Update Elaborated Phase 1 bases on the comments below.