How to Upgrade AEM 6.2 to 6.4 based on MongoMK
Upgrading Author MongoMK based cluster instance , Step-wise Solutions π
1. Create Checkpoint π
- We need to have a checkpoint in production instance with fairly long lifetime. This should be done before taking clone.
- Via OSGi felix console JMX, Go to CheckpointMBean and create a checkpoint with a long enough lifetime like 200 days. For this, invoke CheckpointMBean#createCheckpoint with 17280000000 as argument for lifetime
- Lifetime: 200 days = 17280000000 mill-seconds.
- URI to CheckpointMBean in MongoMK - AEM_HOST:PORT/system/console/jmx/org.apache`.jackrabbit.oak%3Aname%3DSegment+node+store+checkpoint+m anagement%2Ctype%3DCheckpointManager
- Reference - https://jackrabbit.apache.org/oak/docs/query/oak-run-indexing.html#out-of-band-%20create-checkpoint
2. System Cleanup π
- Remove unnecessary nodes , like under /etc/packages
- Version purge
- Purge Audit logs
- Index Consistency check(Validate for health of OAK lucene index)
- Datastore garbage collection
3. Extract text From Binaries (Only , if your Repository size is large) π
πIdea is for extract text from binaries offline before upgrade is speeding up the fulltext-async reindexing process .
- Traverse repo & generate file carrying binary details
- Generate text file from existing index data
- Extract text for the binaries
Supply configuration (.config) file for PID
"org.apache.jackrabbit.oak.plugins.blob.datastore.DataStoreTextProviderService" before
the upgarde (starting 6.4 AEM) with the path to the extracted text.
If configuration is successful, below message appears in log:
*INFO* [CM Event Dispatcher (Fire |
ConfigurationEvent: pid=org.apache.jackrabbit.oak.plugins.blob.datastore.DataStoreT extProviderService)] org.apache.jackrabbit.oak.plugins.index.datastore.DataStoreText Writer Using extracted store from path/AEM-6.4/text-extraction/store *INFO* [CM Event Dispatcher (Fire ConfigurationEvent: pid=org.apache.jackrabbit.oak.plugins.blob.datastore.DataStoreT extProviderService)] org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexProvi derService org.apache.jackrabbit.oak.plugins.index.datastore.DataStoreText Writer Extraction result for [41a7391088185788fb07359223f2eaa995ce7ac1aebbc6c3dc9438b5b0a908 80] at path [/content/dam/AEM Upgrade Assesment Report1.pdf/jcr:content/renditions/original/jcr:content@jcr:dat a/jcr:data] is [SUCCESS] |
4. Create Offline Index (Only , if your Repository size is large) π
- Create 6.4 index definitions
- Create Index
5. Pre-Upgrade Activities π
- Ensure disk space is triple the size of repository
- correct upgrade start command (
RunModes=author,mongo,prod,nosamplecontent,crx3,crx3mongo) - Validate FileDataStore Configuration
- Validate DocumentNodeStore Configuration
- Persistence Cache Path in "org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreSer vice.cfgorg.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreSer vice.cfg" is absolute path
- Start the instance using AEM 6.2 jar so that OSGI config points the new FDS path & generate the quickstart.properties file .Make Sure tempdir path exists (Start Command - nohup java -server -Xms4G -Xmx8G -XX:MaxPermSize=4g - Djava.awt.headless=true -Djava.io.tmpdir=/opt/dam/author-pro- clone-64/aemTemp - Dsling.run.modes=author,mongo,prod,nosamplecontent,crx3,crx3mon go -jar cq-quickstart-6.2.0.jar -p 4504 - Dsling.properties=conf/sling.properties & )
- Validate the user with admin access
- Validate all the consoles in the interface after start-up
- Disable All launchers (OOTB & Custom workflows launchers)
- Disable the schedular Jobs
- Disable Replication Agents
- Skip re-indexing for nodetype during upgrade (Set declaringNodeTypes": ["nam:oak:QueryIndexDefinition", "nam:cq:ClientLibraryFolder", "nam:cq:Component", "nam:rep:User", "nam:rep:Authorizable"],
Set version to 3 as per the AEM 6.4 Vanilla instance) - Stop Server
- Archive Current logs before start Upgrade
6. Upgrade Activities π
- Stop the server , if running
- Remove all the hotfixes and jars from the install folder
- Download new AEM 6.4 jar
- Unpack new 6.4 jar (Run the command java -Xmx4096m -jar cq-quickstart-6.4.0.jar - unpack )
- Replace the crx2oak with latest
- Validate DocumentNodeStore
- Validate FileDataStore
- Copy the created indexes to repository folder (only for large repo , if u generated)
- Start AEM Instance with below command π
nohup java -server -Xms4G -Xmx24G -XX:MaxPermSize=4g - Djava.awt.headless=true -Djava.io.tmpdir=/opt/dam/preprod-author-test/aemTemp - Dsling.run.modes=author,mongo,prod,nosamplecontent,crx3,crx3mon go -jar cq-quickstart-6.4.0.jar -p 4504 - |
Dsling.properties=conf/sling.properties & |
11. Check all bundles are active
12. Verify if the indexing are Completed
13. Restart the server
Comments
Post a Comment