Megosztás a következőn keresztül:


Adatbázis visszaállítása új helyre (SQL Server)

A következőkre vonatkozik:SQL Server

Ez a cikk bemutatja, hogyan állíthat vissza egy SQL Server-adatbázist egy új helyre, és hogyan nevezheti át az adatbázist az SQL Serveren az SQL Server Management Studio (SSMS) vagy a Transact-SQL használatával. Áthelyezhet egy adatbázist egy új könyvtár elérési útjára, vagy létrehozhat egy adatbázis másolatát ugyanazon a kiszolgálópéldányon vagy egy másik kiszolgálópéldányon.

Korlátozások

  • A teljes adatbázis biztonsági mentését visszaállító rendszergazdának kell lennie az egyetlen személynek, aki jelenleg az adatbázist használja a visszaállításhoz.

Előfeltételek

  • Ha a teljes vagy tömegesen naplózott helyreállítási modellt használja, mielőtt visszaállíthat egy adatbázist, biztonsági másolatot kell készítenie az aktív tranzakciónaplóról. További információ: Tranzakciónapló biztonsági mentése.

  • A titkosított adatbázisok visszaállításához hozzá kell férnie az adatbázis titkosításához használt tanúsítványhoz vagy aszimmetrikus kulcshoz. A tanúsítvány vagy az aszimmetrikus kulcs nélkül nem állíthatja vissza az adatbázist. Az adatbázis titkosítási kulcsának titkosításához használt tanúsítványt mindaddig meg kell őriznie, amíg szüksége van a biztonsági mentésre. További információ: SQL Server-tanúsítványok és aszimmetrikus kulcsok.

Ajánlások

  • Az adatbázisok áthelyezésével kapcsolatos egyéb szempontokat lásd: Adatbázisok másolása biztonsági mentéssel és visszaállítással.

  • Ha egy SQL Server 2005-ös (9.x) vagy újabb adatbázist állít vissza az SQL Serverre, az adatbázis automatikusan frissül. Az adatbázis általában azonnal elérhetővé válik. Ha azonban egy SQL Server 2005(9.x) adatbázis teljes szöveges indexekkel rendelkezik, a frissítési folyamat a kiszolgálótulajdonság beállításától függően importálja, alaphelyzetbe állítja vagy újraépíti őket upgrade_option . Ha a frissítési beállítás importálásra () vagy újraépítésre (upgrade_option = 2upgrade_option = 0) van beállítva, a teljes szöveges indexek nem érhetők el a frissítés során. Az indexelt adatok mennyiségétől függően az importálás több órát is igénybe vehet, az újraépítés pedig akár tízszer hosszabb időt is igénybe vehet. Ha a frissítési beállítás importálásra van állítva, a társított teljes szöveges indexek újraépülnek, ha egy teljes szöveges katalógus nem érhető el. A kiszolgálótulajdonság beállításának módosításához használja a upgrade_optionsp_fulltext_service.

Biztonság

Biztonsági okokból nem javasoljuk, hogy ismeretlen vagy nem megbízható forrásokból származó adatbázisokat csatoljon vagy állítson vissza. Az ilyen adatbázisok rosszindulatú kódot tartalmazhatnak, amelyek nem szándékos Transact-SQL kódot futtathatnak, vagy hibákat okozhatnak a séma vagy a fizikai adatbázis szerkezetének módosításával. Mielőtt ismeretlen vagy nem megbízható forrásból származó adatbázist használna, futtassa DBCC CHECKDB az adatbázison egy nem gyártási kiszolgálón, és vizsgálja meg a kódot, például a tárolt eljárásokat vagy más felhasználó által definiált kódot az adatbázisban.

Engedélyek

Ha a visszaállított adatbázis nem létezik, a felhasználónak rendelkeznie CREATE DATABASE kell a futtatáshoz RESTOREszükséges engedélyekkel. Ha az adatbázis létezik, RESTORE az engedélyek alapértelmezés szerint a sysadmin és a dbcreator rögzített kiszolgálói szerepkörök tagjaira és az adatbázis tulajdonosára (dbo) vonatkozóak.

