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


Teljes adatbázis biztonsági mentése

A következőkre vonatkozik:SQL Server

Ez a cikk azt ismerteti, hogyan hozhat létre teljes adatbázis-biztonsági mentést az SQL Server Management Studio, a Transact-SQL vagy a PowerShell használatával az SQL Serverben.

További információ: SQL Server biztonsági mentés és visszaállítás Azure Blob Storage használatával és SQL Server biztonsági mentés URL-címre.

Korlátozások és korlátozások

  • A BACKUP utasítás nem engedélyezett explicit vagy implicit tranzakcióban.
  • Az SQL Server újabb verziói által létrehozott biztonsági másolatok nem állíthatók vissza az SQL Server korábbi verzióiban.

Az áttekintésért és a biztonsági mentési fogalmak és feladatok részletesebb ismertetéséért tekintse meg a Biztonsági mentés áttekintése (SQL Server), mielőtt folytatja.

Ajánlások

  • Az adatbázisok méretének növekedésével a teljes adatbázis-biztonsági mentések több időt vesznek igénybe, és több tárterületet igényelnek. Nagyméretű adatbázisok esetén fontolja meg a teljes adatbázis-biztonsági mentések kiegészítését különböző adatbázis biztonsági másolatainak.
  • Becsülje meg a teljes adatbázis biztonsági mentésének méretét a sp_spaceused rendszer által tárolt eljárással.
  • Alapértelmezés szerint minden sikeres biztonsági mentési művelet hozzáad egy bejegyzést az SQL Server hibanaplójába és a rendszer eseménynaplójába. Ha gyakran készít biztonsági másolatot, a sikeres üzenetek gyorsan halmozódnak fel, ami hatalmas hibanaplókat eredményez, ami megnehezíti a többi üzenet megkeresését. Ilyen esetekben letilthatja ezeket a biztonsági mentési naplóbejegyzéseket a 3226-os nyomkövetési jelző használatával, ha egyik szkript sem függ ezektől a bejegyzésektől. További információ: nyomkövetési jelzők (Transact-SQL).

Biztonság

MEGBÍZHATÓ beállítás ki van kapcsolva egy adatbázis biztonsági mentésekor. A TRUSTWORTHY beállítása ON-ra vonatkozó információkért lásd a ALTER DATABASE SET Options (Transact-SQL)című cikket.

Az SQL Server 2012 -től (11.x) kezdődően a PASSWORD és MEDIAPASSWORD beállításai már nem érhetők el biztonsági másolatok létrehozásához. Továbbra is visszaállíthatja a jelszóval létrehozott biztonsági másolatokat.

Engedélyek

BACKUP DATABASE és BACKUP LOG engedélyek alapértelmezés szerint a sysadmin rögzített kiszolgálói szerepkör, valamint a db_owner és db_backupoperator rögzített adatbázis-szerepkörök tagjai számára.

A biztonsági mentési eszköz fizikai fájljának tulajdonjogi és engedélyproblémái zavarhatják a biztonsági mentési műveletet. Az SQL Server szolgáltatásnak olvasnia és írnia kell az eszközre. Annak a fióknak, amely alatt az SQL Server szolgáltatás fut, írási engedélyekkel kell rendelkeznie a biztonsági mentési eszközhöz. Azonban sp_addumpdevice, amely egy biztonsági mentési eszköz bejegyzését adja hozzá a rendszertáblákhoz, nem ellenőrzi a fájlhozzáférési engedélyeket. Előfordulhat, hogy a biztonsági mentési eszköz fizikai fájljában problémák nem jelennek meg, amíg a biztonsági mentést nem használják, vagy meg nem kísérlik a visszaállítást.

Az SQL Server Management Studio használata

Jegyzet

Ha az SQL Server Management Studio használatával ad meg biztonsági mentési feladatot, a megfelelő Transact-SQL BACKUP szkriptet a Szkript gombra kattintva és egy szkript célhelyének kiválasztásával hozhatja létre.

  1. A Microsoft SQL Server adatbázismotor megfelelő példányához való csatlakozás után bontsa ki a kiszolgálófát Object Explorer.

  2. Bontsa ki adatbázisok, majd válasszon ki egy felhasználói adatbázist, vagy bontsa ki rendszeradatbázisok, majd válasszon ki egy rendszeradatbázist.

  3. Kattintson a jobb gombbal az adatbázisra, amelyről biztonsági mentést kíván készíteni, mutasson a Feladatokelemekre, majd válassza a Biztonsági mentés...lehetőséget.

  4. Az Adatbázis biztonsági mentése párbeszédpanelen a kijelölt adatbázis megjelenik a legördülő listában (amelyet átválthat a kiszolgálón lévő bármely más adatbázisra).

  5. A Biztonsági mentés típusa legördülő listában válasszon egy biztonsági mentési típust – az alapértelmezett Teljes.

    Fontos

    A különbségi biztonsági mentés vagy a tranzakciónaplók biztonsági mentésének végrehajtása előtt legalább egy teljes adatbázis-biztonsági mentést végre kell hajtania.

  6. A Biztonsági mentés összetevőterületen válassza Adatbázislehetőséget.

  7. A Cél szakaszban tekintse át a biztonsági mentési fájl alapértelmezett helyét (a ../mssql/data mappában).

    Másik eszköz kiválasztásához használhatja a Biztonsági mentés legördülő listára. A biztonsági mentési objektumok és célhelyek hozzáadásához válassza a hozzáadása lehetőséget. A biztonsági mentési csoportot több fájlra is lecsíkosíthatja a nagyobb biztonsági mentési sebesség érdekében.

    A biztonsági mentési célhely eltávolításához jelölje ki, majd válassza a Eltávolításalehetőséget. Meglévő biztonsági mentési célhely tartalmának megtekintéséhez először jelölje ki a célhelyet, majd válassza a Tartalomlehetőséget.

  8. (nem kötelező) Tekintse át a Médiabeállítások és Biztonsági mentési beállítások lapon elérhető egyéb beállításokat.

    A különböző biztonsági mentési lehetőségekről további információt Általános lap, Médiabeállítások lapés Biztonsági mentési beállítások lapcímű témakörben talál.

  9. Válassza az OK lehetőséget a biztonsági mentés elindításához.

  10. Ha a biztonsági mentés sikeresen befejeződött, az SQL Server Management Studio párbeszédpanel bezárásához válassza az OK lehetőséget.

További információk

  • A teljes adatbázis-biztonsági mentés létrehozása után létrehozhat egy különbözeti adatbázis-biztonsági mentést vagy egy tranzakciónapló-biztonsági mentést.

  • (nem kötelező) A csak másolási biztonsági mentés létrehozásához jelölje be a csak másolásra jelölőnégyzetet. A csak másolat készítésére szolgáló SQL Server biztonsági mentés egy olyan biztonsági mentés, amely független a hagyományos SQL Server-biztonsági mentések sorozatától. További információ: Copy-Only biztonsági másolatok (SQL Server). Másolatokat készítő biztonsági mentés nem érhető el a különbözeti biztonsági mentési típushoz.

  • Az Adathordozó felülírása beállítás le van tiltva a Médiabeállítások lapon, ha egy URL-címről készít biztonsági másolatot.

Példák

Az alábbi példákhoz hozzon létre egy tesztadatbázist a következő Transact-SQL kóddal:

USE [master]
GO

CREATE DATABASE [SQLTestDB]
GO

USE [SQLTestDB]
GO
CREATE TABLE SQLTest
   (
      ID INT NOT NULL PRIMARY KEY,
      c1 VARCHAR(100) NOT NULL,
      dt1 DATETIME NOT NULL DEFAULT getdate()
   );
GO

USE [SQLTestDB]
GO

INSERT INTO SQLTest (ID, c1) VALUES (1, 'test1')
INSERT INTO SQLTest (ID, c1) VALUES (2, 'test2')
INSERT INTO SQLTest (ID, c1) VALUES (3, 'test3')
INSERT INTO SQLTest (ID, c1) VALUES (4, 'test4')
INSERT INTO SQLTest (ID, c1) VALUES (5, 'test5')
GO

SELECT * FROM SQLTest
GO

Egy. Teljes biztonsági mentés a lemezről az alapértelmezett helyre

