Útmutató: Adatbázisok áthelyezése SQL Server rendszert futtató számítógépek között

A cikk fordítása A cikk fordítása
Cikk azonosítója: 314546 - A cikkben érintett termékek listájának megtekintése.
Az összes kibontása | Az összes összecsukása

A lap tartalma

Összefoglaló

Ez a lépésenkénti útmutatót tartalmazó cikk ismerteti, miként helyezhetők át az SQL Server alapú felhasználói adatbázisok és az SQL Server leggyakrabban használt összetevői SQL Server rendszert futtató számítógépek között.

A cikkben található útmutató azt feltételezi, hogy nem helyezi át a master, a model, a tempdb és az msdb rendszeradatbázist. Az útmutató lépései különféle lehetőségeket biztosítanak a master és az msdb adatbázisokban található bejelentkezési adatok és a leggyakrabban használt összetevők átvitelére.

A cikk lépéseinek végrehajtásával nem átvitt elemekről további információt a cikk „További információ” című részében olvashat.

Megjegyzés: Az adatok átvitele az SQL Server 2000 programból a Microsoft SQL Server 2000 (64-bit) programba is támogatott. 32 bites adatbázisokat az sp_attach_db és az sp_attach_single_file_db rendszerben tárolt eljárás használatával, illetve a 32 bites Enterprise Manager programban végzett biztonsági mentéssel és visszaállítással csatolhat 64 bites adatbázisokhoz. Az adatbázisok mindkét irányban átvihetők az SQL Server 32 és 64 bites verziói között. Ugyanezekkel a módszerekkel az SQL Server 7.0 program adatait is áttelepítheti. Az adatok azonban nem vihetők át az SQL Server 2000 (64-bit) verzióból az korábbi, SQL Server 7.0 verzióba. Az egyes módszerek ismertetése alább található.

Az SQL Server 2005 program használata esetén

Az adatok ugyanazzal a módszerrel helyezhetők át az SQL Server 7.0 és az SQL Server 2000 programból, azonban a Microsoft SQL Server 2005 programban található kezelőeszközök különböznek az SQL Server 7.0 és az SQL Server 2000 programokban található eszközöktől. Ezért az SQL Server Enterprise Manager program helyett az SQL Server Management Studio programot, a Data Transformation Services Import and Export Data Wizard (Adatátalakítási szolgáltatások – importálás és exportálás varázsló) helyett pedig az SQL Server Import and Export Wizard (DTSWizard.exe) varázslót kell használni.

Biztonsági mentés és visszaállítás

