SlideShare une entreprise Scribd logo
1  sur  28
Télécharger pour lire hors ligne
AEM MAINTENANCE
Key maintenance activities to be planned for an
AEM implementation
BACKUP
• Why backup
• Storage elements
• Planning for backup
• Online backup
• Offline backup
• Other approaches
Why Backup
• Typically there is enough redundancy of the AEM instances to
fallback on when a server fails
• Author is configured in primary/standby mode – standby can be
used in case the primary fails
• Publish is configured as a set of farms with multiple publish
instances in each farm. Other instances acts as fallback when a
publish instance fails.
• But
• Standby author is in near real-time sync with primary. If primary gets
corrupted, standby also gets corrupted because of this near real-time sync
• All publish instances across farms are kept in sync. When a user (maliciously
or inadvertently) deletes a bulk of content, it gets deleted in all instances
• We need backup to restore the system to a state as at some previous point in
time
Storage elements
Software &
Configuration
• AEM software itself along
with its configuration, hotfixes
& service packs
• Less frequently changed
• Includes all folders under crx-
quickstart except repository
and logs folder
Custom Application(s)
• Custom developed applications
that are deployed
• Changes for every new version
released
• On installation, it gets stored
as content or software
configuration
Content - Nodestore
• The repository tree which
holds all the content created,
its version history and audit
logs
• More frequently changed
• Stored at
repository/segmentstore under
crx-quickstart
Content – Datastore
• Optionally configured separate
binary store for large assets
• Changes when a large asset
gets added or modified
• Path configurable, can be
shared with other instances
Logs
• Gets generated under the logs
folder
• The split-up, no. of files, log
level & path are configurable
• Typically not of much value to
be backed up
Search Indexes
• Automatically generated under
repository/index
• Can be regenerated manually
when needed
• Can be skipped to optimize
space during backup
Planning for backup
• Backup the primary author and at-least one publish instance. If
spread across data centers, plan to backup one instance per data
center
• Decide on using online or offline backup. Offline backup requires
downtime of the instance
• Finalize how to split the backup. For example
• Datastore can be backed up using a file copy program like rsync while the
other elements can be backed up through online backup option (or)
• Nodestore alone can be backed up using online backup and other content
can be backed up using a file copy program
• Decide what to exclude from the backup. Might want to exclude
logs and search indexes from backup to optimize space
AEM backup takes a copy of everything under the installation folder. Organize the paths
accordingly to exclude certain elements from backup
Offline backup
• There are two approaches to do offline backup
• The standard approach is to
• Stop the AEM instance
• Use a file copy program like rsync to take the snapshot of the AEM folder
• Start the instance after the copy is complete
• The other option is to block the repository writes
• Execute the method blockRepositoryWrites on the mbean
“com.adobe.granite (Repository)” to block the repository
• Use a file copy program to take the snapshot of the AEM folder
• Execute the method unblockRepositoryWrites on the mbean
“com.adobe.granite (Repository)” to unblock the repository
When using offline backup, take the snapshot of the AEM folder to the target path once
before stopping or blocking the server. This way only the differential would get copied when
taking snapshot after stopping the server
Online backup
• Online backup creates a backup of the entire AEM installation
folder
• Format of the backup is decided based on the target path
• If the target path is a file with .zip extension, backup is stored as a
compressed zip file
• If the target path is a directory, snapshot of AEM installation is created in
this target directory
• Invoke the method startBackup on the jmx bean
“com.adobe.granite (Repository)” to start the backup
• Or use backup tool at
http://<hostname>:<port-number>/libs/granite/backup/content/admin.html
• A file named backupInProgress.txt will be present at the target
path till the backup gets completed
Online backup – Other points
• When creating backup to a directory
• Taking the backup to the same directory where the previous backup is kept
copies only the differential. This significantly improves performance
• Do not use the zip format for backup
• Requires twice the space needed for directory backup while in progress
• The compression step impacts the performance of AEM and takes longer
time to complete (use external compression tool if needed)
• Does not take advantage of differential copy, when online backup is done to
the same path
• Backup specific directory
• Specify the source path to take backup of a specific directory under AEM
• Can be leveraged to take the backup of the nodestore more frequently
Other approaches
• Don’t backup primary author. Backup the standby instead
• Bringing down the standby does not impact the availability of AEM for
authoring
• Perform offline backup on the standby instance
• This backup can be used to restore the AEM instance as primary. Make sure
to do the configuration changes needed before starting it as primary
• Do not backup a publish instance
• Applicable for smaller repositories
• Backup only the author instance. Reactivate the content from the author the
restore content onto the publish instance
• Note that this would add a delay to the time needed to restore the publish
servers
Other aspects of the backup like frequency, rotation policy, storage policy, etc., are same as in
a standard backup process
COMPACTION
• Why compaction
• Online compaction
• Offline compaction
• Datastore cleanup
• Compacting the standby instance
Why compaction
• Content in AEM is stored in blocks of storage called segments which
are immutable
• Modifying or even deleting the content does not update or remove
elements from the existing storage. It creates new storage elements
• Since the data is never overwritten, the disk usage keeps increasing
• AEM also uses the repository as storage for internal activities like
• Temporary objects created during replication
• Temporary assets created during rendition generation
• Temporary packages built for download, workflow payloads, etc.
• Running compaction removes these unreferenced objects which
otherwise remains in the repository
• It helps in reducing space, optimize backup and improve filesystem
maintenance
Online compaction
• We can run revision GC to run compaction when an AEM
instance is running
• Revision GC can also be scheduled to be triggered automatically
at a set frequency (default its set to run daily)
• Execute the method startRevisionGC on the mbean
RevisionGarbageCollection to invoke revision GC
• However Adobe recommends running offline compaction
periodically
• Note that restarting the server releases references to old
repository nodes held in an active session, thus helping to improve
the efficiency of the online compaction process
Plan to restart the server regularly when relying only on online compaction
Offline compaction
• Offline compaction requires AEM instance to be down when
running compaction
• Use the oak-run tool to perform offline compaction.
• Perform the following steps to complete offline compaction
• Log all the checkpoints in the repository before the run
Command: oakoak-run-<version>.jar checkpoints <AEM_BASE_FOLDER>/crx-
quickstart/repository/segmentstore
• Remove unreferenced checkpoints
Command: oakoak-run-<version>.jar checkpoints <AEM_BASE_FOLDER>/crx-
quickstart/repository/segmentstore rm-unreferenced
• Compact the repository
Command: oakoak-run-<version>.jar compact <AEM_BASE_FOLDER>/crx-
quickstart/repository/segmentstore
Offline compaction - points to consider
• When running offline compaction on primary author instance,
stop the standby instance
• When running on publish instance, plan to run it on one instance
at a time or one farm at a time so that end users of the site are not
impacted
• Block the replication agents on author while the publish AEM
instances are down for compaction
• Monitor the replication queues so that there are no pending items
before the server is brought down for compaction and the items
that got queued are cleared after the servers are brought up
• Take a backup of the instance before running compaction.
To block the replication agent, change its configuration to point to an unused port. Disabling
the replication agent make it invalid and does not result in blocking its queue
Datastore Cleanup
• Applicable when an external datastore is configured for large
binary assets
• The external datastore can be private to an instance or can be
shared with other instances
• Run the datastore garbage collection only when the instance has a
private datastore which is not shared with any other instance
• Datastore garbage collection can be triggered manually or
scheduled to run automatically at a set frequency
• By default its configured to run weekly on Saturdays between 1 to
2 am.
• To run datastore garbage collection manually, execute the method
startDataStoreGC on the RepositoryManagement mbean, setting
the parameter markOnly as false
Cleaning up of a shared Datastore
• To run garbage collection on shared datastore use one of the following
approach
• If all the AEM instances that share the datastore are identical clones
• Run datastore garbage collection on one of the instance that shares the datastore
• This would ensure all the stale assets gets deleted. Since the other instances are
identical, there wouldn’t be an active reference from other instances to the
deleted assets
• If the AEM instances that share the datastore are not identical
• Note the current timestamp when starting the process
• Execute the method startDataStoreGC with markOnly flag set to true from all
instances
• Use a shell script or other means to delete all files in the datastore whose last
modified timestamp is prior to the timestamp noted at the start of the process
An author & publish instances are non identical. When we have a datastore shared between
an author and its publish instances, its safe to run the datastore gc only on the author
Compacting the standby instance
• Running compaction on primary does not compact the standby
• In fact compacting the primary would increase the size of the
standby after the sync
• To compact the standby either
• Allow the standby to fully synchronize with the primary after its compacted
• Stop the standby and run compaction on the standby
• Start the standby and allow it to again fully synchronize with the primary
• Or clone the primary after compaction to create a new standby
instance from the compacted primary
Its better to create a new standby by cloning after compacting the primary. This would ensure
that the starting size after compaction of the primary and standby are the same
Compacting the standby separately after synchronizing with the primary would result in twice
the size for the standby as that of the primary
PURGING
• Why purge
• Version purging
• Workflow purging
• Audit log purging
• Rolling purging strategy
Why purge
• An author instance maintains all the history of actions done on
AEM instance, retains all versions of the content created
(automatically or manually) and holds an archive of all workflows
executed which leads to
• Repository becoming bloated
• Size of the index created increases
• Queries become slower which in turn results in overall
performance degradation
• UI becomes unrefined showing up unnecessary details
• Purging is not applicable for publish instances.
Publish instance does not maintain audit logs or version history nor does workflows execute
on publish instances
Version purging
• Versions gets created automatically whenever a page or asset is
activated
• Users can also manually create versions of pages and assets
• Versions can be purged based on
• No. of versions
• Age of the version
• To manually purge version, use the utility at
http://<host>:<port>/etc/versioning/purge.html
• Version purging can also be configured to run automatically
• Use osgi configuration at “Day cq wcm version purge task” to
configure automatic version purging
Workflow purging
• A new workflow instance gets created every time a workflow is launched
(asset upload, publishing, etc.)
• Once the workflow completes (successful or aborted or terminated), its
archived and never gets deleted
• Workflow purging needs to be done to clean up archived workflow
instances
• Purging can be done based on
• Workflow model
• Completion status
• Age of the workflow instance
• To manually purge workflows, execute the operation purgeCompleted
on the mbean com.adobe.granite.workflow (Maintenance)
• Use osgi configuration at “Adobe granite workflow purge configuration”
to configure automatic workflow purging
Audit log purging
• Audit logs gets created for every action that happens on the
system (like creating a page, deleting a page, creating a version of
the page, activating a page, uploading an asset…)
• These logs gets created under the node /var/audit
• Audit logs needs to be cleaned on regular basis to maintain the
repository at an optimal size
• Audit log purging can be configured based on
• Type of action
• Content Path
• Age of the audit log
• Use osgi configuration at “Audit log purge scheduler” to configure
automatic audit log purging
Rolling purging strategy
• For some industries, regulatory reasons mandate maintaining
workflows and versions for a higher period of time (we had a case
to maintain audit logs and versions for 7 years)
• For maintaining AEM optimally its advised to implement a rolling
purge strategy
• Design a retention policy combining the backup and purging so
that all details can be restored when needed
• Make sure there are at least 2 backups that has a particular audit
log entry or version or workflow instance
• For example, have quarterly permanent backup’s and perform
purging after the backup every 6 months
CLONING
• Why to clone
• How to clone
• Preventing loss of content during cloning
Why to clone
• Cloning is applicable for publish instances. You don’t typically
clone an author instance
• Cloning publish instance is needed to
• To fix a corrupted or failed publish instance
• To increase capacity by adding additional publish instances
How to clone
• Pull a running publish instance out of the load balancer
• Shutdown this instance
• Copy the complete AEM installation folder using rsync or any file
copy program from this instance to the target server.
• After the copy is complete, start the source instance and add it
back to the load balancer
• Start the newly created instance
• Update the configurations as needed
• Typical configurations to be updated are the replication agents, dispatcher
flush agents and other application specific configurations
• Create new replication agent on author to replicate content to the
new instance
• Add the new instance to the load balancer
Preventing loss of content during cloning
• Plan cloning at a time when activation / deactivation of content is not
happening on author.
• When cloning must be done during active hours, create the replication
agent on the author pointing to the new instance as first step, before
shutting down the source instance used for cloning
• Check the replication queue that points to the source instance so that it
has no pending items when its stopped
• Block the replication queues that point to source instance and the new
instance. Unblock them after the instances are started after cloning.
• This would ensure the content activated / deactivated remains in the
queues and gets replicated to the respective instance when it gets
unblocked
Point the configuration to a unused port to block the queue. Disabling the replication agent
would make it invalid and would not hold items activated / deactivated pending in its queue.
THANK YOU
Feedback and suggestions welcome. Please write to
ashokkumar_ta / ashokkumar.ta@gmail.com

Contenu connexe

Tendances

AEM (CQ) Dispatcher Security and CDN+Browser Caching
AEM (CQ) Dispatcher Security and CDN+Browser CachingAEM (CQ) Dispatcher Security and CDN+Browser Caching
AEM (CQ) Dispatcher Security and CDN+Browser CachingAndrew Khoury
 
React Context API
React Context APIReact Context API
React Context APINodeXperts
 
AEM Sightly Template Language
AEM Sightly Template LanguageAEM Sightly Template Language
AEM Sightly Template LanguageGabriel Walt
 
Content Storage With Apache Jackrabbit
Content Storage With Apache JackrabbitContent Storage With Apache Jackrabbit
Content Storage With Apache JackrabbitJukka Zitting
 
Django Forms: Best Practices, Tips, Tricks
Django Forms: Best Practices, Tips, TricksDjango Forms: Best Practices, Tips, Tricks
Django Forms: Best Practices, Tips, TricksShawn Rider
 
AEM Asset and Tag API
AEM Asset and Tag APIAEM Asset and Tag API
AEM Asset and Tag APILokesh BS
 
Robot Framework - principais características
Robot Framework - principais característicasRobot Framework - principais características
Robot Framework - principais característicasalinebiath
 
HTL(Sightly) - All you need to know
HTL(Sightly) - All you need to knowHTL(Sightly) - All you need to know
HTL(Sightly) - All you need to knowPrabhdeep Singh
 
