mysql, realocando bancos de dados individuais versus diretório de dados inteiro

mysql, realocando bancos de dados individuais versus diretório de dados inteiro

Preciso realocar os bancos de dados de clientes MySQL para outro disco, com a finalidade de:

 1. Separation of user data from system files
 2. Ease of backing up system and user data separately
 3. Ease of upgrading the system

Os seguintes artigos foram úteis:

  [how-to-move-mysql-datadir-to-another-drive][1]
  [move-a-mysql-database-to-another-location][2]

Executando em um sistema Ubuntu-18, parece que a variável innodb_file_per_table está definida por padrão:

mysql> SHOW GLOBAL VARIABLES LIKE 'innodb_%';
...
| innodb_file_per_table                    | ON 
...

(Mesmos resultados sem o GLOBAL)

não consigo encontrarqualquerreferência a innodb_file_per_table em qualquer arquivo de configuração; o único arquivo com muito conteúdo é

  /etc/mysql/mysql.conf.d/mysqld.cnf

Estou preocupado com o que ainda está armazenado nos arquivos

  /var/lib/mysql/ibdata1
                /ib_logfileN

Percebi que o simples acesso a um banco de dados faz com que eles sejam atualizados.

Minhas perguntas são:

  1. Se eu mover apenas os bancos de dados do cliente (para um disco separado) e o disco do sistema for perdido e precisar ser recriado do zero, alguma coisa será perdida?

  2. É melhor mover todos os bancos de dados, incluindo (mysql, performance_schema e sys) para um disco separado?

  3. É melhor mover todo o diretório de dados para um disco separado, apontando para ele através da variável "datadir" em /etc/mysql/mysql.conf.d/mysqld.cnf?

  4. Quais são as ramificaçõesnãousando a opção 3 se o disco do sistema for perdido?

Responder1

Seria melhor mover todas as tabelas do MySQL para outro disco. Qualquer tentativa de dividir “clientes” aumentaria a complexidade e dificultaria os seus objetivos. (Se isso se tornar um requisito, podemos discutir mais.)

Essencialmente, o único arquivo deixado para trás por tal movimentação são os arquivos de configuração. Você mencionou /etc/mysql/mysql.conf.d/mysqld.cnf, mas pode haver outros arquivos de configuração por aí.

Em algum outro lugar há um diretório maior que contém vários arquivos, além de subdiretórios que correspondem aos "bancos de dados" que você criou. Eu simplesmente moveria aquela árvore inteira. Se você estiver usando um sistema operacional baseado em Linux, use um link simbólico do local antigo para o novo. Nenhuma alteração explícita na configuração é necessária.

Então, se um dos discos falhar, você não conseguirá acessar os dados. O que quero dizer é que brincar com arquivos e diretórios não necessariamente o aproximará da "segurança".

Em vez disso, concentre-se nos backups. E/ou "Replicação". Este último requer um adicionalservidore fornece uma cópia completa dos dados. Então, se algum dos servidores travar, você não perderá nada.

LVM é outra técnica de backup; os benefícios de ter um disco para o banco de dados. Mas isso adiciona muita complexidade.

Sugiro que você leia um pouco mais e mantenha a mente aberta. Você encontrará muitas coisas que correspondem diretamente às suas ideias.

informação relacionada