RESTORE engedélyeket kapnak az olyan szerepkörökhöz, amelyekben a tagsági adatok mindig könnyen elérhetők a kiszolgáló számára. Mivel a rögzített adatbázisszerepkör-tagság csak akkor ellenőrizhető, ha az adatbázis elérhető és sértetlen, ami nem mindig igaz a futtatáskor RESTORE , a db_owner rögzített adatbázis-szerepkör tagjai nem rendelkeznek RESTORE engedélyekkel.

Adatbázis visszaállítása új helyre, és opcionálisan az adatbázis átnevezése az SSMS használatával

  1. Csatlakozzon az SQL Server adatbázismotor megfelelő példányához, majd az Object Explorerben válassza ki a kiszolgáló nevét a kiszolgálófa kibontásához.

  2. Kattintson a jobb gombbal az Adatbázisok elemre, majd válassza az Adatbázis visszaállítása... parancsot. Megnyílik az Adatbázis visszaállítása párbeszédpanel.

  3. Az Általános lapon, a Forrás szakaszban adja meg a visszaállítani kívánt biztonsági mentési csoportok forrását és helyét. Válasszon az alábbi lehetőségek közül:

    • Adatbázis

      Válassza ki a legördülő listából visszaállítani kívánt adatbázist. A lista csak azokat az adatbázisokat tartalmazza, amelyekről a msdb biztonsági mentési előzményeknek megfelelően biztonsági másolat készült.

      Jegyzet

      Ha a biztonsági mentés egy másik kiszolgálóról jön létre, a célkiszolgáló nem rendelkezik a megadott adatbázis biztonsági mentési előzményadataival. Ebben az esetben válassza Eszköz lehetőséget a visszaállítani kívánt fájl vagy eszköz manuális megadásához.

    • eszköz

      A Tallózás (...) gombra kattintva nyissa meg a Biztonsági mentési eszközök kiválasztása párbeszédpanelt . A Biztonsági mentés adathordozótípus mezőben válasszon egyet a felsorolt eszköztípusok közül. Ha egy vagy több eszközt kíván kijelölni a Biztonsági mentési adathordozóra mezőben, válassza a Hozzáadásgombot.

      Miután hozzáadta azokat az eszközöket, amelyeket fel szeretne venni a biztonsági mentési adathordozók listájára, az OK gombra kattintva térjen vissza az Általános lapra.

      A Forrás: Eszköz: Adatbázis listában válassza ki a visszaállítani kívánt adatbázis nevét.

      Jegyzet

      Ez a lista csak akkor érhető el, ha az eszköz ki van választva. Csak azok az adatbázisok érhetők el, amelyek biztonsági másolatokkal rendelkeznek a kiválasztott eszközön.

  4. A Cél szakaszban a Adatbázis mező automatikusan ki lesz töltve a visszaállítandó adatbázis nevével. Az adatbázis nevének módosításához írja be az új nevet az Adatbázis mezőbe.

  5. A Visszaállítás párbeszédpanelen hagyja meg az alapértelmezett To the last backup to the last backup orselect Timeline to access the Backup Timeline dialog to manually select a point in time to stop the recovery action. Az adott időpont kiválasztásával kapcsolatos további információkért tekintse meg a biztonsági mentés ütemtervét .

  6. A Biztonsági mentési csoportokban válassza ki a visszaállítani kívánt biztonsági másolatokat rácson. Ez a rács megjeleníti a megadott helyen elérhető biztonsági másolatokat. Alapértelmezés szerint helyreállítási terv javasolt. A javasolt helyreállítási terv felülbírálásához módosíthatja a táblázat kijelöléseit. A korábbi biztonsági mentés visszaállításától függő biztonsági másolatok automatikusan törlődnek a korábbi biztonsági mentés kijelölésének törlésekor.

    A rács visszaállításához szükséges biztonsági mentési csoportok oszlopairól további információt az Adatbázis visszaállítása (Általános oldal) című témakörben talál.

  7. Az adatbázisfájlok új helyének megadásához válassza a Fájlok lapot, majd válassza a Az összes fájl áthelyezése mappábalehetőséget. Adjon meg egy új helyet a Adatfájl mappa és Naplófájl mappa. A rácsról további információért lásd az Adatbázis visszaállítása (Fájlok lap)című témakört.

  8. A Beállítások lapon módosítsa a beállításokat, ha szeretné. További információ ezekről a beállításokról: Adatbázis visszaállítása (Beállítások lap).

