Skip to content

JE-74444 #376

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jun 10, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ The package includes Highly Available [*ProxySQL Load Balancer*](http://www.prox

To get started, you can click the **Deploy to Cloud** button, specify your email address within the widget, choose one of the [Virtuozzo Public Cloud Providers](https://www.virtuozzo.com/application-platform-partners/) providers and press **Install**.

[![Deploy](images/deploy-to-cloud.png)](https://jelastic.com/install-application/?manifest=https://raw.githubusercontent.com/jelastic-jps/mysql-cluster/v3.0.0/manifest.yml)
[![Deploy](images/deploy-to-cloud.png)](https://jelastic.com/install-application/?manifest=https://cdn.jsdelivr.net/gh/jelastic-jps/mysql-cluster@v3.0.0/manifest.yml)

If you are already registered at Virtuozzo Application Platform(VAP), you can deploy this cluster from Marketplace.

Expand All @@ -62,4 +62,3 @@ After successful installation, you’ll receive a number of default emails based
To start offering this solution to your customers please follow to [Auto-Scalable Clusters for Managed Cloud Business](https://www.virtuozzo.com/application-platform/?referer=jelastic)



2 changes: 1 addition & 1 deletion addons/auto-clustering/auto-cluster.jps
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
jpsType: update
id: mysql-auto-cluster
name: Scalable Database cluster
logo: https://raw.githubusercontent.com/jelastic-jps/mysql-cluster/master/images/mysql-logo.png
logo: https://cdn.jsdelivr.net/gh/jelastic-jps/mysql-cluster@master/images/mysql-logo.png
description:
text: Ready-to-work scalable MySQL Cluster with primary-secondary asynchronous replication
and ProxySQL load balancer in front of it. Is supplied with embedded Orchestrator
Expand Down
4 changes: 2 additions & 2 deletions addons/auto-clustering/scripts/auto-cluster-logic.jps
Original file line number Diff line number Diff line change
Expand Up @@ -43,14 +43,14 @@ onInstall:
SCHEME: ${settings.scheme}

- install:
jps: https://raw.githubusercontent.com/jelastic-jps/mysql-cluster/master/addons/recovery/manifest.yml?_r=${fn.random}
jps: https://cdn.jsdelivr.net/gh/jelastic-jps/mysql-cluster@master/addons/recovery/manifest.yml?_r=${fn.random}
nodeGroup: sqldb
targetNodes: sqldb
settings:
install: true

- install:
jps: https://raw.githubusercontent.com/jelastic-jps/mysql-cluster/master/addons/check-corrupts/manifest.yml?_r=${fn.random}
jps: https://cdn.jsdelivr.net/gh/jelastic-jps/mysql-cluster@master/addons/check-corrupts/manifest.yml?_r=${fn.random}
nodeGroup: sqldb
targetNodes: sqldb
settings:
Expand Down
2 changes: 1 addition & 1 deletion addons/backup/backup-to-nfs.jps
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
"postgres", "postgres8", "postgres9"
]
},
"baseUrl": "https://raw.githubusercontent.com/jelastic-jps/mysql-cluster/master/addons/backup",
"baseUrl": "https://cdn.jsdelivr.net/gh/jelastic-jps/mysql-cluster@master/addons/backup",
"logo": "/images/backup-to-nfs.png",
"globals": {
"backup_path": "/data/backups"
Expand Down
2 changes: 1 addition & 1 deletion addons/backup/backup-to-s3.jps
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
"postgres", "postgres8", "postgres9"
]
},
"baseUrl": "https://raw.githubusercontent.com/jelastic-jps/mysql-cluster/master/addons/backup",
"baseUrl": "https://cdn.jsdelivr.net/gh/jelastic-jps/mysql-cluster@master/addons/backup",
"logo": "/images/backup-to-s3.png",
"globals": {
"backup_path": "/data/backups"
Expand Down
6 changes: 3 additions & 3 deletions addons/mariadb-cluster.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,15 @@
"values": [{
"value": "master",
"caption": "Primary-Primary",
"tooltip": "<h3>Primary-Primary with Scalable Secondaries</h3>Pre-configured replication with two interconnected primary databases. While scaling horizontally, the cluster is extended with additional secondary nodes. <a href='https://jelastic.com/blog/mysql-mariadb-database-auto-clustering-cloud-hosting/'>Learn More</a> <img width='314' height='280' src='https://raw.githubusercontent.com/jelastic/icons/master/mariadb/tip-cluster-mm.svg?sanitize=true'>"
"tooltip": "<h3>Primary-Primary with Scalable Secondaries</h3>Pre-configured replication with two interconnected primary databases. While scaling horizontally, the cluster is extended with additional secondary nodes. <a href='https://jelastic.com/blog/mysql-mariadb-database-auto-clustering-cloud-hosting/'>Learn More</a> <img width='314' height='280' src='https://cdn.jsdelivr.net/gh/jelastic/icons@master/mariadb/tip-cluster-mm.svg?sanitize=true'>"
}, {
"value": "slave",
"caption": "Primary-Secondary",
"tooltip": "<h3>Primary-Secondary with Scalable Secondaries</h3>Pre-configured replication with one primary and one secondary database. While scaling horizontally, the cluster is extended with additional secondaries. <a href='https://jelastic.com/blog/mysql-mariadb-database-auto-clustering-cloud-hosting/'>Learn More</a> <img width='314' height='280' src='https://raw.githubusercontent.com/jelastic/icons/master/mariadb/tip-cluster-ms.svg?sanitize=true'>"
"tooltip": "<h3>Primary-Secondary with Scalable Secondaries</h3>Pre-configured replication with one primary and one secondary database. While scaling horizontally, the cluster is extended with additional secondaries. <a href='https://jelastic.com/blog/mysql-mariadb-database-auto-clustering-cloud-hosting/'>Learn More</a> <img width='314' height='280' src='https://cdn.jsdelivr.net/gh/jelastic/icons@master/mariadb/tip-cluster-ms.svg?sanitize=true'>"
}, {
"value": "galera",
"caption": "Galera",
"tooltip": "<h3>Galera Cluster</h3>Multi-Primary synchronous replication which is performed at a transaction commit time. All servers can accept write transactions even if being issued concurrently. <a href='https://jelastic.com/blog/mysql-mariadb-database-auto-clustering-cloud-hosting/'>Learn More</a> <img width='314' height='280' src='https://raw.githubusercontent.com/jelastic/icons/master/mariadb/tip-cluster-gl.svg?sanitize=true'>"
"tooltip": "<h3>Galera Cluster</h3>Multi-Primary synchronous replication which is performed at a transaction commit time. All servers can accept write transactions even if being issued concurrently. <a href='https://jelastic.com/blog/mysql-mariadb-database-auto-clustering-cloud-hosting/'>Learn More</a> <img width='314' height='280' src='https://cdn.jsdelivr.net/gh/jelastic/icons@master/mariadb/tip-cluster-gl.svg?sanitize=true'>"
}
],
"tipParams": {"dismissDelay":600000,"anchor":"l","hideOnOver":false,"showDelay":0,"text":"LT_Tip_Cluster_MariaDB_%(value)"}
Expand Down
6 changes: 3 additions & 3 deletions addons/mariadb104-cluster.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,15 +21,15 @@
"values": [{
"value": "master",
"caption": "Primary-Primary",
"tooltip": "<h3>Primary-Primary with Extra Secondaries</h3>Pre-configured replication with two interconnected primary databases. While horizontal scaling the cluster is extended with additional secondary nodes. <img width='314' height='280' src='https://raw.githubusercontent.com/jelastic/icons/master/mariadb/tip-cluster-mm.svg?sanitize=true'>"
"tooltip": "<h3>Primary-Primary with Extra Secondaries</h3>Pre-configured replication with two interconnected primary databases. While horizontal scaling the cluster is extended with additional secondary nodes. <img width='314' height='280' src='https://cdn.jsdelivr.net/gh/jelastic/icons@master/mariadb/tip-cluster-mm.svg?sanitize=true'>"
}, {
"value": "slave",
"caption": "Primary-Secondary",
"tooltip": "<h3>Primary-Secondary with Extra Secondaries</h3>Pre-configured replication with one primary and one secondary. While horizontal scaling the cluster is extended with additional secondaries. <img width='314' height='280' src='https://raw.githubusercontent.com/jelastic/icons/master/mariadb/tip-cluster-ms.svg?sanitize=true'>"
"tooltip": "<h3>Primary-Secondary with Extra Secondaries</h3>Pre-configured replication with one primary and one secondary. While horizontal scaling the cluster is extended with additional secondaries. <img width='314' height='280' src='https://cdn.jsdelivr.net/gh/jelastic/icons@master/mariadb/tip-cluster-ms.svg?sanitize=true'>"
}, {
"value": "galera",
"caption": "Galera",
"tooltip": "<h3>Galera Cluster</h3>All servers can accept updates even if being issued concurrently. <img width='314' height='280' src='https://raw.githubusercontent.com/jelastic/icons/master/mariadb/tip-cluster-gl.svg?sanitize=true'>"
"tooltip": "<h3>Galera Cluster</h3>All servers can accept updates even if being issued concurrently. <img width='314' height='280' src='https://cdn.jsdelivr.net/gh/jelastic/icons@master/mariadb/tip-cluster-gl.svg?sanitize=true'>"
}
],
"tipParams": {"dismissDelay":600000,"anchor":"l","hideOnOver":false,"showDelay":0,"text":"LT_Tip_Cluster_MariaDB_%(value)"}
Expand Down
4 changes: 2 additions & 2 deletions addons/mysql-cluster.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,11 @@
"values": [{
"value": "master",
"caption": "Primary-Primary",
"tooltip": "<h3>Primary-Primary with Scalable Secondaries</h3>Pre-configured replication with two interconnected primary databases. While scaling horizontally, the cluster is extended with additional secondary nodes. <a href='https://jelastic.com/blog/mysql-mariadb-database-auto-clustering-cloud-hosting/'>Learn More</a> <img width='314' height='280' src='https://raw.githubusercontent.com/jelastic/icons/master/mysql/tip-cluster-mm.svg?sanitize=true'>"
"tooltip": "<h3>Primary-Primary with Scalable Secondaries</h3>Pre-configured replication with two interconnected primary databases. While scaling horizontally, the cluster is extended with additional secondary nodes. <a href='https://jelastic.com/blog/mysql-mariadb-database-auto-clustering-cloud-hosting/'>Learn More</a> <img width='314' height='280' src='https://cdn.jsdelivr.net/gh/jelastic/icons@master/mysql/tip-cluster-mm.svg?sanitize=true'>"
}, {
"value": "slave",
"caption": "Primary-Secondary",
"tooltip": "<h3>Primary-Secondary with Scalable Secondaries</h3>Pre-configured replication with one primary and one secondary database. While scaling horizontally, the cluster is extended with additional secondaries. <a href='https://jelastic.com/blog/mysql-mariadb-database-auto-clustering-cloud-hosting/'>Learn More</a> <img width='314' height='280' src='https://raw.githubusercontent.com/jelastic/icons/master/mysql/tip-cluster-ms.svg?sanitize=true'>"
"tooltip": "<h3>Primary-Secondary with Scalable Secondaries</h3>Pre-configured replication with one primary and one secondary database. While scaling horizontally, the cluster is extended with additional secondaries. <a href='https://jelastic.com/blog/mysql-mariadb-database-auto-clustering-cloud-hosting/'>Learn More</a> <img width='314' height='280' src='https://cdn.jsdelivr.net/gh/jelastic/icons@master/mysql/tip-cluster-ms.svg?sanitize=true'>"
}],
"tipParams": {
"dismissDelay": 600000,
Expand Down
1 change: 0 additions & 1 deletion addons/recovery/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,4 +65,3 @@ To perform automatic recovery, provide database user credentials either you got
In case the automatic recovery failed and you go with manual recovery flow, first take a look at **/var/log/db_recovery.log** file to get better understanding of a nature of detected error. Then you can try to do recovery yourself using our guide following the link in the **Information** window and official documentation from [MySQL](https://mysql.org)/[MariaDB](https://mariadb.org) teams.



1 change: 0 additions & 1 deletion addons/recovery/README.md.backup
Original file line number Diff line number Diff line change
Expand Up @@ -65,4 +65,3 @@ To perform automatic recovery, provide database user credentials either you got
In case the automatic recovery failed and you go with manual recovery flow, first take a look at **/var/log/db_recovery.log** file to get better understanding of a nature of detected error. Then you can try to do recovery yourself using our guide following the link in the **Information** window and official documentation from [MySQL](https://mysql.org)/[MariaDB](https://mariadb.org) teams.



2 changes: 1 addition & 1 deletion addons/recovery/manifest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ description:
text: The Database Cluster Recovery add-on performs a comprehensive diagnostic of your MySQL/MariaDB Cluster (Galera, Primary-Primary, Primary-Secondary) to detect any disruptions of the provisioned service. In case of errors, the automatic Cluster Recovery functionality can restore the cluster operability after most of the problems.
short: The add-on performs a comprehensive diagnostic of your database cluster and can perform automatic recovery.

baseUrl: https://raw.githubusercontent.com/jelastic-jps/mysql-cluster/v3.0.0/addons/recovery
baseUrl: https://cdn.jsdelivr.net/gh/jelastic-jps/mysql-cluster@v3.0.0/addons/recovery

targetNodes:
nodeGroup: sqldb
Expand Down
4 changes: 2 additions & 2 deletions addons/recovery/scripts/db-recovery.js
Original file line number Diff line number Diff line change
Expand Up @@ -442,9 +442,9 @@ function execRecovery(scenario, donor, nodeid) {
action = exec;
}

api.marketplace.console.WriteLog("curl --silent https://raw.githubusercontent.com/jelastic-jps/mysql-cluster/v2.5.0/addons/recovery/scripts/db-recovery.sh > /tmp/db-recovery.sh && bash /tmp/db-recovery.sh " + action);
api.marketplace.console.WriteLog("curl --silent https://cdn.jsdelivr.net/gh/jelastic-jps/mysql-cluster@v2.5.0/addons/recovery/scripts/db-recovery.sh > /tmp/db-recovery.sh && bash /tmp/db-recovery.sh " + action);
return cmd({
command: "curl --silent https://raw.githubusercontent.com/jelastic-jps/mysql-cluster/v2.5.0/addons/recovery/scripts/db-recovery.sh > /tmp/db-recovery.sh && bash /tmp/db-recovery.sh " + action,
command: "curl --silent https://cdn.jsdelivr.net/gh/jelastic-jps/mysql-cluster@v2.5.0/addons/recovery/scripts/db-recovery.sh > /tmp/db-recovery.sh && bash /tmp/db-recovery.sh " + action,
nodeid: nodeid || ""
});
}
Expand Down
2 changes: 1 addition & 1 deletion scripts/common.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
globals:
db_cluster_path: https://raw.githubusercontent.com/jelastic-jps/mysql-cluster/v3.0.0
db_cluster_path: https://cdn.jsdelivr.net/gh/jelastic-jps/mysql-cluster@3.0.0
customConfigFile: /etc/mysql/conf.d/my_custom.cnf

actions:
Expand Down
2 changes: 1 addition & 1 deletion scripts/master-master.jps
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,6 @@ actions:

setupSecondaryReplication:
- cmd[${this}]: |-
curl --silent https://raw.githubusercontent.com/jelastic-jps/mysql-cluster/master/addons/recovery/scripts/db-recovery.sh > /tmp/db-recovery.sh;
curl --silent https://cdn.jsdelivr.net/gh/jelastic-jps/mysql-cluster@master/addons/recovery/scripts/db-recovery.sh > /tmp/db-recovery.sh;
bash /tmp/db-recovery.sh --scenario restore_secondary_from_primary --donor-ip ${globals.primary1_ip} --additional-primary ${globals.primary2_ip};
user: root
2 changes: 1 addition & 1 deletion scripts/master-slave.jps
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,6 @@ actions:
- setGlobals:
PRIMARY_IP: ${nodes.sqldb.master.address}
- cmd[${this}]: |-
curl --silent https://raw.githubusercontent.com/jelastic-jps/mysql-cluster/master/addons/recovery/scripts/db-recovery.sh > /tmp/db-recovery.sh;
curl --silent https://cdn.jsdelivr.net/gh/jelastic-jps/mysql-cluster@master/addons/recovery/scripts/db-recovery.sh > /tmp/db-recovery.sh;
bash /tmp/db-recovery.sh --scenario restore_secondary_from_primary --donor-ip ${globals.PRIMARY_IP};
user: root
2 changes: 1 addition & 1 deletion scripts/proxy-common.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
globals:
db_cluster_path: https://raw.githubusercontent.com/jelastic-jps/mysql-cluster/v3.0.0
db_cluster_path: https://cdn.jsdelivr.net/gh/jelastic-jps/mysql-cluster@3.0.0
proxy_web_port: 4848

actions:
Expand Down
3 changes: 1 addition & 2 deletions texts/phpmyadmin-credentials-galera.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,4 @@ The provided credentials can be used to access all database nodes in the layer:
Be aware of the **[Galera Cluster - Known Limitations](https://mariadb.com/kb/en/mariadb-galera-cluster-known-limitations/)**.
Ignoring these requirements may result in replication failure.

**Note**: When restoring the Galera Cluster from the database dump, no extra actions are required if working via the **Backup/Restore** add-on provided with this solution. However, in the case of <u>manual restoration</u>, it is essential to consider the limitations of the MariaDB Galera Cluster. We recommend following our dedicated "**[Galera Manual Restore from Dump](https://github.com/jelastic-jps/database-backup-addon/blob/main/docs/ManualRestoreFromDump.md)**" guide.

**Note**: When restoring the Galera Cluster from the database dump, no extra actions are required if working via the **Backup/Restore** add-on provided with this solution. However, in the case of <u>manual restoration</u>, it is essential to consider the limitations of the MariaDB Galera Cluster. We recommend following our dedicated "**[Galera Manual Restore from Dump](https://cdn.jsdelivr.net/gh/jelastic-jps/database-backup-addon@main/docs/ManualRestoreFromDump.md)**" guide.
2 changes: 1 addition & 1 deletion texts/proxy-entrypoint-galera.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
Be aware of the **[Galera Cluster - Known Limitations](https://mariadb.com/kb/en/mariadb-galera-cluster-known-limitations/)**.
Ignoring these requirements may result in replication failure.

**Note**: When restoring the Galera Cluster from the database dump, no extra actions are required if working via the **Backup/Restore** add-on provided with this solution. However, in the case of <u>manual restoration</u>, it is essential to consider the limitations of the MariaDB Galera Cluster. We recommend following our dedicated "**[Galera Manual Restore from Dump](https://github.com/jelastic-jps/database-backup-addon/blob/main/docs/ManualRestoreFromDump.md)**" guide.
**Note**: When restoring the Galera Cluster from the database dump, no extra actions are required if working via the **Backup/Restore** add-on provided with this solution. However, in the case of <u>manual restoration</u>, it is essential to consider the limitations of the MariaDB Galera Cluster. We recommend following our dedicated "**[Galera Manual Restore from Dump](https://cdn.jsdelivr.net/gh/jelastic-jps/database-backup-addon@main/docs/ManualRestoreFromDump.md)**" guide.

___

Expand Down
1 change: 0 additions & 1 deletion texts/proxy-entrypoint.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,4 +31,3 @@ The instructions below can help you with the further managing your database clus
- [Monitor the statistics](https://docs.jelastic.com/view-app-statistics) & [view log files](https://docs.jelastic.com/view-log-files)
- [Access environment via SSH](https://docs.jelastic.com/ssh-access)
- [DNS Hostnames for Direct Connection](https://jelastic.com/blog/dns-hostnames-for-direct-container-connection-at-jelastic-paas/)