Ebben a példában a SQLTestDB adatbázisról biztonsági másolatot készítünk a lemezről az alapértelmezett biztonsági mentési helyen.

  1. A Microsoft SQL Server adatbázismotor megfelelő példányához való csatlakozás után bontsa ki a kiszolgálófát Object Explorer.

  2. Bontsa ki Adatbázisok, kattintson a jobb gombbal a SQLTestDB, mutasson a Tevékenységek elemre, majd válassza a Biztonsági mentés...lehetőséget.

  3. Válassza OKlehetőséget.

  4. Ha a biztonsági mentés sikeresen befejeződött, az SQL Server Management Studio párbeszédpanel bezárásához válassza az OK lehetőséget.

SQL biztonsági mentési

B. Teljes biztonsági mentés a lemezről nem alapértelmezett helyre

Ebben a példában a SQLTestDB adatbázis biztonsági másolatot készít a lemezről egy tetszőleges helyen.

  1. A Microsoft SQL Server adatbázismotor megfelelő példányához való csatlakozás után bontsa ki a kiszolgálófát Object Explorer.

  2. Bontsa ki Adatbázisok, kattintson a jobb gombbal a SQLTestDB, mutasson a Tevékenységek elemre, majd válassza a Biztonsági mentés...lehetőséget.

  3. A Általános oldal Cél szakaszában válassza ki a Lemez lehetőséget a Biztonsági mentés: legördülő listából.

  4. Válassza a és távolítsa el a fájlokat, amíg az összes meglévő biztonsági mentési fájl el nem lett távolítva.

  5. Válassza hozzáadása lehetőséget, és megnyílik a Biztonsági mentési cél kiválasztása párbeszédpanel.

  6. Adjon meg érvényes elérési utat és fájlnevet a Fájlnév szövegmezőbe, és a .bak bővítményként használva egyszerűsítse a fájl besorolását.

  7. Válassza OK, majd a biztonsági mentés elindításához válassza OK lehetőséget.

  8. Ha a biztonsági mentés sikeresen befejeződött, az SQL Server Management Studio párbeszédpanel bezárásához válassza az OK lehetőséget.

Adatbázis helyének módosítása

C. Titkosított biztonsági mentés létrehozása

Ebben a példában a SQLTestDB adatbázis titkosítással kerül mentésre az alapértelmezett biztonsági mentési helyre.

  1. A Microsoft SQL Server adatbázismotor megfelelő példányához való csatlakozás után bontsa ki a kiszolgálófát Object Explorer.

  2. Bontsa ki Adatbázisok, bontsa ki rendszeradatbázisok, kattintson a jobb gombbal a master, majd válassza Új lekérdezés lehetőséget a SQLTestDB adatbázishoz való kapcsolattal rendelkező lekérdezési ablak megnyitásához.

  3. Az alábbi parancsok végrehajtásával hozzon létre egy adatbázis főkulcsát és egy tanúsítványt az master adatbázison belül.

    -- Create the master key
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '23987hxJ#KL95234nl0zBe';  
    
    -- If the master key already exists, open it in the same session that you create the certificate (see next step)
    OPEN MASTER KEY DECRYPTION BY PASSWORD = '23987hxJ#KL95234nl0zBe'
    
    -- Create the certificate encrypted by the master key
    CREATE CERTIFICATE MyCertificate
    WITH SUBJECT = 'Backup Cert', EXPIRY_DATE = '20201031';  
    
  4. Az Object ExplorerAdatbázisok csomópontban kattintson a jobb gombbal a SQLTestDBelemre, mutasson Feladatok, majd válassza a Biztonsági mentés...lehetőséget.

  5. A Médiabeállítások lapon, a Média felülírása szakaszban válassza a Biztonsági mentés új médiakészletre, és törölje az összes meglévő biztonsági mentési készletet.

  6. A titkosítási szakaszban található Biztonsági mentési beállítások lapon jelölje be a Biztonsági mentés titkosítása jelölőnégyzetet.

  7. Az Algoritmus legördülő listában válassza AES 256lehetőséget.

  8. A Tanúsítvány vagy Aszimmetrikus kulcs legördülő listában válassza a MyCertificatelehetőséget.

  9. Válassza OKlehetőséget.

titkosított biztonsági mentési

D. Mentés az Azure Blob tárolóba