Adatbázis visszaállítása új helyre, és igény szerint nevezze át az adatbázist a T-SQL használatával

  1. Szükség esetén határozza meg a biztonsági mentési csoportban lévő fájlok logikai és fizikai nevét, amely tartalmazza a visszaállítani kívánt teljes adatbázis-biztonsági mentést. Ez az utasítás a biztonsági mentési csoportban található adatbázis- és naplófájlok listájának visszaadásához szükséges alapszintaxisokat mutatja be:

    RESTORE FILELISTONLY FROM backup_device WITH FILE = *backup_set_file_number
    

    Itt backup_set_file_number jelzi a biztonsági mentés helyét a médiakészletben. A biztonsági mentési csoport pozícióját a RESTORE HEADERONLY utasítással szerezheti be. További információért lásd: Biztonsági mentés megadása.

    Ez az utasítás több WITH lehetőséget is támogat. További információ: RESTORE FILELISTONLY.

  2. A RESTORE DATABASE utasítással állítsa vissza a teljes adatbázis biztonsági mentését. Alapértelmezés szerint a rendszer visszaállítja az adatokat és a naplófájlokat az eredeti helyre. Az adatbázis áthelyezéséhez használja az MOVE egyes adatbázisfájlok áthelyezését, valamint a meglévő fájlokkal való ütközések elkerülését.

Az adatbázis új helyre, új névvel való visszaállításának alapvető Transact-SQL szintaxisa a következő:

RESTORE DATABASE <new_database_name>
FROM <backup_device> [ , ...n ]
[ WITH
 {
    [ RECOVERY | NORECOVERY ]
    [ , ] [ FILE = { <backup_set_file_number> | @backup_set_file_number } ]
    [ , ] MOVE 'logical_file_name_in_backup' TO 'operating_system_file_name' [ , ...n ]
} ]
[ ; ]

Jegyzet

Amikor egy másik lemezen lévő adatbázis áthelyezésére készül, győződjön meg arról, hogy elegendő hely áll rendelkezésre, és azonosítania kell a meglévő fájlokkal való esetleges ütközéseket. Ez az ellenőrzés egy RESTORE utasítást használ – VERIFYONLY utasítást, amely ugyanazokat MOVE a paramétereket határozza meg, amelyeket az RESTORE DATABASE utasításban használni kíván.

Az alábbi információk ennek RESTORE az utasításnak az argumentumait ismertetik, amelyek egy adatbázis új helyre való visszaállítására vonatkoznak. További információ ezekről az argumentumokról: RESTORE Utasítások.

new_database_name

Az adatbázis új neve.

Jegyzet

Ha az adatbázist egy másik kiszolgálópéldányra állítja vissza, az eredeti adatbázisnevet használhatja új név helyett.

backup_device [ , ... n ]

Vesszővel tagolt listát ad meg azokról az 1 és 64 biztonsági mentési eszközökről, amelyekről az adatbázis biztonsági mentését vissza kell állítani. Megadhat fizikai biztonsági mentési eszközt, vagy megadhat egy megfelelő logikai biztonsági mentési eszközt, ha van definiálva. Fizikai biztonsági mentési eszköz megadásához használja az DISK alábbi TAPE lehetőséget:

{ DISK | TAPE } = physical_backup_device_name

További információ: Biztonsági mentési eszközök.

{ RECOVERY | NORECOVERY }

Ha az adatbázis a teljes helyreállítási modellt használja, előfordulhat, hogy az adatbázis visszaállítása után tranzakciónapló-biztonsági mentéseket kell alkalmaznia. Ebben az esetben adja meg a NORECOVERY lehetőséget.

Ellenkező esetben használja az RECOVERY alapértelmezett beállítást.