Sling models by Justin Edelson
Sling models by Justin Edelson Sling models by Justin Edelson
Sling models by Justin Edelson AEM HUB
 
Angular 4 The new Http Client Module
Angular 4 The new Http Client ModuleAngular 4 The new Http Client Module
Angular 4 The new Http Client Modulearjun singh
 
[Russia] MySQL OOB injections
[Russia] MySQL OOB injections[Russia] MySQL OOB injections
[Russia] MySQL OOB injectionsOWASP EEE
 
JCR, Sling or AEM? Which API should I use and when?
JCR, Sling or AEM? Which API should I use and when?JCR, Sling or AEM? Which API should I use and when?
JCR, Sling or AEM? Which API should I use and when?connectwebex
 
Rest and Sling Resolution
Rest and Sling ResolutionRest and Sling Resolution
Rest and Sling ResolutionDEEPAK KHETAWAT
 
[2D1]Elasticsearch 성능 최적화
[2D1]Elasticsearch 성능 최적화[2D1]Elasticsearch 성능 최적화
[2D1]Elasticsearch 성능 최적화NAVER D2
 
AEM Rich Text Editor (RTE) Deep Dive
AEM Rich Text Editor (RTE) Deep DiveAEM Rich Text Editor (RTE) Deep Dive
AEM Rich Text Editor (RTE) Deep DiveHanish Bansal
 
Api first design 개발의 선순환
Api first design 개발의 선순환Api first design 개발의 선순환
Api first design 개발의 선순환Jeong-gyu Kim
 

Tendances (20)

AEM (CQ) Dispatcher Security and CDN+Browser Caching
AEM (CQ) Dispatcher Security and CDN+Browser CachingAEM (CQ) Dispatcher Security and CDN+Browser Caching
AEM (CQ) Dispatcher Security and CDN+Browser Caching
 
React Context API
React Context APIReact Context API
React Context API
 
AEM Sightly Template Language
AEM Sightly Template LanguageAEM Sightly Template Language
AEM Sightly Template Language
 
Content Storage With Apache Jackrabbit
Content Storage With Apache JackrabbitContent Storage With Apache Jackrabbit
Content Storage With Apache Jackrabbit
 
Django Forms: Best Practices, Tips, Tricks
Django Forms: Best Practices, Tips, TricksDjango Forms: Best Practices, Tips, Tricks
Django Forms: Best Practices, Tips, Tricks
 
Sling Models Overview
Sling Models OverviewSling Models Overview
Sling Models Overview
 
AEM Asset and Tag API
AEM Asset and Tag APIAEM Asset and Tag API
AEM Asset and Tag API
 
Robot Framework - principais características
Robot Framework - principais característicasRobot Framework - principais características
Robot Framework - principais características
 
Object oriented programming
Object oriented programmingObject oriented programming
Object oriented programming
 
HTL(Sightly) - All you need to know
HTL(Sightly) - All you need to knowHTL(Sightly) - All you need to know
HTL(Sightly) - All you need to know
 
Sling models by Justin Edelson
Sling models by Justin Edelson Sling models by Justin Edelson
Sling models by Justin Edelson
 
Sightly - Part 2
Sightly - Part 2Sightly - Part 2
Sightly - Part 2
 
Angular 4 The new Http Client Module
Angular 4 The new Http Client ModuleAngular 4 The new Http Client Module
Angular 4 The new Http Client Module
 
[Russia] MySQL OOB injections
[Russia] MySQL OOB injections[Russia] MySQL OOB injections
[Russia] MySQL OOB injections
 
JCR, Sling or AEM? Which API should I use and when?
JCR, Sling or AEM? Which API should I use and when?JCR, Sling or AEM? Which API should I use and when?
JCR, Sling or AEM? Which API should I use and when?
 
Rest and Sling Resolution
Rest and Sling ResolutionRest and Sling Resolution
Rest and Sling Resolution
 
[2D1]Elasticsearch 성능 최적화
[2D1]Elasticsearch 성능 최적화[2D1]Elasticsearch 성능 최적화
[2D1]Elasticsearch 성능 최적화
 
AEM Rich Text Editor (RTE) Deep Dive
AEM Rich Text Editor (RTE) Deep DiveAEM Rich Text Editor (RTE) Deep Dive
AEM Rich Text Editor (RTE) Deep Dive
 
Api first design 개발의 선순환
Api first design 개발의 선순환Api first design 개발의 선순환
Api first design 개발의 선순환
 