A példa létrehozza a SQLTestDB teljes adatbázis-biztonsági mentését az Azure Blob Storage-ba. A példa feltételezi, hogy már rendelkezik egy blobtárolóval rendelkező tárfiókkal. A példa létrehoz egy közös hozzáférésű jogosultságkódot az Ön számára; ez a példa meghiúsul, ha a tároló rendelkezik meglévő közös hozzáférésű jogosultságkóddal.

Ha nem rendelkezik Azure Blob Storage-tárolóval egy tárfiókban, a folytatás előtt hozzon létre egyet. Lásd: Általános célú tárfiók létrehozása és tároló létrehozása .

  1. A Microsoft SQL Server adatbázismotor megfelelő példányához való csatlakozás után bontsa ki a kiszolgálófát Object Explorer.

  2. Bontsa ki Adatbázisok, kattintson a jobb gombbal a SQLTestDB, mutasson a Tevékenységek elemre, majd válassza a Biztonsági mentés...lehetőséget.

  3. A Általános lapon, a Cél szakaszban válassza az Mentés helye: legördülő listából az URL lehetőséget.

  4. Válassza hozzáadása lehetőséget, és megnyílik a Biztonsági mentési cél kiválasztása párbeszédpanel.

  5. Ha korábban regisztrálta az SQL Server Management Studióval használni kívánt Azure Storage-tárolót, válassza ki. Ellenkező esetben válassza az új tároló regisztrálásához Új tároló lehetőséget.

  6. A Csatlakozás Microsoft-előfizetéshez párbeszédpanelen jelentkezzen be a fiókjába.

  7. A Tárfiók kiválasztása legördülő mezőben válassza ki a saját tárfiókját.

  8. A Blobtároló kiválasztása legördülő szövegmezőben válassza ki a blobtárolót.

  9. A megosztott hozzáférési szabályzat lejárati legördülő naptármezőben válassza ki az ebben a példában létrehozott megosztott hozzáférési szabályzat lejárati dátumát.

  10. Válassza Hitelesítő adatok létrehozása lehetőséget, ha közös hozzáférésű jogosultságkódot és hitelesítő adatokat szeretne létrehozni az SQL Server Management Studióban.

  11. Válassza az OK lehetőséget, majd zárja be a "Csatlakozás a Microsoft-előfizetéshez" párbeszédpanelt.

  12. A Biztonsági mentési fájl szövegmezőben módosítsa a biztonsági mentési fájl nevét (nem kötelező).

  13. Válassza az OK lehetőséget a Biztonsági mentési cél kiválasztása párbeszédpanel bezárásához.

  14. Válassza az OK lehetőséget a biztonsági mentés elindításához.

  15. Ha a biztonsági mentés sikeresen befejeződött, az SQL Server Management Studio párbeszédpanel bezárásához válassza az OK lehetőséget.

Jegyzet

Az Azure Blob Storage-ra való biztonsági mentés jelenleg nem támogatott felügyelt identitásokkal.

A Transact-SQL használata

Hozzon létre egy teljes adatbázis-biztonsági mentést a BACKUP DATABASE utasítás végrehajtásával a teljes adatbázis biztonsági mentésének létrehozásához, a következőt megadva:

  • A biztonsági másolatot készíteni kívánt adatbázis neve.
  • Az a biztonsági mentési eszköz, amelyen a teljes adatbázis biztonsági mentése meg van írva.

A teljes adatbázis biztonsági mentésének alapszintű Transact-SQL szintaxisa a következő:

ADATBÁZIS MENTÉSE adatbázis MENTÉSE mentési_eszközre [ ,...n ] [ OPCIÓKKAL mentési_opciókkal [ ,...o ] ] ;

Opció Leírás
adatbázis Az az adatbázis, amelyről biztonsági másolatot szeretne készíteni.
mentés_eszköz [ ,...n ] A biztonsági mentési művelethez használandó 1–64 biztonsági mentési eszköz listáját adja meg. Megadhat egy fizikai biztonsági mentési eszközt, vagy megadhat egy megfelelő logikai biztonsági mentési eszközt, ha már meg van adva. Fizikai biztonsági mentési eszköz megadásához használja a DISK vagy a TAPE lehetőséget:

{ LEMEZ | SZALAG } =fizikai_mentési_eszköz_neve

További információ: Biztonsági mentési eszközök (SQL Server).
WITH with_options [ ,... o ] Egy vagy több beállítás megadására szolgál, o. Az alapszintű lehetőségekről a 2. lépésben tájékozódhat.

Ha szeretné, adjon meg egy vagy több WITH beállításokat. Néhány alapvető - lehetőség itt van ismertetve. A beállítások mindegyikéről a BIZTONSÁGI MENTÉS (Transact-SQL)című témakörben talál információt a részletekkel.

Biztonsági mentési készlet opciókkal:

  • { COMPRESSION | NO_COMPRESSION }: Az SQL Server 2008 (10.0.x) Enterprise és újabb verzióiban csak azt határozza meg, hogy biztonsági mentés tömörítési történik-e ezen a biztonsági mentésen, felülírva a kiszolgálószintű alapértelmezett értéket.
  • TITKOSÍTÁS (ALGORITMUS, KISZOLGÁLÓTANÚSÍTVÁNY | ASZIMMETRIKUS KULCS): Csak AZ SQL Server 2014-ben vagy újabb verzióiban adja meg a használni kívánt titkosítási algoritmust, valamint a titkosítás biztonságossá tételéhez használandó tanúsítványt vagy aszimmetrikus kulcsot.
  • LEÍRÁS= { 'szöveg' | @text_variable }: A biztonsági mentési csoportot leíró szabad formátumú szöveget adja meg. A sztring legfeljebb 255 karakter hosszúságú lehet.
  • NAME = { backup_set_name | @backup_set_name_var }: A biztonsági mentési csoport nevét adja meg. A nevek legfeljebb 128 karakter hosszúságúak lehetnek. Ha a NÉV nincs megadva, az üres.

Alapértelmezés szerint BACKUP hozzáfűzi a biztonsági másolatot egy meglévő médiakészlethez, megőrizve a meglévő biztonsági mentési csoportokat. Ha explicit módon szeretné megadni, használja a NOINIT lehetőséget. A meglévő biztonsági mentési csoportokhoz való hozzáfűzésről további információt médiakészletek, médiacsaládok és biztonságimásolat-készletek (SQL Server)című témakörben talál.

A biztonsági mentési adathordozó formázásához használja a FORMÁTUM beállítást:

FORMAT [ , MEDIANAME = { media_name | @media_name_variable } ] [ , MEDIADESCRIPTION = { szöveg | @text_variable } ]

Használja a FORMAT záradékot, amikor először használ adathordozót, vagy felülírja az összes meglévő adatot. Igény szerint rendeljen hozzá egy médianevet és leírást az új adathordozóhoz.

Fontos

A utasítás BACKUP záradékának használatakor különösen óvatosan kell eljárni, mert ez megsemmisíti a biztonsági mentési adathordozón korábban tárolt biztonsági másolatokat.

Példák

Az alábbi példákhoz hozzon létre egy tesztadatbázist a következő Transact-SQL kóddal:

USE [master]
GO

CREATE DATABASE [SQLTestDB]
GO

USE [SQLTestDB]
GO
CREATE TABLE SQLTest (
   ID INT NOT NULL PRIMARY KEY,
   c1 VARCHAR(100) NOT NULL,
   dt1 DATETIME NOT NULL DEFAULT GETDATE()
)
GO

USE [SQLTestDB]
GO

INSERT INTO SQLTest (ID, c1) VALUES (1, 'test1')
INSERT INTO SQLTest (ID, c1) VALUES (2, 'test2')
INSERT INTO SQLTest (ID, c1) VALUES (3, 'test3')
INSERT INTO SQLTest (ID, c1) VALUES (4, 'test4')
INSERT INTO SQLTest (ID, c1) VALUES (5, 'test5')
GO

SELECT * FROM SQLTest
GO

Egy. Biztonsági mentés lemezeszközre

Az alábbi példa biztonsági másolatot készít a teljes SQLTestDB adatbázisról a lemezre, FORMAT használatával új médiakészletet hoz létre.

USE SQLTestDB;
GO
BACKUP DATABASE SQLTestDB
TO DISK = 'c:\tmp\SQLTestDB.bak'
   WITH FORMAT,
      MEDIANAME = 'SQLServerBackups',
      NAME = 'Full Backup of SQLTestDB';
GO

B. Biztonsági mentés egy szalagos eszközre

Az alábbi példa biztonsági másolatot készít a teljes SQLTestDB adatbázisról szalagra, és hozzáfűzi a biztonsági másolatot az előző biztonsági másolatokhoz.

USE SQLTestDB;
GO
BACKUP DATABASE SQLTestDB
   TO TAPE = '\\.\Tape0'
   WITH NOINIT,
      NAME = 'Full Backup of SQLTestDB';
GO

C. Biztonsági mentés készítése logikai szalagos eszközre

Az alábbi példa létrehoz egy logikai biztonsági mentési eszközt egy szalagos meghajtóhoz. A példa ezután biztonsági másolatot készít a teljes SQLTestDB-adatbázisról az adott eszközre.

-- Create a logical backup device,
-- SQLTestDB_Bak_Tape, for tape device \\.\tape0.
USE master;
GO
EXEC sp_addumpdevice 'tape', 'SQLTestDB_Bak_Tape', '\\.\tape0'; USE SQLTestDB;
GO
BACKUP DATABASE SQLTestDB
   TO SQLTestDB_Bak_Tape
   WITH FORMAT,
      MEDIANAME = 'SQLTestDB_Bak_Tape',
      MEDIADESCRIPTION = '\\.\tape0',
      NAME = 'Full Backup of SQLTestDB';
GO

A PowerShell használata

Használja a Backup-SqlDatabase parancsmagot. A teljes adatbázis biztonsági mentésének explicit jelzéséhez adja meg a -BackupAction paramétert az alapértelmezett értékével, Adatbázis. Ez a paraméter nem kötelező a teljes adatbázis biztonsági mentéséhez.

Jegyzet

Ezekhez a példákhoz az SqlServer modul szükséges. Annak megállapításához, hogy telepítve van-e, futtassa a Get-Module -Name SqlServer. A telepítéshez futtassa a Install-Module -Name SqlServer a PowerShell rendszergazdai munkamenetében.

További információ: SQL Server PowerShell-szolgáltató.

Fontos

Ha egy PowerShell-ablakot nyit meg az SQL Server Management Studióban az SQL Server telepítéséhez való csatlakozáshoz, kihagyhatja a hitelesítő adatokat, mivel az SSMS-ben a hitelesítő adatok automatikusan a PowerShell és az SQL Server-példány közötti kapcsolat létrehozásához lesznek használva.

Példák

Egy. Teljes biztonsági mentés (helyi)

Az alábbi példa a <myDatabase> adatbázis teljes adatbázis-biztonsági mentését hozza létre a kiszolgálópéldány alapértelmezett biztonsági mentési helyére Computer\Instance. Opcionálisan ez a példa megadja a -BackupAction Database.

A szintaxis teljes példáiért lásd Backup-SqlDatabase.

$credential = Get-Credential

Backup-SqlDatabase -ServerInstance Computer[\Instance] -Database <myDatabase> -BackupAction Database -Credential $credential

B. Teljes biztonsági mentés az Azure-ba

Az alábbi példa létrehoz egy teljes biztonsági másolatot az adatbázis <myDatabase> az <myServer>-példányról az Azure Blob Storage-ba. Egy tárolt hozzáférési szabályzat lett létrehozva olvasási, írási és listázási jogosultságokkal. Az SQL Server hitelesítő adatai (https://<myStorageAccount>.blob.core.windows.net/<myContainer>) a tárolt hozzáférési szabályzathoz társított közös hozzáférésű jogosultságkód használatával jöttek létre. A PowerShell-parancs a BackupFile paramétert használja a hely (URL) és a biztonsági mentési fájl nevének megadásához.

$credential = Get-Credential
$container = 'https://<myStorageAccount>blob.core.windows.net/<myContainer>'
$fileName = '<myDatabase>.bak'
$server = '<myServer>'
$database = '<myDatabase>'
$backupFile = $container + '/' + $fileName

Backup-SqlDatabase -ServerInstance $server -Database $database -BackupFile $backupFile -Credential $credential

Kapcsolódó tevékenységek