Bonjour,
je vais devoir aider � la migration de Microsoft Access � PostgreSQL. Je
m'adresse � la liste pour prendre la temp�rature et voir quelles sont les
meilleures solutions en ce moment. La raison de la migration est
principalement la performance: actuellement seuls deux clients acc�dent �
la base de donn�es (en recording locking sur un serveur SMB Windows NT),
et c'est d�j� tr�s lent, il est pr�vu de passer � beaucoup plus de
clients. La seule contrainte est que comme de nombreux
scripts/forms/report ont �t� r�alis�s en Microsoft Visual Basic, on ne
peut se passer du client Microsoft Access.
Je ne connais pas Microsoft Access, mais d'apr�s ce que j'ai compris, il
ne semble pas possible d'utiliser ce logiciel en mode serveur (requ�te
p.ex. ODBC depuis des clients l�gers), on peut soit acc�der � la base de
donn�es en exclusif, soit utiliser du record locking (probablement bas�
sur les oplocks), mais dans les deux cas il faut un serveur de fichiers
compatible SMB.
Les possibilit�s que j'entrevois au niveau des am�liorations possibles
pour augmenter la performance:
- passer le r�seau � une plus grande vitesse
(je n'y crois pas trop, en plus ma philosophie client/serveur de
base de donn�es n'est pas du partage de fichiers)
- booster le serveur de fichiers Microsoft Windows NT
(m�me raison, en plus je voudrais m'en d�barrasser)
- mettre un des postes client comme serveur ODBC Microsoft Access,
ainsi toutes les requ�tes SQL des clients sont ex�cut�es dessus.
(je ne crois pas cela possible avec Microsoft Access)
- migrer le fichier sur un serveur Linux haute performance
(co�t plus faible en mat�riel/logiciel que Microsoft Windows NT,
mais � mon avis cela ne r�soudra pas le probl�me de performance,
et cela risque d'ajouter de nouveaux probl�mes: d'apr�s ce que
j'ai vu sur des mailing-lists, les oplocks semblent ne pas �tre
bien fiables avec Samba + Microsoft Access, commentaires ?)
- utiliser la couche ODBC de Microsoft Access, en conservant tout le
processing local (Microsoft Visual Basic), seules les requ�tes SQL
traversent le r�seau, sur un serveur PostgreSQL.
(mes soucis: 1. exportation de la base
2. compatibilit� et fiabilit� de ODBC + PostgreSQL
3. rapidit� du serveur PostgreSQL (des essais que
j'avais fait il y a longtemps avaient montr� que
pour des requ�tes SQL assez simple, PostgreSQL
semblait battre, et de loin, Microsoft Access,
m�me sur une configuration ridicule. Mais qu'en
est-il `en vrai' ?)
4. co�t de la licence ODBC sur chaque client)
On peut alors se d�barrasser aussi du serveur de fichiers.
J'ai exclu de passer sur un client non Microsoft Access pour les raisons
expliqu�es ci-dessus (mais cela pourrait se faire en deuxi�me �tape si le
client est content de sa solution et veut investir du temps � porter ses
scripts et son environnement en open source, pour se d�barrasser des
licences Microsoft Access, ODBC, voire Microsoft Windows si une solution
compl�tement libre est possible, p.ex. avec le futur Star Office open
source).
Commentaires sur ce qui pr�c�de ? Avez-vous d�j� mis en oeuvre une telle
chose ? Quels sont les �cueils ? Merci de tout commentaire.
Pendant que j'y suis, les fonctionnalit�s suivantes semblent �tre pr�vues
pour la prochaine version de PostgreSQL, certaines sont d�j� pr�tes mais
doivent �tre test�es. Excitant, non ?
- log all transactions to a special log file, that can be used for
backup purposes: ie you dump the database every day, but you keep
the transaction log on a separate disk. Should the database disk
crash, you won't have any data loss if you restore the backup and
replay the transaction log.
(pr�vu bient�t)
- hard transactions: cutting the power to a PostgreSQL server
may cause data loss and/or data corruption. Some databases use
sophisticated techniques to ensure serialization of operation
through journaling, redoing some of the transactions at
bootup time if required.
(d'apr�s les d�veloppeurs, partiellement bon avec support fsync()
enclench�, et d�coule du premier point pour le reste)
- the ability to synchronize two database servers, with only the
changes being exchanged, live. Or the ability to have many
servers in a load-balancing or data scattering pool.
(en cours de r�alisation: http://www.erserver.com/)
- ability to have databases bigger than the host's maximum file size
(d�j� bon: PostgreSQL utilise des spools de 1 GB)
--
http://www-internal.alphanet.ch/linux-leman/ avant de poser
une question.