JUnit 5
JUnit 5JUnit 5
JUnit 5
 

En vedette

Aem dispatcher – tips & tricks
Aem dispatcher – tips & tricksAem dispatcher – tips & tricks
Aem dispatcher – tips & tricksAshokkumar T A
 
The six key steps to AEM architecture
The six key steps to AEM architectureThe six key steps to AEM architecture
The six key steps to AEM architectureAshokkumar T A
 
AEM MSM: Basics & More
AEM MSM: Basics & MoreAEM MSM: Basics & More
AEM MSM: Basics & MoreKanika Gera
 
CIRCUIT 2015 - Monitoring AEM
CIRCUIT 2015 - Monitoring AEMCIRCUIT 2015 - Monitoring AEM
CIRCUIT 2015 - Monitoring AEMICF CIRCUIT
 
Overcome-3-common-aem-delivery-challenges
Overcome-3-common-aem-delivery-challengesOvercome-3-common-aem-delivery-challenges
Overcome-3-common-aem-delivery-challengesiCiDIGITAL
 
CQ5.x Maintenance Webinar 2013
CQ5.x Maintenance Webinar 2013CQ5.x Maintenance Webinar 2013
CQ5.x Maintenance Webinar 2013Andrew Khoury
 
Multi site manager
Multi site managerMulti site manager
Multi site managershivani garg
 
Configuring CQ Security
Configuring CQ SecurityConfiguring CQ Security
Configuring CQ Securityconnectwebex
 
Declarative Services - Dependency Injection OSGi Style
Declarative Services - Dependency Injection OSGi StyleDeclarative Services - Dependency Injection OSGi Style
Declarative Services - Dependency Injection OSGi StyleFelix Meschberger
 
Cms product evaluation
Cms product evaluationCms product evaluation
Cms product evaluationAshokkumar T A
 
Adobe Managed Services: Complicated Cloud Deployments
Adobe Managed Services: Complicated Cloud DeploymentsAdobe Managed Services: Complicated Cloud Deployments
Adobe Managed Services: Complicated Cloud DeploymentsAdam Pazik
 
Server-side OSGi with Apache Sling (OSGiDevCon 2011)
Server-side OSGi with Apache Sling (OSGiDevCon 2011)Server-side OSGi with Apache Sling (OSGiDevCon 2011)
Server-side OSGi with Apache Sling (OSGiDevCon 2011)Felix Meschberger
 
Modern operations with Apache Sling (2014 adaptTo version)
Modern operations with Apache Sling (2014 adaptTo version)Modern operations with Apache Sling (2014 adaptTo version)
Modern operations with Apache Sling (2014 adaptTo version)Bertrand Delacretaz
 
OSGi, Scripting and REST, Building Webapps With Apache Sling
OSGi, Scripting and REST, Building Webapps With Apache SlingOSGi, Scripting and REST, Building Webapps With Apache Sling
OSGi, Scripting and REST, Building Webapps With Apache SlingCarsten Ziegeler
 
RESTful Web Applications with Apache Sling
RESTful Web Applications with Apache SlingRESTful Web Applications with Apache Sling
RESTful Web Applications with Apache SlingBertrand Delacretaz
 
Apache Sling : JCR, OSGi, Scripting and REST
Apache Sling : JCR, OSGi, Scripting and RESTApache Sling : JCR, OSGi, Scripting and REST
Apache Sling : JCR, OSGi, Scripting and RESTCarsten Ziegeler
 
CIRCUIT 2015 - Akamai: Caching and Beyond
CIRCUIT 2015 - Akamai:  Caching and BeyondCIRCUIT 2015 - Akamai:  Caching and Beyond
CIRCUIT 2015 - Akamai: Caching and BeyondICF CIRCUIT
 
Service Discovery. Spring Cloud Internals
Service Discovery. Spring Cloud InternalsService Discovery. Spring Cloud Internals
Service Discovery. Spring Cloud InternalsAleksandr Tarasov
 

En vedette (20)

Aem dispatcher – tips & tricks
Aem dispatcher – tips & tricksAem dispatcher – tips & tricks
Aem dispatcher – tips & tricks
 
The six key steps to AEM architecture
The six key steps to AEM architectureThe six key steps to AEM architecture
The six key steps to AEM architecture
 
AEM MSM: Basics & More
AEM MSM: Basics & MoreAEM MSM: Basics & More
AEM MSM: Basics & More
 
CIRCUIT 2015 - Monitoring AEM
CIRCUIT 2015 - Monitoring AEMCIRCUIT 2015 - Monitoring AEM
CIRCUIT 2015 - Monitoring AEM
 
Reactive applications
Reactive applicationsReactive applications
Reactive applications
 
Overcome-3-common-aem-delivery-challenges
Overcome-3-common-aem-delivery-challengesOvercome-3-common-aem-delivery-challenges
Overcome-3-common-aem-delivery-challenges
 
CQ5.x Maintenance Webinar 2013
CQ5.x Maintenance Webinar 2013CQ5.x Maintenance Webinar 2013
CQ5.x Maintenance Webinar 2013
 
Multi site manager
Multi site managerMulti site manager
Multi site manager
 
Configuring CQ Security
Configuring CQ SecurityConfiguring CQ Security
Configuring CQ Security
 
Declarative Services - Dependency Injection OSGi Style
Declarative Services - Dependency Injection OSGi StyleDeclarative Services - Dependency Injection OSGi Style
Declarative Services - Dependency Injection OSGi Style
 
Cms product evaluation
Cms product evaluationCms product evaluation
Cms product evaluation
 
Adobe Managed Services: Complicated Cloud Deployments
Adobe Managed Services: Complicated Cloud DeploymentsAdobe Managed Services: Complicated Cloud Deployments
Adobe Managed Services: Complicated Cloud Deployments
 
Server-side OSGi with Apache Sling (OSGiDevCon 2011)
Server-side OSGi with Apache Sling (OSGiDevCon 2011)Server-side OSGi with Apache Sling (OSGiDevCon 2011)
Server-side OSGi with Apache Sling (OSGiDevCon 2011)
 
Modern operations with Apache Sling (2014 adaptTo version)
Modern operations with Apache Sling (2014 adaptTo version)Modern operations with Apache Sling (2014 adaptTo version)
Modern operations with Apache Sling (2014 adaptTo version)
 