Ez a módszer a forráskiszolgálón található felhasználói adatbázisok biztonsági mentéséből, majd az adatbázisok célkiszolgálón történő visszaállításából áll.
  • Az adatbázis használatban lehet a biztonsági mentési folyamat során. Ha a felhasználók INSERT, UPDATE vagy DELETE utasításokat hajtanak végre az adatbázison a biztonsági mentés befejezése után, akkor ezek a módosítások már nem fognak szerepelni a biztonsági másolatban. Ha minden módosítást szükséges átvinni, ezt minimális leállási idő mellett elvégezheti a tranzakciós napló és a teljes adatbázis biztonsági mentése útján.
    1. Állítsa vissza a teljes adatbázist a célkiszolgálón a WITH NORECOVERY záradék megadásával.

      Megjegyzés: Az adatbázis további módosításának elkerülése érdekében kérje meg a felhasználókat a forráskiszolgálón található adatbázis használatának befejezésére.
    2. Végezze el a tranzakciós napló biztonsági mentését, majd állítsa vissza azt a célkiszolgálón a WITH RECOVERY záradék használatával. A leállási idő a tranzakciós napló biztonsági mentésére és visszaállítására korlátozódik. További információkért tanulmányozza az SQL Server Books Online „Transact-SQL Reference” című témakörének „RESTORE” altémakörét.
  • A célkiszolgálón ugyanakkora helyet fog elfoglalni az adatbázis, mint a forráskiszolgálón. Az adatbázis méretének csökkentése érdekében vagy a forrásadatbázis méretét kell lecsökkenteni a biztonsági mentést megelőzően vagy a céladatbázis méretét a visszaállítási művelet végeztével. További információ az SQL Server Books Online „Creating and Maintaining Databases” (Adatbázisok létrehozása és karbantartása) című fejezetének „Shrinking a Database” (Adatbázisméret csökkentése) című alfejezetében található.
  • Ha az adatbázist a forrásadatbázistól eltérő helyre szeretné visszaállítani, meg kell adnia a WITH MOVE záradékot. Tegyük fel például, hogy a forráskiszolgálón az adatbázis a D:\Mssql\Data mappában található. A célkiszolgáló nem rendelkezik D jelű meghajtóval, így az adatbázist a C:\Mssql\Data mappába szeretné visszaállítani. Az adatbázisok más helyre történő visszaállításáról a Microsoft Tudásbázis alábbi cikkeiben tájékozódhat:
    221465 Információ: A RESTORE utasítás WITH MOVE záradékának használata (Előfordulhat, hogy a hivatkozás részben vagy teljes egészében angol nyelvű tartalomra mutat.)
    304692 Információ: SQL Server 7.0 adatbázisok áthelyezése másik kiszolgálóra a BACKUP és RESTORE utasítások használatával (Előfordulhat, hogy a hivatkozás részben vagy teljes egészében angol nyelvű tartalomra mutat.)
  • Ha a célkiszolgálón felül kíván írni egy már meglévő adatbázist, akkor meg kell adnia a WITH REPLACE záradékot. További információkért tanulmányozza az SQL Server Books Online „Transact-SQL Reference” című témakörének „RESTORE” altémakörét.
  • A visszaállításra használt számítógépen futó SQL Server program verziójától függően elképzelhető, hogy a karakterkészletnek, a rendezési sorrendnek és a Unicode sorrendegyeztetésnek meg kell egyeznie a forrás- és célszámítógépen. További információkat e cikk „Megjegyzés a sorrendegyeztetéssel kapcsolatban” című szakaszában talál.

Az Sp_detach_db és az Sp_attach_db tárolt eljárások

Az sp_detach_db és az sp_attach_db tárolt eljárások használatához kövesse az alábbi lépéseket:
  1. Válassza le az adatbázist a forráskiszolgálón az sp_detach_db tárolt eljárás segítségével. Az adatbázishoz tartozó .mdf, .ndf és .ldf kiterjesztésű fájlokat a célkiszolgálóra kell másolni. Az egyes fájltípusok leírását a következő táblázat tartalmazza:
    A táblázat összecsukásaA táblázat kibontása
    Fájlnév kiterjesztéseLeírás
    .mdf elsődleges adatfájl
    .ndf másodlagos adatfájl
    .ldf tranzakciós naplófájl
  2. Csatlakoztassa az adatbázist a célkiszolgálón az sp_attach_db tárolt eljárás segítségével, és mutasson az előző lépésben a célkiszolgálóra másolt fájlokra. Ezen módszerek használatáról további információt a Microsoft Tudásbázis következő cikkében talál a cikk számára kattintva:
    224071 Információ: SQL Server adatbázisok áthelyezése új helyre az SQL kiszolgáló Detach/Attach (leválasztási és csatlakoztatási) műveleteivel (Előfordulhat, hogy a hivatkozás részben vagy teljes egészében angol nyelvű tartalomra mutat.)
  • Az adatbázis a leválasztást követően nem érhető el, és a fájlok másolása közben nem használható az adatbázis. A leválasztás pillanatában az adatbázisban tárolt összes adat áthelyezésre kerül.
  • Az Attach vagy Detach eljárás használata esetén lehetséges hogy meg kell egyeznie a két kiszolgálón használatos karakterkészletnek, rendezési sorrendnek és Unicode sorrendegyeztetésnek. További információkat e cikk „Megjegyzés a sorrendegyeztetéssel kapcsolatban” című szakaszában talál.

Megjegyzés a sorrendegyeztetéssel kapcsolatban

