Adatbázis - hogyan lehet gyorsan átnevezni a mysql adatbázis (változás sémanevet)
Az InnoDB, úgy tűnik, hogy működik a következő: Hozzon létre egy új üres adatbázist, majd nevezze át minden tábla viszont egy új adatbázist:
Ezt követően meg kell állítani a felbontást.
Shell script segítségével az alábbi:
Megjegyzés: a -p opció és a jelszó nincs hely. Ha az adatbázis nem rendelkezik jelszóval, töröljön néhány -u username -ppassword.
Ezen felül, ha a tárolt eljárást, akkor másolja őket később:
Azt hiszem, a megoldás egyszerűbb és felvetődött egyes fejlesztők. Erre a phpMyAdmin végzi.
Tól phpMyAdmin válassza ki a kívánt adatbázist kiválasztásához. A lapok egy nevet, „Operation”, megy átnevezésére listájában. Ez minden.
Úgy, mint sokan mások, létrehoz egy új adatbázist egy új nevet, eltávolítja az összes táblát a régi adatbázis az új adatbázisba, és törli a régi adatbázist.
launchctl leterhelő -w
# 47; Library # 47; LaunchAgents # 47; homebrew.mxcl.mysql.plist cd # 47; usr # 47; helyi # 47; var # 47; mysql mv régi név új név launchctl terhelés -w
Nos, van 2 mód:
1. módszer: Az ismert eljárás átnevezés adatbázis rendszer - egy áramkörben keresztül mysqldump és hasznosításának a másik rendszerbe, majd eltávolítjuk a régi rendszer (ha szükséges).
Annak ellenére, hogy a fenti módszer egyszerű, időben és térben. Mi a teendő, ha az áramkör nagyobb, mint 100 GB?. Vannak módszerek, amelyek segítségével össze a fenti parancs együtt tartani őket az űrben, de nem időt takaríthat meg.
Ahhoz, hogy az ilyen helyzetek orvoslására, van egy másik gyors módja, hogy nevezze át a rendszereket, de ugyanakkor ügyelni kell.
2. módszer: A MySQL egy nagyon jó funkció átnevezni egy táblázatot, amely még a munka a különböző rendszereket. Ez átnevezés művelet atomi, és senki más nem tud hozzáférni az asztalra, amikor azt átnevezni. Beletelik egy rövid ideig, mivel a változás a tábla nevét vagy séma - ez csak a metaadat változás. Ha van egy procedurális megközelítést átnevezési eljárás:
Hozzon létre egy új adatbázis séma a megfelelő nevet. Nevezze asztal a régi rendszerből az új rendszerbe, a parancs «Tábla átnevezése» MySQL. Dobd el a régi adatbázis sémát. Ha vannak olyan nézetek, triggerek, függvények, tárolt eljárások a sémában, azokat ki kell újra is. MySQL «Tábla átnevezése» sikertelen, ha vannak kiváltó táblázatokban. Ennek kijavításához, akkor tegye a következőket:
1) Dump a kiváltó események, és a tárolt eljárások egy külön fájlban. Ezt használja a zászló -E, -R (amellett, hogy -t -d, amely visszaállítja a flip-flop) mysqldump parancsot. Miután a kiváltó törlődik, akkor kell, hogy távolítsa el őket a kör átnevezni TABLE parancs végrehajtása.
2) Készítsen egy listát a «BASE» táblázatokat. Ezek megtalálhatók lekérdezésével a information_schema.TABLES táblázatban.
3) dhampirs képviselet a kimeneti fájl. Képviseletek megtalálható a lekérdezés azonos information_schema.TABLES asztalra.
4) Csepp kiváltja a jelenlegi táblázat old_schema.
5) visszaállítása a fenti fájloknak a leghamarabb a alaptáblákhoz találja a 2. lépésben átnevezésre kerül.
Használata nehézségekbe ütközik a fent leírt módszerekkel. Talán meg kell frissíteni GRANTS felhasználók számára, hogy megfeleljen a helyes séma nevét. Ők lehet rögzíteni egy egyszerű UPDATE mysql.columns_priv asztalok, mysql.procs_priv, mysql.tables_priv, mysql.db, felújítása név old_schema hogy new_schema okozva «Flush jogosultságokkal”. Bár a „2. módszer” úgy tűnik, egy kicsit bonyolultabb, mint az „1. módszer”, ez nagyon is lehetséges forgatókönyveket. Egy egyszerű bash script, hogy végezze el a fenti lépéseket a megfelelő sorrendben takaríthat meg térben és időben, amikor átnevezése adatbázissémát a következő alkalommal.
Csapat Percona Remote DBA levelet script úgynevezett «rename_db», amely a következőképpen működik:
Annak igazolására, az ezzel a script, akkor használja a közelítő rendszer «emp», ami teszt kiváltó, tárolt eljárások ebben a rendszerben. Próbálja meg átnevezni az adatbázis séma egy script, ami néhány másodpercet vesz igénybe, szemben a munkaigényes módszer dump / visszaállítás.
Mint látható a fenti, az adatbázis séma «emp» átkeresztelték «emp_test» kevesebb mint egy másodperc. Végül ez a forgatókönyv Percona, amelyet a fenti „2. módszer”.