OSGi, Scripting and REST, Building Webapps With Apache Sling
OSGi, Scripting and REST, Building Webapps With Apache SlingOSGi, Scripting and REST, Building Webapps With Apache Sling
OSGi, Scripting and REST, Building Webapps With Apache Sling
 
RESTful Web Applications with Apache Sling
RESTful Web Applications with Apache SlingRESTful Web Applications with Apache Sling
RESTful Web Applications with Apache Sling
 
Apache Sling : JCR, OSGi, Scripting and REST
Apache Sling : JCR, OSGi, Scripting and RESTApache Sling : JCR, OSGi, Scripting and REST
Apache Sling : JCR, OSGi, Scripting and REST
 
REST in AEM
REST in AEMREST in AEM
REST in AEM
 
CIRCUIT 2015 - Akamai: Caching and Beyond
CIRCUIT 2015 - Akamai:  Caching and BeyondCIRCUIT 2015 - Akamai:  Caching and Beyond
CIRCUIT 2015 - Akamai: Caching and Beyond
 
Service Discovery. Spring Cloud Internals
Service Discovery. Spring Cloud InternalsService Discovery. Spring Cloud Internals
Service Discovery. Spring Cloud Internals
 

Similaire à AEM Backup and Compaction Guide

KoprowskiT_SQLSatMoscow_2AMaDisaterJustBegan
KoprowskiT_SQLSatMoscow_2AMaDisaterJustBeganKoprowskiT_SQLSatMoscow_2AMaDisaterJustBegan
KoprowskiT_SQLSatMoscow_2AMaDisaterJustBeganTobias Koprowski
 
MySQL enterprise backup overview
MySQL enterprise backup overviewMySQL enterprise backup overview
MySQL enterprise backup overview郁萍 王
 
Cloud computing 3702
Cloud computing 3702Cloud computing 3702
Cloud computing 3702Jess Coburn
 
Veeam backup Oracle DB in a VM is easy and reliable way to protect data
Veeam backup Oracle DB in a VM is easy and reliable way to protect dataVeeam backup Oracle DB in a VM is easy and reliable way to protect data
Veeam backup Oracle DB in a VM is easy and reliable way to protect dataAleks Y
 
Presentation recovery manager (rman) configuration and performance tuning ...
Presentation    recovery manager (rman) configuration and performance tuning ...Presentation    recovery manager (rman) configuration and performance tuning ...
Presentation recovery manager (rman) configuration and performance tuning ...xKinAnx
 
Exchange Server 2013 : les mécanismes de haute disponibilité et la redondance...
Exchange Server 2013 : les mécanismes de haute disponibilité et la redondance...Exchange Server 2013 : les mécanismes de haute disponibilité et la redondance...
Exchange Server 2013 : les mécanismes de haute disponibilité et la redondance...Microsoft Technet France
 
MySQL Enterprise Backup
MySQL Enterprise BackupMySQL Enterprise Backup
MySQL Enterprise BackupMario Beck
 
Backups And Recovery
Backups And RecoveryBackups And Recovery
Backups And Recoveryasifmalik110
 
Rman Presentation
Rman PresentationRman Presentation
Rman PresentationRick van Ek
 
Anthony Somerset - Site Speed = Success!
Anthony Somerset - Site Speed = Success!Anthony Somerset - Site Speed = Success!
Anthony Somerset - Site Speed = Success!WordCamp Cape Town
 
Backing Up and Recovery
Backing Up and RecoveryBacking Up and Recovery
Backing Up and RecoveryMaham Huda
 
KoprowskiT_SPBizConference_2AMaDisasterJustBegan
KoprowskiT_SPBizConference_2AMaDisasterJustBeganKoprowskiT_SPBizConference_2AMaDisasterJustBegan
KoprowskiT_SPBizConference_2AMaDisasterJustBeganTobias Koprowski
 
KoprowskiT_SPBizConf_2AMaDisasterJustBegan
KoprowskiT_SPBizConf_2AMaDisasterJustBeganKoprowskiT_SPBizConf_2AMaDisasterJustBegan
KoprowskiT_SPBizConf_2AMaDisasterJustBeganTobias Koprowski
 
Understanding Elastic Block Store Availability and Performance
Understanding Elastic Block Store Availability and PerformanceUnderstanding Elastic Block Store Availability and Performance
Understanding Elastic Block Store Availability and PerformanceAmazon Web Services
 
Selecting the right cache framework
Selecting the right cache frameworkSelecting the right cache framework
Selecting the right cache frameworkMohammed Fazuluddin
 
Performance Tuning
Performance TuningPerformance Tuning
Performance TuningJannet Peetz
 
KoprowskiT_PASSEastMidsFEB16_2AMaDisasterJustBegan
KoprowskiT_PASSEastMidsFEB16_2AMaDisasterJustBeganKoprowskiT_PASSEastMidsFEB16_2AMaDisasterJustBegan
KoprowskiT_PASSEastMidsFEB16_2AMaDisasterJustBeganTobias Koprowski
 
Proact ExaGrid Seminar Presentation KK 20220419.pdf
Proact ExaGrid Seminar Presentation KK 20220419.pdfProact ExaGrid Seminar Presentation KK 20220419.pdf
Proact ExaGrid Seminar Presentation KK 20220419.pdfKarel Kannel
 

Similaire à AEM Backup and Compaction Guide (20)

KoprowskiT_SQLSatMoscow_2AMaDisaterJustBegan
KoprowskiT_SQLSatMoscow_2AMaDisaterJustBeganKoprowskiT_SQLSatMoscow_2AMaDisaterJustBegan
KoprowskiT_SQLSatMoscow_2AMaDisaterJustBegan
 
MySQL enterprise backup overview
MySQL enterprise backup overviewMySQL enterprise backup overview
MySQL enterprise backup overview
 
Cloud computing 3702
Cloud computing 3702Cloud computing 3702
Cloud computing 3702
 
Veeam backup Oracle DB in a VM is easy and reliable way to protect data
Veeam backup Oracle DB in a VM is easy and reliable way to protect dataVeeam backup Oracle DB in a VM is easy and reliable way to protect data
Veeam backup Oracle DB in a VM is easy and reliable way to protect data
 
