Megosztás:


Rendszeradatbázisok áthelyezése

A következőkre vonatkozik:SQL Server

Ez a cikk azt ismerteti, hogyan helyezhet át rendszeradatbázisokat az SQL Serveren. A rendszeradatbázisok áthelyezése a következő helyzetekben lehet hasznos:

  • Meghibásodás helyreállítása. Az adatbázis például gyanús módban van, vagy hardverhiba miatt leállt.

  • Tervezett áthelyezés.

  • Áthelyezés ütemezett lemezkarbantartáshoz.

Az alábbi eljárások az adatbázisfájloknak az SQL Server ugyanazon példányán belüli áthelyezésére vonatkoznak. Ha egy adatbázist az SQL Server egy másik példányára vagy egy másik kiszolgálóra szeretne áthelyezni, használja a biztonsági mentési és visszaállítási műveletet.

A cikkben szereplő eljárásokhoz az adatbázisfájlok logikai neve szükséges. A név lekéréséhez kérje le a névoszlopot a sys.master_files katalógusnézetben.

Fontos

Ha áthelyez egy rendszeradatbázist, majd később újraépíti a master adatbázist, újra kell helyeznie a rendszeradatbázist, mert az újraépítési művelet az összes rendszeradatbázist az alapértelmezett helyre telepíti.

A rendszeradatbázisok áthelyezése

Ha rendszeradatbázis-adatokat vagy naplófájlokat szeretne áthelyezni egy tervezett áthelyezés vagy ütemezett karbantartási művelet részeként, kövesse az alábbi lépéseket. Ide tartoznak a model, msdbés tempdb rendszeradatbázisok.

Fontos

Ez az eljárás a master és Resource adatbázisok kivételével minden rendszeradatbázisra vonatkozik. A master adatbázis áthelyezésének lépéseit a cikk későbbi részében találja. A Resource adatbázis nem helyezhető át.

  1. Jegyezze fel az áthelyezni kívánt adatbázisfájlok meglévő helyét a sys.master_files katalógusnézet áttekintésével.

  2. Ellenőrizze, hogy az SQL Server adatbázismotor szolgáltatásfiókja rendelkezik-e teljes engedélyekkel a fájlok új helyéhez. További információ: Windows-szolgáltatásfiókok és -engedélyek konfigurálása. Ha az Adatbázismotor szolgáltatásfiókja nem tudja szabályozni az új helyen lévő fájlokat, az SQL Server-példány nem indul el.

  3. Az egyes adatbázisfájlok áthelyezéséhez futtassa az alábbi utasítást.

    ALTER DATABASE database_name
        MODIFY FILE (NAME = logical_name, FILENAME = 'new_path\os_file_name');
    

    A szolgáltatás újraindításáig az adatbázis továbbra is a meglévő helyen használja az adatokat és a naplófájlokat.

  4. Állítsa le az SQL Server-példányt a karbantartás elvégzéséhez. További információ: SQL Server-szolgáltatások indítása, leállítása, szüneteltetése, folytatása és újraindítása.

  5. Másolja az adatbázisfájlt vagy -fájlokat az új helyre. Ez a lépés nem szükséges a tempdb rendszeradatbázishoz; ezek a fájlok automatikusan létrejönnek az új helyen.

  6. Indítsa újra az SQL Server vagy a kiszolgáló példányát. További információ: SQL Server-szolgáltatások indítása, leállítása, szüneteltetése, folytatása és újraindítása.

  7. Ellenőrizze a fájlmódosítást az alábbi lekérdezés futtatásával. A rendszeradatbázisoknak jelentenie kell az új fizikai fájlhelyeket.

    SELECT name,
           physical_name AS CurrentLocation,
           state_desc
    FROM sys.master_files
    WHERE database_id = DB_ID(N'<database_name>');
    
  8. Mivel az 5. lépésben átmásolta az adatbázisfájlokat ahelyett, hogy áthelyezte őket, most már biztonságosan törölheti a nem használt adatbázisfájlokat az előző helyükről.

Nyomon követés: A msdb rendszeradatbázis áthelyezése után

Ha áthelyezi a msdb adatbázist, és Database Mail van konfigurálva, végezze el az alábbi további lépéseket.

  1. Az alábbi lekérdezés futtatásával ellenőrizze, hogy a Service Broker engedélyezve van-e a msdb adatbázishoz.

    SELECT is_broker_enabled
    FROM sys.databases
    WHERE name = N'msdb';
    

    Ha a Szolgáltatásközvetítő nincs engedélyezve msdbesetében, újra engedélyezni kell, hogy a Database Mail működjön. További információért tekintse meg a következőt: ALTER DATABASE ... SET ENABLE_BROKER.

    ALTER DATABASE msdb
        SET ENABLE_BROKER
        WITH ROLLBACK IMMEDIATE;
    

    Győződjön meg arról, hogy a is_broker_enabled értéke most 1.

  2. Ellenőrizze, hogy a Database Mail működik-e egy tesztposta küldésével.

Hibahelyreállítási eljárás

Ha hardverhiba miatt át kell helyezni egy fájlt, az alábbi lépéseket követve helyezze át a fájlt egy új helyre. Ez az eljárás a master és Resource adatbázisok kivételével minden rendszeradatbázisra vonatkozik. Az alábbi példák a Windows parancssori parancssorát és sqlcmd segédprogramot.

Fontos

Ha az adatbázis nem indítható el, ha gyanús vagy helyreállítatlan állapotban van, csak a sysadmin rögzített szerepkör tagjai helyezhetik át a fájlt.

  1. Ellenőrizze, hogy az SQL Server adatbázismotor szolgáltatásfiókja rendelkezik-e teljes engedélyekkel a fájlok új helyéhez. További információ: Windows-szolgáltatásfiókok és -engedélyek konfigurálása. Ha az Adatbázismotor szolgáltatásfiókja nem tudja szabályozni az új helyen lévő fájlokat, az SQL Server-példány nem indul el.

  2. Állítsa le az SQL Server-példányt, ha el van indítva.

  3. Indítsa el az SQL Server-példányt mastercsak helyreállítási módban az alábbi parancsok egyikének megadásával a parancssorban. A 3608 indítási paraméter használata megakadályozza, hogy az SQL Server automatikusan elindítsa és helyreállítsa az adatbázist a master adatbázis kivételével. További információért lásd az indítási paramétereket és a TF3608.

    Az ezekben a parancsokban megadott paraméterek megkülönböztetik a kis- és nagybetűket. A parancsok sikertelenek, ha a paraméterek nincsenek megadva az ábrán látható módon.

    Az alapértelmezett (MSSQLSERVER) példányhoz futtassa a következő parancsot:

    NET START MSSQLSERVER /f /T3608
    

    Névvel ellátott példány esetén futtassa a következő parancsot:

    NET START MSSQL$instancename /f /T3608
    

    További információ: SQL Server-szolgáltatások indítása, leállítása, szüneteltetése, folytatása és újraindítása.

  4. A szolgáltatás indítása után a 3608-as és /f-es nyomkövetési jelzőkkel, azonnal kezdjen egy sqlcmd kapcsolatot a szerverhez, hogy igényelje a rendelkezésre álló egyetlen kapcsolatot. Ha például sqlcmd helyileg hajtja végre az alapértelmezett (MSSQLSERVER) példánnyal megegyező kiszolgálón, és az Active Directory-integrációs hitelesítéshez szeretne csatlakozni, futtassa a következő parancsot:

    sqlcmd
    

    A helyi kiszolgálón lévő nevesített példányhoz való csatlakozáshoz az Active Directory-integrációs hitelesítéssel:

    sqlcmd -S localhost\instancename
    

    Az sqlcmd szintaxisának további információkért lásd sqlcmd segédprogram.

    Az egyes fájlok áthelyezéséhez használja sqlcmd parancsokat vagy az SQL Server Management Studiót az alábbi utasítás futtatásához. Az sqlcmd segédprogram használatáról további információt az sqlcmd – a segédprogramcímű cikkben talál. Ha az sqlcmd munkamenet meg van nyitva, futtassa az alábbi utasítást az egyes fájlok áthelyezéséhez:

    ALTER DATABASE database_name
        MODIFY FILE (NAME = logical_name, FILENAME = 'new_path\os_file_name');
    GO
    
  5. Lépjen ki az sqlcmd segédprogramból vagy az SQL Server Management Studióból.

  6. Állítsa le az SQL Server-példányt. Futtassa például a NET STOP MSSQLSERVER parancsot a parancssorban.

  7. Másolja a fájlt vagy fájlokat az új helyre.

  8. Indítsa újra az SQL Server-példányt. Például futtassa a "NET START MSSQLSERVER" parancsot a parancssorban.

  9. Ellenőrizze a fájlmódosítást az alábbi lekérdezés futtatásával.

    SELECT name,
           physical_name AS CurrentLocation,
           state_desc
    FROM sys.master_files
    WHERE database_id = DB_ID(N'<database_name>');
    
  10. Mivel a 7. lépésben átmásolta az adatbázisfájlokat ahelyett, hogy áthelyezte őket, most már biztonságosan törölheti a nem használt adatbázisfájlokat az előző helyükről.

