Necessidade de reindexar tabelas Paradox a cada 10 min
Eu estou com um erro dando direto em meu banco de dados em paradox, tenho que reindexar a cada 10 min, estou trabalhando em rede, alguém tem alguma boa sugestão ???
Sremulador
Curtidas 0
Respostas
Balceiro
16/01/2004
Não sei se vai ajudar muito, mas sai fora de paradox, mude pelo menos para o access que é mais confiável.
GOSTEI 0
Aroldo Zanela
16/01/2004
Colega,
Não é para tanto. Solicite uma certificação da rede. A propósito, quantos usuários/estações, velocidade, hub/switch? O BDE está configurado corretamente?
Não é para tanto. Solicite uma certificação da rede. A propósito, quantos usuários/estações, velocidade, hub/switch? O BDE está configurado corretamente?
GOSTEI 0
Vinicius2k
16/01/2004
colega,
acho que boa parte de seus problemas de resolverão com uma configuração correta da BDE, mas não sou muito entendido no assunto...
o colega ´bacalhau´ é o fera na BDE... e pode lhe ensinar coisar q vc nem sabia que existiam... manda uma MP pra ele ou aguarde ele responder neste tópico...
acho que boa parte de seus problemas de resolverão com uma configuração correta da BDE, mas não sou muito entendido no assunto...
o colega ´bacalhau´ é o fera na BDE... e pode lhe ensinar coisar q vc nem sabia que existiam... manda uma MP pra ele ou aguarde ele responder neste tópico...
GOSTEI 0
Sremulador
16/01/2004
Amigos eu já tentei de tudo, são apenas 2 usuários eu já configurei e reconfiurei o meu bde, minha rede e IPX, será que ninguem teria uma boa solução, menos trocar de db.
GOSTEI 0
Bacalhau
16/01/2004
Vinicius, tu deixas-me sem jeito, homem :oops:
Colega sremulador, de facto os erros de índices corrompidos (index out of date, corrupt index file/header, etc) são uma consequência da configuração do BDE. Há uns meses mandei um pequeno artigo para o clube, para o publicarem, mas até agora não tive resposta. Assim, vou postar o artigo aqui. Se ainda assim houver erros, manda um mail para virtual.viegas@netc.pt para eu ajudar. O artigo vai a seguir.
abraço
Viegas
Colega sremulador, de facto os erros de índices corrompidos (index out of date, corrupt index file/header, etc) são uma consequência da configuração do BDE. Há uns meses mandei um pequeno artigo para o clube, para o publicarem, mas até agora não tive resposta. Assim, vou postar o artigo aqui. Se ainda assim houver erros, manda um mail para virtual.viegas@netc.pt para eu ajudar. O artigo vai a seguir.
abraço
Viegas
GOSTEI 0
Bacalhau
16/01/2004
Cá vai o artigo na versão original
Evitar indices corrompidos
Estimados colegas, antes de mais obrigado pelos vossos mails e pela vossa contribuição no fórum. Descobri-o há uma semana e sinto-me muito mais rico com as vossas sugestões e, sobretudo, pelos pontos de vista com que ´atacam´ os problemas.
Sobre a questão dos índices corrompidos há que dizer uma coisa: por causa deles foi parar a um psicólogo, já que tinha 40 empresas dependentes do meu trabalho (sou free lancer) e recebia 40 telefonemas por dia reportando 40 crashs nos dados de aplicações comerciais. A solução que encontrei é simples mas seria bom perceber algumas coisas antes.
1. O Borland Database Engine
----------------------------------
As tabelas Paradox são suportadas por um motor de bases de dados fornecido pela Borland, denominado Borland Database Engine (daqui para a frente BDE). É nesta aplicação que parametrizamos tudo sobre as drivers, bases de dados, lingua utilizada, parâmetros de datas, etc..
No caso das tabelas Paradox, somente alguns parametros é que são cruciais. Se as suas aplicações foram desenvolvidas em Delphi 2 ou anterior vai encontrar um BDE com um visual completamente diferente; no entanto os tais parâmetros cruciais mantêm-se lá.
Após abrir o BDE a que parâmetros deveremos prestar atenção? Cá vão:
Configuration -> Drivers -> Native -> Paradox - parâmetro NET DIR
Configuration -> System -> INIT -> parâmetro LOCAL SHARE
São estes dois parâmetros os responsáveis (ou não) pelo corrompimento de indexs. Para os enganarmos (sim, temos de os enganar) o melhor é avançar com um exemplo
2. Exemplo - tabelas Paradox num servidor acedidas por 5 clientes em simultâneo
----------------------------------------------------------------------------------------------
Vamos considerar um servidor chamado ´MEUSERVER´, com tabelas Paradox que estão em, por exemplo, C:\PARADOX\TABELAS (do ponto de vista do servidor, claro!!!).
Vamos agora considerar que a pasta ´C:\PARADOX´ foi partilhada, com acesso total por parte dos 5 utilizadores (usuários no Brasil :))
Se olharmos do ponto de vista de um computador cliente, as tabelas estarão em ´\\MEUSERVER\PARADOX\TABELAS´. Até aqui nada de novo.
Do ponto de vista do BDE, a coisa já requer alguma destreza. O melhor é visualizar a pasta ´PARADOX´ em ´MEUSERVER´ e atribuir-lhe uma unidade lógica através do comando ´Ligar Unidade de Rede´: digamos que todos os clientes atribuíram ao caminho ´\\MEUSERVER\PARADOX´ a unidade ´F:´.
Agora as tabelas não estão em ´\\MEUSERVER\PARADOX\TABELAS´, mas sim em ´F:\TABELAS´. Chegou a hora de parametrizar o BDE.
3. Como parametrizar o BDE nos clientes
-----------------------------------------------
Na opção NET DIR coloque o valor ´F:\´.
Na opção LOCAL SHARE escolha o valor TRUE
Os clientes podem agora aceder às tabelas, e os índices corrompidos desapareceram. É óbvio que nem todos os clientes são obrigados a escolhar a drive lógica ´F:´, para ligar a unidade de rede.
Só que, uma vez escolhida a letra, esta deverá ser a mesma no BDE. Os seus clientes já estão configurados. Com isto definimos o local onde o BDE irá criar as grandes caches, onde todos poderão ler, escrever e partilhar, tudo isto controlado por essa grande ferramenta da Borland.
O parametro LOCAL SHARE é que é o responsável por este desempenho fabuloso! O servidor vai precisar de um pequeno truque.
4. Como parametrizar o BDE no servidor
----------------------------------------------
No meu trabalho diário, verifiquei que os problemas ocorriam quando essas tabelas eram acedidas através do computador servidor. Na realidade o problema está aí. Quando os clientes (e só os clientes) trabalhavam tudo corria bem. Mas bastava o acesso a um registo de uma tabela e estava tudo corrompido. Se eu tivesse a aceder a um registo em simultâneo com um cliente era corrupção na certa.
Mas porque não colocar os parâmetros LOCAL SHARE=TRUE e NET DIR=´C:\PARADOX\´? Repare, estimado colega, é isto que a lógica ´manda´. Infelizmente o BDE é um pouco caprichoso e temos de usar o velhinho DOS para aceder às tabelas de qualquer lado da nossa rede.
As soluções são:
No Windows 95 e 98, edite o ficheiro ´C:\AUTOEXEC.BAT´ e acrescente a linha: ´SUBST F: C:\PARADOX´. Este comando atribui (no servidor) uma unidade lógica à pasta que foi partilhada para todos os clientes. Mais uma vez, não está obrigado a usar a letra ´F:´; no entanto, a que escolher deverá ser a mesma a utilizar no NET DIR do BDE do servidor. O parametro LOCAL SHARE também é true.
Nos Windows ME, NT, 2000 e XP crie um batch file, contendo a linha anteriormente descrita e coloque no arranque da máquina ou a executar antes das suas aplicações.
O que fizemos foi dizer ao BDE para aceder a ´C:\PARADOX´, não através do caminho local mas através de uma unidade qualquer. Se for através de ´C:´ é impossível. Se for através de outra letra ele é enganado e gosta!!! eheheheheheh
5. Resumindo
---------------
- Em todos os BDEs da rede coloque o parametro LOCAL SHARE igual a TRUE.
- Coloque o paramatero NET DIR a apontar para o MESMO LOCAL do servidor (com as unidades de rede que lhe apetecer).
- O servidor é excepção: se ninguém aceder às tabelas Paradox a partir do servidor, não há problema. Caso contrário defina uma unidade de rede ´a-la-DOS´ e coloque essa letra no parametro ´NET DIR´:
Espero ter ajudado. Tenho isto implementado há 3 anos nos meus clientes e os problemas de indexs corrompidos desapareceram. E o Paradox é bem robusto...
Abraço do José ´bacalhau´ Viegas
Evitar indices corrompidos
Estimados colegas, antes de mais obrigado pelos vossos mails e pela vossa contribuição no fórum. Descobri-o há uma semana e sinto-me muito mais rico com as vossas sugestões e, sobretudo, pelos pontos de vista com que ´atacam´ os problemas.
Sobre a questão dos índices corrompidos há que dizer uma coisa: por causa deles foi parar a um psicólogo, já que tinha 40 empresas dependentes do meu trabalho (sou free lancer) e recebia 40 telefonemas por dia reportando 40 crashs nos dados de aplicações comerciais. A solução que encontrei é simples mas seria bom perceber algumas coisas antes.
1. O Borland Database Engine
----------------------------------
As tabelas Paradox são suportadas por um motor de bases de dados fornecido pela Borland, denominado Borland Database Engine (daqui para a frente BDE). É nesta aplicação que parametrizamos tudo sobre as drivers, bases de dados, lingua utilizada, parâmetros de datas, etc..
No caso das tabelas Paradox, somente alguns parametros é que são cruciais. Se as suas aplicações foram desenvolvidas em Delphi 2 ou anterior vai encontrar um BDE com um visual completamente diferente; no entanto os tais parâmetros cruciais mantêm-se lá.
Após abrir o BDE a que parâmetros deveremos prestar atenção? Cá vão:
Configuration -> Drivers -> Native -> Paradox - parâmetro NET DIR
Configuration -> System -> INIT -> parâmetro LOCAL SHARE
São estes dois parâmetros os responsáveis (ou não) pelo corrompimento de indexs. Para os enganarmos (sim, temos de os enganar) o melhor é avançar com um exemplo
2. Exemplo - tabelas Paradox num servidor acedidas por 5 clientes em simultâneo
----------------------------------------------------------------------------------------------
Vamos considerar um servidor chamado ´MEUSERVER´, com tabelas Paradox que estão em, por exemplo, C:\PARADOX\TABELAS (do ponto de vista do servidor, claro!!!).
Vamos agora considerar que a pasta ´C:\PARADOX´ foi partilhada, com acesso total por parte dos 5 utilizadores (usuários no Brasil :))
Se olharmos do ponto de vista de um computador cliente, as tabelas estarão em ´\\MEUSERVER\PARADOX\TABELAS´. Até aqui nada de novo.
Do ponto de vista do BDE, a coisa já requer alguma destreza. O melhor é visualizar a pasta ´PARADOX´ em ´MEUSERVER´ e atribuir-lhe uma unidade lógica através do comando ´Ligar Unidade de Rede´: digamos que todos os clientes atribuíram ao caminho ´\\MEUSERVER\PARADOX´ a unidade ´F:´.
Agora as tabelas não estão em ´\\MEUSERVER\PARADOX\TABELAS´, mas sim em ´F:\TABELAS´. Chegou a hora de parametrizar o BDE.
3. Como parametrizar o BDE nos clientes
-----------------------------------------------
Na opção NET DIR coloque o valor ´F:\´.
Na opção LOCAL SHARE escolha o valor TRUE
Os clientes podem agora aceder às tabelas, e os índices corrompidos desapareceram. É óbvio que nem todos os clientes são obrigados a escolhar a drive lógica ´F:´, para ligar a unidade de rede.
Só que, uma vez escolhida a letra, esta deverá ser a mesma no BDE. Os seus clientes já estão configurados. Com isto definimos o local onde o BDE irá criar as grandes caches, onde todos poderão ler, escrever e partilhar, tudo isto controlado por essa grande ferramenta da Borland.
O parametro LOCAL SHARE é que é o responsável por este desempenho fabuloso! O servidor vai precisar de um pequeno truque.
4. Como parametrizar o BDE no servidor
----------------------------------------------
No meu trabalho diário, verifiquei que os problemas ocorriam quando essas tabelas eram acedidas através do computador servidor. Na realidade o problema está aí. Quando os clientes (e só os clientes) trabalhavam tudo corria bem. Mas bastava o acesso a um registo de uma tabela e estava tudo corrompido. Se eu tivesse a aceder a um registo em simultâneo com um cliente era corrupção na certa.
Mas porque não colocar os parâmetros LOCAL SHARE=TRUE e NET DIR=´C:\PARADOX\´? Repare, estimado colega, é isto que a lógica ´manda´. Infelizmente o BDE é um pouco caprichoso e temos de usar o velhinho DOS para aceder às tabelas de qualquer lado da nossa rede.
As soluções são:
No Windows 95 e 98, edite o ficheiro ´C:\AUTOEXEC.BAT´ e acrescente a linha: ´SUBST F: C:\PARADOX´. Este comando atribui (no servidor) uma unidade lógica à pasta que foi partilhada para todos os clientes. Mais uma vez, não está obrigado a usar a letra ´F:´; no entanto, a que escolher deverá ser a mesma a utilizar no NET DIR do BDE do servidor. O parametro LOCAL SHARE também é true.
Nos Windows ME, NT, 2000 e XP crie um batch file, contendo a linha anteriormente descrita e coloque no arranque da máquina ou a executar antes das suas aplicações.
O que fizemos foi dizer ao BDE para aceder a ´C:\PARADOX´, não através do caminho local mas através de uma unidade qualquer. Se for através de ´C:´ é impossível. Se for através de outra letra ele é enganado e gosta!!! eheheheheheh
5. Resumindo
---------------
- Em todos os BDEs da rede coloque o parametro LOCAL SHARE igual a TRUE.
- Coloque o paramatero NET DIR a apontar para o MESMO LOCAL do servidor (com as unidades de rede que lhe apetecer).
- O servidor é excepção: se ninguém aceder às tabelas Paradox a partir do servidor, não há problema. Caso contrário defina uma unidade de rede ´a-la-DOS´ e coloque essa letra no parametro ´NET DIR´:
Espero ter ajudado. Tenho isto implementado há 3 anos nos meus clientes e os problemas de indexs corrompidos desapareceram. E o Paradox é bem robusto...
Abraço do José ´bacalhau´ Viegas
GOSTEI 0
Vinicius2k
16/01/2004
colega,
depois dessa aula de BDE não tem como não acabarem os problemas...
grande abraço ´bacalhau´ e obrigado por ter nos ajudado mais uma vez... :wink:
depois dessa aula de BDE não tem como não acabarem os problemas...
grande abraço ´bacalhau´ e obrigado por ter nos ajudado mais uma vez... :wink:
GOSTEI 0
Bacalhau
16/01/2004
:oops:
Agora já há link para o pessoal com indices corrompidos. Abraço daqueles e obrigado pelos elogios
Agora já há link para o pessoal com indices corrompidos. Abraço daqueles e obrigado pelos elogios
GOSTEI 0
Sremulador
16/01/2004
[color=blue:bbec8593f4][/color:bbec8593f4] Valeu amigo, vou tentar executar suas dicas, a propósito você utiliza tables ou query para seus projetos ?
GOSTEI 0
Bacalhau
16/01/2004
Uso ambas. embora com mais frequência as tabelas
GOSTEI 0
Sam
16/01/2004
Amigão dê uma visitada no site WWW.BDESUPPORT.COM
Tem muita coisa interessante neste site para te ajudar.
Abçs !!!
Tem muita coisa interessante neste site para te ajudar.
Abçs !!!
GOSTEI 0