Clipper On Line • Ver Tópico - MySQL - ibdata1

MySQL - ibdata1

Discussão sobre Banco de Dados e RDDs para Clipper/[x]Harbour.

Moderador: Moderadores

 

MySQL - ibdata1

Mensagempor asimoes » 24 Mar 2009 19:53

Amigos,

Estou trabalhando com um banco MySQL 5.1.31. a pergunta é a seguinte:

Depois de ter populado o banco com algumas tabelas para teste verifiquei que o arquivo ibdata1 ficou com um determinado tamanho.
Depois apaguei vários registros de uma tabela, percebi que o ibdata1 não diminuiu de tamanho. Como pode ser feito um re-dimensionamento no banco arquivo baseado no tamanho das tabelas existentes?

[]´
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Re: MySQL - ibdata1

Mensagempor Maligno » 24 Mar 2009 20:10

Se for como no Firebird, você terá de fazer um back-up e restaurar em cima do original. Tentou isso?
Mas o apagamento sem a devida compressão do banco é normal. Evita-se perder um tempo precioso.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar de usuário

Maligno
Membro Master

Membro Master
 
Mensagens: 6390
Data de registro: 06 Jul 2004 01:40
Cidade/Estado: Londrina/PR
Curtiu: 1 vez
Mens.Curtidas: 14 vezes

Re: MySQL - ibdata1

Mensagempor asimoes » 25 Mar 2009 07:28

Olá Maligno,

Vou tentar a sua sugestão.

[]´s
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Re: MySQL - ibdata1

Mensagempor asimoes » 25 Mar 2009 20:15

Olá Maligno,

Não consegui pela sua dica, alguem que me le sabe como faze-lo?

[]´s
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Re: MySQL - ibdata1

Mensagempor Maligno » 25 Mar 2009 21:25

Agora que olhei o diretório do meu MySQL (só tenho pra teste :). Na instalação é incluído um utilitário de linha de comando chamado "myisampack.exe", que faz justamente o que você precisa. Aliás, faz back-up também. Só não sei dizer se esse back-up comprime as tabelas, como eu havia mencionado antes. Seria lógico esperar que comprimisse. Afinal de contas, não há motivo pra fazer cópia de lixo. Mas está aí um bom teste pra você fazer.

Mas antes de executar, (faça cópia do seu banco, claro, e...) leia o "help" de linha, executando-o sem qualquer argumento. Há algumas observações importantes lá. Inclusive, parece que depois do processo a tabela se torna read-only (vi num site) e as chaves de índices não são atualizadas (o programa diz isso), o que torna necessário executar outro utilitário: "myisamchk.exe" para reconstruir os índices.

Tem outro utilitário na minha instalação, chamado "pack_isam.exe", que parece idêntico ao outro, apesar do tamanho do EXE ser ligeiramente menor. Não sei se faz o mesmo efeito. Tudo indica que sim. Mas aí você pode dar uma lida no help e descobrir. :)

Faça os testes. E depois, por favor, conte-nos o resultado. Assim, o pessoal que usa esse banco ficará atualizado sobre esse assunto. Aliás, pelo que me consta, essa matéria ainda não foi discutida no fórum.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar de usuário

Maligno
Membro Master

Membro Master
 
Mensagens: 6390
Data de registro: 06 Jul 2004 01:40
Cidade/Estado: Londrina/PR
Curtiu: 1 vez
Mens.Curtidas: 14 vezes

Re: MySQL - ibdata1

Mensagempor asimoes » 26 Mar 2009 00:16

Olá Maligno,

Este exemplo só funciona com tabelas MyISAM no meu caso estou usando InnoDB.

Eu resolvi da maneira bem lusitana.

1-Faço um backup full do esquema pela ferramenta: Mysqladministrator
2-Removo a instancia do MySql:
net stop mysql
mysqld --remove
3-Apago todo o conteúdo da pasta c:\mysql\data
4-Copio um mysql (zerado, original sem dados) para a mesma pasta
5-Restauro a instancia de novo, pra isso eu criei 2 bats: instala.bat e remove.bat
----------------------------
instala.bat:
mysqld install
net start mysql
----------------------------
remove.bat:
net stop mysql
mysqld --remove
----------------------------
6-Executo o mysqladministrator e faço um restore do backup
7-Crio o usuário do sistema e defino os seus previlégios novamente.

Pronto, o arquivo ibdata1 está enxuto.

Aceito sugestões para este procedimento.

[]´s
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Re: MySQL - ibdata1

Mensagempor Maligno » 26 Mar 2009 04:12

Este exemplo só funciona com tabelas MyISAM no meu caso estou usando InnoDB.

Ah, sim. Me desculpe. Esqueci que o MySQL tem esse engine também.

Faço um backup full do esquema pela ferramenta: Mysqladministrator

Então, no final das contas, foi pelo back-up mesmo. :)

Mas tente não faz disso um exercício regular. Além de dar mais trabalho, em certos casos pode ajudar o servidor, uma vez que a inclusão aproveita os "buracos" deixados pelo apagamento.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar de usuário

Maligno
Membro Master

Membro Master
 
Mensagens: 6390
Data de registro: 06 Jul 2004 01:40
Cidade/Estado: Londrina/PR
Curtiu: 1 vez
Mens.Curtidas: 14 vezes

Re: MySQL - ibdata1

Mensagempor asimoes » 26 Mar 2009 10:38

Olá Maligno,

Exatamente, este procedimento é para quando houver uma expanção muito grande do banco e o tamanho das tabelas + indices forem muito menores do que o alocado. Imagina um banco com 4g e com tabelas e indices somados não chega a 1g. Vale a pena o trabalho até desenvolverem algo automatizado.

Ainda mais que os recursos de máquina são escassos e tem empresa que não gosta de investir em hardware.
O ideal é não fazer isto, contando sempre com espaço disponível no servidor se for o caso.

:)Pos
[]´s
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes




Retornar para Banco de Dados

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 6 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro