Mdf fájl visszaállítása. Sérült MS SQL Server adatbázis javítása

Néha szembe kell nézni olyan helyzettel, amikor az SQL-adatbázisban lévő sok éves munka gyümölcse veszélybe kerül. Ez a cikk arról szól, hogyan lehet megelőzni az adatvesztést, és ha mégis előfordul, hogyan lehet visszaállítani az egykor normál adatbázisból megmaradt adatokat.

Tehát kezdjük. A helyzet a következő: van rajta egy 1C+SQL-t futtató szerver. Amíg az SQL adatbázisok futottak, az áramellátás megszakadt. Az eredmény siralmas: a bázis gyanús állapotban van, és amikor az 1c megpróbál rácsatlakozni, hibaüzenetet generál, amely szerint nem lehet csatlakozni, mert nem lehet csatlakozni. az adatbázis helyreállítási gyanúsnak van megjelölve. Ez a mód alapvetően azt jelenti, hogy az MS SQL szerver saját eszközeikkel megpróbálják visszaállítani az adatbázist. Nem nyúltam hozzá semmihez, és éjszakára hagytam mindent, abban a reményben, hogy reggelre helyreáll a bázis, de reggelre ugyanaz volt, és ezért nem lehetett közel menni a bázishoz. Az aljasság törvénye szerint van biztonsági mentés, de az három napos, plusz nagyon sok olyan dokumentum van, ami csak az adatbázisban van tárolva, de a papíralapú dokumentumok szerint nincs, pl. nincs mód a dokumentumok kézi visszaállítására. Sok erőt és ideget eltöltöttem (amelyek, mint tudod, nem állnak helyre :)), a következő műveletsorhoz jutottam, amely az alap helyreállításához szükséges.

1) Az alapelv először az, hogy ne árts. Lenyomjuk az SQL szervert, és az *.mdf és *.ldf fájlokat az alapról oldalra másoljuk.
2) Elvileg előfordul, hogy a gyanús állapot azért következik be, mert az alappal rendelkező fájlok elérési útjai megváltoztak (pl. új lemez a rendszerben, amelyet aztán eltávolítottak, az adatbázist tartalmazó mappát átnevezték stb.). Aztán természetesen visszaállították az útvonalakat, de az adatbázis továbbra is gyanúsként van megjelölve. Íme, amit csinálunk:
3) Indítsa el az SQL Servert.
4) Megpróbáljuk összekapcsolni az adatbázist az Enterprise Manageren keresztül:
Jobb klikk az Adatbázisoknál a megjelenő menüben válassza az Összes feladat->Adatbázis csatolása menüpontot, majd a megjelenő párbeszédablakban válassza ki az adatbázist tartalmazó fájlt (*.mdf) és állítsa be a szükséges paramétereket.
5) vagy a Query Analyzeren keresztül valami ehhez hasonló paranccsal:
a. sp_attach_db @dbname = "DemoXMB",
b. @filename1 = "E:\Data\DemoXMB_Data.MDF",
c. @filename2 = "E:\Data\DemoXMB_Log.LDF"
6) A bázishoz vezető utakat természetesen ki kell cserélni a sajátoddal. Ha be van kötve a bázis, akkor, mondhatjuk, enyhe ijedtséggel szálltunk le, de ha nem, akkor folytatjuk.
7) Ha a naplófájl nem sérült (*.ldf), de az *.mdf sérült (például az adatbázis csatlakoztatásakor az sql az mdf fájl hibáira esküszik), és a mentési mód fullra van állítva, akkor visszaállítjuk az adatbázist a naplótranzakciók visszaállítása nélkül, majdnem 100%, hogy minden kín véget érhet.
8) Ha ellenkezőleg, az ldf fájl sérült, de az *.mdf fájl megmarad, akkor csatlakozáskor az adatbázis a tranzakciós napló hiányára/sérülésére esküszik. Ebben az esetben használhatja a HP "sp_attach_single_file_db" fájlt.

Például:
használd a mestert
EXEC sp_attach_single_file_db@dbname="DemoXMB",
@physname="c:\mssql7\data\DemoXMB_Dat.mdf"

A parancsok végrehajtásakor a DemoXMB_Log.ldf fájl ugyanabban a könyvtárban jön létre, mint az alap, 1 MB méretű és automatikus kiterjesztéssel.
Ha vannak *.MDF és *.LDF fájlok, vagy az adatok egynél több fizikai fájlban vannak tárolva (a csatolt fizikai fájlok száma nem haladhatja meg a 16-ot), akkor az "sp_attach_db" HP-t kell használni.

