MariaDB 10.0 медленная работа mysqldump

Существует большая работа, вовлеченная в просто обнаружение что Вы действительно eed уже не говоря о предоставлении определенных рекомендаций, но запустить Вас....

Необходимо, конечно, запланировать использование LDAP для большого количества материала аутентификации/авторизации. Я рекомендовал бы GoSA как решение для Plug and Play.

NFS как система совместного доступа к файлам делает пользователей отделения из отдельных машин очень легкими - но NFS не является файловой системой очень защищенной сети и имеет другие проблемы также.

Я не судил меня, но Вы могли бы хотеть к исследованию с помощью SMB для домашних директоров пользователей - существует pam модуль, который обрабатывает монтирование дисков.

Если всеми клиентами является базирующийся Linux - затем Вы могли бы рассмотреть использование scp для совместного доступа к файлам - большинство современных файловых менеджеров будет счастливо работать сверху ssh (я главным образом использую KDE - где весь доступ к файлу может быть направлен через обертки).

Для печати - чашки. Не также интегрировался с LDAP, как это, вероятно, должно быть - но в большинстве целей это не такая большая проблема. И единственная реальная альтернатива является BSD печать системы - который не лучше для интеграции и терпит неудачу на простоте конфигурации (по моему скромному мнению - не горите - я все еще использую BSD lpd для руководящей организации очередей материала непринтера как факс).

Существует много инструментов для руководящего программного обеспечения несколько машин. Среда Canonical определенно стоит взгляда - особенно, если Вы - планирование использования Ubuntu так или иначе. Вы не говорите, о скольких Вы говорите. Я рекомендовал бы настроить ssh сервер на каждом поле и сервер GUI (X, VNC, FreeNX).

Совместное использование/система хранения Documents & PIM

Ох, это трудно дать категорический ответ на. Kolab+Kontact? Эволюция +....? Zimbra? Они обеспечат, почтовый/PIM/ведение календаря документ, совместно использующий, является другой вещью altogther.

1
задан 11 February 2014 в 11:37
1 ответ

Edit:

The issue is confirmed in MariaDB 10.0.8 and 5.5.36, and confirmed not to exist in MySQL 5.5.36 apparently due to implementation differences in the query optimizer.

The text below is therefore adjusted according to the recommendations by Elena Stepanova of MariaDB.


I have reproduced this behaviour in MariaDB 10.0.8 on Debian wheezy. I have not been able to reproduce it in MySQL 5.5.36.

If you execute mysqldump -uroot, or any user with full privileges, this generates a query that causes MariaDB's mysqld to scan the database superdirectory and all subdirectories and all the table metadata for all tables in these subdirectories.

If you execute mysqldump with specific user privileges, and those have been granted for access to only one or two databases, mysqldump is as quick as you would expect it to be.

There are two work-arounds.

Work-around A is still using a super-privileged user with access to all databases, but speeds up the process by disabling the semijoin feature.

Work-around B creates a backup user that is granted access to each database in turn, narrowing the privilege set.

Which method works best for you depends on how comfortable you are with using a super-privileged user to access all databases, how many databases you have, how many users you have that have access to multiple databases, how many databases have dependencies between them, and how your database is being accessed while you make your database dumps.

Work-around A is probably the quickest, work-around B slightly slower.


Work-around A - super-privileged user, disabled semijoin

Please note that disabling semijoin can affect the performance of other queries. While it can be set in my.cnf, you probably shouldn't.

  1. Disable semijoin temporarily:

    SET GLOBAL optimizer_switch='semijoin=off';
    
  2. Выгрузите базу данных, например, как пользователь "root":

     mysqldump db -uroot -prootpassword | gzip> DB.sql.gz
    
  3. Повторно включить полусоединение:

     УСТАНОВИТЬ GLOBAL optimizer_switch = 'semijoin = on';
    

Обход B - отдельный пользователь резервного копирования

  1. Предоставьте пользователю резервного копирования полные права доступа к базе данных:

     GRANT USAGE ON `db`. * TO 'backup' @ '%' IDENTIFIED BY 'backuppassword';
    GRANT SELECT, БЛОКИРОВКА ТАБЛИЦ НА `mysql`. * TO 'backup' @ '%';
    GRANT SELECT, LOCK TABLES, SHOW VIEW, EVENT, TRIGGER ON `db`. * TO 'backup' @ '%';
    ПРИВИЛЕГИИ ПРОМЫВКИ;
    
  2. Дамп базы данных от имени этого пользователя:

     mysqldump db -ubackup -pbackuppassword | gzip> DB.sql.gz
    
  3. Отменить привилегии:

     ОТЗЫВАТЬ ВСЕ ПРИВИЛЕГИИ НА `db`. * FROM 'backup' @ '%';
    ОТЗЫВАТЬ ВСЕ ПРИВИЛЕГИИ НА `mysql`. * FROM 'backup' @ '%';
    ПРИВИЛЕГИИ ПРОМЫВКИ;
    

If each database is owned by a separate user, and you know these users' passwords, you could of course use these instead of the backup user and its password, and thereby skip steps 1 and 3 entirely.


BTW: I also reported this to the MariaDB development team, if you have anything useful to contribute, feel free to follow up on that here:

https://mariadb.atlassian.net/browse/MDEV-5723

2
ответ дан 3 December 2019 в 21:21

Теги

Похожие вопросы