Database Maintenance

Γενικές συζητήσεις για SQL και SQL Servers (RDBMS)

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
wabbit
Δημοσιεύσεις: 52
Εγγραφή: 24 Αύγ 2006 22:55

Database Maintenance

Δημοσίευση από wabbit » 11 Ιαν 2007 01:09

Έχω φτίαξει ένα php site που έχει πρόσβαση σε δεδομένα ενός λογιστικού προγράμματος. Το λογιστικό πρόγραμμα είναι γραμμένο σε COBOL και σαν βάση δεδομένων έχει κάτι αρχεία *.vix που έχουν φτιαχτεί από την acuCORP. Επίσης αυτή η εταιρία έχει φτιάξει έναν ODBC server που διαβάζει αυτά τα δεδομένα μέσα από ένα windows client.

Ο ODBC server είναι κακογραμμένος και η δομή της βάσης είναι πολύ παλιά και δύσκολο να αλλάξει για να εξυπηρετεί τις ανάγκες. Τα δεδομένα με το λογιστικό πρόγραμμα βρίσκονται σε remote server οπότε κάθε query που γίνεται o apache server συνδέεται σε έναν windows server που κάνει ένα ODBC query στο remote μηχάνημα που έχει τα δεδομένα απο το λογιστικό πρόγραμμα. Με αποτέλεσμα, 1) να έχουμε πολύ traffic και 2) τα query να είναι πολύ δύσκολα από τις ελάχιστες functions σε ansi SQL που υποστιρίζει η AcuODBC.

Αυτό που σκέφτομαι είναι να κάνω Duplication of Data, και να έχω μια local mysql database στον apache server που θα έχει όλα τα δεδομένα εκεί χωρίς να χρειάζεται να κάνει remote queries και το Accounting Software να έχει έναν τρόπο που θα κάνει Maintain remotely, το mysql database. Δηλαδή αυτό που θέλω είναι να έχω κάποιο script που οτιδήποτε INSERT, UPDATE, DELETE γίνεται, με κάποιον τρόπο να τρέχει ενα mysql query που θα κάνει update την βάση remotely, και σε περιπτωσή που γίνει fail ή δεν δουλέυει η σύνδεση στο internet να τα βάζει σε ένα queue και να τα εκτελέσει μόλις επανέλθει η σύνδεση. Έτσι θα έχω πολύ λιγότερα queries και traffic γιατί θα γίνονται μόνο INSERT, UPDATE, DELETE και όλα τα SELECT θα είναι σε local database. Γνωρίζει κανείς ποια είναι η καλύτερη μέθοδος για να κάνω maintain μια mysql βάση remotely;

Αυτό που σκέφτομαι προς το παρόν είναι να στήσω έναν mysql-client στο μηχάνημα με το accounting software και να έχω ένα shell script που θα τρέχει όλα τα queries και σε περίπτωση που κάποιο query κάνει fail να το βάζει σε ένα fail.log αρχείο και να υπάρχει ένα cronjob που να δοκίμαζει να τρέχει με UNION τα queries που είναι στο fail.log και αν πετύχουν αυτή την φορά να τα σβήνει και από εκεί.

Απάντηση

Επιστροφή στο “Βάσεις Δεδομένων και SQL - γενικά”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες