SQLinfo.ru - Все о MySQL PG day 17

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 30.09.2015 10:18:50

Buddy
Участник
Зарегистрирован: 30.09.2015
Сообщений: 4

mysql cluster от percona. sst выполняется от rootа

Добрый день!

Столнулся с неожиданной проблемой. Очень надеюсь на помощь.

Есть две свежие ВМ с debian 8. На каждую установлен percona-xtradb-cluster-56

Настроил их по инструкции
https://www.percona.com/doc/percona-xtr … howto.html

При запуске первой ноды, бутстрап выполняется нормально.
Но когда пытаюсь запустить вторую ноду получаю ошибку в логе:

2015-09-28 14:19:48 9432 [ERROR] InnoDB: ./ibdata1 can't be opened in read-write mode
2015-09-28 14:19:48 9432 [ERROR] InnoDB: The system tablespace must be writable!
2015-09-28 14:19:48 9432 [ERROR] Plugin 'InnoDB' init function returned error.
2015-09-28 14:19:48 9432 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2015-09-28 14:19:48 9432 [ERROR] Unknown/unsupported storage engine: InnoDB
2015-09-28 14:19:48 9432 [ERROR] Aborting

При этом вижу, что в каталоге /var/lib/mysql/ владельцем всех файлов и папок, которые прилетели по sst стал root и пользователь mysql, под которым происходит запуск демона естественно не может записать ничего в них.

Использую

# SST method
wsrep_sst_method=xtrabackup-v2

Что уж только не перепробовал...
Пожалуйста, подскажите в какую сторону копать.

Неактивен

 

#2 30.09.2015 14:01:22

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6610

Re: mysql cluster от percona. sst выполняется от rootа

Вы правильно определили проблему, но почему-то не решили ее smile

xtrabackup у Вас запускается из-под пользователя root, соответственно, файлики копируются
под ним. Нужно посмотреть, почему в конечном итоге оно запускается от рута (если везде в
конфигах написано user=mysql, должно быть под пользователем mysql), и поправить.

Как вариант, если лениво разбираться, можно в скрипт копирования в конце добавить
chown -R (там обычные скрипты), файлики копируются только при sst, при дальнейшей
работе будет использоваться уже протокол галеры.

Неактивен

 

#3 01.10.2015 14:06:30

Buddy
Участник
Зарегистрирован: 30.09.2015
Сообщений: 4

Re: mysql cluster от percona. sst выполняется от rootа

Здравствуйте, Paulus!

Большое спасибо вам за отклик!

Нужно посмотреть, почему в конечном итоге оно запускается от рута (если везде в конфигах написано user=mysql, должно быть под пользователем mysql), и поправить.

Вот как раз в этом и проблема, что я не знаю куда смотреть в этом случае))
Только что установленый percona-xtradb-cluster-56 на свежей ОС.
В my.cnf прописан
user=mysql

Стартую как обычно:
/etc/init.d/mysql start

Что ещё можно смотреть, ума не приложу...

ловить длинную портянку всех системных вызовов с помощью strace?

в скрипт копирования в конце добавить chown -R (там обычные скрипты)

Вот этого не хотелось бы, поскольку потом будет морока с обновлением...

Неактивен

 

#4 05.10.2015 14:19:43

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6610

Re: mysql cluster от percona. sst выполняется от rootа

Таак, давайте разбираться, почему не так.

Сделал следующее:
1. Взял две виртуалки с убунтой;
2. apt-get install percona-xtradb-cluster-56
3. Проставил конфиги ровно как в том мануале (только ip прописал другие)
4. bootstrap на одной, start на другой, всё завелось.

Давайте начнем со сравнения версий smile

# dpkg-query -W | grep percona
percona-release    0.1-3.trusty
percona-xtrabackup    2.2.12-1.trusty
percona-xtradb-cluster-56    5.6.25-25.12-1.trusty
percona-xtradb-cluster-client-5.6    5.6.25-25.12-1.trusty
percona-xtradb-cluster-common-5.6    5.6.25-25.12-1.trusty
percona-xtradb-cluster-galera-3    3.12.1.trusty
percona-xtradb-cluster-galera-3.x    3.12.1.trusty
percona-xtradb-cluster-server-5.6    5.6.25-25.12-1.trusty

Неактивен

 

#5 05.10.2015 14:24:51

Buddy
Участник
Зарегистрирован: 30.09.2015
Сообщений: 4

Re: mysql cluster от percona. sst выполняется от rootа

Давайте! smile

На обеих нодах

percona-xtrabackup    2.2.12-1.jessie
percona-xtradb-cluster-56    5.6.25-25.12-1.jessie
percona-xtradb-cluster-client-5.6    5.6.25-25.12-1.jessie
percona-xtradb-cluster-common-5.6    5.6.25-25.12-1.jessie
percona-xtradb-cluster-galera-3    3.12.1.jessie
percona-xtradb-cluster-galera-3.x    3.12.1.jessie
percona-xtradb-cluster-server-5.6    5.6.25-25.12-1.jessie

Отредактированно Buddy (05.10.2015 14:25:09)

Неактивен

 

#6 05.10.2015 14:34:23

Buddy
Участник
Зарегистрирован: 30.09.2015
Сообщений: 4

Re: mysql cluster от percona. sst выполняется от rootа

На всякий случай приведу полностью свой конфиг my.cnf, чтобы не было недоразумений. Вдруг вы уже в нём увидите проблему.

[client]
port            = 3306
socket          = /var/run/mysqld/mysqld.sock

[mysqld_safe]
socket          = /var/run/mysqld/mysqld.sock
nice            = 0

[mysqld]
innodb_file_per_table
skip-name-resolve
skip-external-locking
explicit_defaults_for_timestamp

user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
datadir         = /var/lib/mysql
tmpdir          = /tmp
lc-messages-dir = /usr/share/mysql
key_buffer_size = 2G
thread_stack            = 192K
thread_cache_size       = 100 # 8 - default
max_connections        = 300
max_user_connections   = 250
table_open_cache       = 8000 # 64 - def
tmp_table_size          = 512M
wait_timeout            = 1200
max_heap_table_size     = 1024M
memlock
join_buffer_size        = 8M
read_buffer_size        = 8M
sort_buffer_size        = 2M
thread_cache_size       = 100
read_rnd_buffer_size    = 2M
query_cache_size        = 256M
log_error = /var/log/mysql/error.log

#InnoDB
innodb_buffer_pool_size = 50G
innodb_additional_mem_pool_size = 16M
innodb_flush_log_at_trx_commit = 0
innodb_thread_concurrency = 16
innodb_read_io_threads = 8
innodb_write_io_threads = 8

#Cluster
# Path to Galera library
wsrep_provider=/usr/lib/libgalera_smm.so

# Cluster connection URL contains the IPs of node#1, node#2 and node#3
wsrep_cluster_address=gcomm://
#wsrep_cluster_address=gcomm://192.168.3.49,192.168.3.48

# In order for Galera to work correctly binlog format should be ROW
binlog_format=ROW

# MyISAM storage engine has only experimental support
default_storage_engine=InnoDB

# This changes how InnoDB autoincrement locks are managed and is a requirement for Galera
innodb_autoinc_lock_mode=2

# Node #1 address
wsrep_node_address=192.168.3.48

# SST method
wsrep_sst_method=xtrabackup-v2

# Cluster name
wsrep_cluster_name=cluster

# Authentication for SST method
wsrep_sst_auth="cluster:passwd"

[mysqldump]
quick
quote-names
max_allowed_packet      = 16M

[mysql]
[isamchk]
key_buffer              = 16M

Неактивен

 

#7 06.10.2015 19:06:26

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6610

Re: mysql cluster от percona. sst выполняется от rootа

Нет, проблемы в конфиге не вижу. У меня wsrep-cluster-address после старта остался со всеми адресами, у Вас закомменчен. Но, кажется, не должно влиять никак. и wsrep-node-address у Вас разные в конфигах, правильно? Чтобы друг на друга смотрели.

Версии одинаковые.

Давайте тогда логи внимательно читать, надо понять, где сломалось. Не должно было бы.

Еще можно во время sst посмотреть, под какими пользователями запущены демоны и дети (ps axuf).

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson