MYSQL APAGANDO DADOS SOZINHO
Boa tarde galera!
Estou com um probleminha grave, não sei por qual motivo, alguns registros da minha tabela do banco de dados estão sendo apagados. Não há explicação, simplesmente o registro não está lá.
Suspeitei que seria o usuário que estaria excluindo o registro e fiz um log de operações, onde grava todas as ações. Resultado, não é o usuário.
Estou rodando MySQL, em Windows Server 2008 e acessando os dados via terminal service.
Há um tempo atrás, eu tive um problema e não consegui também entender o que acontecia, simplesmente o registro sumia.
Nesse caso eu encontrei o que acontecia quando excluÃa, mas não consegui entender o porque.
Por exemplo: Quando eu entrava para alteração de um registro, eu abria, pegava os dados do banco, e fechava novamente, ou seja, a conexão está fechada. Mas, se nesse momento, o computador reiniciar, por exemplo, ele apagava o registro. Mesmo sem clicar em nenhum botão. Eu resolvi usando a POG, fazendo backup do registro no momento da alteração e depois voltando ele no lugar dele.
Mas hoje está acontecendo algo um pouco mais estranho, pois já fiz o teste e, usando a POG, o registro está lá ao abrir novamente. Mas de repente, daqui 2 dias, ou 1 semana, o registro não está mais lá.
Hoje mesmo um cliente me ligou dizendo que ontem estava o registro lá, hoje não está mais. Pensei que ele estivesse falando besteira, mas não. Realmente no backup está lá o registro, e não há nenhum log de exclusão, somente um de alteração, mas após a alteração, chequei o backup após e realmente o registro estava lá, ou seja, não excluiu na alteração.
Alguém já passou por isso? Existe alguma explicação para isso?
Estou com um probleminha grave, não sei por qual motivo, alguns registros da minha tabela do banco de dados estão sendo apagados. Não há explicação, simplesmente o registro não está lá.
Suspeitei que seria o usuário que estaria excluindo o registro e fiz um log de operações, onde grava todas as ações. Resultado, não é o usuário.
Estou rodando MySQL, em Windows Server 2008 e acessando os dados via terminal service.
Há um tempo atrás, eu tive um problema e não consegui também entender o que acontecia, simplesmente o registro sumia.
Nesse caso eu encontrei o que acontecia quando excluÃa, mas não consegui entender o porque.
Por exemplo: Quando eu entrava para alteração de um registro, eu abria, pegava os dados do banco, e fechava novamente, ou seja, a conexão está fechada. Mas, se nesse momento, o computador reiniciar, por exemplo, ele apagava o registro. Mesmo sem clicar em nenhum botão. Eu resolvi usando a POG, fazendo backup do registro no momento da alteração e depois voltando ele no lugar dele.
Mas hoje está acontecendo algo um pouco mais estranho, pois já fiz o teste e, usando a POG, o registro está lá ao abrir novamente. Mas de repente, daqui 2 dias, ou 1 semana, o registro não está mais lá.
Hoje mesmo um cliente me ligou dizendo que ontem estava o registro lá, hoje não está mais. Pensei que ele estivesse falando besteira, mas não. Realmente no backup está lá o registro, e não há nenhum log de exclusão, somente um de alteração, mas após a alteração, chequei o backup após e realmente o registro estava lá, ou seja, não excluiu na alteração.
Alguém já passou por isso? Existe alguma explicação para isso?
Veja bem: MySQL é utilizado por dezenas de milhares(senão milhões) de aplicações mundo à fora. Isso se dá por ser um banco de alto nÃvel de confiabilidade, escalabilidade, desempenho e muitos outros fatores que o tornam um dos lÃderes de mercado no seu ramo. Uma das coisas que acho dificÃlimo que aconteça é ele deletar registros sozinho. Muito difÃcil mesmo. A chance é de que o que está apagando é a sua aplicação, de alguma maneira.
Cara, eu sei, o banco é confiável sim, isso não há dúvidas.
Mas já revisei o código todo e não há em nenhum momento explicação lógica para o que está acontecendo, se a conexão ficasse aberta? Haveria possibilidade?
Não sei, mas no meu caso a conexão é fechada após pegar os dados para alteração. E por exemplo, nesse momento, se o computador reiniciar, o registro em questão é excluÃdo, qual a explicação disso sendo que a conexão está fechada?
Nenhum comando foi executado nesse momento. Nenhuma conexão, nenhum INSERT, DELETE, UPDATE foi executado.
Qual a possibilidade disso acontecer nesse caso? No meu ver, nenhuma.
Mas já revisei o código todo e não há em nenhum momento explicação lógica para o que está acontecendo, se a conexão ficasse aberta? Haveria possibilidade?
Não sei, mas no meu caso a conexão é fechada após pegar os dados para alteração. E por exemplo, nesse momento, se o computador reiniciar, o registro em questão é excluÃdo, qual a explicação disso sendo que a conexão está fechada?
Nenhum comando foi executado nesse momento. Nenhuma conexão, nenhum INSERT, DELETE, UPDATE foi executado.
Qual a possibilidade disso acontecer nesse caso? No meu ver, nenhuma.
Sei lá, muito estranho... Será que um usuário mais [Ô]espertinho[Ô] não está abrindo algum gerenciador (front-end mysql) e executando a deleção por lá?
coloca uma trigger para monitorar a inclusão, edição e exclusão
Citação:Será que um usuário mais [Ô]espertinho[Ô] não está abrindo algum gerenciador (front-end mysql) e executando a deleção por lá?
Então, acredito que não, pois o sistema é acessado via terminal service e o caminho de cada usuário está setado para o .exe do programa, ou seja, ele nem tem acesso a área de trabalho.
Citação:coloca uma trigger para monitorar a inclusão, edição e exclusão
Já existe, e em nenhum momento foi executado nenhum comando desse tipo pelo usuário.
Bom, como o negócio está muito estranho, tomei uma decisão, vou reescrever a tela inteira que trata essas tabelas, e ver o que acontece, inserindo linha a linha pode ser que eu encontre alguma coisa que não encontrei na análise. O problema é que nessa única tela tem mÃseras 8536 linhas. Vai ser um trabalhinho duro, mas, como disse o KERPLUNK,
Citação:, se for isso, vou encontrar.A chance é de que o que está apagando é a sua aplicação, de alguma maneira.
Obrigado pela ajuda de todos.
Abraço!
Tópico encerrado , respostas não são mais permitidas