Automatisk REPAIR

Diskussion av datorer, inte bara i rent tekniska aspekter utan även i politiska och filosofiska.

Moderator: Moderatorgrupp

Användarens profilbild
Holger
Support - Ledare
Support - Ledare
Inlägg: 6575
Blev medlem: 2004-06-09 09:32
Svar: 1

Automatisk REPAIR

Inlägg av Holger »

Hejsan,

jag har ett skript som man kan utföra som reparerar tabeller efter en databas-krasch.
Det förekommer ofta att en tabell är "In Use" efter en krasch.
Detta skript utför en REPAIR på hela databasen.

Kod: Markera allt

<?
### Enter your username and password into the connection string: ###
$dbLink = mysql_connect("localhost", "username", "password") or die("Unable to connect to the database.");
$sql = "show databases";
$query = mysql_query($sql) or die("error fetching database names");
while ($rs=mysql_fetch_array($query)) {
//echo "Database: " . $rs['Database'] . "\n";
mysql_select_db($rs['Database'],$dbLink) or die("Unable to select database: " . $rs['Database']);
$sql = "show tables";
$query2 = mysql_query($sql) or die("error fetching table names");
while ($rs2=mysql_fetch_array($query2)) {
$key = "Tables_in_" . $rs['Database'];
//echo "Table: " . $rs2[$key] . "\n";
$sql = "repair table " . $rs2[$key];
$query3 = mysql_query($sql);
$rs3 = mysql_fetch_array($query3);
echo $rs3['Table'] . " | " . $rs3['Op'] . " | " . $rs3['Msg_type'] . " | " . $rs3['Msg_text'] . "\n";
}
}
echo "Finished!\n";
?>
Holger Gremminger
Ingen support via PM!
Peetra
Hedersmedlem
Hedersmedlem
Inlägg: 3281
Blev medlem: 2007-06-09 22:38
Svar: 0

Re: Automatisk REPAIR

Inlägg av Peetra »

Hur ska jag gå tillväga för att krascha en sån då, så jag kan testa? ;)
Användarens profilbild
tumba25
Hedersmedlem
Hedersmedlem
Inlägg: 2097
Blev medlem: 2007-04-18 10:38
Svar: 0

Re: Automatisk REPAIR

Inlägg av tumba25 »

Logga in på dina lokala testforum och skriv några inlägg. Sen drar du ut sladden ur väggen direkt när du postat ett inlägg. Det borde räcka. Du får inte använda win's "stänga datorn"-funktion utan måste dra sladden ur väggen så att den inte hinner spara något som är cachat i minnet.
Bild
Developer @ phpBB MOD Team

Behöver du en modifikation skriven/installerad för ditt phpBB-forum? Eller kanske annan specialanpassad kod och/eller en server-administratör? https://tumba25.net/
Användarens profilbild
copy112
Extra aktiv medlem
Extra aktiv medlem
Inlägg: 205
Blev medlem: 2007-12-13 18:08
Svar: 0

Re: Automatisk REPAIR

Inlägg av copy112 »

Räcker det inte att bara avsluta mysql processen? Annars låter det svårt att krascha en mysql databas :D
Har inte så mycket tid över, men tittar in lite då och då.
Användarens profilbild
tumba25
Hedersmedlem
Hedersmedlem
Inlägg: 2097
Blev medlem: 2007-04-18 10:38
Svar: 0

Re: Automatisk REPAIR

Inlägg av tumba25 »

Om du gör en kill på den processen räcker det. Men inte om du avslutar den via MySQL's egna funktioner. Det borde finnas något sätt att göra en kill på win-datorer också.
Bild
Developer @ phpBB MOD Team

Behöver du en modifikation skriven/installerad för ditt phpBB-forum? Eller kanske annan specialanpassad kod och/eller en server-administratör? https://tumba25.net/
Användarens profilbild
Marcus
Hedersmedlem
Hedersmedlem
Inlägg: 4321
Blev medlem: 2004-01-07 22:12
Svar: 0

Re: Automatisk REPAIR

Inlägg av Marcus »

Rensade lite i denna tråd, så att det som handlar om Holgers script är det som vi pratar om. (Själv hade jag också syndat... :oops:).

Det kan hända att tabeller låser dig, för när databasmotorn jobbar och t.ex. får en "INSERT" så låser den tabellen för att ingen annan i samma ögonblick ska kunna skriva i tabellen. Direkt efter att den skrivit i tabellen så ska låset tas bort, men det är inte alltid det lyckas. Då kvarstår tabellen som låst, dvs. "IN USE".

/marcus
Marcus Farrington - Administratör på phpBB Sverige
OBS! På förekommen anledning ges ingen support via PM.

Webb- & Drupalutvecklare på Webbyrå Grebban.
Skriv svar

Vilka är online

Användare som besöker denna kategori: 0 och 0 gäster