Ha SQL Server 7.0 programot futtató kiszolgálók között visz át adatbázisokat biztonsági mentés és visszaállítás, illetve az Attach és Detach eljárás segítségével, akkor a két kiszolgálón meg kell egyeznie a használt karakterkészletnek, rendezési sorrendnek és Unicode sorrendegyeztetésnek. Ha az SQL Server 7.0 programból az SQL Server 2000 programba, illetve SQL Server 2000 programot futtató kiszolgálók között helyez át adatbázisokat, az adatbázis megőrzi a forrásadatbázisban használt sorrendegyeztetést. Ez azt jelenti, hogy amennyiben az SQL Server 2000 programot futtató célkiszolgálón más sorrendegyeztetés használatos, mint a forrásadatbázisban, a céladatbázis sorrendegyeztetése eltér a célkiszolgálón található master, model, tempdb és msdb adatbázisétól. További részletek az SQL Server 2000 Books Online „Mixed Collation Environments” (Kevert sorrend-egyeztetésű környezetek) című témakörében találhatók.

Az adatok importálása és exportálása (objektumok és adatok másolása SQL Server adatbázisok között)

A Data Transformation Services Import and Export Data Wizard (Adatátalakítási szolgáltatások – importálás és exportálás varázsló) segítségével az egész adatbázisról másolatot készíthet, vagy akár kizárólag a kijelölt objektumokat és adatokat is átmásolhatja a forrásadatbázisból a céladatbázisba.
  • A forrásadatbázis használható az átvitel ideje alatt. Ha a forrásadatbázis használatban van az átvitel ideje alatt, akkor lehetséges, hogy egyes adatok blokkolva vannak az átviteli folyamat során.
  • Az importálási és exportálási varázsló használata esetén a karakterkészletnek, a rendezési sorrendnek és a sorrendegyeztetésnek nem kell feltétlenül egyeznie a forrás- és célkiszolgálón.
  • Mivel a forrásadatbázis üres területeit nem másolja át a varázsló, a céladatbázis mérete kisebb is lehet a forrásadatbázisénál. Ez abban az esetben is igaz lehet, ha csak bizonyos objektumok áthelyezését végzi el.
  • Az SQL Server 7.0 program Data Transformation Services szolgáltatása nem minden esetben viszi át megfelelően a 64 kB-nál nagyobb szöveges és bináris adatokat. Ez a probléma nem vonatkozik az SQL Server 2000 programverzióban szereplő DTS szolgáltatásra. A Microsoft Tudásbázis kapcsolódó cikke:
    257425 Javítás: A DTS Object Transfer szolgáltatása nem továbbítja a 64 kB-nál nagyobb méretű BLOB típusú adatokat (Előfordulhat, hogy a hivatkozás részben vagy teljes egészében angol nyelvű tartalomra mutat.)

2. lépés: A felhasználói nevek és jelszavak átvitele

Ha nem viszi át a forráskiszolgálón lévő bejelentkezési adatokat a célkiszolgálóra, akkor előfordulhat, hogy az SQL Server aktuális felhasználói nem fognak tudni bejelentkezni a célkiszolgálóra. A bejelentkezési nevek és jelszavak átviteléhez kövesse a Microsoft Tudásbázis következő cikkében található útmutatót:
246133 Útmutató: Felhasználónevek és jelszavak áthelyezése az SQL Server példányai között (Előfordulhat, hogy a hivatkozás részben vagy teljes egészében angol nyelvű tartalomra mutat.)
A bejelentkezési adatokat tartalmazó alapértelmezett adatbázisok eltérhetnek a forráskiszolgáló bejelentkezési adatait tároló alapértelmezett adatbázistól. A bejelentkezéshez használt alapértelmezett adatbázis az sp_defaultdb tárolt eljárás segítségével változtatható meg. További információkért tanulmányozza az SQL Server Books Online „Transact-SQL Reference” című témakörének „sp_defaultdb” altémakörét.

3. lépés: A felhasználók árvaságának megszüntetése

A bejelentkezési nevek és a jelszavak célkiszolgálóra való átvitelét követően lehetséges, hogy a felhasználók nem tudnak hozzáférni az adatbázishoz. A bejelentkezési adatok a biztonsági azonosító (SID) segítségével vannak a felhasználókhoz rendelve, és ha a biztonsági azonosító inkonzisztens az adatbázis áthelyezését követően, az SQL Server megtagadhatja a felhasználóktól a hozzáférést az adatbázishoz. Ez a probléma az árvává vált felhasználók problémájaként ismert. Ha a bejelentkezési neveket és a jelszavakat az SQL Server 2000 DTS Transfer Login szolgáltatása segítségével viszi át, ez valószínűleg árva felhasználókat eredményez. Ezenfelül a forráskiszolgálótól eltérő tartományban lévő célkiszolgálóra vonatkozó integrált bejelentkezési engedélyek szintén árva felhasználókat eredményezhetnek.
  1. Keresse meg az esetleges árvává vált felhasználókat. Nyissa meg a Query Analyzer (Lekérdezéselemző) eszközt a célkiszolgálón, majd futtassa a következő kódot az áthelyezett felhasználói adatbázisban:
    exec sp_change_users_login 'Report'
    Az eljárás felsorolja az összes olyan árva felhasználót, akihez nem tartoznak bejelentkezési adatok. Ha egy felhasználó neve sem jelenik meg, akkor ugorja át a 2. és 3. lépést, és folytassa a 4. lépéssel.
  2. Szüntesse meg a felhasználók árvaságát. Ha egy felhasználó árva, az adatbázis felhasználói sikeresen bejelentkezhetnek a kiszolgálóra, de nem rendelkeznek engedéllyel az adatbázishoz való hozzáférésre. Ha megpróbálja biztosítani a hozzáférési jogot az adatbázishoz, akkor az alábbi hibaüzenet jelenik meg, jelezve hogy a felhasználó már létezik:
    Microsoft SQL-DMO (ODBC SQLState: 42000) Error 15023: User or role '%s' already exists in the current database. (Az aktuális adatbázisban már van ilyen felhasználó vagy szerep.)
    A felhasználók árvaságának megszüntetéséről további információt a Microsoft Tudásbázis következő cikkében talál a cikk számára kattintva:
    240872 Információ: SQL Server programot futtató kiszolgálók között áthelyezett adatbázissal kapcsolatos jogosultságproblémák megoldása (Előfordulhat, hogy a hivatkozás részben vagy teljes egészében angol nyelvű tartalomra mutat.)

    Az előbbi cikk útmutatót tartalmaz arra vonatkozóan, hogy hogyan lehet a bejelentkezési adatokat az adatbázis felhasználóihoz rendelni, és a szabványos SQL Server vagy az integrált bejelentkezési adatoktól megfosztott árva felhasználók árvaságát megszüntetni.

    274188 A Books Online részben található „Troubleshooting Orphaned Users” című témakör hiányos (Előfordulhat, hogy a hivatkozás részben vagy teljes egészében angol nyelvű tartalomra mutat.)

    Ez a cikk bemutatja, hogyan lehetséges az sp_change_users_login tárolt eljárással egyenként megszünteti a felhasználók árvaságát. Az sp_change_users_login tárolt eljárás csak a korábban szabványos SQL Server bejelentkezési adatokkal rendelkező felhasználók árva állapotát szünteti meg.
  3. Ha az adatbázis tulajdonosa (database owner, dbo) árvaként van felsorolva, akkor futtassa a következő kódot a felhasználói adatbázisban:
    exec sp_changedbowner 'sa'
    A tárolt eljárás úgy javítja ki ezt a problémát, hogy az adatbázis tulajdonosának a dbo értéket adja meg. Ha az adatbázis tulajdonosának más felhasználót szeretne megadni, a kívánt felhasználói névvel paraméterezve futtassa ismét az sp_changedbowner tárolt eljárást. További információkért tanulmányozza az SQL Server Books Online „Transact-SQL Reference” témakörének „sp_changedbowner” altémakörét.
  4. Ha a célkiszolgálón az SQL Server 2000 program Service Pack 1 szervizcsomaggal ellátott verziója fut, akkor lehetséges, hogy az adatbázis tulajdonosa nem szerepel az Enterprise Manager Users mappájában a csatlakoztatás vagy visszaállítás (illetve mindkettő) végrehajtását követően. A Microsoft Tudásbázis kapcsolódó cikke:
    305711 Programhiba: Az adatbázis tulajdonosa (DBO) nem jelenik meg az Enterprise Manager alkalmazásban (Előfordulhat, hogy a hivatkozás részben vagy teljes egészében angol nyelvű tartalomra mutat.)
  5. A rendszergazda (system administrator, sa) jelszavának Enterprise Manager szolgáltatással való módosításakor a következő hibaüzenet jelenhet meg, ha a forráskiszolgálón a dbo felhasználóhoz rendelt bejelentkezési név nem található a célkiszolgálón:
    Error 21776: [SQL-DMO] The name 'dbo' was not found in the Users collection. If the name is a qualified name, use [] to separate various parts of the name, and try again. (A „dbo” nevű felhasználó nem található a felhasználók gyűjteményében; amennyiben minősített nevet ad meg, annak egyes részeit helyezze szögletes zárójelek közé.)
    A Microsoft Tudásbázis kapcsolódó cikke:
    218172 Probléma: Az Enterprise Manager alkalmazásban nem módosítható a rendszergazdai (SA) jelszó (Előfordulhat, hogy a hivatkozás részben vagy teljes egészében angol nyelvű tartalomra mutat.)