Például:
használd a mestert
EXEC sp_attach_db@dbname="DemoXMB",
@filename1 = "c:\mssql7\data\DemoXMB_Dat.mdf",
@filename1 = "c:\mssql7\data\DemoXMB_Log.ldf"

Ha több mint 16 fizikai fájlt szeretne csatlakoztatni az adatbázishoz, használja a következő parancsot:
ADATBÁZIS LÉTREHOZÁSA CSATLAKOZÁSHOZ

Ha azonban semmi sem segített, mindkét fájl megsérült, és az adatbázis még mindig gyanús állapotban van, akkor megpróbálhatja visszaállítani az adatbázis állapotát a következő sorrendben: (a HP használata előtt engedélyeznie kell a rendszertáblák közvetlen módosítását )
használd a mestert
megy
Lehetővé tesszük a rendszertáblázatok közvetlen módosítását:
sp_configure "frissítések engedélyezése",1
megy
konfigurálja újra felülbírálással
megy
A gyanús jelző visszaállításához hajtsa végre az sp_resetstatus parancsot a fő DB-ben:
sp_resetstatus "DataBaseName"
megy
És most megtiltjuk a rendszertáblázatok közvetlen módosítását:
sp_configure "frissítések engedélyezése",0
megy
konfigurálja újra felülbírálással
megy

Alapvetően, amikor követtem ezeket a lépéseket, a gyanúsított állapot visszaállt, DE! Amikor bármilyen műveletet megpróbált végrehajtani, az SQL esküdni kezdett, hogy az adatbázis még mindig gyanús állapotban van. És akkor ezt csináltam:

A szkript végrehajtása a QA-ból:
használd a mestert
megy
sp_configure "frissítések engedélyezése", 1
konfigurálja újra felülbírálással
megy

Itt csináljuk:
frissítés sysdatabases set status= 32768 ahol name = " "

Indítsa újra az SQL Servert. Elvileg az alapnak láthatónak kell lennie (vész üzemmódban).

A minőségbiztosításból végrehajtjuk:
HASZNÁLAT" "
MEGY
sp_dboption" ", "single_user", "true"
megy
DBCC CHECKDB(" ", REPAIR_ALLOW_DATA_LOSS)
megy

Ha minden rendben, akkor:
sp_dboption" ", "single_user", "false"
megy
használd a mestert
megy
sp_configure "frissítések engedélyezése", 0
megy

Ezt követően lehetővé vált az adatbázis táblák SQL-ből való megtekintése, de nem lehetett vele dolgozni. Most az Adatátalakítási szolgáltatásokat kell használnia az adatok új adatbázisba való exportálásához. Ezt követően elvégezzük az adatbázis helyreállítását / tesztelését az 1C segítségével. Figyelem! Sokan nem figyelnek erre a nagyon fontos pontra. Ennek eredményeként egy ponton rájöhet, hogy az adatbázis visszaállítása enyhén szólva nem egészen helyes. Azok. a dokumentumban a nómenklatúra helyett valami 10122 /<Объект не найден>, nálam ez a probléma merült fel, nagyon sok lehetőség lehet. Ezért jobb időt veszíteni, de ellenőrizze az adatbázist az 1C segítségével.

Ha semmi sem segít, és a szenvedélyadatokat vissza kell állítani, még mindig van harmadik féltől származó segédprogram MSSQLRecovery néven. A segédprogram fizetős, de lehetőség van a demóverzió használatára, amely innen tölthető le: http://www.officerecovery.com/mssql/download_demo.htm . A program nagyon egyszerű, és az adatbázis helyreállítása három lépésből áll: 1) válassza ki az adatbázist tartalmazó fájlt; 2) válassza ki a mentési útvonalat; 3) Nyomja meg a helyreállítási gombot; Várunk. A program az SQL adatbázist darabonként elemzi, és egy külön könyvtárba helyezi. Ott is hozzáad egy .bat fájlt, hogy visszaállítsa az adatbázist a kapott "darabokból". Soha nem használtam, mert. sikerült visszaállítani az adatbázist az előző lépésekkel.

