{"id":83323,"date":"2026-10-11T01:26:50","date_gmt":"2026-10-10T19:56:50","guid":{"rendered":"https:\/\/2thenew.xyz\/blog\/?p=83323"},"modified":"2026-10-27T23:12:00","modified_gmt":"2026-10-27T17:42:00","slug":"elasticsearch-data-migration-across-clusters-using-cross-cluster-replication","status":"publish","type":"post","link":"https:\/\/2thenew.xyz\/blog\/elasticsearch-data-migration-across-clusters-using-cross-cluster-replication\/","title":{"rendered":"Elasticsearch Data Migration Across Clusters Using Cross-Cluster Replication"},"content":{"rendered":"<h2>Introduction<\/h2>\n<p>Managing Elasticsearch clusters in environments is a common challenge for organizations that run search and analytics work that is vital to the business. Whether you are moving to infrastructure, setting up disaster recovery or changing operating systems, keeping Elasticsearch data consistent and minimizing downtime are the top priorities.<\/p>\n<p>The primary objectives were to:<\/p>\n<ul>\n<li>Achieve near real-time data replication between clusters<\/li>\n<li>Minimize application downtime during migration<\/li>\n<li>Ensure data integrity throughout the process<\/li>\n<\/ul>\n<p>In this blog I will explain:<\/p>\n<ul>\n<li>Cross-Cluster Replication (CCR)<\/li>\n<li>How CCR works<\/li>\n<li>Prerequisites and setup requirements<\/li>\n<li>Implementation step, by step<\/li>\n<li>Disabling CCR<\/li>\n<li>Best practices and Lessons learned<\/li>\n<\/ul>\n<h2>What is Cross-Cluster Replication?<\/h2>\n<p>Cross-cluster replication is an Elasticsearch feature that enables you to replicate indices from one cluster (the leader cluster) to another cluster (the follower cluster). We have seen that the follower index is constantly pulling the changes from the leader index to keep the data up to time.<\/p>\n<p>Cross-Cluster Replication is great for:<\/p>\n<ul>\n<li><strong>Disaster recovery:<\/strong> Cluster running in different region<\/li>\n<li><strong>Data Locality:<\/strong> Move data closer to users in different geographic locations.<\/li>\n<li><strong>Migration:<\/strong> Data transfer between clusters during infrastructure upgrade.<\/li>\n<li><strong>Centralized reporting:<\/strong> Gather data from several clusters to generate analytics.<\/li>\n<\/ul>\n<h2>How CCR Works<\/h2>\n<p>Cross-Cluster Replication works at the shard level. Every follower shard pulls changes from its leader shard. Two main phases exist:<\/p>\n<ul>\n<li><strong>Initialization Phase:<\/strong> The follower cluster requests the leader cluster to send all segment files for the index as if it were restoring from a snapshot.<\/li>\n<li><strong>Incremental Sync Phase:<\/strong> The follower shard periodically requests read operations from the leader shard starting from the synchronization point. The leader shard responds with operations. The follower replays them locally.<\/li>\n<\/ul>\n<p>The transaction log is very important. It records every write operation. It serves as the source for synchronization.<\/p>\n<h2>Compatibility with Versions<\/h2>\n<p>Both clusters must be compatible versions before CCR is set up.<\/p>\n<ul>\n<li><strong>Same major version:<\/strong> Any node can talk to another on the same major version.<\/li>\n<li><strong>Adjacent major versions:<\/strong> CCR works between the last minor of one major and the next major version. So 7.17 can replicate to and from 8.x, but 7.16 can not talk to 8.0.<\/li>\n<li><strong>Newer major versions:<\/strong> A newer follower can replicate from an older leader, but not vise versa. Thus 8.x can follow 7.17 but 7.17 cannot follow 8.x.<\/li>\n<li><strong>License:<\/strong> CCR requires a trial, platinum, or enterprise license on both clusters.<\/li>\n<\/ul>\n<p>If possible, keep both clusters on the same major version. When upgrading major versions or the final minor of the older version, upgrade the leader first.<\/p>\n<h2>Prerequisites<\/h2>\n<ul>\n<li>Two Elasticsearch clusters that have X-Pack enabled.<\/li>\n<li>An Elasticsearch license, either trial or platinum.<\/li>\n<li>Network connectivity between clusters on the transport port.<\/li>\n<li>TLS certificates set up for communication.<\/li>\n<li>Adequate storage and compute resources, on the follower cluster.<\/li>\n<\/ul>\n<h2>Enabling CCR The Steps We Took<\/h2>\n<h3>Step 1 Install and Configuration New Elasticsearch Cluster<\/h3>\n<p>First install Elasticsearch on your cluster nodes. Start by installing the required Java runtime. Then install the Elasticsearch RPM package. After installation, reload the system daemon. Enable the Elasticsearch service so that it starts automatically when the system boots.<\/p>\n<p>Finally reset the password, for the superuser. For any nodes generate an enrollment token from the node. Use that token to reconfigure and add the nodes to the Elasticsearch cluster.<\/p>\n<h3>Step 2 Enable the License<\/h3>\n<p>Both clusters need a license that supports CCR. We started a trial license on both sides using the license API and verified it was active. This is a step but easy to forget if you&#8217;re moving fast.<\/p>\n<pre style=\"background: #0b0f19; color: #cbd5e1; padding: 1.2rem 1.5rem; border-radius: 14px; font-family: 'SF Mono','Fira Code','Consolas',monospace; font-size: 0.9rem; line-height: 1.6; margin: 1.5rem 0; border: 1px solid #1e293b; display: block; white-space: pre;\"><code style=\"background: transparent; color: #cbd5e1; font-family: inherit; font-size: inherit; white-space: pre; display: block; border: none; padding: 0;\">\/\/ Start trial license on both clusters\r\ncurl -XPOST http:\/\/es-ip:9200\/_license\/start_trial?acknowledge=true -u elastic:password\r\n\r\n\/\/Verify license status\r\ncurl -X GET \"http:\/\/es-ip:9200\/_license\" -u elastic:password<\/code><\/pre>\n<h3>Step 3 Configure TLS Certificates<\/h3>\n<p>Secure communication between clusters means you must exchange CA certificates. We found this step essential because CCR communication happens over the transport layer and that layer is encrypted by default in Elasticsearch versions.<\/p>\n<p><strong>On the Leader Cluster<\/strong><\/p>\n<p>Export the CA certificate from the transport keystore with OpenSSL. Transfer it to follower cluster, we have used S3 bucket for that. Make sure to do this so the follower cluster can retrieve the file.<\/p>\n<pre style=\"background: #0b0f19; color: #cbd5e1; padding: 1.2rem 1.5rem 1.2rem 1px; border-radius: 14px; font-family: 'SF Mono', 'Fira Code', 'Consolas', monospace; font-size: 0.9rem; line-height: 1.6; margin: 1.5rem 0px; border: 1px solid #1e293b; display: block; white-space: pre;\"><code style=\"background: transparent; color: #cbd5e1; font-family: inherit; font-size: inherit; white-space: pre; display: block; border: none; padding: 0;\">   \/\/ Export the CA certificate from the transport keystore\r\n   openssl pkcs12 -in \/etc\/elasticsearch\/certs\/transport.p12 -cacerts  \r\n   -nokey -out cluster-a-ca.crt\r\n\r\n   \/\/ Upload to shared S3 location\r\n   aws s3 cp cluster-a-ca.crt s3:\/\/bucket-name\/ --region ap-south-1<\/code><\/pre>\n<p><strong>On the Follower Cluster<\/strong><\/p>\n<p>Download the leader clusters CA certificate fetch the truststore password, from the Elasticsearch keystore. Then import the certificate into the local transport keystore using the keytool utility.<\/p>\n<pre style=\"background: #0b0f19; color: #cbd5e1; padding: 1.2rem 1.5rem 1.2rem 1px; border-radius: 14px; font-family: 'SF Mono', 'Fira Code', 'Consolas', monospace; font-size: 0.9rem; line-height: 1.6; margin: 1.5rem 0px; border: 1px solid #1e293b; display: block; white-space: pre;\"><code style=\"background: transparent; color: #cbd5e1; font-family: inherit; font-size: inherit; white-space: pre; display: block; border: none; padding: 0;\">   \/\/ Download leader cluster's CA certificate\r\n   aws s3 cp s3:\/\/bucket-name\/cluster-a-ca.crt --region ap-south-1 .\r\n\r\n   \/\/ Get the truststore password\r\n   \/bin\/elasticsearch-keystore show xpack.security.transport.ssl.truststore.secure_password\r\n\r\n   \/\/ Import the certificate into the local transport keystore\r\n   keytool -importcert -keystore \/etc\/elasticsearch\/certs\/transport.p12 \r\n     -storetype PKCS12 -alias cluster-a-ca -file cluster-a-ca.crt \r\n     -noprompt -storepass &lt;truststore_password&gt;<\/code><\/pre>\n<p>Repeat the same steps so the leader cluster also trusts the follower clusters CA certificate. Also double-check that the reverse steps are correct.<\/p>\n<p><strong>Configure Node Roles<\/strong><\/p>\n<p>On the follower cluster add remote_cluster_client to the node roles in elasticsearch.yml. This role is needed for any node that needs to talk to a cluster. This role is needed for any node that needs to talk to a cluster. Restart Elasticsearch on each node one, at a time to make the change take effect without stopping the cluster.<\/p>\n<pre style=\"background: #0b0f19; color: #cbd5e1; padding: 1.2rem 1.5rem 1.2rem 1px; border-radius: 14px; font-family: 'SF Mono', 'Fira Code', 'Consolas', monospace; font-size: 0.9rem; line-height: 1.6; margin: 1.5rem 0px; border: 1px solid #1e293b; display: block; white-space: pre;\"><code style=\"background: transparent; color: #cbd5e1; font-family: inherit; font-size: inherit; white-space: pre; display: block; border: none; padding: 0;\">   node.roles: [master, data, remote_cluster_client]<\/code><\/pre>\n<h3>Step 4: Add Remote Cluster<\/h3>\n<p>On the follower cluster set up the connection to the leader cluster using the cluster settings API. Give the seed nodes of the leader cluster turn on transport compression to save bandwidth and set skip_unavailable to false if you want availability.<\/p>\n<pre style=\"background: #0b0f19; color: #cbd5e1; padding: 1.2rem 1.5rem; border-radius: 14px; font-family: 'SF Mono','Fira Code','Consolas',monospace; font-size: 0.9rem; line-height: 1.6; margin: 1.5rem 0; border: 1px solid #1e293b; display: block; white-space: pre;\"><code style=\"background: transparent; color: #cbd5e1; font-family: inherit; font-size: inherit; white-space: pre; display: block; border: none; padding: 0;\">curl -X PUT \"http:\/\/es-ip:9200\/_cluster\/settings\" \r\n  -H 'Content-Type: application\/json' -u elastic:&lt;password&gt; \r\n  -d '{\r\n    \"persistent\": {\r\n      \"cluster\": {\r\n        \"remote\": {\r\n          \"leader-cluster\": {\r\n            \"seeds\": [\r\n              \"leader-node-1:9300\",\r\n              \"leader-node-2:9300\"\r\n            ],\r\n            \"transport.compress\": true,\r\n            \"skip_unavailable\": false\r\n          }\r\n        }\r\n      }\r\n    }\r\n  }'<\/code><\/pre>\n<h3>Step 5: Start Replication<\/h3>\n<p>Begin Replication Create a follower index on the follower cluster that follows the leader index. This is done with the CCR follow API, where you enter the name of the cluster and the name of the leader index.<\/p>\n<pre style=\"background: #0b0f19; color: #cbd5e1; padding: 1.2rem 1.5rem; border-radius: 14px; font-family: 'SF Mono','Fira Code','Consolas',monospace; font-size: 0.9rem; line-height: 1.6; margin: 1.5rem 0; border: 1px solid #1e293b; display: block; white-space: pre;\"><code style=\"background: transparent; color: #cbd5e1; font-family: inherit; font-size: inherit; white-space: pre; display: block; border: none; padding: 0;\">curl -XPUT \"http:\/\/es-ip:9200\/&lt;follower_index&gt;\/_ccr\/follow?pretty\"  \r\n-H 'Content-Type: application\/json' -u elastic:&lt;password&gt; \r\n-d '{\r\n  \"remote_cluster\": \"leader-cluster\",\r\n  \"leader_index\": \"&lt;leader_index&gt;\"\r\n}'<\/code><\/pre>\n<p>Once replication starts check the index status and replication details. The follower index should show up in the list of indexes. The CCR stats API will show how the replication is going including any delay, between the leader and the follower.<\/p>\n<pre style=\"background: #0b0f19; color: #cbd5e1; padding: 1.2rem 1.5rem; border-radius: 14px; font-family: 'SF Mono','Fira Code','Consolas',monospace; font-size: 0.9rem; line-height: 1.6; margin: 1.5rem 0; border: 1px solid #1e293b; display: block; white-space: pre;\"><code style=\"background: transparent; color: #cbd5e1; font-family: inherit; font-size: inherit; white-space: pre; display: block; border: none; padding: 0;\">\/\/ Check indices\r\ncurl -X GET \"http:\/\/es-ip:9200\/_cat\/indices?pretty\" -u elastic:&lt;password&gt;\r\n\r\n\/\/ Check CCR stats\r\ncurl -X GET \"http:\/\/es-ip:9200\/_ccr\/stats?pretty\" -u elastic:&lt;password&gt;<\/code><\/pre>\n<h3>Step 6: Monitor Replication<\/h3>\n<p>Monitoring must be done. The metrics that matter are Replication lag, the gap between the leader and follower checkpoints. Also watch for reads and writes because they show connectivity or permission problems. Then check sync status to see if Replication is actively paused or in an error state.<\/p>\n<pre style=\"background: #0b0f19; color: #cbd5e1; padding: 1.2rem 1.5rem; border-radius: 14px; font-family: 'SF Mono','Fira Code','Consolas',monospace; font-size: 0.9rem; line-height: 1.6; margin: 1.5rem 0; border: 1px solid #1e293b; display: block; white-space: pre;\"><code style=\"background: transparent; color: #cbd5e1; font-family: inherit; font-size: inherit; white-space: pre; display: block; border: none; padding: 0;\">\/\/ Check follower stats for a specific index\r\ncurl -XGET http:\/\/es-ip:9200\/&lt;follower_index&gt;\/_ccr\/stats?pretty -u elastic:password<\/code><\/pre>\n<p>Check out these metrics. It&#8217;s so much easier to catch a problem early than to fix it after it&#8217;s been quietly failing for hours.<\/p>\n<h2>Disabling CCR on the Follower Cluster<\/h2>\n<p>To disable CCR, there are four step process which need to perform:<\/p>\n<p><strong>Step 1: Pause the Follower Index<\/strong><\/p>\n<p>This stops ongoing replication without deleting anything.<\/p>\n<pre style=\"background: #0b0f19; color: #cbd5e1; padding: 1.2rem 1.5rem; border-radius: 14px; font-family: 'SF Mono','Fira Code','Consolas',monospace; font-size: 0.9rem; line-height: 1.6; margin: 1.5rem 0; border: 1px solid #1e293b; display: block; white-space: pre;\"><code style=\"background: transparent; color: #cbd5e1; font-family: inherit; font-size: inherit; white-space: pre; display: block; border: none; padding: 0;\">curl -XPOST http:\/\/es-ip:9200\/&lt;follower_index&gt;\/_ccr\/pause_follow -u elastic:password<\/code><\/pre>\n<p><strong>Step 2: Close the Follower Index<\/strong><\/p>\n<p>Close the follower index to prepare it for the operation also you cannot unfollow an open index.<\/p>\n<pre style=\"background: #0b0f19; color: #cbd5e1; padding: 1.2rem 1.5rem; border-radius: 14px; font-family: 'SF Mono','Fira Code','Consolas',monospace; font-size: 0.9rem; line-height: 1.6; margin: 1.5rem 0; border: 1px solid #1e293b; display: block; white-space: pre;\"><code style=\"background: transparent; color: #cbd5e1; font-family: inherit; font-size: inherit; white-space: pre; display: block; border: none; padding: 0;\">curl -X POST \"http:\/\/es-ip:9200\/&lt;follower_index&gt;\/_close\" -u elastic:password<\/code><\/pre>\n<p><strong>Step 3: Unfollow the Index<\/strong><\/p>\n<p>This converts the follower into a regular read-write index. This step is irreversible. Once you unfollow it there is no way to go back to following without setting it up from scratch.<\/p>\n<pre style=\"background: #0b0f19; color: #cbd5e1; padding: 1.2rem 1.5rem; border-radius: 14px; font-family: 'SF Mono','Fira Code','Consolas',monospace; font-size: 0.9rem; line-height: 1.6; margin: 1.5rem 0; border: 1px solid #1e293b; display: block; white-space: pre;\"><code style=\"background: transparent; color: #cbd5e1; font-family: inherit; font-size: inherit; white-space: pre; display: block; border: none; padding: 0;\">curl -XPOST http:\/\/es-ip:9200\/&lt;follower_index&gt;\/_ccr\/unfollow -u elastic:password<\/code><\/pre>\n<p><strong>Step 4: Access the Index again<\/strong><\/p>\n<p>Reopen the index to make it available for reads and writes.<\/p>\n<pre style=\"background: #0b0f19; color: #cbd5e1; padding: 1.2rem 1.5rem; border-radius: 14px; font-family: 'SF Mono','Fira Code','Consolas',monospace; font-size: 0.9rem; line-height: 1.6; margin: 1.5rem 0; border: 1px solid #1e293b; display: block; white-space: pre;\"><code style=\"background: transparent; color: #cbd5e1; font-family: inherit; font-size: inherit; white-space: pre; display: block; border: none; padding: 0;\">curl -XPOST \"http:\/\/es-ip:9200\/&lt;follower_index&gt;\/_open\" -u elastic:password<\/code><\/pre>\n<p>Then we went back to the Basic license, as we didn&#8217;t need the trial anymore. We also commented out remote_cluster_client from the node roles on all nodes and restarted them one by one. Leaving that role enabled when you&#8217;re not using CCR is just unnecessary overhead.<\/p>\n<pre style=\"background: #0b0f19; color: #cbd5e1; padding: 1.2rem 1.5rem; border-radius: 14px; font-family: 'SF Mono','Fira Code','Consolas',monospace; font-size: 0.9rem; line-height: 1.6; margin: 1.5rem 0; border: 1px solid #1e293b; display: block; white-space: pre;\"><code style=\"background: transparent; color: #cbd5e1; font-family: inherit; font-size: inherit; white-space: pre; display: block; border: none; padding: 0;\">\/\/ Revert to Basic license\r\ncurl -XPOST http:\/\/es-ip:9200\/_license\/start_basic?acknowledge=true -u elastic:password\r\n\r\n\/\/ verify data\r\ncurl -XGET \"http:\/\/es-ip:9200\/_cat\/indices?v&amp;s=index&amp;pretty\" -u elastic:password<\/code><\/pre>\n<h2>Best Practices<\/h2>\n<ul>\n<li>Use dedicated network links between datacenters if you can It makes a difference<\/li>\n<li>Configure your timeouts based on your actual network latency not the defaults<\/li>\n<li>Size your follower cluster properly It&#8217;s not just a passive receiver Its doing real work<\/li>\n<li>Use TLS Create CCR users with minimal privileges instead of using the elastic superuser<\/li>\n<li>Rotate certificates regularly<\/li>\n<\/ul>\n<h2>Conclusion<\/h2>\n<p>Cross-Cluster Replication gives a way to move Elasticsearch data between clusters with very little downtime. Here&#8217;s what we learned from our setup:<\/p>\n<ul>\n<li>Cross-Cluster Replication replicates indices automatically from the leader cluster to the follower cluster.<\/li>\n<li>You must set up TLS certificates correctly to keep communication, between clusters<\/li>\n<li>The remote_cluster_client role needs to be set on the follower cluster nodes.<\/li>\n<li>Unfollow actions can&#8217;t be undone so think carefully before switching over.<\/li>\n<\/ul>\n<p>Following this guide helps you build a CCR migration plan. It keeps your data consistent. Your business runs smoothly during the move.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction Managing Elasticsearch clusters in environments is a common challenge for organizations that run search and analytics work that is vital to the business. Whether you are moving to infrastructure, setting up disaster recovery or changing operating systems, keeping Elasticsearch data consistent and minimizing downtime are the top priorities. The primary objectives were to: Achieve [&hellip;]<\/p>\n","protected":false},"author":2382,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":0,"footnotes":""},"categories":[2348],"tags":[9033,9035,9036,7788,1524],"class_list":["post-83323","post","type-post","status-publish","format-standard","hentry","category-devops-technology","tag-ccr","tag-ccrsetup","tag-clusterreplication","tag-datamigration","tag-elasticsearch-2"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"Introduction Managing Elasticsearch clusters in environments is a common challenge for organizations that run search and analytics work that is vital to the business. Whether you are moving to infrastructure, setting up disaster recovery or changing operating systems, keeping Elasticsearch data consistent and minimizing downtime are the top priorities. The primary objectives were to: Achieve\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Mahima Chaudhary\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/2thenew.xyz\/blog\/elasticsearch-data-migration-across-clusters-using-cross-cluster-replication\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"TO THE NEW BLOG\" \/>\n\t\t<meta property=\"og:type\" content=\"blog\" \/>\n\t\t<meta property=\"og:title\" content=\"Elasticsearch Data Migration Across Clusters Using Cross-Cluster Replication | TO THE NEW Blog\" \/>\n\t\t<meta property=\"og:description\" content=\"Introduction Managing Elasticsearch clusters in environments is a common challenge for organizations that run search and analytics work that is vital to the business. Whether you are moving to infrastructure, setting up disaster recovery or changing operating systems, keeping Elasticsearch data consistent and minimizing downtime are the top priorities. The primary objectives were to: Achieve\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/2thenew.xyz\/blog\/elasticsearch-data-migration-across-clusters-using-cross-cluster-replication\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/2thenew.xyz\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/2thenew.xyz\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:site\" content=\"@tothenew\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Elasticsearch Data Migration Across Clusters Using Cross-Cluster Replication | TO THE NEW Blog\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Introduction Managing Elasticsearch clusters in environments is a common challenge for organizations that run search and analytics work that is vital to the business. Whether you are moving to infrastructure, setting up disaster recovery or changing operating systems, keeping Elasticsearch data consistent and minimizing downtime are the top priorities. The primary objectives were to: Achieve\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/2thenew.xyz\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/elasticsearch-data-migration-across-clusters-using-cross-cluster-replication\\\/#article\",\"name\":\"Elasticsearch Data Migration Across Clusters Using Cross-Cluster Replication | TO THE NEW Blog\",\"headline\":\"Elasticsearch Data Migration Across Clusters Using Cross-Cluster Replication\",\"author\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/mahima-chaudhary\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#organization\"},\"datePublished\":\"2026-10-11T01:26:50+05:30\",\"dateModified\":\"2026-10-27T23:12:00+05:30\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/elasticsearch-data-migration-across-clusters-using-cross-cluster-replication\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/elasticsearch-data-migration-across-clusters-using-cross-cluster-replication\\\/#webpage\"},\"articleSection\":\"DevOps, ccr, CCRSetup, ClusterReplication, DataMigration, elasticsearch\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/elasticsearch-data-migration-across-clusters-using-cross-cluster-replication\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.tothenew.com\\\/blog\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/devops-technology\\\/#listItem\",\"name\":\"DevOps\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/devops-technology\\\/#listItem\",\"position\":2,\"name\":\"DevOps\",\"item\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/devops-technology\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/elasticsearch-data-migration-across-clusters-using-cross-cluster-replication\\\/#listItem\",\"name\":\"Elasticsearch Data Migration Across Clusters Using Cross-Cluster Replication\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/elasticsearch-data-migration-across-clusters-using-cross-cluster-replication\\\/#listItem\",\"position\":3,\"name\":\"Elasticsearch Data Migration Across Clusters Using Cross-Cluster Replication\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/devops-technology\\\/#listItem\",\"name\":\"DevOps\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#organization\",\"name\":\"TO THE NEW Blog\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/mahima-chaudhary\\\/#author\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/mahima-chaudhary\\\/\",\"name\":\"Mahima Chaudhary\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/elasticsearch-data-migration-across-clusters-using-cross-cluster-replication\\\/#authorImage\",\"url\":\"https:\\\/\\\/newersworld-sf-static.tothenew.net\\\/prod\\\/profilePicFolder\\\/435dea63-8ae9-4f46-ab32-1db59c1e288f_6108-Mahima-Chaudhary-PROFILEPICTURE.jpeg\",\"width\":96,\"height\":96,\"caption\":\"Mahima Chaudhary\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/elasticsearch-data-migration-across-clusters-using-cross-cluster-replication\\\/#webpage\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/elasticsearch-data-migration-across-clusters-using-cross-cluster-replication\\\/\",\"name\":\"Elasticsearch Data Migration Across Clusters Using Cross-Cluster Replication | TO THE NEW Blog\",\"description\":\"Introduction Managing Elasticsearch clusters in environments is a common challenge for organizations that run search and analytics work that is vital to the business. Whether you are moving to infrastructure, setting up disaster recovery or changing operating systems, keeping Elasticsearch data consistent and minimizing downtime are the top priorities. The primary objectives were to: Achieve\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/elasticsearch-data-migration-across-clusters-using-cross-cluster-replication\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/mahima-chaudhary\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/mahima-chaudhary\\\/#author\"},\"datePublished\":\"2026-10-11T01:26:50+05:30\",\"dateModified\":\"2026-10-27T23:12:00+05:30\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/\",\"name\":\"TO THE NEW Blog\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Elasticsearch Data Migration Across Clusters Using Cross-Cluster Replication | TO THE NEW Blog","description":"Introduction Managing Elasticsearch clusters in environments is a common challenge for organizations that run search and analytics work that is vital to the business. Whether you are moving to infrastructure, setting up disaster recovery or changing operating systems, keeping Elasticsearch data consistent and minimizing downtime are the top priorities. The primary objectives were to: Achieve","canonical_url":"https:\/\/2thenew.xyz\/blog\/elasticsearch-data-migration-across-clusters-using-cross-cluster-replication\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/2thenew.xyz\/blog\/elasticsearch-data-migration-across-clusters-using-cross-cluster-replication\/#article","name":"Elasticsearch Data Migration Across Clusters Using Cross-Cluster Replication | TO THE NEW Blog","headline":"Elasticsearch Data Migration Across Clusters Using Cross-Cluster Replication","author":{"@id":"https:\/\/2thenew.xyz\/blog\/author\/mahima-chaudhary\/#author"},"publisher":{"@id":"https:\/\/2thenew.xyz\/blog\/#organization"},"datePublished":"2026-10-11T01:26:50+05:30","dateModified":"2026-10-27T23:12:00+05:30","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/2thenew.xyz\/blog\/elasticsearch-data-migration-across-clusters-using-cross-cluster-replication\/#webpage"},"isPartOf":{"@id":"https:\/\/2thenew.xyz\/blog\/elasticsearch-data-migration-across-clusters-using-cross-cluster-replication\/#webpage"},"articleSection":"DevOps, ccr, CCRSetup, ClusterReplication, DataMigration, elasticsearch"},{"@type":"BreadcrumbList","@id":"https:\/\/2thenew.xyz\/blog\/elasticsearch-data-migration-across-clusters-using-cross-cluster-replication\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/2thenew.xyz\/blog#listItem","position":1,"name":"Home","item":"https:\/\/2thenew.xyz\/blog","nextItem":{"@type":"ListItem","@id":"https:\/\/2thenew.xyz\/blog\/category\/devops-technology\/#listItem","name":"DevOps"}},{"@type":"ListItem","@id":"https:\/\/2thenew.xyz\/blog\/category\/devops-technology\/#listItem","position":2,"name":"DevOps","item":"https:\/\/2thenew.xyz\/blog\/category\/devops-technology\/","nextItem":{"@type":"ListItem","@id":"https:\/\/2thenew.xyz\/blog\/elasticsearch-data-migration-across-clusters-using-cross-cluster-replication\/#listItem","name":"Elasticsearch Data Migration Across Clusters Using Cross-Cluster Replication"},"previousItem":{"@type":"ListItem","@id":"https:\/\/2thenew.xyz\/blog#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/2thenew.xyz\/blog\/elasticsearch-data-migration-across-clusters-using-cross-cluster-replication\/#listItem","position":3,"name":"Elasticsearch Data Migration Across Clusters Using Cross-Cluster Replication","previousItem":{"@type":"ListItem","@id":"https:\/\/2thenew.xyz\/blog\/category\/devops-technology\/#listItem","name":"DevOps"}}]},{"@type":"Organization","@id":"https:\/\/2thenew.xyz\/blog\/#organization","name":"TO THE NEW Blog","url":"https:\/\/2thenew.xyz\/blog\/"},{"@type":"Person","@id":"https:\/\/2thenew.xyz\/blog\/author\/mahima-chaudhary\/#author","url":"https:\/\/2thenew.xyz\/blog\/author\/mahima-chaudhary\/","name":"Mahima Chaudhary","image":{"@type":"ImageObject","@id":"https:\/\/2thenew.xyz\/blog\/elasticsearch-data-migration-across-clusters-using-cross-cluster-replication\/#authorImage","url":"https:\/\/newersworld-sf-static.tothenew.net\/prod\/profilePicFolder\/435dea63-8ae9-4f46-ab32-1db59c1e288f_6108-Mahima-Chaudhary-PROFILEPICTURE.jpeg","width":96,"height":96,"caption":"Mahima Chaudhary"}},{"@type":"WebPage","@id":"https:\/\/2thenew.xyz\/blog\/elasticsearch-data-migration-across-clusters-using-cross-cluster-replication\/#webpage","url":"https:\/\/2thenew.xyz\/blog\/elasticsearch-data-migration-across-clusters-using-cross-cluster-replication\/","name":"Elasticsearch Data Migration Across Clusters Using Cross-Cluster Replication | TO THE NEW Blog","description":"Introduction Managing Elasticsearch clusters in environments is a common challenge for organizations that run search and analytics work that is vital to the business. Whether you are moving to infrastructure, setting up disaster recovery or changing operating systems, keeping Elasticsearch data consistent and minimizing downtime are the top priorities. The primary objectives were to: Achieve","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/2thenew.xyz\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/2thenew.xyz\/blog\/elasticsearch-data-migration-across-clusters-using-cross-cluster-replication\/#breadcrumblist"},"author":{"@id":"https:\/\/2thenew.xyz\/blog\/author\/mahima-chaudhary\/#author"},"creator":{"@id":"https:\/\/2thenew.xyz\/blog\/author\/mahima-chaudhary\/#author"},"datePublished":"2026-10-11T01:26:50+05:30","dateModified":"2026-10-27T23:12:00+05:30"},{"@type":"WebSite","@id":"https:\/\/2thenew.xyz\/blog\/#website","url":"https:\/\/2thenew.xyz\/blog\/","name":"TO THE NEW Blog","inLanguage":"en-US","publisher":{"@id":"https:\/\/2thenew.xyz\/blog\/#organization"}}]},"og:locale":"en_US","og:site_name":"TO THE NEW BLOG","og:type":"blog","og:title":"Elasticsearch Data Migration Across Clusters Using Cross-Cluster Replication | TO THE NEW Blog","og:description":"Introduction Managing Elasticsearch clusters in environments is a common challenge for organizations that run search and analytics work that is vital to the business. Whether you are moving to infrastructure, setting up disaster recovery or changing operating systems, keeping Elasticsearch data consistent and minimizing downtime are the top priorities. The primary objectives were to: Achieve","og:url":"https:\/\/2thenew.xyz\/blog\/elasticsearch-data-migration-across-clusters-using-cross-cluster-replication\/","og:image":"https:\/\/2thenew.xyz\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png","og:image:secure_url":"https:\/\/2thenew.xyz\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png","twitter:card":"summary","twitter:site":"@tothenew","twitter:title":"Elasticsearch Data Migration Across Clusters Using Cross-Cluster Replication | TO THE NEW Blog","twitter:description":"Introduction Managing Elasticsearch clusters in environments is a common challenge for organizations that run search and analytics work that is vital to the business. Whether you are moving to infrastructure, setting up disaster recovery or changing operating systems, keeping Elasticsearch data consistent and minimizing downtime are the top priorities. The primary objectives were to: Achieve","twitter:image":"https:\/\/2thenew.xyz\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png"},"aioseo_meta_data":{"post_id":"83323","title":null,"description":null,"keywords":null,"keyphrases":{"focus":{"keyphrase":"","score":0,"analysis":{"keyphraseInTitle":{"score":0,"maxScore":9,"error":1}}},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","local_seo":null,"limit_modified_date":false,"created":"2026-09-14 03:19:20","updated":"2026-10-27 17:42:02","focus_keyword":null,"additional_keywords":null,"truseo_locale":null,"ai":{"faqs":[],"keyPoints":[],"schemas":[],"titles":[],"descriptions":[],"socialPosts":{"email":{"subject":"","preview":"","content":""},"linkedin":[],"twitter":[],"facebook":[],"instagram":[]}},"breadcrumb_settings":null,"seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/2thenew.xyz\/blog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/2thenew.xyz\/blog\/category\/devops-technology\/\" title=\"DevOps\">DevOps<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tElasticsearch Data Migration Across Clusters Using Cross-Cluster Replication\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/2thenew.xyz\/blog"},{"label":"DevOps","link":"https:\/\/2thenew.xyz\/blog\/category\/devops-technology\/"},{"label":"Elasticsearch Data Migration Across Clusters Using Cross-Cluster Replication","link":"https:\/\/2thenew.xyz\/blog\/elasticsearch-data-migration-across-clusters-using-cross-cluster-replication\/"}],"_links":{"self":[{"href":"https:\/\/2thenew.xyz\/blog\/wp-json\/wp\/v2\/posts\/83323","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/2thenew.xyz\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/2thenew.xyz\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/2thenew.xyz\/blog\/wp-json\/wp\/v2\/users\/2382"}],"replies":[{"embeddable":true,"href":"https:\/\/2thenew.xyz\/blog\/wp-json\/wp\/v2\/comments?post=83323"}],"version-history":[{"count":34,"href":"https:\/\/2thenew.xyz\/blog\/wp-json\/wp\/v2\/posts\/83323\/revisions"}],"predecessor-version":[{"id":84089,"href":"https:\/\/2thenew.xyz\/blog\/wp-json\/wp\/v2\/posts\/83323\/revisions\/84089"}],"wp:attachment":[{"href":"https:\/\/2thenew.xyz\/blog\/wp-json\/wp\/v2\/media?parent=83323"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/2thenew.xyz\/blog\/wp-json\/wp\/v2\/categories?post=83323"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/2thenew.xyz\/blog\/wp-json\/wp\/v2\/tags?post=83323"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}