[ pakito @ 23.09.2018. 12:26 ] @
Sve je bilo normalno do pre nekih sat vremena kada je php aplikacija počela da kopa u mestu kad je trebalo da otvori jednu tabelu!
Otišao sam preko cPanela na phpMyAdmin, sve tabele su bile na listi, i svakoj je moglo da se priđe, samo toj jednoj tabeli ne!

Kako mogu da utvrdim šta se desilo sa tabelom, da li je obrisana ili oštećena?
Naročito, kako mogu da vratim njen bkp, kad ne mogu da je otvorim i pokrenem insert?

Pošto je frkovito, molim za hitan savet i mišljenje!
[ nkrgovic @ 23.09.2018. 13:05 ] @
Vidi ima li tabele na disku? Postoje li .ibm i .frm fajlovi? Vidi logove od mysql-a, ima li neka greska?

Nemam pojma kako da ti pomognem ako su ti alati phpMyAdmin i cPanel, ali probaj ssh na masinu, pa vidi sta ima fizicki i sta ima u logovima.
[ bogdan.kecman @ 23.09.2018. 15:28 ] @
sa cpanem i phpmyadmin sigurno nes to opraviti, najbolji savet koji moz
da dobijes na pitanje koje si postavio je nadji nekog ko to radi za $$$
da ti odradi kako treba (evo npr ja mogu ti dam mega ultra turbo do jaja
preporuku za g. nkrgovic :D ) posto *svaki potez koji uradis* moze da
posalje tu tabelu nepovratno u smrt!!! tako da ... mora se bude jako
pazljiv i ti "alati" koje spominjes NE SME SE KORISTE!!!! jer ce naprave
jos veci karambol
[ pakito @ 23.09.2018. 15:34 ] @
Hvali svima na pomoći!
Ali, neki Marfi je umešao svoje prste, ako nisu čini vlaške magije?
Kako je sve počelo da brljavi, i da otkazuje, tako se SVE SAMO POVRATILO!
Šta se desilo, ne znam! :)
[ bogdan.kecman @ 23.09.2018. 15:46 ] @
sta god da se desilo, imas problem

 - korupcija podataka u bazi, korupcija tabele (jedne ili vise)

 - nedostatak mesta na disku

...

obavezno nadji nekog ko zna, i ima vremena, da ti to pogleda .. sta god
da se desava moze, kao sto rekoh, da dovede do nepovratnog gubljenja
date, nije za igru... da pratis normalno status imas neki monitoring,
znas da pogledas log i napravis bekap ne bi se preterano brinuo ali
obzirom da su ti alati cpanel i phpmyadmin, brinem za tu datu
[ pakito @ 23.09.2018. 16:19 ] @
Kao zaštitu od svih zala, ugradio sam dugme koji mi na klik izbacuje bekap najvažnije tabele, kao i dugme za celu bazu.
Rade savršeno. Pošto pomoću aplikacije, zapravo, unosim reči, zgodno je da se broj unetih reči, pored datuma, nađe u imenu bkp fajla.

Evo tog spasonosnog koda, fajlic: daj-bkp.php

Code:

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);

########## Database Info ##########
$dbhost = 'localhost';
$dbname = 'vasdbname';
$dbuser = 'vasdbuser';
$dbpass = 'vasasifra';

$link = @mysql_connect($dbhost, $dbuser, $dbpass) or die("Unable to Connect to '$dbhost'");
mysql_query("SET NAMES 'utf8'", $link);

mysql_select_db($dbname) or die("Could not open the db '$dbname'");
###########################

$polje1 = "vasepolje1";
$table1   = "vasatable1";

$count=mysql_query("SELECT $polje1 FROM $table1;");
$brojreci=mysql_num_rows($count);


/* kod za bekap pojedinacnih tabela */
$dumpfname = $table1 . "_" . date("d-m-Y") . "_" . $brojreci .".sql";
$command = "mysqldump -r $dumpfname --add-drop-table --host=$dbhost --user=$dbuser --password=$dbpass $dbname $table1 ";
system($command);


if (file_exists($dumpfname)) {
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename='.basename($dumpfname));
    flush();
    readfile($dumpfname);
}

//brisanje fajla u folderu servera
$files = glob('*.sql'); 
foreach($files as $file){
    if(is_file($file))
    unlink($file); 
}

?>


Ako hoćete bkp cele baze, zamenite $table1 sa $dbname:
Code:

$dumpfname = $dbname . "_" . date("d-m-Y") . "_" . $brojreci .".sql";
$command = "mysqldump -r $dumpfname --add-drop-table --host=$dbhost --user=$dbuser --password=$dbpass $dbname ";


Što se tiče dugmeta, njega sam "sakrio" iz uslova da bude vidljiv samo meni

Code:

<?php
if (isset($_COOKIE["AdminXXXX"]))
   {
   echo "<input type='button' class='dugme-print-meni1' value='Bekap MySql' onclick='DajBKP();' title='Bkp cele baze'>"; 
 }  
?>


Funkcija u javascriptu:

Code:

<script>
function DajBKP()
{
window.open("daj-bkp.php");
}
</script>



[ nkrgovic @ 23.09.2018. 18:12 ] @
Citat:
pakito:
Hvali svima na pomoći!
Ali, neki Marfi je umešao svoje prste, ako nisu čini vlaške magije?
Kako je sve počelo da brljavi, i da otkazuje, tako se SVE SAMO POVRATILO!
Šta se desilo, ne znam! :)

Gledaj, ovo je JAKO opasan stav.

Racunari su deterministicke masine. Ako im milion puta das nesto oni ce milion puta da urade isto. Ako ne urade onda su pokvareni.

Bogdan ti je dao neke ideje: Pun disk. Ostecena tabela. Mozda i nesto trece. Nadji kako ide ssh na tu masinu i pogledaj logove. SAZNAJ zasto se to desilo, pa spreci da se ponovi.

Napravio si odlican pocetak: Uradio si backup. Sad kreni dalje. :D Ako treba pomoc, pitaj. Ako si stvarno kustos u penziji i ako je ovo neki pet projekat, onda si na pravom mestu - pomoci cemo ti kad budemo imali vremena. :) Kreni, pa ces dobijati i savete.
[ pakito @ 24.09.2018. 08:54 ] @
Iz jutrošnje prepiske sa adminom servera saznadoh da je uzrok bio prostor na disku, i da je to ispravljeno!
[ mali_od_palube @ 24.09.2018. 12:37 ] @
Ako praviš backup na istoj mašini bar provuci .sql file kroz npr. gunzip, inače se može desiti da uskoro opet bude problema sa prostorom na disku.
[ pakito @ 24.09.2018. 12:48 ] @
Ne, moja funkcija Daj-bkp.php pravi bekap tabele, privremeno smešta fajl u folder na serveru, a onda ga preko browsera preuzima i smešta na moj kućni matični računar, i na kraju, sve lepo na serveru pobriše za sobom.
Savet da se .sql fajl zipuje nije loš, samo da na(r)učim šta treba da dodam u Daj-bkp.php da bi se baza zgunzipovala!