De! Itt szünetet kell tartani. A cikk nem lenne teljes, ha nem írnék le módszereket az ilyen problémák megelőzésére. Tehát a legegyszerűbb és legmegbízhatóbb módszer: archiválás, archiválás és újra archiválás. Az Enterprise Managerben lépjen az Eszközök->Varázslók->Kezelés->Biztonsági mentés varázsló menübe, és állítsa be az összes szükséges paramétert. Ennek eredményeként megvan teljes visszaállítás Az SQL-adatbázis lemezre kerülése éjszaka történik, majd 15 percenként biztonsági mentés készül az adatbázisban végrehajtott módosításokról. Elvileg, ha lenne ilyen tartalékom, pár perc múlva visszagurulnék, és tovább innám a Coca-Colát :).

Ha további kérdéseid/ észrevételeid vannak, írj ide:

MDF helyreállítása

Ha alap Microsoft adatok Az SQL Server működésképtelen, és az SQL Management Studio-ban az adatbázis „felfüggesztve” állapotú (szürkével jelölve), akkor a benne lévő adatok sértetlensége súlyosan sérül. Hogyan lehet helyreállítani a sérült adatbázist felfüggesztési állapotból? Hogyan lehet visszaállítani az .mdf adatbázisfájlban tárolt információkat?

A sérült .mdf fájl javításának részletes leírása:

  • Adatbázis leválasztása (leválasztása) az MS SQL Serverről az SQL Management Studio alkalmazásban
  • Hozzon létre egy új üres adatbázist a helyreállított adatok későbbi importálásához.
  • Fuss SQL Server Repair Toolboxés válassza ki a letiltott .mdf fájlt a program első oldalán

Kövesse az összes lépést a programon belül, és:

  • vagy mentse az adatokat sql szkriptként. Miután elmentette az adatokat sql szkriptként a lemezre, futtassa a .bat fájlt a következővel a megfelelő paramétereket adatok importálásához egy új adatbázisba
  • vagy közvetlenül exportálhatja az adatokat egy új adatbázisba.
SQL Server Repair Toolbox nem ingyenes program nyisd ki forráskód. A felhasználók kipróbálhatják ezt a programot vásárlás előtt a demo verzió használatával. A program nem rendelkezik a GNU General Public License (GPL) vagy a GNU Lesser General Public License (LGPL) licenccel.

Rendszerkövetelmények: Windows 98 vagy újabb

Szörnyű dolog történt (leesett egy csavar, túlfeszültség volt stb.) - a bázis gyanús állapotban van, és nem akarja elhagyni, bármit is csinálunk...

Biztonsági mentések Természetesen nem mi készítettünk alapot – talán felrobban. Nem.

Tehát az adatok helyreállításához szükségünk van:

1. MSSQL szerver, MS SQL Enterprise Manager (EM), MS SQL Query Analyzer (QA) a Microsofttól (az MS SQL-hez mellékelve).

2. 1C:Enterprise 7.7 SQL verzió.

3. MSSQLRecovery a http://www.officerecovery.com webhelyről

4. Az 1cv7.md fájl másolata a megsemmisült 1C adatbázisból, a megsemmisült mdf fájl másolata, körülbelül ugyanaz szabad hely lemezen, amit a fájl elfoglal.

5. Szabadidő 1 GB mdf fájl súlyonként 3 óra számítás alapján.

6. Billentyűzet, egér, monitor.

Röviden leírom, mit csinál az MSSQLRecovery:

1. Struktúra szinten elemzi az mdf fájlt (MFT), szöveges sql szkripteket képez, amelyek az adatbázissémát és magukat az adatokat tartalmazzák a megsemmisült adatbázisunkból.

2. Létrehoz batch file commit.bat, amely elindítja az MS Query Analyzer konzolos verzióját, amely szekvenciálisan végrehajtja az sql fájlokat, és ténylegesen kitölti az újonnan létrehozott SQL adatbázisunkat.

Megjegyzések az MSSQLRecovery-hez.

A program mindenkinek jó, kilátástalan helyzetben tud segíteni. De van két bosszantó pillanat, amely zavarja az 1C adatbázis helyreállítását.

Először a program létrehoz egy schema.sql szkriptet, amely tartalmazza a táblák, eljárások, függvények, indexek stb. szerkezetének leírását. Ez a szkript fut először, táblákat, eljárásokat, függvényeket, indexeket stb. hoz létre az üres adatbázisunkban, így messze. Nagyon jól csinálja. Egy "de" - a fájl mezőinek sorrendje zavaros a táblázatszerkezet létrehozásakor. Talán más programok esetében egy ilyen „keverés” nem ijesztő, de az 1C ezt nem emészti meg.

Másodszor, a létrehozott commit.bat kötegfájl a Query Analyzer (isql.exe) konzolos verzióját használja, de valamiért nem akar megfelelően működni a cp1251 kódlappal – az orosz karaktereket OEM-kódolásra konvertálja. Nálunk sem megy.

Valójában az eljárások, amelyeket végre kell hajtani ahhoz, hogy boldogok legyünk:

1. Állítsa be az MSSQLRecovery-t egy részlegesen megsemmisült mdf fájlra, adjon időt a feldolgozásra, majd adja meg, hogy hova szeretnénk menteni az így létrejött szkripteket az adatbázis-struktúrával és a visszaállított adatokkal együtt.

2. Hozzon létre egy új üres adatbázist az SQL szerveren.

3. Hozzuk létre a bázisunk struktúráit az összecsukott bázis 1cv7.md másolatával az 1C: Configurator segítségével.

4. Fájl szerkesztése elkövet.bat, eltávolítja a parancsfájl végrehajtásához szükséges hívást tartalmazó sort schema.sql- már elkészítettük az adatbázis-struktúrát az 1C segítségével.

5. Változás ugyanabban elkövet.bat hívás isql hívásra isqlw– A Query Analyzer grafikus felhasználói felületű verziója. Ez szükséges az orosz kódolás helyes észleléséhez. Azok. vonal:
isql -S %1 -d %2 -U %3 -P %4 -E -I data0001.sql
így fog kinézni:
isqlw -S %1 -d %2 -U %3 -P %4 -E -i data0001.sql -o out.txt
A "-o" paraméter és az "out.txt" fájl szükséges a minőségbiztosítás grafikus felhasználói felületének megfelelő elindításához, a végrehajtott tranzakciók naplója az "out.txt" fájlba kerül. Cserélnie kell a teljes commit.bat fájlt, például az in fájl kezelő távoli menedzser.

6. Futtassa a fájlt elkövet.bat négy paraméterrel történő végrehajtáshoz: - SQL szerver neve - Név új alap A korábban létrehozott SQL - Az adatbázishoz tartozó adatbázis tulajdonosi szerepkörrel rendelkező felhasználónév (általában sa) - A felhasználó jelszava Ez valahogy így fog kinézni: commit.bat my_sql_server recovery_1c_db a gfhjkm-ben

Valójában mindent. Ahelyett batch fileírhat egy egyszerű feldolgozást az 1C-ben, amely a könyvtár listája szerint szekvenciálisan végrehajtja a szkripteket.

Edzés után elkövet.bat futtathatja az 1C-t, és megnézheti, mekkora a veszteség. Általában azok az adatok vesznek el, amelyekhez a hiba idején leggyakrabban hozzáfértek vagy használtak.

És hogy ne legyenek veszteségek - készítsen biztonsági másolatot. És gyakrabban.

Az adatbázisok számos vállalat gerincét képezik információs rendszerek. Szinte bármilyen információt tárolhatnak, az üzemeltetési dokumentációtól a számviteli dokumentációig. Még az információk ideiglenes elérhetetlensége is jelentős veszteségekhez vezethet. Mit is mondhatnánk a teljes elvesztésükről! Eközben ez a helyzet egészen valós. Fizikailag az adatbázisok a leghétköznapibb fájlok, amelyek könnyen megsérülhetnek egy vírustámadás, összeomlás következtében. szoftver vagy fájlrendszer, kudarc merevlemez, a felhasználók gondatlan cselekedetei stb. Ezen esetekben az adatbázis leáll, és ennek megfelelően a benne elhelyezett összes információ elérhetetlenné válik.

A program segíthet megbirkózni ezzel a problémával és visszaadni a látszólag teljesen elveszett adatokat. SQL Server Recovery Toolbox(). Úgy tervezték, hogy adatokat kinyerjen és mentsen a sérült MS SQL Server adatbázisokból (támogatott Microsoft fájlok SQL Server 7.0, 2000, 2005, 2005 64 bites, 2008 és 2008 R2). Az SQL Server Recovery Toolbox természetesen nem tudja garantálni az összes adat teljes helyreállítását. Meg kell érteni, hogy bizonyos esetekben a kár olyan erős lehet, hogy egyszerűen lehetetlen bizonyos információkat kinyerni. A sérült MS SQL Server adatbázisból származó információk helyreállításának és mentésének folyamata a program segítségével SQL Server Recovery Toolbox lépésenkénti varázsló segítségével. Minden szakaszban a felhasználónak csak egy műveletet kell végrehajtania, ami nagyon kényelmes és praktikus.

