Estou no processo de transferir um banco de dados de um servidor para outro. Estou movendo os arquivos de dados diretamente, em vez de usar um dump SQL. Para fazer isso, eu:
- garantiu que ambos os servidores usem a mesma versão do MySQL
- definir
innodb_fast_shutdown = 0
- parou o servidor MySQL
rsync
ed os dados para o novo servidor
Estou quase pronto para iniciar o novo servidor, mas tenho uma dúvida. O servidor antigo usa o mesmo diretório /var/lib/mysql
de dados para dados, logs binários, etc., enquanto o novo servidor usa 3 diretórios diferentes para dados, logs binários e tmp:
datadir=/mysql/data
tmpdir=/mysql/tmp
log-bin=/mysql/binlog/mysql-bin
A questão é: para onde deve ir cada um dos arquivos?
Meu raciocínio é:
/mysql/tmp
: não deve haver nenhum arquivo temporário após um desligamento lento (ou mesmo normal?), então nada deve ir para lá agora/mysql/binlog
: só devo mover osmysql-bin.*
arquivos/mysql/data
: todo o resto deve ir para lá
Isso é correto?
Aqui está a lista de arquivos, para informação ( nxxxxxxx
é meu banco de dados principal):
# ls -al /var/lib/mysql
total 38518860
drwxr-x--x. 9 mysql mysql 4096 20 nov. 13:50 .
drwxr-xr-x. 37 root root 4096 29 déc. 2019 ..
-rw-rw----. 1 mysql mysql 56 21 déc. 2014 auto.cnf
-rw------- 1 mysql mysql 1680 27 déc. 2018 ca-key.pem
-rw-r--r-- 1 mysql mysql 1112 27 déc. 2018 ca.pem
-rw-r--r-- 1 mysql mysql 1112 27 déc. 2018 client-cert.pem
-rw------- 1 mysql mysql 1676 27 déc. 2018 client-key.pem
-rw-r----- 1 mysql mysql 589824 20 nov. 13:50 #ib_16384_0.dblwr
-rw-r----- 1 mysql mysql 8978432 19 nov. 18:28 #ib_16384_1.dblwr
-rw-r----- 1 mysql mysql 91522 20 nov. 13:50 ib_buffer_pool
-rw-r-----. 1 mysql mysql 9143582720 20 nov. 13:50 ibdata1
-rw-r----- 1 mysql mysql 1073741824 20 nov. 13:50 ib_logfile0
-rw-r----- 1 mysql mysql 1073741824 20 nov. 13:50 ib_logfile1
drwxr-x--- 2 mysql mysql 4096 20 nov. 13:50 #innodb_temp
drwxr-sr-x. 2 mysql mysql 4096 19 nov. 18:28 mysql
-rw-r----- 1 mysql mysql 1073742002 5 nov. 21:45 mysql-bin.002418
-rw-r----- 1 mysql mysql 1073742033 6 nov. 12:00 mysql-bin.002419
(...)
-rw-r----- 1 mysql mysql 341943 20 nov. 13:50 mysql-bin.002446
-rw-r----- 1 mysql mysql 179 20 nov. 13:50 mysql-bin.002447
-rw-r----- 1 mysql mysql 570 20 nov. 13:50 mysql-bin.index
-rw-r----- 1 mysql mysql 62914560 20 nov. 13:50 mysql.ibd
-rw-r--r--. 1 mysql mysql 6 19 nov. 18:28 mysql_upgrade_info
drwxr-sr-x. 2 mysql mysql 69632 17 nov. 17:15 nxxxxxxx
drwxr-x--- 2 mysql mysql 4096 19 nov. 18:28 performance_schema
-rw------- 1 mysql mysql 1676 27 déc. 2018 private_key.pem
-rw-r--r-- 1 mysql mysql 452 27 déc. 2018 public_key.pem
-rw-r--r-- 1 mysql mysql 1112 27 déc. 2018 server-cert.pem
-rw------- 1 mysql mysql 1680 27 déc. 2018 server-key.pem
drwxr-x---. 2 mysql mysql 12288 27 déc. 2018 sys
drwxr-x--- 2 mysql mysql 4096 1 mars 2019 test
-rw-r----- 1 mysql mysql 109051904 20 nov. 13:50 undo_001
-rw-r----- 1 mysql mysql 109051904 20 nov. 13:50 undo_002
Tudo bem, mas você provavelmente precisará reconfigurar os locais bin e tmp em seu arquivo .cnf depois de mover os arquivos.
Aqui está um artigo especificamente sobre como reconfigurar o local tmp (eu imagino que o diretório bin seja semelhante): Como alterar seu tmpdir MYSQL