Bem-vindo, Visitante
Nome do utilizador: Senha: Memorizar
  • Página:
  • 1
  • 2
  • 3

TÓPICO: Migração de Windows para Linux

Migração de Windows para Linux 16 Ago. 2016 21:20 #10482

  • nleal
  • Avatar de nleal
  • Offline
  • Mensagens: 49
  • Obrigado recebido 12
Problema resolvido! Comecei por criar uma BD de teste no Linux sem alterar qualquer variável, e antes mesmo de a migrar para o WIndows resolvi fazer algumas comparações simples. Reparei que o recém criado schema tinha as tabelas em maiúsculas. Peguei na BD que tinha criado ontem no Windows e migrado para o Ubuntu, e converti os nomes de todas as tabelas para maiúsculas. Funcionou à primeira!

Peguei no novo schema gerado no Ubuntu e migrei-o para o Windows. Lá estavam as tabelas em maiúsculas. Funcionou sem alterações!

Conclusão: se converterem as vossas tabelas para maiúsculas evitarão problemas nas migrações de e para Ubuntu, onde não sejam alterados os defaults do mysql. No entanto, a melhor abordagem, embora mais pesada mas garantidamente extensível a outros sistemas, será a utilização de minúsculas em todos o objectos, incluindo queries. Fica a sugestão!

Obrigado pela ajuda! Considero este fórum um dos fortes valores acrescentados desta excelente aplicação!
Última Edição: 17 Ago. 2016 20:59 por nleal. Motivo: Ligeira revisão da conclusão
O adminstrador desactivou a escrita pública.
The following user(s) said Thank You: marcolopes

Migração de Windows para Linux 16 Ago. 2016 09:04 #10481

  • nleal
  • Avatar de nleal
  • Offline
  • Mensagens: 49
  • Obrigado recebido 12
Confirmo que os defaults são de facto diferentes, como seria de esperar, dada a natureza dos sistemas.

Vou tentar a abordagem do lower_case_table_names=1 assim que possível, provavelmente logo ao final do dia:

"If you plan to set the lower_case_table_names system variable to 1 on Unix, you must first convert your old database and table names to lowercase before stopping mysqld and restarting it with the new variable setting."

O colibri usa maiúsculas nos nomes de colunas, índices e constraints FK, não propriamente no nome da BD nem no das tabelas, por isso não haverá necessidade de converter os nomes destas. Só mesmo testando poderei confirmar a relação. Farei também alguns testes contrários, nomeadamente criando uma BD no linux para teste no windows, e converterei o case nas BDs de teste.

No artigo do mysql é também referido o seguinte:

"Object names may be considered duplicates if their uppercase forms are equal according to a binary collation. That is true for names of cursors, conditions, procedures, functions, savepoints, stored routine parameters, stored program local variables, and plugins. It is not true for names of columns, constraints, databases, partitions, statements prepared with PREPARE, tables, triggers, users, and user-defined variables."

As maiúsculas nas colunas e índices não deveriam ser relevantes, pelo que infiro deste último parágrafo, mas ainda assim não há nada como testar. Poderá haver alguma questão nas queries utilizadas, por exemplo, ou até na collation (que confesso ainda não comparei).

Voltarei ao contacto. Entretanto percebi que há um ano e meio não resolvi o problema, apenas o contornei com outra máquina. O problema poderá muito bem ser o mesmo, e deverá ter aparecido algures com a transição para a versão 10 do colibri. Também pode ter sido com o upgrade do mysql do 5.5 para o 5.6, mas será pouco provável que os defaults se tenham alterado entre versões. Alguma coisa mudou, definitivamente, pois não tinha estes problemas nas versões anteriores que referi.

Obrigado!
O adminstrador desactivou a escrita pública.
The following user(s) said Thank You: marcolopes

Migração de Windows para Linux 16 Ago. 2016 00:27 #10480

  • marcolopes
  • Avatar de marcolopes
  • Offline
  • Mensagens: 5361
  • Obrigado recebido 745
nleal escreveu:
Desta feita desliguei todos os bloqueadores. De qualquer forma, para garantir que aí chega, enviarei por email.
Estive a ver o log que enviei há ano e meio. São muito semelhantes...

As minhas suspeitas vão para o CASE das tabelas. Questão discutida aqui: www.projectocolibri.com/forum/bases-de-d...s-mysql?start=6#4992

If you are using MySQL on only one platform, you do not normally have to change the lower_case_table_names variable from its default value. However, you may encounter difficulties if you want to transfer tables between platforms that differ in file system case sensitivity. For example, on Unix, you can have two different tables named my_table and MY_TABLE, but on Windows these two names are considered identical. To avoid data transfer problems arising from lettercase of database or table names, you have two options:

Use lower_case_table_names=1 on all systems. The main disadvantage with this is that when you use SHOW TABLES or SHOW DATABASES, you do not see the names in their original lettercase.

Use lower_case_table_names=0 on Unix and lower_case_table_names=2 on Windows. This preserves the lettercase of database and table names. The disadvantage of this is that you must ensure that your statements always refer to your database and table names with the correct lettercase on Windows. If you transfer your statements to Unix, where lettercase is significant, they do not work if the lettercase is incorrect.


dev.mysql.com/doc/refman/5.7/en/identifi...ase-sensitivity.html
Marco Lopes
Gestor de projecto
Análise e Programação
O adminstrador desactivou a escrita pública.
The following user(s) said Thank You: nleal

Migração de Windows para Linux 15 Ago. 2016 22:05 #10479

  • nleal
  • Avatar de nleal
  • Offline
  • Mensagens: 49
  • Obrigado recebido 12
Desta feita desliguei todos os bloqueadores. De qualquer forma, para garantir que aí chega, enviarei por email.

Estive a ver o log que enviei há ano e meio. São muito semelhantes...

Obrigado!
O adminstrador desactivou a escrita pública.

Migração de Windows para Linux 15 Ago. 2016 20:43 #10478

  • marcolopes
  • Avatar de marcolopes
  • Offline
  • Mensagens: 5361
  • Obrigado recebido 745
nleal escreveu:
Algo terá falhado no upload do log, por isso anexo-o de novo. Desta vez carreguei no "inserir".

Voltou a falhar. P.f. envie para Este endereço de email está protegido contra piratas. Necessita ativar o JavaScript para o visualizar.
Marco Lopes
Gestor de projecto
Análise e Programação
O adminstrador desactivou a escrita pública.

Migração de Windows para Linux 15 Ago. 2016 15:15 #10477

  • nleal
  • Avatar de nleal
  • Offline
  • Mensagens: 49
  • Obrigado recebido 12
Algo terá falhado no upload do log, por isso anexo-o de novo. Desta vez carreguei no "inserir".

Este erro não é novo, de facto, mas penso que anteriormente estava relacionado com uma diferença de versões. Por isso tive o cuidado de garantir versões iguais, quer do RCPColibri quer do servidor mysql. Não me recordo de qualquer outra conclusão. Neste caso, para além disso ambas as arquitecturas são de 64bit, variando apenas o sistema operativo.
Entretanto experimentei usar um dump integral em vez de usar o backup automático e criei também uma nova BD no win10, obtendo o mesmo resultado em todos os testes que efectuei.

Embora este erro não tenha um ID associado, percebe-se que se trata da violação de uma regra de integridade.

Obrigado.
Última Edição: 15 Ago. 2016 20:35 por marcolopes.
O adminstrador desactivou a escrita pública.
  • Página:
  • 1
  • 2
  • 3
Moderadores: marcolopes
Desenvolvido por Kunena