Add subpackage mariadb-server-galera
Resolves: 1310622
This commit is contained in:
parent
063b7bbe38
commit
803bbfca97
27
LICENSE.clustercheck
Normal file
27
LICENSE.clustercheck
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
Copyright (c) 2012-2014, Olaf van Zandwijk
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without modification,
|
||||||
|
are permitted provided that the following conditions are met:
|
||||||
|
|
||||||
|
1. Redistributions of source code must retain the above copyright notice,
|
||||||
|
this list of conditions and the following disclaimer.
|
||||||
|
|
||||||
|
2. Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
this list of conditions and the following disclaimer in the documentation
|
||||||
|
and/or other materials provided with the distribution.
|
||||||
|
|
||||||
|
3. Neither the name of the copyright holder nor the names of its contributors
|
||||||
|
may be used to endorse or promote products derived from this software without
|
||||||
|
specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||||
|
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||||
|
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||||
|
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
89
clustercheck.sh
Normal file
89
clustercheck.sh
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Script to make a proxy (ie HAProxy) capable of monitoring Galera cluster nodes properly
|
||||||
|
#
|
||||||
|
# Author: Olaf van Zandwijk <olaf.vanzandwijk@nedap.com>
|
||||||
|
# Author: Raghavendra Prabhu <raghavendra.prabhu@percona.com>
|
||||||
|
# Author: Ryan O'Hara <rohara@redhat.com>
|
||||||
|
#
|
||||||
|
# Documentation and download: https://github.com/olafz/percona-clustercheck
|
||||||
|
#
|
||||||
|
# Based on the original script from Unai Rodriguez
|
||||||
|
#
|
||||||
|
|
||||||
|
if [ -f @INSTALL_SYSCONFDIR@/sysconfig/clustercheck ]; then
|
||||||
|
. @INSTALL_SYSCONFDIR@/sysconfig/clustercheck
|
||||||
|
fi
|
||||||
|
|
||||||
|
MYSQL_USERNAME="${MYSQL_USERNAME-clustercheckuser}"
|
||||||
|
MYSQL_PASSWORD="${MYSQL_PASSWORD-clustercheckpassword!}"
|
||||||
|
MYSQL_HOST="${MYSQL_HOST:-127.0.0.1}"
|
||||||
|
MYSQL_PORT="${MYSQL_PORT:-3306}"
|
||||||
|
ERR_FILE="${ERR_FILE:-/dev/null}"
|
||||||
|
AVAILABLE_WHEN_DONOR=${AVAILABLE_WHEN_DONOR:-0}
|
||||||
|
AVAILABLE_WHEN_READONLY=${AVAILABLE_WHEN_READONLY:-1}
|
||||||
|
DEFAULTS_EXTRA_FILE=${DEFAULTS_EXTRA_FILE:-@INSTALL_SYSCONFDIR@/my.cnf}
|
||||||
|
|
||||||
|
#Timeout exists for instances where mysqld may be hung
|
||||||
|
TIMEOUT=10
|
||||||
|
|
||||||
|
if [[ -r $DEFAULTS_EXTRA_FILE ]];then
|
||||||
|
MYSQL_CMDLINE="mysql --defaults-extra-file=$DEFAULTS_EXTRA_FILE -nNE \
|
||||||
|
--connect-timeout=$TIMEOUT \
|
||||||
|
--user=${MYSQL_USERNAME} --password=${MYSQL_PASSWORD} \
|
||||||
|
--host=${MYSQL_HOST} --port=${MYSQL_PORT}"
|
||||||
|
else
|
||||||
|
MYSQL_CMDLINE="mysql -nNE --connect-timeout=$TIMEOUT \
|
||||||
|
--user=${MYSQL_USERNAME} --password=${MYSQL_PASSWORD} \
|
||||||
|
--host=${MYSQL_HOST} --port=${MYSQL_PORT}"
|
||||||
|
fi
|
||||||
|
#
|
||||||
|
# Perform the query to check the wsrep_local_state
|
||||||
|
#
|
||||||
|
WSREP_STATUS=$($MYSQL_CMDLINE -e "SHOW STATUS LIKE 'wsrep_local_state';" \
|
||||||
|
2>${ERR_FILE} | tail -1 2>>${ERR_FILE})
|
||||||
|
|
||||||
|
if [[ "${WSREP_STATUS}" == "4" ]] || [[ "${WSREP_STATUS}" == "2" && ${AVAILABLE_WHEN_DONOR} == 1 ]]
|
||||||
|
then
|
||||||
|
# Check only when set to 0 to avoid latency in response.
|
||||||
|
if [[ $AVAILABLE_WHEN_READONLY -eq 0 ]];then
|
||||||
|
READ_ONLY=$($MYSQL_CMDLINE -e "SHOW GLOBAL VARIABLES LIKE 'read_only';" \
|
||||||
|
2>${ERR_FILE} | tail -1 2>>${ERR_FILE})
|
||||||
|
|
||||||
|
if [[ "${READ_ONLY}" == "ON" ]];then
|
||||||
|
# Galera cluster node local state is 'Synced', but it is in
|
||||||
|
# read-only mode. The variable AVAILABLE_WHEN_READONLY is set to 0.
|
||||||
|
# => return HTTP 503
|
||||||
|
# Shell return-code is 1
|
||||||
|
echo -en "HTTP/1.1 503 Service Unavailable\r\n"
|
||||||
|
echo -en "Content-Type: text/plain\r\n"
|
||||||
|
echo -en "Connection: close\r\n"
|
||||||
|
echo -en "Content-Length: 35\r\n"
|
||||||
|
echo -en "\r\n"
|
||||||
|
echo -en "Galera cluster node is read-only.\r\n"
|
||||||
|
sleep 0.1
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
# Galera cluster node local state is 'Synced' => return HTTP 200
|
||||||
|
# Shell return-code is 0
|
||||||
|
echo -en "HTTP/1.1 200 OK\r\n"
|
||||||
|
echo -en "Content-Type: text/plain\r\n"
|
||||||
|
echo -en "Connection: close\r\n"
|
||||||
|
echo -en "Content-Length: 32\r\n"
|
||||||
|
echo -en "\r\n"
|
||||||
|
echo -en "Galera cluster node is synced.\r\n"
|
||||||
|
sleep 0.1
|
||||||
|
exit 0
|
||||||
|
else
|
||||||
|
# Galera cluster node local state is not 'Synced' => return HTTP 503
|
||||||
|
# Shell return-code is 1
|
||||||
|
echo -en "HTTP/1.1 503 Service Unavailable\r\n"
|
||||||
|
echo -en "Content-Type: text/plain\r\n"
|
||||||
|
echo -en "Connection: close\r\n"
|
||||||
|
echo -en "Content-Length: 36\r\n"
|
||||||
|
echo -en "\r\n"
|
||||||
|
echo -en "Galera cluster node is not synced.\r\n"
|
||||||
|
sleep 0.1
|
||||||
|
exit 1
|
||||||
|
fi
|
@ -1,6 +1,6 @@
|
|||||||
--- mariadb-10.1.11.orig/scripts/CMakeLists.txt 2016-01-28 13:12:51.000000000 +0100
|
--- mariadb-10.1.11.orig/scripts/CMakeLists.txt 2016-01-28 13:12:51.000000000 +0100
|
||||||
+++ mariadb-10.1.11/scripts/CMakeLists.txt 2016-02-03 12:46:26.306109293 +0100
|
+++ mariadb-10.1.11/scripts/CMakeLists.txt 2016-02-03 12:46:26.306109293 +0100
|
||||||
@@ -320,6 +320,34 @@ ELSE()
|
@@ -320,6 +320,35 @@ ELSE()
|
||||||
COMPONENT ${${file}_COMPONENT}
|
COMPONENT ${${file}_COMPONENT}
|
||||||
)
|
)
|
||||||
ENDFOREACH()
|
ENDFOREACH()
|
||||||
@ -17,6 +17,7 @@
|
|||||||
+ mysql-check-upgrade
|
+ mysql-check-upgrade
|
||||||
+ mysql-scripts-common
|
+ mysql-scripts-common
|
||||||
+ mysql_config_multilib
|
+ mysql_config_multilib
|
||||||
|
+ clustercheck
|
||||||
+ mysql.init
|
+ mysql.init
|
||||||
+ my.cnf
|
+ my.cnf
|
||||||
+ )
|
+ )
|
||||||
|
58
mariadb.spec
58
mariadb.spec
@ -54,6 +54,7 @@
|
|||||||
%bcond_without bench
|
%bcond_without bench
|
||||||
%bcond_without test
|
%bcond_without test
|
||||||
%bcond_without connect
|
%bcond_without connect
|
||||||
|
%bcond_without galera
|
||||||
|
|
||||||
# When there is already another package that ships /etc/my.cnf,
|
# When there is already another package that ships /etc/my.cnf,
|
||||||
# rather include it than ship the file again, since conflicts between
|
# rather include it than ship the file again, since conflicts between
|
||||||
@ -122,7 +123,7 @@
|
|||||||
|
|
||||||
Name: mariadb
|
Name: mariadb
|
||||||
Version: %{compatver}.%{bugfixver}
|
Version: %{compatver}.%{bugfixver}
|
||||||
Release: 2%{?with_debug:.debug}%{?dist}
|
Release: 3%{?with_debug:.debug}%{?dist}
|
||||||
Epoch: 1
|
Epoch: 1
|
||||||
|
|
||||||
Summary: A community developed branch of MySQL
|
Summary: A community developed branch of MySQL
|
||||||
@ -153,6 +154,9 @@ Source19: mysql.init.in
|
|||||||
Source50: rh-skipped-tests-base.list
|
Source50: rh-skipped-tests-base.list
|
||||||
Source51: rh-skipped-tests-arm.list
|
Source51: rh-skipped-tests-arm.list
|
||||||
Source52: rh-skipped-tests-ppc-s390.list
|
Source52: rh-skipped-tests-ppc-s390.list
|
||||||
|
# TODO: clustercheck contains some hard-coded paths, these should be expanded using template system
|
||||||
|
Source70: clustercheck.sh
|
||||||
|
Source71: LICENSE.clustercheck
|
||||||
|
|
||||||
# Comments for these patches are in the patch files
|
# Comments for these patches are in the patch files
|
||||||
# Patches common for more mysql-like packages
|
# Patches common for more mysql-like packages
|
||||||
@ -306,6 +310,27 @@ MariaDB packages.
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
|
||||||
|
%if %{with galera}
|
||||||
|
%package server-galera
|
||||||
|
Summary: The configuration files and scripts for galera replication
|
||||||
|
Group: Applications/Databases
|
||||||
|
Requires: %{name}-common%{?_isa} = %{sameevr}
|
||||||
|
Requires: %{name}-server%{?_isa} = %{sameevr}
|
||||||
|
Requires: galera >= 25.3.3
|
||||||
|
|
||||||
|
# obsoletion of mariadb-galera-server
|
||||||
|
Provides: mariadb-galera-server = %{sameevr}
|
||||||
|
Obsoletes: mariadb-galera-server < %{obsoleted_mariadb_galera_server_evr}
|
||||||
|
|
||||||
|
%description server-galera
|
||||||
|
MariaDB is a multi-user, multi-threaded SQL database server. It is a
|
||||||
|
client/server implementation consisting of a server daemon (mysqld)
|
||||||
|
and many different client programs and libraries. This package contains
|
||||||
|
the MariaDB server and some accompanying files and directories.
|
||||||
|
MariaDB is a community developed branch of MySQL.
|
||||||
|
%endif
|
||||||
|
|
||||||
|
|
||||||
%package server
|
%package server
|
||||||
Summary: The MariaDB server and related files
|
Summary: The MariaDB server and related files
|
||||||
Group: Applications/Databases
|
Group: Applications/Databases
|
||||||
@ -350,10 +375,6 @@ Provides: mysql-compat-server%{?_isa} = %{sameevr}
|
|||||||
%{?with_conflicts:Conflicts: mariadb-galera-server}
|
%{?with_conflicts:Conflicts: mariadb-galera-server}
|
||||||
%{?obsoleted_mysql_evr:Obsoletes: mysql-server < %{obsoleted_mysql_evr}}
|
%{?obsoleted_mysql_evr:Obsoletes: mysql-server < %{obsoleted_mysql_evr}}
|
||||||
|
|
||||||
# obsoletion of mariadb-galera-server
|
|
||||||
Provides: mariadb-galera-server = %{sameevr}
|
|
||||||
Obsoletes: mariadb-galera-server < %{obsoleted_mariadb_galera_server_evr}
|
|
||||||
|
|
||||||
%description server
|
%description server
|
||||||
MariaDB is a multi-user, multi-threaded SQL database server. It is a
|
MariaDB is a multi-user, multi-threaded SQL database server. It is a
|
||||||
client/server implementation consisting of a server daemon (mysqld)
|
client/server implementation consisting of a server daemon (mysqld)
|
||||||
@ -551,7 +572,7 @@ cat %{SOURCE52} | tee -a mysql-test/rh-skipped-tests.list
|
|||||||
|
|
||||||
cp %{SOURCE2} %{SOURCE3} %{SOURCE10} %{SOURCE11} %{SOURCE12} %{SOURCE13} \
|
cp %{SOURCE2} %{SOURCE3} %{SOURCE10} %{SOURCE11} %{SOURCE12} %{SOURCE13} \
|
||||||
%{SOURCE14} %{SOURCE15} %{SOURCE16} %{SOURCE17} %{SOURCE18} %{SOURCE19} \
|
%{SOURCE14} %{SOURCE15} %{SOURCE16} %{SOURCE17} %{SOURCE18} %{SOURCE19} \
|
||||||
scripts
|
%{SOURCE70} scripts
|
||||||
|
|
||||||
%build
|
%build
|
||||||
|
|
||||||
@ -762,6 +783,15 @@ install -p -m 0644 %{SOURCE5} %{basename:%{SOURCE5}}
|
|||||||
install -p -m 0644 %{SOURCE6} %{basename:%{SOURCE6}}
|
install -p -m 0644 %{SOURCE6} %{basename:%{SOURCE6}}
|
||||||
install -p -m 0644 %{SOURCE7} %{basename:%{SOURCE7}}
|
install -p -m 0644 %{SOURCE7} %{basename:%{SOURCE7}}
|
||||||
install -p -m 0644 %{SOURCE16} %{basename:%{SOURCE16}}
|
install -p -m 0644 %{SOURCE16} %{basename:%{SOURCE16}}
|
||||||
|
install -p -m 0644 %{SOURCE71} %{basename:%{SOURCE71}}
|
||||||
|
|
||||||
|
# install galera config file
|
||||||
|
install -p -m 0644 support-files/wsrep.cnf %{buildroot}%{_sysconfdir}/my.cnf.d/galera.cnf
|
||||||
|
|
||||||
|
# install the clustercheck script
|
||||||
|
mkdir -p %{buildroot}%{_sysconfdir}/sysconfig
|
||||||
|
touch %{buildroot}%{_sysconfdir}/sysconfig/clustercheck
|
||||||
|
install -p -m 0755 scripts/clustercheck %{buildroot}%{_bindir}/clustercheck
|
||||||
|
|
||||||
# install the list of skipped tests to be available for user runs
|
# install the list of skipped tests to be available for user runs
|
||||||
install -p -m 0644 mysql-test/rh-skipped-tests.list %{buildroot}%{_datadir}/mysql-test
|
install -p -m 0644 mysql-test/rh-skipped-tests.list %{buildroot}%{_datadir}/mysql-test
|
||||||
@ -779,6 +809,9 @@ rm -f %{buildroot}%{_sysconfdir}/logrotate.d/mysql
|
|||||||
# remove solaris files
|
# remove solaris files
|
||||||
rm -rf %{buildroot}%{_datadir}/%{pkg_name}/solaris/
|
rm -rf %{buildroot}%{_datadir}/%{pkg_name}/solaris/
|
||||||
|
|
||||||
|
# rename the wsrep README so it corresponds with the other README names
|
||||||
|
mv Docs/README-wsrep Docs/README.wsrep
|
||||||
|
|
||||||
%if %{without clibrary}
|
%if %{without clibrary}
|
||||||
unlink %{buildroot}%{_libdir}/mysql/libmysqlclient.so
|
unlink %{buildroot}%{_libdir}/mysql/libmysqlclient.so
|
||||||
unlink %{buildroot}%{_libdir}/mysql/libmysqlclient_r.so
|
unlink %{buildroot}%{_libdir}/mysql/libmysqlclient_r.so
|
||||||
@ -1023,6 +1056,13 @@ fi
|
|||||||
%lang(uk) %{_datadir}/%{pkg_name}/ukrainian
|
%lang(uk) %{_datadir}/%{pkg_name}/ukrainian
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
%files server-galera
|
||||||
|
%doc Docs/README.wsrep
|
||||||
|
%license LICENSE.clustercheck
|
||||||
|
%{_bindir}/galera_new_cluster
|
||||||
|
%{_bindir}/clustercheck
|
||||||
|
%config(noreplace) %{_sysconfdir}/my.cnf.d/galera.cnf
|
||||||
|
|
||||||
%files server
|
%files server
|
||||||
%doc README.mysql-cnf
|
%doc README.mysql-cnf
|
||||||
|
|
||||||
@ -1031,7 +1071,6 @@ fi
|
|||||||
%{_bindir}/aria_ftdump
|
%{_bindir}/aria_ftdump
|
||||||
%{_bindir}/aria_pack
|
%{_bindir}/aria_pack
|
||||||
%{_bindir}/aria_read_log
|
%{_bindir}/aria_read_log
|
||||||
%{_bindir}/galera_new_cluster
|
|
||||||
%{_bindir}/mariadb-service-convert
|
%{_bindir}/mariadb-service-convert
|
||||||
%{_bindir}/myisamchk
|
%{_bindir}/myisamchk
|
||||||
%{_bindir}/myisam_ftdump
|
%{_bindir}/myisam_ftdump
|
||||||
@ -1067,6 +1106,7 @@ fi
|
|||||||
%config(noreplace) %{_sysconfdir}/my.cnf.d/%{pkg_name}-server.cnf
|
%config(noreplace) %{_sysconfdir}/my.cnf.d/%{pkg_name}-server.cnf
|
||||||
%config(noreplace) %{_sysconfdir}/my.cnf.d/auth_gssapi.cnf
|
%config(noreplace) %{_sysconfdir}/my.cnf.d/auth_gssapi.cnf
|
||||||
%{?with_tokudb:%config(noreplace) %{_sysconfdir}/my.cnf.d/tokudb.cnf}
|
%{?with_tokudb:%config(noreplace) %{_sysconfdir}/my.cnf.d/tokudb.cnf}
|
||||||
|
%attr(0640,root,root) %ghost %config(noreplace) %{_sysconfdir}/sysconfig/clustercheck
|
||||||
|
|
||||||
%{_libexecdir}/mysqld
|
%{_libexecdir}/mysqld
|
||||||
|
|
||||||
@ -1204,6 +1244,10 @@ fi
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Mar 22 2016 Jakub Dorňák <jdornak@redhat.com> - 1:10.1.12-3
|
||||||
|
- Add subpackage mariadb-server-galera
|
||||||
|
Resolves: 1310622
|
||||||
|
|
||||||
* Tue Mar 01 2016 Honza Horak <hhorak@redhat.com> - 1:10.1.12-2
|
* Tue Mar 01 2016 Honza Horak <hhorak@redhat.com> - 1:10.1.12-2
|
||||||
- Rebuild for BZ#1309199 (symbol versioning)
|
- Rebuild for BZ#1309199 (symbol versioning)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user