A master adatbázis áthelyezése

A master adatbázis áthelyezéséhez kövesse az alábbi lépéseket.

  1. Ellenőrizze, hogy az SQL Server adatbázismotor szolgáltatásfiókja rendelkezik-e teljes engedélyekkel a fájlok új helyéhez. További információ: Windows-szolgáltatásfiókok és -engedélyek konfigurálása. Ha az Adatbázismotor szolgáltatásfiókja nem tudja szabályozni az új helyen lévő fájlokat, az SQL Server-példány nem indul el.

  2. A Start menüben keresse meg és indítsa el SQL Server Configuration Manager. A várt helyről további információért tekintse meg az SQL Server Configuration Manager.

  3. Az SQL Server Services csomóponton kattintson a jobb gombbal az SQL Server példányára (például SQL Server (MSSQLSERVER)), és válassza Tulajdonságoklehetőséget.

  4. A SQL Server (instance_name) Tulajdonságok párbeszédpanelen válassza az Indítási paraméterek lapot.

  5. A Meglévő paraméterek mezőben válassza ki a -d paramétert. A Indítási paraméter megadása mezőben módosítsa a paramétert a masteradatfájl új elérési útjára. A módosítás mentéséhez válassza Frissítés lehetőséget.

  6. A Meglévő paraméterek mezőben válassza ki a -l paramétert. Az Indítási paraméter megadása mezőben módosítsa a paramétert a masternaplófájl új elérési útjára. A módosítás mentéséhez válassza Frissítés lehetőséget.

    Az adatfájl paraméterértékének a -d paramétert kell követnie, a naplófájl értékének pedig a -l paramétert kell követnie. Az alábbi példa a master adatfájl alapértelmezett helyének paraméterértékét mutatja be.

    -dC:\Program Files\Microsoft SQL Server\MSSQL<version>.MSSQLSERVER\MSSQL\DATA\master.mdf
    -lC:\Program Files\Microsoft SQL Server\MSSQL<version>.MSSQLSERVER\MSSQL\DATA\mastlog.ldf
    

    Ha a master adatfájl tervezett áthelyezése E:\SQLData, a paraméterértékek az alábbiak szerint módosulnak:

    -dE:\SQLData\master.mdf
    -lE:\SQLData\mastlog.ldf
    
  7. Válassza az OK lehetőséget a módosítások végleges mentéséhez, majd zárja be a SQL Server (instance_name) Tulajdonságok párbeszédpanelt.

  8. Az SQL Server példányának leállításához kattintson a jobb gombbal a példány nevére, és válassza a Leállításlehetőséget.

  9. Másolja a master.mdf és mastlog.ldf fájlokat az új helyre.

  10. Indítsa újra az SQL Server-példányt.

  11. Ellenőrizze a master adatbázis fájlmódosítását az alábbi lekérdezés futtatásával.

    SELECT name,
           physical_name AS CurrentLocation,
           state_desc
    FROM sys.master_files
    WHERE database_id = DB_ID('master');
    
  12. Ezen a ponton az SQL Servernek normálisan kell futnia. A Microsoft azonban azt is javasolja, hogy módosítsa a beállításjegyzék bejegyzését az alábbi helyen: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\instance_ID\Setup, ahol a instance_ID hasonló a MSSQL13.MSSQLSERVERértékhez. Ebben a hive-ben módosítsa a SQLDataRoot értéket a master adatbázisfájlok új helyének új elérési útjára. A beállításjegyzék frissítésének sikertelensége a javítás és a frissítés sikertelenségét okozhatja.

  13. Mivel a 9. lépésben átmásolta az adatbázisfájlokat ahelyett, hogy áthelyezte őket, most már biztonságosan törölheti a nem használt adatbázisfájlokat az előző helyről.

Az erőforrás-adatbázis áthelyezése

A Resource adatbázis helye \<drive>:\Program Files\Microsoft SQL Server\MSSQL\<version>.<instance_name>\MSSQL\Binn\. Az adatbázis nem helyezhető át.

Nyomon követés: Az összes rendszeradatbázis áthelyezése után

