Официальный сайт студ.городка НГТУ
Программирование и БД » MySql 5.15x Репликация без остановки master 

#1  03.02.12 13:13

MySql 5.15x Репликация без остановки master

Собственно есть ли у кого идеи как сделать репликацию без остановки master сервера или свести эту остановку к минимуму, при этом БД  ~ >100Гб
Програмное окружение slave будет 1:1 с master.
Или без остановки никак?

Offline

#2  05.02.12 15:01

Re: MySql 5.15x Репликация без остановки master

Примерно план такой, это в теории, на практике не тестировалось:


1.Настройка конфигов мастера и слейва(параметры, включение бинарного логирования)

2. Создание пользователя для репликации и наделение его соотвествующими правами( рекомендуется прежде всего в целях безопасности)

3. Запоминаем мастер статус.

4. Делаем бекапы с master(mysqldump или snapshot), лучше ночью или рано утром, будет нагрузка на сервер.(как вариант сделать бекап одной небольшой базы  и настроить репликацию под нее в качестве тестирования. Потом уже можно пробовать на всех остальных)

5. Заливаем бекапы на slave

6. Включаем режим слейва с точки сохраненной в пункте 3.

Так как мы сделали "грязный" бекап, то при репликации скорей всего столкнемся с ошибками из-за которых остановится Слейв-сервер(это из за того что производилась запись данных пока мы делали дамп).

Выводим их на slave с помощью  ’show slave status \G’ (look at the ‘Last_Error’) и если мы можем их пропустить то, делаем так:

mysql> SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;
mysql> START SLAVE;
Продолжаем пропускать ошибки пока слей не синхронизируется с мастером.

Исправлено Tinkoff (05.02.12 15:01)

Offline

#3  05.02.12 15:41

Re: MySql 5.15x Репликация без остановки master

Offline

#4  05.02.12 17:56

Re: MySql 5.15x Репликация без остановки master

Ну собственно в любом случае получается будут возникать перебои, блокировок все равно не избежать.
БД как оказалось еще больше ~500 ГБ. Буду запускать master и записывать точку начала журнала, потом писать скрипт который по одной будет через mysqlhotcopy вытягивать таблицы сразу на второй сервак, благо там myisam и никакой логической целостности нет. А затем разворачивать БД на реплике и синхронизировать с пропуском ошибок. В общем надо прогонять все в тестовом режиме.

Исправлено ItStorm (05.02.12 20:29)

Offline

#5  05.02.12 20:18

Re: MySql 5.15x Репликация без остановки master

По идее если делать все правильно то нужно лочить на тот момент пока база бекапится. И если есть LVM то можно сделать snapshot базы. Ну либо прямо без лока.

Offline

#6  06.02.12 01:01

Re: MySql 5.15x Репликация без остановки master

Tinkoff, ну понятно что так правильно, но кому это интересно как правильно :)))) все же любят через жопу и с геморроем, но главное чтоб клиенту было удобно и красиво.
Не, LVM нет, да и сомнительно это по быстроте + сложно будет объем найти такой на конечном серваке, т.к. на master много БД лежит порядка нескольких ТБ, но мне нужно 1 всего.
Вообщем сделал в тестовом режиме на 10 гиговой БД. Все шустро получилось. Больше времени потратил на перенос папки БД на реплике с домашней папки в директорию с базами. Вообще в "боевом режиме" надо будет сразу конечную папку делать по нужному пути.
Кстати отдельное спасибо за это:

Tinkoff написал(а):

mysql> SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;

а то пришлось бы искать ))

Offline

#7  28.02.12 13:32

Re: MySql 5.15x Репликация без остановки master

Возникла новая непредвиденная херня, реплика отстает все сильнее и сильнее. Слабый RAID по сравнению с мастером, отставание в неделю ~ 100Гб. Как оптимизировать слейв??? Что поменять в параметрах? Там xeon 4 ядра 8 Гб RAM, при этом они не загружены, а скорость диска 13Мб/c и выше не лезет.

Код::