Figyelmezetés: Ha ismét visszaállítja vagy csatlakoztatja az adatbázist, akkor az adatbázis felhasználói újra árvává válhatnak – ebben az esetben meg kell ismételni a 3. lépést.

4. lépés: Feladatok, riasztások és operátorok áthelyezése

A 4. lépést nem kötelező végrehajtani. A forráskiszolgáló minden feladatához, riasztásához és operátorához létrehozhat parancsfájlt, majd azt futtathatja a célkiszolgálón.
  • Feladatok, riasztások és operátorok áthelyezéséhez hajtsa végre a következő lépéseket:
    1. Indítsa el az SQL Server Enterprise Manager alkalmazását, majd bontsa ki a Management (Kezelés) mappát.
    2. Bontsa ki az SQL Server Agent (SQL Server ügynökök) mappát, majd kattintson a jobb gombbal az Alerts (Riasztások), Jobs (Feladatok) vagy Operators (Operátorok) elemre.
    3. Mutasson az All Tasks (Az összes feladat) pontra, majd válassza a Generate SQL Script (SQL-parancsfájl létrehozása) parancsot. Az SQL Server 7.0 programban kattintson a Script All Jobs (Parancsfájl az összes feladatról), az Alerts (Parancsfájl az összes riasztásról) vagy az Operators (Parancsfájl az összes operátorról) parancsra.
    A választott parancstól függően lehetőség van parancsfájlok létrehozására az összes riasztáshoz (All Alerts), az összes feladathoz (All Jobs) és az összes operátorhoz (All Operators) is.
  • A feladatok, a riasztások és az operátorok az SQL Server 7.0 programból az SQL Server 2000 programba, illetve SQL Server 7.0 és SQL Server 2000 programot futtató kiszolgáló-számítógépek között helyezhetők át.
  • Az olyan operátorok esetén, amelyek a forráskiszolgálón beállításuk szerint az SQLMail szolgáltatással küldenek értesítést, az SQLMail szolgáltatást a célkiszolgálón is be kell állítani ugyanerre. A Microsoft Tudásbázis kapcsolódó cikke:
    263556 Információ: Az SQL Mail szolgáltatás konfigurálása (Előfordulhat, hogy a hivatkozás részben vagy teljes egészében angol nyelvű tartalomra mutat.)

5. lépés: DTS-csomagok áthelyezése

Az 5. lépést nem kötelező végrehajtani. Ha a DTS-csomagokat a forráskiszolgálón futó SQL Server program vagy adattár tárolja, a csomagok kívánság szerint áthelyezhetők. A DTS-csomagok kiszolgálók közötti áthelyezéséhez alkalmazza az alábbi módszerek valamelyikét:

1. módszer:

  1. Mentse fájlba a DTS-csomagot a forráskiszolgálón, majd nyissa meg a DTS-csomagfájlt a célkiszolgálón.
  2. A csomagot a célkiszolgálón az SQL Server programba vagy az adattárba mentse.
    Megjegyzés: Az egyes csomagokat egyesével, külön fájlokban kell áthelyezni.