FILE = { backup_set_file_number | @backup_set_file_number }

Azonosítja a visszaállítandó biztonsági mentési csoportot. Egy backup_set_file_number1 például az első biztonsági mentési készletet jelöli a biztonsági mentési adathordozón, a második biztonsági mentési 2. A biztonsági mentési csoport backup_set_file_number a RESTORE utasítások – HEADERONLY utasítás használatával szerezheti be.

Ha ez a beállítás nincs megadva, az alapértelmezett beállítás az első biztonsági mentési csoport használata a biztonsági mentési eszközön.

További információ: RESTORE argumentumok (Transact-SQL).

A "logical_file_name_in_backup" ÁTHELYEZÉSE "operating_system_file_name" [ , ... n ]

Megadja, hogy a megadott logical_file_name_in_backup adatok vagy naplófájlok a megadott operating_system_file_namehelyre legyenek visszaállítva. Adjon meg egy utasítást MOVE minden olyan logikai fájlhoz, amelyet vissza szeretne állítani a biztonsági mentési csoportból egy új helyre.

Opció Leírás
logical_file_name_in_backup Megadja egy adat vagy naplófájl logikai nevét a biztonsági mentési csoportban. A biztonsági mentési csoportban lévő adatok vagy naplófájlok logikai fájlneve megegyezik az adatbázisban a biztonsági mentési csoport létrehozásakor megadott logikai nevével.



Megjegyzés: Ha le szeretné kérni a logikai fájlok listáját a biztonsági mentési csoportból, használja a RESTORE utasításokat – FILELISTONLY.
operating_system_file_name A megadott logical_file_name_in_backupfájl új helyét adja meg. A fájl erre a helyre lesz visszaállítva.

Opcionálisan operating_system_file_name a visszaállított fájl új fájlnevét adja meg. Új névre van szükség, ha egy meglévő adatbázis másolatát hozza létre ugyanazon a kiszolgálópéldányon.
n Egy helyőrző, amely további utasítások megadását MOVE jelzi.

Példa (Transact-SQL)

Ez a példa létrehoz egy új adatbázist, MyAdvWorks amely a AdventureWorks2025 mintaadatbázis biztonsági másolatának visszaállításával jön létre, amely két fájlt tartalmaz:AdventureWorks2025_DataésAdventureWorks2025_Log. Ez az adatbázis az egyszerű helyreállítási modellt használja. A AdventureWorks2025 adatbázis már létezik a kiszolgálópéldányon, ezért a biztonsági másolatban lévő fájlokat új helyre kell visszaállítani. Az RESTORE FILELISTONLY utasítás a visszaállítandó adatbázisban lévő fájlok számának és nevének meghatározására szolgál. Az adatbázis biztonsági mentése az első biztonsági mentési készlet a biztonsági mentési eszközön.

Jegyzet

A tranzakciónapló biztonsági mentésének és visszaállításának példái, beleértve az időponthoz kötött visszaállításokat is, az alábbi MyAdvWorks_FullRM példához hasonlóan a AdventureWorks2025 létrehozott MyAdvWorksadatbázist használják. Az eredményként kapott MyAdvWorks_FullRM adatbázist azonban módosítani kell a teljes helyreállítási modell használatára a következő Transact-SQL utasítás használatával: ALTER DATABASE <database_name> SET RECOVERY FULL.

USE master;
GO
-- First determine the number and names of the files in the backup.
-- AdventureWorks2022_Backup is the name of the backup device.
RESTORE FILELISTONLY
   FROM AdventureWorks2022_Backup;

-- Restore the files for MyAdvWorks.
RESTORE DATABASE MyAdvWorks
   FROM AdventureWorks2022_Backup
   WITH RECOVERY,
   MOVE 'AdventureWorks2022_Data' TO 'D:\MyData\MyAdvWorks_Data.mdf',
   MOVE 'AdventureWorks2022_Log' TO 'F:\MyLog\MyAdvWorks_Log.ldf';
GO

Az adatbázis teljes adatbázis-biztonsági mentésének létrehozásáról a AdventureWorks2025 létrehozása című témakörben talál példát.