Description:
We are in the process of upgrading many MySQL 5.0.90 database servers to MariaDB 10.2.8. Our process has been working: Copy the data from MySQL 5.0 to the maraidb server, upgrade -> 5.1 -> 5.5 -> MariaDB. We then run replication from MySQL 5.0 to MariaDB using statement based replcation for a period of time before moving the processing over to MariaDB. The more detailed process goes as follows: Stop the slave on the source (MySQL 5.0.90) server. Rsync the entire data dir to the target (maria 10.2.8) server. Start MySQL 5.0 on the target server and get replication caught up. Stop MySQL 5.0 on the target and start MySQL 5.1. Run mysql_upgrade. Stop MySQL 5.1. Start replication and let it catch up. Run MySQL 5.5 and perform upgrade. start replication and let it catch up. Stop MySQL 5.5. Run MariaDB 10.2.8 and perform upgrade. Start replication and let it catch up.
This has worked numerous times. However The latest attempt core dumps on the last step (replication from 5.0 to 10.2) before replication even catches up.If I use mysqldump to move the data, it works fine, but it is so slow it is impractical for large data sets.
Here is our config files:
| => cat enable_encryption.preset
[mariadb]
aria-encrypt-tables
encrypt-binlog
encrypt-tmp-disk-tables
encrypt-tmp-files
loose-innodb-encrypt-log
loose-innodb-encrypt-tables
| => cat server.cnf
[mysqld]
innodb_buffer_pool_size = 1G
innodb_data_file_path = ibdata1:1024M:autoextend
innodb_flush_log_at_trx_commit = 0
innodb_log_file_size = 256M
innodb_log_files_in_group = 4
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 1500
innodb_thread_concurrency = 0
innodb_strict_mode = 0
log_bin = mysqld-bin
expire_logs_days = 7
binlog_format = mixed
relay-log=mysqld-relay-bin
skip_name_resolve
sync_frm = 0
wait_timeout = 60
back_log = 1024
max_connections = 4096
default_storage_engine = MYISAM
event_scheduler = ON
connect_timeout = 5
max_connect_errors = 9999999
table_open_cache = 4096
max_allowed_packet = 32M
max_heap_table_size = 64M
sort_buffer_size = 8M
join_buffer_size = 8M
thread_cache_size = 0
query_cache_size = 32M
query_cache_limit = 2M
thread_stack = 192K
tmp_table_size = 64M
tmpdir = /raid/tmpmysql/
key_buffer_size = 1152M
read_buffer_size = 2M
read_rnd_buffer_size = 16M
bulk_insert_buffer_size = 64M
myisam_max_sort_file_size = 10G
myisam_recover_options = force,backup
log_error =
log_warnings = 0
slow_query_log = 1
long_query_time = 5
secure-auth=0
log_slave_updates = 1
thread_handling = pool-of-threads
extra_port = 3307
extra_max_connections = 25
thread_pool_idle_timeout = 60
thread_pool_max_threads = 1000
thread_pool_oversubscribe = 3
thread_pool_size = 24
thread_pool_stall_limit = 500
thread_pool_prio_kickup_timer = 1000
thread_pool_priority = auto
[mysql]
no_auto_rehash
[myisamchk]
key_buffer_size = 512M
sort_buffer_size = 512M
read_buffer_size = 8M
write_buffer_size = 8M
[embedded]
[mariadb]
log_basename=mysqld
old_mode = NO_DUP_KEY_WARNINGS_WITH_IGNORE,ZERO_DATE_TIME_CAST
sql_mode = NO_UNSIGNED_SUBTRACTION
| => cat specific_to_cluster.cnf
# configuration options specific to cluster - change as needed - goes in /etc/my.cnf.d/
[mysqld]
innodb_thread_concurrency=16
max_connections=10240
max_allowed_packet=64M
| => cat zzRemoveAfterValidation.cnf
[mysqld]
# Turn off binlog checksumming until after the upgrade
binlog_checksum = 0
slave_sql_verify_checksum = 0
binlog_format = statement
| => cat zz_repl_ignore_do.cnf
[mysqld]
#replicate-ignore-db designates which databases to NOT replicate
replicate-ignore-db=data_warehouse
How to repeat:
I don't know if you can specifically. Like I stated above, this has worked numerous times, but fails in this case.