Sitecore provides a tool called Hash Stored IPs that must be run when upgrading from 8.1 or earlier. I ran into a few gotchas/good to knows when running the tool.
1. ERROR: System.InvalidOperationException: Failed to validate database. —> System.Exception: Database exist but the following collections doesn’t: GeoIps
Initially the tool didn’t run at all because we were missing the GeoIps collection. If for some reason you do not have this you will need to create the collection manually for the tool to work. A bug has been reported for this – reference number 142192
2. If you have a large analytics database, this takes forever to run and has no mercy in regards to how much memory it consumes on the collection server.
Of note, we are running on much less RAM than recommended so I’m sure that is a contributor. In our case we had roughly 32 million Interactions and 10 million ClassificationMap entries. We had to stop the process after it ran for about 15 hours as it was causing memory issues in production. The good news is that it can be safely stopped and started as many times as necessary. Overall it probably took us around 20 hours to complete over several nights.
3. I was a bit alarmed when in rerunning the tool over several nights we kept having an increase the number of Interactions that were not hashed. It turns out that In 8.2 IPs are only hashed in the GeoIps and ClassificationsMap collections and Interactions that are collected post-upgrade are in slightly different format than those processed by the tool.
Hopefully this saves a few headaches for others.