Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα παιδιά,

Αντιμετωπίζω ένα πρόβλημα και χρειάζομαι την βοηθεία σας. Τρέχω ένα site σε Joomla 3 και λόγω αυξημένης κίνησης θέλω να το μεταφέρω σε νέο σέρβερ. Το πρόβλημα που αντιμετωπίζω είναι το εξής. Η mysql του site λέει οτι είναι 1 GB +.... και ενώ κάνω backup ολόκληρη την βάση μου αποθηκεύει μόνο τα 500mb. Το backup το κάνω:

1) Σύνδεση στο plesk
2)Επιλογή βάσης
3)Μαρκάρω ΟΛΑ τα tables και πατάω εξαγωγή.

Για πιο λόγο μου αποθηκευει μόνο την μισή βάση. Ξέρεις κανείς τι συμβαίνει;;

Ευχαριστώ εκ των προτέρων!!

Δημοσ.

μπορεί να έχει κανένα περιορισμό.. γιατί δεν δοκιμάζεις να το κάνεις μόνος σου;

 

Θα μπορούσες να καλέσεις αυτό το αρχείο:

 

 

<?php 
backup_tables('localhost','user','pass','db_name');


/* backup the db OR just a table */
function backup_tables($host,$user,$pass,$name,$tables = '*')
{
	
	$link = mysql_connect($host,$user,$pass);
	mysql_select_db($name,$link);
	
	//get all of the tables
	if($tables == '*')
	{
		$tables = array();
		$result = mysql_query('SHOW TABLES');
		while($row = mysql_fetch_row($result))
		{
			$tables[] = $row[0];
		}
	}
	else
	{
		$tables = is_array($tables) ? $tables : explode(',',$tables);
	}
	
	//cycle through
	foreach($tables as $table)
	{
		$result = mysql_query('SELECT * FROM '.$table);
		$num_fields = mysql_num_fields($result);
		
		$return.= 'DROP TABLE '.$table.';';
		$row2 = mysql_fetch_row(mysql_query('SHOW CREATE TABLE '.$table));
		$return.= "\n\n".$row2[1].";\n\n";
		
		for ($i = 0; $i < $num_fields; $i++) 
		{
			while($row = mysql_fetch_row($result))
			{
				$return.= 'INSERT INTO '.$table.' VALUES(';
				for($j=0; $j<$num_fields; $j++) 
				{
					$row[$j] = addslashes($row[$j]);
					$row[$j] = ereg_replace("\n","\\n",$row[$j]);
					if (isset($row[$j])) { $return.= '"'.$row[$j].'"' ; } else { $return.= '""'; }
					if ($j<($num_fields-1)) { $return.= ','; }
				}
				$return.= ");\n";
			}
		}
		$return.="\n\n\n";
	}
	
	//save file
	$handle = fopen('db-backup-'.time().'-'.(md5(implode(',',$tables))).'.sql','w+');
	fwrite($handle,$return);
	fclose($handle);
}
?>

 

 

Δημοσ.

Δηλαδή να φτιάξω ένα php άρχειο, με τον παραπάνω κώδικα και εν συνεχεία να τον καλέσω μέσω sql; Κατάλαβα καλά; Αν ναι, θα μπορούσες να μου εξηγήσεις πως θα το καλέσω μέσω sql ή τον τρόπο, μιας και δεν το έχω ξανά κάνει;
 

Δημοσ.

θα βάλεις στην πρώτη σειρά τα στοιχεία της βάσης σου και όταν καλέσεις το αρχείο θα κάνει dump όλα τα tables σε ένα αρχείο, το κατεβάζεις με ftp και τέλος.

Δημοσ.

θα βάλεις στην πρώτη σειρά τα στοιχεία της βάσης σου και όταν καλέσεις το αρχείο θα κάνει dump όλα τα tables σε ένα αρχείο, το κατεβάζεις με ftp και τέλος.

Έφτιαξα ένα αρχείο php με όνομα "test.php". Το ανέβασα στον φάκελο που είναι τα αρχεία του site και έτρεξα το site.gr/test.php . Αλλά μόνο errors δέχτηκα. Έκανα μαλακία;

δοκιμασε το http://www.phpmybackuppro.net/

ή να μπεις απο το phpmyadmin και να κανεις export την database σου.

Το πρώτο τι ακριβώς κάνει; Απο το phphmyadmin έκανα το export των tables και μου κατέβασε την μισή βάση!!!

Δημοσ.

Έφτιαξα ένα αρχείο php με όνομα "test.php". Το ανέβασα στον φάκελο που είναι τα αρχεία του site και έτρεξα το site.gr/test.php . Αλλά μόνο errors δέχτηκα. Έκανα μαλακία;

 

στο αρχείο στο σημείο 

backup_tables('localhost','user','pass','db_name');

έβαλες τα στοιχεία της βάσης σου; Τι errors βγάζει;

Δημοσ.

 

Το πρώτο τι ακριβώς κάνει; Απο το phphmyadmin έκανα το export των tables και μου κατέβασε την μισή βάση!!!

Κανει backup όλης της βασης με php και στο στελνει με email ή στο αφηνει να το κατεβασεις directly.

Δημοσ.

στο αρχείο στο σημείο 

backup_tables('localhost','user','pass','db_name');

έβαλες τα στοιχεία της βάσης σου; Τι errors βγάζει;

Την πρώτη φορά με το error ένα απο τα " " είχε ένα κενό και το πήρε σαν error. Μετά το ξανά πέρασα και απλά μου εμφάνιζε μια λευκή σελίδα. Το έκανα και σε άλλες σελίδες που είχα με πολύ μικρότερες βάσεις και λειτούργησε. Στην βάση όμως του 1GB δεν έκανε τίποτα. Μήπως χρειάζεται περισσότερο χρόνο, πρωτού το εμφανίσει;

Κανει backup όλης της βασης με php και στο στελνει με email ή στο αφηνει να το κατεβασεις directly.

 

Φίλε μου το δοκίμασα και σε άλλες σελίδες που έχω. Στις άλλες λειτούργησε, αλλά όπως είπα και στον προηγούμενο τρόπο με την php στην βάση του 1gb δεν έκανε δουλειά. Πιο συγκεκριμένα, στον δικό σου τρόπο μου έβγαλε και "internal server error"

Δημοσ.

Σε ένα VPS στην Γερμανία. Του έστειλα email και μου είπε οτι δεν υπάρχει περιορισμός απο τον σέρβερ. Δεν μπορώ να καταλάβω τι παίζει...

Δημοσ.

Αφού είναι σε VPS συνδέσου με ssh, τρέξε mysqldump και βάλε το αρχείο σε ftp folder και κατέβασέ το.

 

 

Στην βάση όμως του 1GB δεν έκανε τίποτα. Μήπως χρειάζεται περισσότερο χρόνο, πρωτού το εμφανίσει;

Προφανώς και θα θέλει αρκετά περισσότερο χρόνο. Το αρχείο όμως απλά θα αποθηκευτεί στον φάκελο που έχεις το test.php, δεν θα σου πετάξει dialog

για να το κατεβάσεις. Μετά θα θες λογικά πάλι ftp.

 

 

BTW απορία, αν πχ για να δημιουργηθεί το backup θέλει να τρέχει το script 10 λεπτά, τότε όταν κάνει κάποιος ένα http request στο test.php και σε 20 δευτερόλεπτα κλείσει το tab, τι θα απογίνει η εκτέλεση του script? Θα τρέξει όλο ή θα διακοπεί όταν κλείσει το tab?

 

Δημοσ.

 

BTW απορία, αν πχ για να δημιουργηθεί το backup θέλει να τρέχει το script 10 λεπτά, τότε όταν κάνει κάποιος ένα http request στο test.php και σε 20 δευτερόλεπτα κλείσει το tab, τι θα απογίνει η εκτέλεση του script? Θα τρέξει όλο ή θα διακοπεί όταν κλείσει το tab?

 

Θα τρέξει όλο μιας και ο server έχει δεχεί το request.

Δημοσ.

Αφού είναι σε VPS συνδέσου με ssh, τρέξε mysqldump και βάλε το αρχείο σε ftp folder και κατέβασέ το.

Προφανώς και θα θέλει αρκετά περισσότερο χρόνο. Το αρχείο όμως απλά θα αποθηκευτεί στον φάκελο που έχεις το test.php, δεν θα σου πετάξει dialog

για να το κατεβάσεις. Μετά θα θες λογικά πάλι ftp.

 

Αυτό πως ακριβώς μπορώ να το κάνω; Δεν το έχω ξανά ακούσει. Και επίσης, γιατί εφαρμόζεται μόνο σε VPS αυτός ο τρόπος; Σε dedicated server δεν ισχύει;

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...