2. módszer:

  1. Egyenként nyissa meg a DTS-csomagokat a DTS Designer alkalmazással.
  2. A Package (Csomag) menüben kattintson a Save As (Mentés másként) parancsra.
  3. Adja meg a célként használandó SQL Server kiszolgálót.
Megjegyzés: Elképzelhető, hogy a csomag nem fut megfelelően az új kiszolgálón. Szükség lehet a csomagok szerkesztésére, illetve a csomagban található, kapcsolatokra, fájlokra, adatforrásokra, profilokra, valamint a régi kiszolgálón található egyéb információkra mutató hivatkozások módosítására az új kiszolgálónak megfelelően. Ezeket a módosításokat csomagonként külön kell elvégezni az egyes csomagok felépítésének megfelelően.

További információ

Szükség lehet más elemek – például a replikációs és naplótovábbítási adatok, a teljes szövegű katalógus, a névvel ellátott biztonságimásolat-készítő eszközök, a karbantartási tervek és a kapcsolódó kiszolgálók – átvitelére is. Ellenőrizze, hogy a forráskiszolgálón megtalálhatók-e ezek a konfigurációs adatok, és ha kívánja, állítsa be azokat kézzel a célkiszolgálón.

A teljes szövegű összetevők áthelyezéséről a Microsoft Tudásbázis következő cikkében tájékozódhat:
240867 Információ: A teljes szövegű katalógusokat tartalmazó mappák és fájlok áthelyezése, másolása és biztonsági mentése (Előfordulhat, hogy a hivatkozás részben vagy teljes egészében angol nyelvű tartalomra mutat.)
A cikk lépéseinek végrehajtásával nem helyezhetők át az adatbázis-diagramok, illetve a biztonsági mentések és visszaállítások előzményei. Ezen adatok áthelyezéséhez helyezze át az msdb rendszeradatbázist. Ha további tájékoztatást szeretne az msdb adatbázis áthelyezéséről, olvassa el a Microsoft Tudásbázisban a jelen cikk „1. lépés: A felhasználói adatbázisok áthelyezése” című részében hivatkozott cikkeket. Az msdb adatbázis áthelyezése esetén nem szükséges végrehajtani a „4. lépés: Feladatok, riasztások és operátorok áthelyezése” és az „5. lépés: DTS-csomagok áthelyezése” című részek lépéseit.

Hivatkozások

A Microsoft Tudásbázis kapcsolódó cikke:
320125 Útmutató: Adatbázis-diagram áthelyezése (Előfordulhat, hogy a hivatkozás részben vagy teljes egészében angol nyelvű tartalomra mutat.)

Tulajdonságok

Cikk azonosítója: 314546 - Utolsó ellenőrzés: 2011. május 12. - Verziószám: 7.0
A cikkben található információ a következő(k)re vonatkozik:
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 64-bit Edition
  • Microsoft SQL Server 7.0 Standard Edition
Kulcsszavak: 
kbsqlmanagementtools kbhowtomaster KB314546
A Microsoft tudásbázisban szolgáltatott információkat "az adott állapotban", bárminemű szavatosság vagy garancia nélkül biztosítjuk. A Microsoft kizár mindennemű, akár kifejezett, akár vélelmezett szavatosságot vagy garanciát, ideértve a forgalomképességre és az adott célra való alkalmasságra vonatkozó szavatosságot is. A Microsoft Corporation és annak beszállítói semmilyen körülmények között nem felelősek semminemű kárért, így a közvetlen, a közvetett, az üzleti haszon elmaradásából származó vagy speciális károkért, illetve a kár következményeként felmerülő költségek megtérítéséért, még abban az esetben sem, ha a Microsoft Corporationt vagy beszállítóit az ilyen károk bekövetkeztének lehetőségére figyelmeztették. Egyes államok joga nem teszi lehetővé bizonyos károkért a felelősség kizárását vagy korlátozását, ezért a fenti korlátozások az ön esetében esetleg nem alkalmazhatók.

Visszajelzés küldése

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com