Ha az összes rendszeradatbázist áthelyezte egy új meghajtóra vagy kötetre, vagy egy másik, másik meghajtóbetűjellel rendelkező kiszolgálóra, végezze el az alábbi frissítéseket.

  • Módosítsa az SQL Server-ügynök naplóútvonalát. Ha nem frissíti ezt az elérési utat, az SQL Server-ügynök nem indul el.

  • Módosítsa az adatbázis alapértelmezett helyét. Az új adatbázis létrehozása meghiúsulhat, ha az alapértelmezett helyként megadott meghajtóbetűjel és elérési út nem létezik.

Az SQL Server-ügynök naplóútvonalának módosítása

Ha az összes rendszeradatbázist áthelyezte egy új kötetre, vagy egy másik kiszolgálóra migrált egy másik meghajtóbetűjellel, és az SQL Agent hibanaplójának elérési útja már nem létezik SQLAGENT.OUT, végezze el az alábbi frissítéseket.

  1. Az SQL Server Management Studio programban az Object Explorerrészben bontsa ki a SQL Server Agentelemet.

  2. Kattintson a jobb gombbal a hibanaplóra, és válassza a Konfiguráláslehetőséget.

  3. Az SQL Server-ügynök hibanaplóinak konfigurálása párbeszédpanelen adja meg az SQLAGENT.OUT fájl új helyét. Az alapértelmezett hely C:\Program Files\Microsoft SQL Server\MSSQL\<version>.<instance_name>\MSSQL\Log\.

Az adatbázis alapértelmezett helyének módosítása

  1. A SQL Server Management Studióban, az Object Explorersegítéségével csatlakozzon a kívánt SQL Server-példányhoz. Kattintson jobb gombbal a példányra, és válassza a Tulajdonságoklehetőséget.

  2. A Kiszolgáló tulajdonságai párbeszédpanelen válassza Adatbázis-beállításoklehetőséget.

  3. A Adatbázis alapértelmezett helyeterületen keresse meg az új helyet mind az adatok, mind a naplófájlok számára.

  4. Állítsa le és indítsa el az SQL Server szolgáltatást a módosítás befejezéséhez.

Példák

A. A tempdb adatbázis áthelyezése

Az alábbi példa egy tervezett áthelyezés részeként áthelyezi a tempdb adatokat és naplófájlokat egy új helyre.

Borravaló

Ezzel a lehetőséggel áttekintheti tempdb fájljait az optimális méret és elhelyezés érdekében. További információ: Tempdb-teljesítmény optimalizálása az SQL Server.

Mivel a tempdb minden alkalommal újra létrehozódik, amikor az SQL Server példánya elindul, nem kell fizikailag áthelyeznie az adat- és naplófájlokat. A fájlok az új helyen jönnek létre, amikor a szolgáltatás a 4. lépésben újraindul. A szolgáltatás újraindításáig tempdb továbbra is a meglévő helyen használják az adatokat és a naplófájlokat.

  1. Határozza meg a tempdb adatbázis logikai fájlneveit és a lemez aktuális helyét.

    SELECT name,
           physical_name AS CurrentLocation
    FROM sys.master_files
    WHERE database_id = DB_ID(N'tempdb');
    GO
    
  2. Ellenőrizze, hogy az SQL Server adatbázismotor szolgáltatásfiókja rendelkezik-e teljes engedélyekkel a fájlok új helyéhez. További információ: Windows-szolgáltatásfiókok és -engedélyek konfigurálása. Ha az Adatbázismotor szolgáltatásfiókja nem tudja szabályozni az új helyen lévő fájlokat, az SQL Server-példány nem indul el.

  3. Az egyes fájlok helyének módosítása a ALTER DATABASEhasználatával.

    USE master;
    GO
    
    ALTER DATABASE tempdb
        MODIFY FILE (NAME = tempdev, FILENAME = 'E:\SQLData\tempdb.mdf');
    GO
    
    ALTER DATABASE tempdb
        MODIFY FILE (NAME = templog, FILENAME = 'F:\SQLLog\templog.ldf');
    GO
    

    A szolgáltatás újraindításáig tempdb továbbra is a meglévő helyen használják az adatokat és a naplófájlokat.

  4. Állítsa le és indítsa újra az SQL Server-példányt.

  5. Ellenőrizze a fájlmódosítást.

    SELECT name,
           physical_name AS CurrentLocation,
           state_desc
    FROM sys.master_files
    WHERE database_id = DB_ID(N'tempdb');
    
  6. Törölje a nem használt tempdb fájlokat az eredeti helyről.