2010-12-14 3 views
0

Ok, ich habe hoch und niedrig gesucht und konnte keine Antwort finden, die für das, was ich versuche, funktioniert. Ich habe zwei Datenbanken, wir nennen sie DB1 und DB2. Ich habe einen Cron-Job, der jede Nacht um 4 Uhr nachts läuft, der DB1 sichert und seine Daten in einem SQL-Dateiarchiv speichert. Wir nennen diese Datei db_backup.sql. Die Datei wird in einem Ordner auf dem Server gespeichert, wir nennen sie ROOT/backups/db_backup.sql.Build-Datenbank mit SQL-Datei mit PHP

Info

database names: DB1 and DB2 
backup filename: db_backup.sql 
backup file path: ROOT/backups/db_backup.sql 

, was ich tun werde versuchen:

Ich möchte die db_backup.sql-Datei verwenden DB2 zu bauen. Ich versuche im Grunde, Datenbankreplikation einzurichten, wo ich DB1 zu DB2 repliziere. Ich kenne keine andere Möglichkeit, dies auf Shared-Hosting-Servern zu tun als das, was ich zu erklären versuche. Ich versuche, PHP zu verwenden, um die db_backup.sql-Datei in DB2 zu importieren.

Meine Umwelt:

Die Website und Datenbanken mit GoDaddy auf ein Shared-Hosting-Konto (ja, ich würde lieben, dedizierten Server zu bekommen echte Replikation einzurichten, aber es jetzt nicht leisten kann) . Die Datenbanken sind mysql in phpmyadmin.

Ist das möglich? Jede Hilfe würde sehr geschätzt werden! Lass es mich wissen, wenn du irgendwelche Fragen hast.

Antwort

0

Sollte so einfach sein, einen CRON-Auftrag auf Server 2 einzurichten, um ein Skript auf Server 1 aufzurufen, das die SQL-Datei austeilt, dann würde dieses Cron-Jobskript die Datenbank importieren/neu erstellen.

Stellen Sie sicher, dass Sie einen Hashwert (über get oder post) benötigen, bevor Sie den DB SQL auf Server 1 ausgeben, sonst könnte jeder Ihren Datenbankspeicherauszug lesen.

+0

ja, ich kenne die Konzepte von dem, was ich tun muss ... aber ich kenne den Code nicht wirklich, um es tatsächlich zu tun. Ich bin sehr gewusst (wie eine Woche oder so), um Jobs und solche Sachen zu cron. Wie benötige ich den Hash (habe ich auch noch nicht gemacht?) – RyanPitts

0

Können Sie PHP nicht vollständig vermeiden und direkt mit der Datenbank verbinden, um die Sicherung entweder über die Befehlszeile oder mit einer Skriptsprache durchzuführen, die für lange laufende Prozesse besser geeignet ist?

3

Ich bin mir nicht sicher, ob ich Ihr Problem verstehe. Sie müssen die db_backup-Datei auf den zweiten Host kopieren, auf dem Sie Zugriff auf die Datenbank haben, und die SQL-Datei laden.

Von einer Shell:

mysql -hhost -uusername -ppassword databasename < db_backup.sql 

Dadurch werden die Tabellen auf der zweiten Maschine wiederherzustellen.