Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Mauro Sergio Nascimento

Perda De Tabelas E Configuração My.ini

Recommended Posts

Bom dia, estou desenvolvendo pela primeira vez meus sistemas com a base de dados MySQL e componente zeos para acesso ao banco de dados.1) No primeiro sistema criei as tabelas e bancos de dados através da ferramenta mysql front, que expirou já há algum tempo. Comecei a utilizar a ferramenta DBManager. Criei um banco de dados chamado NETMARINAS, com suas respectivas tabelas. Criei outro banco de dados também chamado NETFINANCAS, também com suas respectivas tabelas. 2) Fui contratado para desenvolver um sistema de controle de defientes físicos. Abri a ferramenta e lá criei uma base achamada ADEFAR, com suas respectivas tabelas. 3) No meu primeiro sistema, que já está sendo utilizado pelo cliente há varios meses, precisamos modificar a estrutura da base de dados. Pedi então que me enviasse a cópia da pasta data, que contém o arquivo IBDATA1 e também os diretórios com as estruturas dos bancos NETMARINAS e NETFINANCAS. Assim que copiei e sobrescrevi minha pasta data, embora o diretório ADEFAR ainda exista o DBManager abre o banco ADEFAR, mas não mostra nenhuma tabela. Minha dúvida é a seguinte:a) Existe como manter no mesmo computador os dois sistemas, sem que o IBDATA seja o mesmo?B) Que parâmetros devo colocar no ZEOS ou no meu Formulário, para que ele reconheça isso?c) Como recuperar minha tabela, sem que seja necessário criar campo por campo novamente, hajavista que o diretório que contém a estrutura permanece intacto.Estou aflito, pois fiz essa besteira hoje e não sei como resolver.Obrigado amigos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, provavelmente você estava usando tabelas do tipo InnoDB.

O grande erro de se trabalhar com o MySQL por muitos desenvolvedores é primeiro não estudar como funciona o engine e segundo por achar sempre que o backup físico é a melhor opção, quando nem de longe é.

 

Quando usamos tabelas no formato InnoDB, é complicado fazer backup físico pois esta engine utiliza o conceito de tablesapce e o tablespaces são estruturas lógicas, ou seja, são criadas na memória. Existe um conjunto de arquivos que fica na pasta data que guarda caminhos de alguns arquivos que são responsáveis por gerenciar as estruturas que são geradas junto com a instância do mysqld, para controlar o acesso e armazenamento de dados com o InnoDB.

 

Enfim, NÃO COPIE FISICAMENTE OS ARQUIVOS!!! Você tem sempre menos que 50% de chance de dar certo.

 

Mas e aí? Como faço um backup binário (portável) do banco de dados MySQL com tabelas InnoDB?

 

Para copiar todo o database (todos os bancos de dados):

mysqlsump -u <usuario> -p<senha> --all-databases > arquivo_backup.sql;
Para copiar um determinado banco de dados:

mysqlsump -u <usuario> -p<senha> --opt <nome_do_banco> > arquivo_backup.sql;
Bom, outro problema, que não deixaria de mostrar as tabelas, seria o Collation ou Character Set!

 

Quando você cria um novo banco de dados, dentro do diretório deste novo banco, é criado um arquivo chamado "db.opt" que seu conteúdo é lido pelo SGBD para setar internamente qual o padrão de caracteres que será usado para este banco de dados. Seu conteúdo é algo assim:

 

default-character-set=latin1

default-collation=latin1_swedish_ci

Se você sobrescreve esse arquivo, coisas estranhas poderão acontecer, como acentos virarem carcteres ASCII não ultizados normalmente!

 

MYSQLSQLDUMP!! FOR ALL!!

 

Abraço!! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.