Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Sigurni nacin za backup / restore MySQL 4.0.24 i 5.0.45

[es] :: MySQL :: Sigurni nacin za backup / restore MySQL 4.0.24 i 5.0.45

[ Pregleda: 1452 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

misk0
.: Lugano :. _.: CH :.

SuperModerator
Član broj: 634
Poruke: 2824
*.adsl.ticino.com.

ICQ: 46802502


+49 Profil

icon Sigurni nacin za backup / restore MySQL 4.0.24 i 5.0.4516.03.2010. u 11:21 - pre 172 meseci
Na serveru imam instalirane MySQL 4.0.24 i 5.0.45. Isti server, slusaju na portovima 3306 i 3307. Moram reinstalirati taj server i ponovo instalirati server a htio bih ova dva servera objediniti u jedan - naravno samo 5.x. Prije nego formatiram disk, interesuje me koji je siguran nacin da necu imati problema prilikom importovanja na novo instaliranom serveru. Serveri ne sadrze istoimene baze i tabele osim onih sistemskih. Kako to najbezbolnije rijesiti?

:: Nemoj se svadjati sa budalom, ljudi cesto nece primjetiti razliku ::
 
Odgovor na temu

Tyler Durden
Tyler Durden
Beograd

Član broj: 4312
Poruke: 3379
*.verat.net.



+1365 Profil

icon Re: Sigurni nacin za backup / restore MySQL 4.0.24 i 5.0.4516.03.2010. u 12:08 - pre 172 meseci
Koliko imas baza u toj 4.x?
Ja bih najprije eliminisao tu 4.x, odnosno prebacio bih te baze u 5.x i kad bi se uvjerio da sve funkcionise kako treba reinstalirao server i imao posla samo sa jednim MySQL serverom.
To je onako ugrubo za pocetak.

Ali mozda bogdan ima bolji savjet.
Beneath civilization's fragile crust, cold chaos churns...
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Sigurni nacin za backup / restore MySQL 4.0.24 i 5.0.4516.03.2010. u 18:21 - pre 172 meseci
joj misko ne bi ti bio u kozi ...

osnovno pitanje - koliki downtime mozes da podneses?

drugo - vrlo vazno pitanje .. taj 4.0 el imas u njemu tabele u kojima cuvas utf8 karaktere?


prvo sto uradis ...
-pogasis sve aplikacije koje im pristupaju
-ugasis oba mysql servera
-bekapujes datadir od oba servera na neku drugu masinu
-bekapujes config od oba servera na neku drugu masinu

onda ih upalis nazad (ne palis aplikacije - dakle nista ne pise po serveru od kada si napravio backup onih datadirova)

sa 5.0 uradis
Code:

mysqldump --all-databases --create-options  --no-data > struktura_petice.sql
mysqldump --all-databases --create-options --disable-keys --order-by-primary --routines --dump-date  --hex-blob > bekap_petice.sql


i sa peticom si generalno gotov. proveri za svaki slucaj u vrku bekap_petice.sql da li lepo setuje client character set na utf8 (Set names) da bi ti sve kako treba prebacio

za 4.0 je malo komplikovanije :(

prvo odradi damp strukture
Code:

mysqldump --all-databases --create-options  --no-data > struktura_cetke.sql


onda rucno, sve kolone gde ti se cuvaju utf8 karakteri (text, char, varchar ...) prebaci u BLOB !!!

dakle npr:
Code:

alter table luzer modify nadimak blob


onda napravi mysqldump cetvorke
Code:

mysqldump --all-databases --create-options --disable-keys --order-by-primary --routines --dump-date  --hex-blob > bekap_cetvorke.sql

ovde eventualno mozes da ides bez --all-databases pa da navedes sve baze na kraju, bez mysql baze posto nju svejedno neces bas hteti a restorujes u peticu kasnije ... mozes da je dampujes zasebno da sacuvas usere ...
(proveri da li sve ove opcije postoje u mysqldump-u od cetvorke ne znam napamet)


ako nemas neku komplikovanu matricu usera i privilegija, bolje da u oba dampa bekapujes samo baze koje ti trebaju i batalis mysql bazu kompletno a napravis usere posle rucno


kada reinstaliras mysql 5.0 (ili 5.1) ... samo mu uturis stari 5.0 datadir, pustis mysql_upgrade script i voila .. 5.0 si restorovo ... (onaj mysqldump je bio samo rezerva posto ipak formatiras disk)

za 4.0 tabele je sad malo cimanje ... sada restorujes iz mysqldump-a 4.0 sql .. (onaj gde je sve vec prebaceno u blob

Code:
 mysql < bekap_cetvorke.sql


i sada rucno, opet, za svaku kolonu koju si prebacio u blob, vratis je nazad u "sta je bila" samo sa validnim character setom

Code:

alter table luzer modify nadimak varchar(100) character set utf8;


i to je to ..
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Sigurni nacin za backup / restore MySQL 4.0.24 i 5.0.4516.03.2010. u 18:25 - pre 172 meseci
eh da ... jedna znacajna za***

4.0 i 5.0 nisu 1/1 kompatibilni ... izmedju 4.0 i 4.1 je bilo nekompatibilnih promena, pa izmedju 4.1 i 5.0 jos ... uglavnom se radi o sql-u i nesaglasnosti mysql-a 4.0 sa sql standardom ...

obavezno procitaj pre nego krenes u celu zaj*
http://dev.mysql.com/doc/refman/4.1/en/upgrade.html
http://dev.mysql.com/doc/refman/5.0/en/upgrade.html
http://dev.mysql.com/doc/refman/5.1/en/upgrade.html

i .. kada se vec cimas .. moj savet ti je

1. ako ikako mozes kupi novi disk i na njega sve instaliraj a stari sistem ostavi na polici "za nedaj boze" bar 10 dana pa ga posle vrati u masinu kao "dodatni storage"
2. kad se vec cimas - predji odma na 5.1, sve opcije koje ima 5.0 u 5.1 rade bolje i brze nego u 5.1, sve price o falinkama 5.1 su vezane iskljucivo za nove stvari koje u 5.0 ne postoje tako da tebe ne mogu da dotaknu ..


 
Odgovor na temu

misk0
.: Lugano :. _.: CH :.

SuperModerator
Član broj: 634
Poruke: 2824
*.adsl.ticino.com.

ICQ: 46802502


+49 Profil

icon Re: Sigurni nacin za backup / restore MySQL 4.0.24 i 5.0.4516.03.2010. u 21:30 - pre 172 meseci
Hvala hvala hvala.

Nije mi vrijeme frka, rijec je o manjem kucnom serveru, ali ovo sa kolonama sam stvarno nagrabusio... Nema sanse da zapamtim koja je kolona bila kojeg tipa. Vidjecu da obrishem sve suvisno prije nego sto se upustim. A kontao sam i ovo sto je Tyler rekao, tako cu sve baze sa 4ke prebaciti na 5icu pa onda export ili kopiranje data foldera i tek onda reinstall.

:: Nemoj se svadjati sa budalom, ljudi cesto nece primjetiti razliku ::
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Sigurni nacin za backup / restore MySQL 4.0.24 i 5.0.4516.03.2010. u 22:05 - pre 172 meseci
zato ti i rekoh da dumpnes sa --no-data prvo strukturu samo da bi posle znao sta kako na sta da vratis :D

ako sacekas koji dan, ja sam planirao da napravim neki skript koji ce to sam da uradi .... al obzirom u kolikim sam .... to mozda potraje nedelju dve ..
 
Odgovor na temu

misk0
.: Lugano :. _.: CH :.

SuperModerator
Član broj: 634
Poruke: 2824
*.adsl.ticino.com.

ICQ: 46802502


+49 Profil

icon Re: Sigurni nacin za backup / restore MySQL 4.0.24 i 5.0.4517.03.2010. u 09:50 - pre 172 meseci
Citat:

onda rucno, sve kolone gde ti se cuvaju utf8 karakteri (text, char, varchar ...) prebaci u BLOB !!!

dakle npr:
Code:

alter table luzer modify nadimak blob


Yap yap.. nego, kako da znam kod 4ke koje tabele koriste koji char set? Mozda bih tako mogao malo ustediti na vremenu ako neke tabele koriste latin ili tako nesto.

Da odgovorim sam sebi:
Code:

show create table table_name\G


E sad, dobijam odgovor recimo :

Code:

Create Table: CREATE TABLE `jos_content` (
  `id` int(11) unsigned NOT NULL auto_increment,
  `title` varchar(100) NOT NULL default '',
  `title_alias` varchar(100) NOT NULL default '',
  `introtext` mediumtext NOT NULL,
  `fulltext` mediumtext NOT NULL,
  `state` tinyint(3) NOT NULL default '0',
  `sectionid` int(11) unsigned NOT NULL default '0',
  `mask` int(11) unsigned NOT NULL default '0',
  `catid` int(11) unsigned NOT NULL default '0',
  `created` datetime NOT NULL default '0000-00-00 00:00:00',
  `created_by` int(11) unsigned NOT NULL default '0',
  `created_by_alias` varchar(100) NOT NULL default '',
  `modified` datetime NOT NULL default '0000-00-00 00:00:00',
  `modified_by` int(11) unsigned NOT NULL default '0',
  `checked_out` int(11) unsigned NOT NULL default '0',
  `checked_out_time` datetime NOT NULL default '0000-00-00 00:00:00',
  `publish_up` datetime NOT NULL default '0000-00-00 00:00:00',
  `publish_down` datetime NOT NULL default '0000-00-00 00:00:00',
  `images` text NOT NULL,
  `urls` text NOT NULL,
  `attribs` text NOT NULL,
  `version` int(11) unsigned NOT NULL default '1',
  `parentid` int(11) unsigned NOT NULL default '0',
  `ordering` int(11) NOT NULL default '0',
  `metakey` text NOT NULL,
  `metadesc` text NOT NULL,
  `access` int(11) unsigned NOT NULL default '0',
  `hits` int(11) unsigned NOT NULL default '0',
  PRIMARY KEY  (`id`),
  KEY `idx_section` (`sectionid`),
  KEY `idx_access` (`access`),
  KEY `idx_checkout` (`checked_out`),
  KEY `idx_state` (`state`),
  KEY `idx_catid` (`catid`),
  KEY `idx_mask` (`mask`)
) ENGINE=MyISAM


i tu nigdje ne vidim podesen charset. Sta to znaci, tj koji je u upotrebi? Defaultni od servera ili?
:: Nemoj se svadjati sa budalom, ljudi cesto nece primjetiti razliku ::
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Sigurni nacin za backup / restore MySQL 4.0.24 i 5.0.4517.03.2010. u 22:27 - pre 172 meseci
Citat:
kako da znam kod 4ke koje tabele koriste koji char set


pa valjda znas sta si pisao u njih ???

ono sto mozes da napravis je da kada prebacis u blob uradis iz php-a nesto ovako:
Code:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf8">
</head>
<body>
<table border=1>
<?php
   // konektujes se na mysql
   mysql_connect(":/tmp/mysql.sock", "root", "") or die(mysql_error());

   // ovde umesto b1 stavis ime baze
   mysql_select_db('b1');

   // ovde stavis sta MISLIS da je character set u blob kolonama, dakle set names 'utf8' ili set names 'cp1250' ili ...
   mysql_query("SET NAMES 'UTF8'");

   // ovde umesto t1 stavis ime tabele
   $res = mysql_query("SELECT * FROM t1 limit 100");

   while ($row = mysql_fetch_row($res)){
      echo "<tr>";
      foreach( $row as $x){
        echo "<td>".$x."&nbsp;</td>";
      }
      echo "</tr>";
   }

mysql_close();
?>
</table>
</body>
</html>


menjas enkoding u set names liniji dok ne dobijes validne karaktere na webu ... kada dobijes - to je enkoding ... onda uradis (na primer ako je bio cp1250)

Code:

-- prvo ga is blob bacis u varchar (ili text ili char ili sta je vec bilo)
-- koristeci character set koji si "provalio" da je upisan u polje
alter table t1 modify f1 varchar(100) character set cp1250;

-- onda ga iz tog character seta prebacis u utf8 (mysql ce da sada odradi konverziju iz jednog
-- character seta u drugi
alter table t1 modify f1 varchar(100) character set utf8;



Citat:

i tu nigdje ne vidim podesen charset. Sta to znaci, tj koji je u upotrebi? Defaultni od servera ili?


4.0 NEMA PODRSKU ZA CHARACTER SET !!!

ti si u 4.0 upisao x bajtova .. tih x bajtova je enkodirano "kako god" .. mysql nema pojma sta si ti tu stvarno napisao, dakle napisano je onako kako ga je tvoja aplikacija pripremila (i posalala bajt po bajt). Ako je tvoja aplikacija poslala utf8 onda je utf8, ako je poslala cp1250 onda je to, ako je latin1 onda je latin1 .. mysql-u 4.0 je to sve "isti klinac".

u 4.1 se pojavljuje podrska za character set (rudimentarna) a u 5.0 to najzad radi kako treba.

bas zato je fora da se ti podaci pretvore u blob (posto to u stvari i jesu .. ) i onda da se vrate u neki od tekst tipova sa odgovarajucim charsetom .. da se ne ponavljam oko toga kako charset podrska radi i sta to charset podrska zapravo jeste (mozda se smorim pa napravim i jedan opsirniji blog post kod mene na blogu da mogu da referenciram posto je izgleda, na zalost, malo kome jasno sta to tacno znaci i sta podrazumeva).
 
Odgovor na temu

[es] :: MySQL :: Sigurni nacin za backup / restore MySQL 4.0.24 i 5.0.45

[ Pregleda: 1452 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.