+-----------------------------------------+-------------------------------------------------------------------------------------------+
| Variable_name                           | Value                                                                                     |
+-----------------------------------------+-------------------------------------------------------------------------------------------+
| auto_increment_increment                | 1                                                                                         |
| auto_increment_offset                   | 1                                                                                         |
| autocommit                              | ON                                                                                        |
| automatic_sp_privileges                 | ON                                                                                        |
| back_log                                | 50                                                                                        |
| basedir                                 | /usr/local/                                                                               |
| big_tables                              | OFF                                                                                       |
| binlog_cache_size                       | 32768                                                                                     |
| binlog_direct_non_transactional_updates | OFF                                                                                       |
| binlog_format                           | STATEMENT                                                                                 |
| bulk_insert_buffer_size                 | 8388608                                                                                   |
| character_set_client                    | cp1251                                                                                    |
| character_set_connection                | cp1251                                                                                    |
| character_set_database                  | cp1251                                                                                    |
| character_set_filesystem                | binary                                                                                    |
| character_set_results                   | cp1251                                                                                    |
| character_set_server                    | cp1251                                                                                    |
| character_set_system                    | utf8                                                                                      |
| character_sets_dir                      | /                                                          |
| collation_connection                    | cp1251_general_ci                                                                         |
| collation_database                      | cp1251_general_ci                                                                         |
| collation_server                        | cp1251_general_ci                                                                         |
| completion_type                         | 0                                                                                         |
| concurrent_insert                       | 1                                                                                         |
| connect_timeout                         | 10                                                                                        |
| datadir                                 |                                                                          |
| date_format                             | %Y-%m-%d                                                                                  |
| datetime_format                         | %Y-%m-%d %H:%i:%s                                                                         |
| default_week_format                     | 0                                                                                         |
| delay_key_write                         | ALL                                                                                       |
| delayed_insert_limit                    | 100                                                                                       |
| delayed_insert_timeout                  | 300                                                                                       |
| delayed_queue_size                      | 1000                                                                                      |
| div_precision_increment                 | 4                                                                                         |
| engine_condition_pushdown               | ON                                                                                        |
| error_count                             | 0                                                                                         |
| event_scheduler                         | OFF                                                                                       |
| expire_logs_days                        | 0                                                                                         |
| flush                                   | OFF                                                                                       |
| flush_time                              | 0                                                                                         |
| foreign_key_checks                      | ON                                                                                        |
| ft_boolean_syntax                       | + -><()~*:""&|                                                                            |
| ft_max_word_len                         | 84                                                                                        |
| ft_min_word_len                         | 4                                                                                         |
| ft_query_expansion_limit                | 20                                                                                        |
| ft_stopword_file                        | (built-in)                                                                                |
| general_log                             | OFF                                                                                       |
| general_log_file                        |                                                               |
| group_concat_max_len                    | 1024                                                                                      |
| have_community_features                 | YES                                                                                       |
| have_compress                           | YES                                                                                       |
| have_crypt                              | YES                                                                                       |
| have_csv                                | YES                                                                                       |
| have_dynamic_loading                    | YES                                                                                       |
| have_geometry                           | YES                                                                                       |
| have_innodb                             | YES                                                                                       |
| have_ndbcluster                         | NO                                                                                        |
| have_openssl                            | NO                                                                                        |
| have_partitioning                       | YES                                                                                       |
| have_query_cache                        | YES                                                                                       |
| have_rtree_keys                         | YES                                                                                       |
| have_ssl                                | NO                                                                                        |
| have_symlink                            | YES                                                                                       |
| hostname                                |                                                                            |
| identity                                | 0                                                                                         |
| ignore_builtin_innodb                   | OFF                                                                                       |
| init_connect                            |                                                                                           |
| init_file                               |                                                                                           |
| init_slave                              |                                                                                           |
| innodb_adaptive_hash_index              | ON                                                                                        |
| innodb_additional_mem_pool_size         | 1048576                                                                                   |
| innodb_autoextend_increment             | 8                                                                                         |
| innodb_autoinc_lock_mode                | 1                                                                                         |
| innodb_buffer_pool_size                 | 8388608                                                                                   |
| innodb_checksums                        | ON                                                                                        |
| innodb_commit_concurrency               | 0                                                                                         |
| innodb_concurrency_tickets              | 500                                                                                       |
| innodb_data_file_path                   | ibdata1:10M:autoextend                                                                    |
| innodb_data_home_dir                    |                                                                                           |
| innodb_doublewrite                      | ON                                                                                        |
| innodb_fast_shutdown                    | 1                                                                                         |
| innodb_file_io_threads                  | 4                                                                                         |
| innodb_file_per_table                   | OFF                                                                                       |
| innodb_flush_log_at_trx_commit          | 1                                                                                         |
| innodb_flush_method                     |                                                                                           |
| innodb_force_recovery                   | 0                                                                                         |
| innodb_lock_wait_timeout                | 50                                                                                        |
| innodb_locks_unsafe_for_binlog          | OFF                                                                                       |
| innodb_log_buffer_size                  | 1048576                                                                                   |
| innodb_log_file_size                    | 5242880                                                                                   |
| innodb_log_files_in_group               | 2                                                                                         |
| innodb_log_group_home_dir               | ./                                                                                        |
| innodb_max_dirty_pages_pct              | 90                                                                                        |
| innodb_max_purge_lag                    | 0                                                                                         |
| innodb_mirrored_log_groups              | 1                                                                                         |
| innodb_open_files                       | 300                                                                                       |
| innodb_rollback_on_timeout              | OFF                                                                                       |
| innodb_stats_method                     | nulls_equal                                                                               |
| innodb_stats_on_metadata                | ON                                                                                        |
| innodb_support_xa                       | ON                                                                                        |
| innodb_sync_spin_loops                  | 20                                                                                        |
| innodb_table_locks                      | ON                                                                                        |
| innodb_thread_concurrency               | 8                                                                                         |
| innodb_thread_sleep_delay               | 10000                                                                                     |
| innodb_use_legacy_cardinality_algorithm | ON                                                                                        |
| insert_id                               | 0                                                                                         |
| interactive_timeout                     | 28800                                                                                     |
| join_buffer_size                        | 131072                                                                                    |
| keep_files_on_create                    | OFF                                                                                       |
| key_buffer_size                         | 1073741824                                                                                |
| key_cache_age_threshold                 | 300                                                                                       |
| key_cache_block_size                    | 1024                                                                                      |
| key_cache_division_limit                | 100                                                                                       |
| language                                | /usr/local/share/mysql/english/                                                           |
| large_files_support                     | ON                                                                                        |
| large_page_size                         | 0                                                                                         |
| large_pages                             | OFF                                                                                       |
| last_insert_id                          | 0                                                                                         |
| lc_time_names                           | en_US                                                                                     |
| license                                 | GPL                                                                                       |
| local_infile                            | ON                                                                                        |
| locked_in_memory                        | OFF                                                                                       |
| log                                     | OFF                                                                                       |
| log_bin                                 | OFF                                                                                       |
| log_bin_trust_function_creators         | OFF                                                                                       |
| log_bin_trust_routine_creators          | OFF                                                                                       |
| log_error                               |                                                              |
| log_output                              | FILE                                                                                      |
| log_queries_not_using_indexes           | OFF                                                                                       |
| log_slave_updates                       | OFF                                                                                       |
| log_slow_queries                        | OFF                                                                                       |
| log_warnings                            | 1                                                                                         |
| long_query_time                         | 10.000000                                                                                 |
| low_priority_updates                    | OFF                                                                                       |
| lower_case_file_system                  | OFF                                                                                       |
| lower_case_table_names                  | 0                                                                                         |
| max_allowed_packet                      | 1048576                                                                                   |
| max_binlog_cache_size                   | 18446744073709547520                                                                      |
| max_binlog_size                         | 1073741824                                                                                |
| max_connect_errors                      | 10                                                                                        |
| max_connections                         | 500                                                                                       |
| max_delayed_threads                     | 20                                                                                        |
| max_error_count                         | 64                                                                                        |
| max_heap_table_size                     | 16777216                                                                                  |
| max_insert_delayed_threads              | 20                                                                                        |
| max_join_size                           | 18446744073709551615                                                                      |
| max_length_for_sort_data                | 1024                                                                                      |
| max_long_data_size                      | 1048576                                                                                   |
| max_prepared_stmt_count                 | 16382                                                                                     |
| max_relay_log_size                      | 0                                                                                         |
| max_seeks_for_key                       | 18446744073709551615                                                                      |
| max_sort_length                         | 1024                                                                                      |
| max_sp_recursion_depth                  | 0                                                                                         |
| max_tmp_tables                          | 32                                                                                        |
| max_user_connections                    | 0                                                                                         |
| max_write_lock_count                    | 18446744073709551615                                                                      |
| min_examined_row_limit                  | 0                                                                                         |
| multi_range_count                       | 256                                                                                       |
| myisam_data_pointer_size                | 6                                                                                         |
| myisam_max_sort_file_size               | 9223372036853727232                                                                       |
| myisam_mmap_size                        | 18446744073709551615                                                                      |
| myisam_recover_options                  | OFF                                                                                       |
| myisam_repair_threads                   | 1                                                                                         |
| myisam_sort_buffer_size                 | 4194304                                                                                   |
| myisam_stats_method                     | nulls_unequal                                                                             |
| myisam_use_mmap                         | OFF                                                                                       |
| net_buffer_length                       | 65536                                                                                     |
| net_read_timeout                        | 30                                                                                        |
| net_retry_count                         | 1000000                                                                                   |
| net_write_timeout                       | 60                                                                                        |
| new                                     | OFF                                                                                       |
| old                                     | OFF                                                                                       |
| old_alter_table                         | OFF                                                                                       |
| old_passwords                           | OFF                                                                                       |
| open_files_limit                        | 11095                                                                                     |
| optimizer_prune_level                   | 1                                                                                         |
| optimizer_search_depth                  | 62                                                                                        |
| optimizer_switch                        | index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on |
| pid_file                                | /data/mysql/tmp/mysqld.pid                                                                |
| plugin_dir                              | /usr/local/lib/mysql/plugin                                                               |
| port                                    | 3306                                                                                      |
| preload_buffer_size                     | 32768                                                                                     |
| profiling                               | OFF                                                                                       |
| profiling_history_size                  | 15                                                                                        |
| protocol_version                        | 10                                                                                        |
| pseudo_thread_id                        | 0                                                                                         |
| query_alloc_block_size                  | 8192                                                                                      |
| query_cache_limit                       | 1048576                                                                                   |
| query_cache_min_res_unit                | 4096                                                                                      |
| query_cache_size                        | 0                                                                                         |
| query_cache_type                        | ON                                                                                        |
| query_cache_wlock_invalidate            | OFF                                                                                       |
| query_prealloc_size                     | 8192                                                                                      |
| rand_seed1                              |                                                                                           |
| rand_seed2                              |                                                                                           |
| range_alloc_block_size                  | 4096                                                                                      |
| read_buffer_size                        | 131072                                                                                    |
| read_only                               | OFF                                                                                       |
| read_rnd_buffer_size                    | 262144                                                                                    |
| relay_log                               | /mysql-slow/mysql-replica-log/mysql-relay-bin                                             |
| relay_log_index                         | /mysql-slow/mysql-replica-log/mysql-relay-bin.index                                       |
| relay_log_info_file                     | relay-log.info                                                                            |
| relay_log_purge                         | ON                                                                                        |
| relay_log_space_limit                   | 0                                                                                         |
| report_host                             |                                                                                           |
| report_password                         |                                                                                           |
| report_port                             | 3306                                                                                      |
| report_user                             |                                                                                           |
| rpl_recovery_rank                       | 0                                                                                         |
| secure_auth                             | OFF                                                                                       |
| secure_file_priv                        |                                                                                           |
| server_id                               | 10                                                                                        |
| skip_external_locking                   | ON                                                                                        |
| skip_name_resolve                       | OFF                                                                                       |
| skip_networking                         | OFF                                                                                       |
| skip_show_database                      | OFF                                                                                       |
| slave_compressed_protocol               | OFF                                                                                       |
| slave_exec_mode                         | STRICT                                                                                    |
| slave_load_tmpdir                       | /data/mysql/mem                                                                           |
| slave_net_timeout                       | 3600                                                                                      |
| slave_skip_errors                       | 1062                                                                                      |
| slave_transaction_retries               | 10                                                                                        |
| slow_launch_time                        | 2                                                                                         |
| slow_query_log                          | OFF                                                                                       |
| slow_query_log_file                     | /data/mysql/tmp/mysqld-slow.log                                                           |
| socket                                  | /data/mysql/tmp/mysql.sock                                                                |
| sort_buffer_size                        | 4194304                                                                                   |
| sql_auto_is_null                        | ON                                                                                        |
| sql_big_selects                         | ON                                                                                        |
| sql_big_tables                          | OFF                                                                                       |
| sql_buffer_result                       | OFF                                                                                       |
| sql_log_bin                             | ON                                                                                        |
| sql_log_off                             | OFF                                                                                       |
| sql_log_update                          | ON                                                                                        |
| sql_low_priority_updates                | OFF                                                                                       |
| sql_max_join_size                       | 18446744073709551615                                                                      |
| sql_mode                                |                                                                                           |
| sql_notes                               | ON                                                                                        |
| sql_quote_show_create                   | ON                                                                                        |
| sql_safe_updates                        | OFF                                                                                       |
| sql_select_limit                        | 18446744073709551615                                                                      |
| sql_slave_skip_counter                  |                                                                                           |
| sql_warnings                            | OFF                                                                                       |
| ssl_ca                                  |                                                                                           |
| ssl_capath                              |                                                                                           |
| ssl_cert                                |                                                                                           |
| ssl_cipher                              |                                                                                           |
| ssl_key                                 |                                                                                           |
| storage_engine                          | MyISAM                                                                                    |
| sync_binlog                             | 0                                                                                         |
| sync_frm                                | ON                                                                                        |
| system_time_zone                        | MSK                                                                                       |
| table_definition_cache                  | 256                                                                                       |
| table_lock_wait_timeout                 | 50                                                                                        |
| table_open_cache                        | 1024                                                                                      |
| table_type                              | MyISAM                                                                                    |
| thread_cache_size                       | 0                                                                                         |
| thread_handling                         | one-thread-per-connection                                                                 |
| thread_stack                            | 262144                                                                                    |
| time_format                             | %H:%i:%s                                                                                  |
| time_zone                               | SYSTEM                                                                                    |
| timed_mutexes                           | OFF                                                                                       |
| timestamp                               | 1330408340                                                                                |
| tmp_table_size                          | 16777216                                                                                  |
| tmpdir                                  | /data/mysql/mem                                                                           |
| transaction_alloc_block_size            | 8192                                                                                      |
| transaction_prealloc_size       0.81,  0.61,  0.50                                                               up 11+18:03:29  10:25:55
| tx_isolation 3           7              | REPEATABLE-READ                                                                           |
| uni 8.0checks              21.8         | 3.3             67.0                                                                      |
| updatable_views_wit77limit              | Y19                                                                                       |
| version                                 | 5.1.60                                                                                    |
| version_comment                         | FreeBSD port: mysql-server-5.1.60                                                         |
| version_compile_machine                 | amd64                                                                                     |
| version_compile_os                      | portbld-freebsd8.210 55.96                                                                |
| wait_timeout                            | 28800                                                                                     |
| warning_count           49              | 0           2                                                                             |
+------------------------- 4--------------+-------------------------------------------------------------------------------------------+

Исправлено ItStorm (28.02.12 13:34)

Offline

#8  28.02.12 16:21

Re: MySql 5.15x Репликация без остановки master

ItStorm, show slave status еще покажи.

Offline

#9  28.02.12 19:54

Re: MySql 5.15x Репликация без остановки master

Код::

Slave_IO_State,Master_Host,Master_User,Master_Port,Connect_Retry,Master_Log_File,Read_Master_Log_Pos,Relay_Log_File,Relay_Log_Pos,Relay_Master_Log_File,Slave_IO_Running,Slave_SQL_Running,Replicate_Do_DB,Replicate_Ignore_DB,Replicate_Do_Table,Replicate_Ignore_Table,Replicate_Wild_Do_Table,Replicate_Wild_Ignore_Table,Last_Errno,Last_Error,Skip_Counter,Exec_Master_Log_Pos,Relay_Log_Space,Until_Condition,Until_Log_File,Until_Log_Pos,Master_SSL_Allowed,Master_SSL_CA_File,Master_SSL_CA_Path,Master_SSL_Cert,Master_SSL_Cipher,Master_SSL_Key,Seconds_Behind_Master,Master_SSL_Verify_Server_Cert,Last_IO_Errno,Last_IO_Error,Last_SQL_Errno,Last_SQL_Error
"Waiting for master to send event",serv.ru,user,3366,60,binary_log.000242,455100636,mysql-relay-bin.000033,412615656,binary_log.000138,Yes,Yes,,,,,,,0,,0,412615510,112124355491,None,,0,No,,,,,,603104,No,0,,0,

Причем он 80% времени висит в состоянии Waiting for master to send event

Offline

#10  28.02.12 21:07

Re: MySql 5.15x Репликация без остановки master

Возможно проблема в том что очень много работы идет с временными таблицами на мастер-сервере? Может реплику надо как-то по особому с оптимизировать на работу с temprorary таблицами??? :((

Offline

Программирование и БД » MySql 5.15x Репликация без остановки master 

ФутЕр:)

© Hostel Web Group, 2002-2025.   Сообщить об ошибке

Сгенерировано за 0.668 сек.
Выполнено 14 запросов.