Presentation recovery manager (rman) configuration and performance tuning ...
Presentation    recovery manager (rman) configuration and performance tuning ...Presentation    recovery manager (rman) configuration and performance tuning ...
Presentation recovery manager (rman) configuration and performance tuning ...
 
Exchange Server 2013 : les mécanismes de haute disponibilité et la redondance...
Exchange Server 2013 : les mécanismes de haute disponibilité et la redondance...Exchange Server 2013 : les mécanismes de haute disponibilité et la redondance...
Exchange Server 2013 : les mécanismes de haute disponibilité et la redondance...
 
MySQL Enterprise Backup
MySQL Enterprise BackupMySQL Enterprise Backup
MySQL Enterprise Backup
 
OS UNIT4.pptx
OS UNIT4.pptxOS UNIT4.pptx
OS UNIT4.pptx
 
Backups And Recovery
Backups And RecoveryBackups And Recovery
Backups And Recovery
 
Rman Presentation
Rman PresentationRman Presentation
Rman Presentation
 
Anthony Somerset - Site Speed = Success!
Anthony Somerset - Site Speed = Success!Anthony Somerset - Site Speed = Success!
Anthony Somerset - Site Speed = Success!
 
Backing Up and Recovery
Backing Up and RecoveryBacking Up and Recovery
Backing Up and Recovery
 
Rmanpres
RmanpresRmanpres
Rmanpres
 
KoprowskiT_SPBizConference_2AMaDisasterJustBegan
KoprowskiT_SPBizConference_2AMaDisasterJustBeganKoprowskiT_SPBizConference_2AMaDisasterJustBegan
KoprowskiT_SPBizConference_2AMaDisasterJustBegan
 
KoprowskiT_SPBizConf_2AMaDisasterJustBegan
KoprowskiT_SPBizConf_2AMaDisasterJustBeganKoprowskiT_SPBizConf_2AMaDisasterJustBegan
KoprowskiT_SPBizConf_2AMaDisasterJustBegan
 
Understanding Elastic Block Store Availability and Performance
Understanding Elastic Block Store Availability and PerformanceUnderstanding Elastic Block Store Availability and Performance
Understanding Elastic Block Store Availability and Performance
 
Selecting the right cache framework
Selecting the right cache frameworkSelecting the right cache framework
Selecting the right cache framework
 
Performance Tuning
Performance TuningPerformance Tuning
Performance Tuning
 
KoprowskiT_PASSEastMidsFEB16_2AMaDisasterJustBegan
KoprowskiT_PASSEastMidsFEB16_2AMaDisasterJustBeganKoprowskiT_PASSEastMidsFEB16_2AMaDisasterJustBegan
KoprowskiT_PASSEastMidsFEB16_2AMaDisasterJustBegan
 
Proact ExaGrid Seminar Presentation KK 20220419.pdf
Proact ExaGrid Seminar Presentation KK 20220419.pdfProact ExaGrid Seminar Presentation KK 20220419.pdf
Proact ExaGrid Seminar Presentation KK 20220419.pdf
 

Plus de Ashokkumar T A

A quick introduction to Strapi CMS
A quick introduction to Strapi CMSA quick introduction to Strapi CMS
A quick introduction to Strapi CMSAshokkumar T A
 
A quick introduction to GraphQL
A quick introduction to GraphQLA quick introduction to GraphQL
A quick introduction to GraphQLAshokkumar T A
 
AEM - Binary less replication
AEM - Binary less replicationAEM - Binary less replication
AEM - Binary less replicationAshokkumar T A
 
Microservices trends - 2020
Microservices   trends - 2020Microservices   trends - 2020
Microservices trends - 2020Ashokkumar T A
 
Upgrading or migrating to a higher AEM version - Planning and process
Upgrading or migrating to a higher AEM version - Planning and processUpgrading or migrating to a higher AEM version - Planning and process
Upgrading or migrating to a higher AEM version - Planning and processAshokkumar T A
 
Aligning to AEMs Release Cycle
Aligning to AEMs Release CycleAligning to AEMs Release Cycle
Aligning to AEMs Release CycleAshokkumar T A
 
Designing for search in AEM
Designing for search in AEMDesigning for search in AEM
Designing for search in AEMAshokkumar T A
 
AEM - A Collection of developer friendly tools
AEM - A Collection of developer friendly toolsAEM - A Collection of developer friendly tools
AEM - A Collection of developer friendly toolsAshokkumar T A
 
Apache shiro security framework
Apache shiro security frameworkApache shiro security framework
Apache shiro security frameworkAshokkumar T A
 
Web analytics an intro
Web analytics   an introWeb analytics   an intro
Web analytics an introAshokkumar T A
 

Plus de Ashokkumar T A (14)

A quick introduction to Strapi CMS
A quick introduction to Strapi CMSA quick introduction to Strapi CMS
A quick introduction to Strapi CMS
 
A quick introduction to GraphQL
A quick introduction to GraphQLA quick introduction to GraphQL
A quick introduction to GraphQL
 
Cloud trends - 2020
Cloud   trends - 2020Cloud   trends - 2020
Cloud trends - 2020
 
AEM - Binary less replication
AEM - Binary less replicationAEM - Binary less replication
AEM - Binary less replication
 
Microservices trends - 2020
Microservices   trends - 2020Microservices   trends - 2020
Microservices trends - 2020
 
Upgrading or migrating to a higher AEM version - Planning and process
Upgrading or migrating to a higher AEM version - Planning and processUpgrading or migrating to a higher AEM version - Planning and process
Upgrading or migrating to a higher AEM version - Planning and process
 
Aligning to AEMs Release Cycle
Aligning to AEMs Release CycleAligning to AEMs Release Cycle
Aligning to AEMs Release Cycle
 
Designing for search in AEM
Designing for search in AEMDesigning for search in AEM
Designing for search in AEM
 
AEM - A Collection of developer friendly tools
AEM - A Collection of developer friendly toolsAEM - A Collection of developer friendly tools
AEM - A Collection of developer friendly tools
 
On MQ Series & JMS
On MQ Series & JMSOn MQ Series & JMS
On MQ Series & JMS
 
Aem offline content
Aem offline contentAem offline content
Aem offline content
 
Redis overview
Redis overviewRedis overview
Redis overview
 
Apache shiro security framework
Apache shiro security frameworkApache shiro security framework
Apache shiro security framework
 
Web analytics an intro
Web analytics   an introWeb analytics   an intro
Web analytics an intro
 

Dernier

Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 

Dernier (20)

Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 

AEM Backup and Compaction Guide

  • 1. AEM MAINTENANCE Key maintenance activities to be planned for an AEM implementation
  • 2. BACKUP • Why backup • Storage elements • Planning for backup • Online backup • Offline backup • Other approaches
  • 3. Why Backup • Typically there is enough redundancy of the AEM instances to fallback on when a server fails • Author is configured in primary/standby mode – standby can be used in case the primary fails • Publish is configured as a set of farms with multiple publish instances in each farm. Other instances acts as fallback when a publish instance fails. • But • Standby author is in near real-time sync with primary. If primary gets corrupted, standby also gets corrupted because of this near real-time sync • All publish instances across farms are kept in sync. When a user (maliciously or inadvertently) deletes a bulk of content, it gets deleted in all instances • We need backup to restore the system to a state as at some previous point in time
  • 4. Storage elements Software & Configuration • AEM software itself along with its configuration, hotfixes & service packs • Less frequently changed • Includes all folders under crx- quickstart except repository and logs folder Custom Application(s) • Custom developed applications that are deployed • Changes for every new version released • On installation, it gets stored as content or software configuration Content - Nodestore • The repository tree which holds all the content created, its version history and audit logs • More frequently changed • Stored at repository/segmentstore under crx-quickstart Content – Datastore • Optionally configured separate binary store for large assets • Changes when a large asset gets added or modified • Path configurable, can be shared with other instances Logs • Gets generated under the logs folder • The split-up, no. of files, log level & path are configurable • Typically not of much value to be backed up Search Indexes • Automatically generated under repository/index • Can be regenerated manually when needed • Can be skipped to optimize space during backup
  • 5. Planning for backup • Backup the primary author and at-least one publish instance. If spread across data centers, plan to backup one instance per data center • Decide on using online or offline backup. Offline backup requires downtime of the instance • Finalize how to split the backup. For example • Datastore can be backed up using a file copy program like rsync while the other elements can be backed up through online backup option (or) • Nodestore alone can be backed up using online backup and other content can be backed up using a file copy program • Decide what to exclude from the backup. Might want to exclude logs and search indexes from backup to optimize space AEM backup takes a copy of everything under the installation folder. Organize the paths accordingly to exclude certain elements from backup
  • 6. Offline backup • There are two approaches to do offline backup • The standard approach is to • Stop the AEM instance • Use a file copy program like rsync to take the snapshot of the AEM folder • Start the instance after the copy is complete • The other option is to block the repository writes • Execute the method blockRepositoryWrites on the mbean “com.adobe.granite (Repository)” to block the repository • Use a file copy program to take the snapshot of the AEM folder • Execute the method unblockRepositoryWrites on the mbean “com.adobe.granite (Repository)” to unblock the repository When using offline backup, take the snapshot of the AEM folder to the target path once before stopping or blocking the server. This way only the differential would get copied when taking snapshot after stopping the server
  • 7. Online backup • Online backup creates a backup of the entire AEM installation folder • Format of the backup is decided based on the target path • If the target path is a file with .zip extension, backup is stored as a compressed zip file • If the target path is a directory, snapshot of AEM installation is created in this target directory • Invoke the method startBackup on the jmx bean “com.adobe.granite (Repository)” to start the backup • Or use backup tool at http://<hostname>:<port-number>/libs/granite/backup/content/admin.html • A file named backupInProgress.txt will be present at the target path till the backup gets completed
  • 8. Online backup – Other points • When creating backup to a directory • Taking the backup to the same directory where the previous backup is kept copies only the differential. This significantly improves performance • Do not use the zip format for backup • Requires twice the space needed for directory backup while in progress • The compression step impacts the performance of AEM and takes longer time to complete (use external compression tool if needed) • Does not take advantage of differential copy, when online backup is done to the same path • Backup specific directory • Specify the source path to take backup of a specific directory under AEM • Can be leveraged to take the backup of the nodestore more frequently
  • 9. Other approaches • Don’t backup primary author. Backup the standby instead • Bringing down the standby does not impact the availability of AEM for authoring • Perform offline backup on the standby instance • This backup can be used to restore the AEM instance as primary. Make sure to do the configuration changes needed before starting it as primary • Do not backup a publish instance • Applicable for smaller repositories • Backup only the author instance. Reactivate the content from the author the restore content onto the publish instance • Note that this would add a delay to the time needed to restore the publish servers Other aspects of the backup like frequency, rotation policy, storage policy, etc., are same as in a standard backup process
  • 10. COMPACTION • Why compaction • Online compaction • Offline compaction • Datastore cleanup • Compacting the standby instance
  • 11. Why compaction • Content in AEM is stored in blocks of storage called segments which are immutable • Modifying or even deleting the content does not update or remove elements from the existing storage. It creates new storage elements • Since the data is never overwritten, the disk usage keeps increasing • AEM also uses the repository as storage for internal activities like • Temporary objects created during replication • Temporary assets created during rendition generation • Temporary packages built for download, workflow payloads, etc. • Running compaction removes these unreferenced objects which otherwise remains in the repository • It helps in reducing space, optimize backup and improve filesystem maintenance
  • 12. Online compaction • We can run revision GC to run compaction when an AEM instance is running • Revision GC can also be scheduled to be triggered automatically at a set frequency (default its set to run daily) • Execute the method startRevisionGC on the mbean RevisionGarbageCollection to invoke revision GC • However Adobe recommends running offline compaction periodically • Note that restarting the server releases references to old repository nodes held in an active session, thus helping to improve the efficiency of the online compaction process Plan to restart the server regularly when relying only on online compaction
  • 13. Offline compaction • Offline compaction requires AEM instance to be down when running compaction • Use the oak-run tool to perform offline compaction. • Perform the following steps to complete offline compaction • Log all the checkpoints in the repository before the run Command: oakoak-run-<version>.jar checkpoints <AEM_BASE_FOLDER>/crx- quickstart/repository/segmentstore • Remove unreferenced checkpoints Command: oakoak-run-<version>.jar checkpoints <AEM_BASE_FOLDER>/crx- quickstart/repository/segmentstore rm-unreferenced • Compact the repository Command: oakoak-run-<version>.jar compact <AEM_BASE_FOLDER>/crx- quickstart/repository/segmentstore
  • 14. Offline compaction - points to consider • When running offline compaction on primary author instance, stop the standby instance • When running on publish instance, plan to run it on one instance at a time or one farm at a time so that end users of the site are not impacted • Block the replication agents on author while the publish AEM instances are down for compaction • Monitor the replication queues so that there are no pending items before the server is brought down for compaction and the items that got queued are cleared after the servers are brought up • Take a backup of the instance before running compaction. To block the replication agent, change its configuration to point to an unused port. Disabling the replication agent make it invalid and does not result in blocking its queue
  • 15. Datastore Cleanup • Applicable when an external datastore is configured for large binary assets • The external datastore can be private to an instance or can be shared with other instances • Run the datastore garbage collection only when the instance has a private datastore which is not shared with any other instance • Datastore garbage collection can be triggered manually or scheduled to run automatically at a set frequency • By default its configured to run weekly on Saturdays between 1 to 2 am. • To run datastore garbage collection manually, execute the method startDataStoreGC on the RepositoryManagement mbean, setting the parameter markOnly as false
  • 16. Cleaning up of a shared Datastore • To run garbage collection on shared datastore use one of the following approach • If all the AEM instances that share the datastore are identical clones • Run datastore garbage collection on one of the instance that shares the datastore • This would ensure all the stale assets gets deleted. Since the other instances are identical, there wouldn’t be an active reference from other instances to the deleted assets • If the AEM instances that share the datastore are not identical • Note the current timestamp when starting the process • Execute the method startDataStoreGC with markOnly flag set to true from all instances • Use a shell script or other means to delete all files in the datastore whose last modified timestamp is prior to the timestamp noted at the start of the process An author & publish instances are non identical. When we have a datastore shared between an author and its publish instances, its safe to run the datastore gc only on the author
  • 17. Compacting the standby instance • Running compaction on primary does not compact the standby • In fact compacting the primary would increase the size of the standby after the sync • To compact the standby either • Allow the standby to fully synchronize with the primary after its compacted • Stop the standby and run compaction on the standby • Start the standby and allow it to again fully synchronize with the primary • Or clone the primary after compaction to create a new standby instance from the compacted primary Its better to create a new standby by cloning after compacting the primary. This would ensure that the starting size after compaction of the primary and standby are the same Compacting the standby separately after synchronizing with the primary would result in twice the size for the standby as that of the primary
  • 18. PURGING • Why purge • Version purging • Workflow purging • Audit log purging • Rolling purging strategy
  • 19. Why purge • An author instance maintains all the history of actions done on AEM instance, retains all versions of the content created (automatically or manually) and holds an archive of all workflows executed which leads to • Repository becoming bloated • Size of the index created increases • Queries become slower which in turn results in overall performance degradation • UI becomes unrefined showing up unnecessary details • Purging is not applicable for publish instances. Publish instance does not maintain audit logs or version history nor does workflows execute on publish instances
  • 20. Version purging • Versions gets created automatically whenever a page or asset is activated • Users can also manually create versions of pages and assets • Versions can be purged based on • No. of versions • Age of the version • To manually purge version, use the utility at http://<host>:<port>/etc/versioning/purge.html • Version purging can also be configured to run automatically • Use osgi configuration at “Day cq wcm version purge task” to configure automatic version purging
  • 21. Workflow purging • A new workflow instance gets created every time a workflow is launched (asset upload, publishing, etc.) • Once the workflow completes (successful or aborted or terminated), its archived and never gets deleted • Workflow purging needs to be done to clean up archived workflow instances • Purging can be done based on • Workflow model • Completion status • Age of the workflow instance • To manually purge workflows, execute the operation purgeCompleted on the mbean com.adobe.granite.workflow (Maintenance) • Use osgi configuration at “Adobe granite workflow purge configuration” to configure automatic workflow purging
  • 22. Audit log purging • Audit logs gets created for every action that happens on the system (like creating a page, deleting a page, creating a version of the page, activating a page, uploading an asset…) • These logs gets created under the node /var/audit • Audit logs needs to be cleaned on regular basis to maintain the repository at an optimal size • Audit log purging can be configured based on • Type of action • Content Path • Age of the audit log • Use osgi configuration at “Audit log purge scheduler” to configure automatic audit log purging
  • 23. Rolling purging strategy • For some industries, regulatory reasons mandate maintaining workflows and versions for a higher period of time (we had a case to maintain audit logs and versions for 7 years) • For maintaining AEM optimally its advised to implement a rolling purge strategy • Design a retention policy combining the backup and purging so that all details can be restored when needed • Make sure there are at least 2 backups that has a particular audit log entry or version or workflow instance • For example, have quarterly permanent backup’s and perform purging after the backup every 6 months
  • 24. CLONING • Why to clone • How to clone • Preventing loss of content during cloning
  • 25. Why to clone • Cloning is applicable for publish instances. You don’t typically clone an author instance • Cloning publish instance is needed to • To fix a corrupted or failed publish instance • To increase capacity by adding additional publish instances
  • 26. How to clone • Pull a running publish instance out of the load balancer • Shutdown this instance • Copy the complete AEM installation folder using rsync or any file copy program from this instance to the target server. • After the copy is complete, start the source instance and add it back to the load balancer • Start the newly created instance • Update the configurations as needed • Typical configurations to be updated are the replication agents, dispatcher flush agents and other application specific configurations • Create new replication agent on author to replicate content to the new instance • Add the new instance to the load balancer
  • 27. Preventing loss of content during cloning • Plan cloning at a time when activation / deactivation of content is not happening on author. • When cloning must be done during active hours, create the replication agent on the author pointing to the new instance as first step, before shutting down the source instance used for cloning • Check the replication queue that points to the source instance so that it has no pending items when its stopped • Block the replication queues that point to source instance and the new instance. Unblock them after the instances are started after cloning. • This would ensure the content activated / deactivated remains in the queues and gets replicated to the respective instance when it gets unblocked Point the configuration to a unused port to block the queue. Disabling the replication agent would make it invalid and would not hold items activated / deactivated pending in its queue.
  • 28. THANK YOU Feedback and suggestions welcome. Please write to ashokkumar_ta / ashokkumar.ta@gmail.com