Az első lépés a sérült MS SQL Server adatbázis kiválasztása. Ennek legegyszerűbb módja a Windows Explorer, amely a gombra kattintva elindul. Az *.mdf és *.ndf kiterjesztések (az MS SQL Server adatbázisok szabványos kiterjesztései) automatikusan kiválasztásra kerülnek. Minden egyszer elemzett fájl egy speciális listába kerül gyors hozzáférés. A jövőben ezek kiválasztásához a felhasználónak csak az ikonra kell kattintania, a kurzort a megnyíló listában a kívánt dokumentumra kell mozgatnia, majd kattintson a bal gomb egerek.

A következő szakaszra való áttérés a Tovább gombbal történik. Ebben az esetben a program megjelenít egy párbeszédpanelt, amely megkérdezi, hogy kell-e elemezni vagy sem forrás fájl. Ha a válasz igen, kivonja a szolgáltatási adatokat a sérült adatbázisból, és megjeleníti a helyreállítható információkat. A felhasználó kényelme érdekében az ablak két részre van osztva. A bal oldali az összes lehetséges információkategóriát megjeleníti: felhasználói és rendszertáblák (User Tables és System Tables), nézetek (Views), tárolt eljárások (Stored Procedures), függvények (Functions) és felhasználó által meghatározott típusok (Felhasználó által meghatározott adattípusok). Ha bármelyikre helyezi a kurzort, a jobb oldalon megjelenik az elérhető objektumok listája és azok tartalma. A felhasználónak alaposan át kell tekintenie, és meg kell győződnie arról, hogy a program SQL Server Recovery Toolbox megbirkózik a feladattal, és valóban képes lesz visszaállítani az elveszett adatokat.

A következő lépés az információ mentési módjának kiválasztása. A helyzet az, hogy a szóban forgó segédprogramban a sérült fájlból kinyert adatokat el lehet menteni HDD forgatókönyvek halmazaként SQL nyelv vagy közvetlenül exportálható az MS SQL Server adatbázisba. Az első lehetőség jó, mert lehetővé teszi a kinyert információk átvitelét bármely szerverre. Ehhez csak másolja át a munka eredményeként kapott szkriptek csomagját ide kívánt számítógépés futtasd ott. És a második lehetőség kényelmesebb azokban az esetekben, amikor a számítógép, amelyen a helyreállítást végzik, kapcsolódik a kívánt adatbázishoz. Ebben az esetben az információ minden további lépés nélkül exportálódik rá.

Ezután a felhasználónak ki kell választania azokat az információkat, amelyeket vissza kell állítani a sérült fájlból, és el kell mentenie. Ehhez a programhoz SQL Recovery Roolbox ismét megjeleníti a képernyőn, hogy mit tud kivonni. A felhasználónak pedig a jelölőnégyzetek bepipálásával / kipipálásával meg kell jelölnie a számára szükséges adatokat. Egyszerre választhat vagy törölhet kijelölést a teljes adatbázisból, teljes információkategóriából ill egyedi tárgyakat(táblázatok, nézetek, tárolt eljárások stb.).

A kijelölés befejezése után megkezdheti a forrásfájl szkennelését és az abból kinyert információk mentését. Ehhez kattintson a Helyreállítás indítása gombra. A munka időtartama két tényezőtől függ. Először is a forrásfájlból, annak szerkezetéből és méretéből. Másodszor pedig annak a számítógépnek a teljesítménye, amelyen fut. Érdemes megjegyezni, hogy bizonyos esetekben az adatbázisok hatalmasak, ezért az információk visszanyerése több napig is eltarthat. Közvetlenül a folyamat vége után SQL program A Server Recovery Toolbox megjelenít egy naplót. Adatokat szolgáltat az aktuális munkamenet során végrehajtott összes információ-helyreállítási folyamatról.

Így az SQL Server Recovery Toolbox sikeres eszköz a sérült MS SQL Server adatbázisokból származó adatok helyreállítására. Két tulajdonsága különbözteti meg. Az első a hatékonyság. A szóban forgó segédprogram a lehető legtöbb információt képes helyreállítani a sérült fájlból. Az SQL Server Recovery Toolbox második jellemzője a rendkívül egyszerű használat. A program segítségével bármely felhasználó kinyerhet információt a sérült adatbázisból, és elmentheti azokat előzetes képzés nélkül, még akkor is, ha elkezdi a számítógép megismerését.



Betöltés...
Top