Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik: SQL Server 2022 (16.x)
Ez a cikk bemutatja azokat a fogalmakat, követelményeket és összetevőket, amelyek az S3-kompatibilis objektumtárolás biztonsági mentési célként való használatához szükségesek. A biztonsági mentési és visszaállítási funkció elméletileg hasonló az SQL Server azure Blob Storage URL-címére történő biztonsági mentéséhez , mint biztonsági mentési eszköztípushoz.
A támogatott platformokról további információt S3-kompatibilis objektumtárolásiszolgáltatóinál talál.
Áttekintés
Az SQL Server 2022 (16.x) az adatplatform objektumtárolási integrációját mutatja be, így az Azure Storage mellett az SQL Server S3-kompatibilis objektumtárolóval is integrálható. Az integráció biztosításához az SQL Server támogatja az S3-összekötőt, amely az S3 REST API használatával csatlakozik az S3-kompatibilis objektumtároló bármely szolgáltatóhoz. Az SQL Server 2022 (16.x) kibővíti a meglévő BACKUP/RESTORE TO/FROM URL-szintaxist, és támogatja az új S3-összekötőt a REST API használatával.
Az S3-kompatibilis erőforrásokra mutató URL-címeket az s3:// előtaggal látják el, hogy jelezzék, az S3-összekötőt használják. Az URL-címek, amelyek s3://-vel kezdődnek, mindig azt feltételezik, hogy az alapul szolgáló protokoll https.
Cikkszámok és fájlméret korlátozásai
Az adatok tárolásához az S3-kompatibilis objektumtároló szolgáltatónak több blokkban, úgynevezett részekben kell felosztania a fájlokat, hasonlóan az Azure Blob Storage blokkblobjaihoz .
Minden fájl 10 000 részre osztható fel, az egyes részek mérete 5 MB és 20 MB között mozog, ezt a tartományt a T-SQL BACKUP parancs vezérli a MAXTRANSFERSIZE paraméteren keresztül. Az alapértelmezett érték MAXTRANSFERSIZE 10 MB, ezért az egyes részek alapértelmezett mérete 10 MB. Bár ez az érték a maximális átviteli méretet adja meg, nem garantálja, hogy minden elküldött rész 10 MB. A rész méretét az adatok szomszédossága befolyásolja. Ha például 4 MB adat található 2 MB adat mellett, akkor a rendszer 6 MB-ot küld az 5 MB-os minimális méretrész elérése után. Másik lehetőségként, ha 12 MB szomszédos dat van, a rendszer a maximális méretig (10 MB) küld adatokat, a fennmaradó 2 MB pedig a következő részben lesz elküldve. Az S3-összekötő mindig a lehető legnagyobb adatméretet próbálja elküldeni, de soha nem haladja meg az MAXTRANSFERSIZE értéket.
Egyetlen fájl maximális támogatott mérete 10 000 rész * MAXTRANSFERSIZEeredménye, ha nagyobb fájl biztonsági mentéséhez van szükség, akkor legfeljebb 64 URL-címet kell felosztania vagy csíkosítania. A fájlok végső maximális támogatott mérete 10 000 rész * * MAXTRANSFERSIZE URL-cím.
Megjegyzés:
Az értékek módosításához MAXTRANSFERSIZE a TÖMÖRÍTÉS használata szükséges.
Az S3-végpont előfeltételei
Az S3-végpontot a következőképpen kell konfigurálni:
- A TLS-t konfigurálni kell. Feltételezzük, hogy az összes kapcsolat biztonságosan lesz továbbítva HTTPS-en keresztül, nem HTTP-en keresztül. A végpontot az SQL Server operációsrendszer-gazdagépre telepített tanúsítvány ellenőrzi.
- Az S3-kompatibilis objektumtárolóban létrehozott hitelesítő adatok a művelet végrehajtásához szükséges megfelelő engedélyekkel. A tárrétegen létrehozott felhasználó és jelszó neve a
Access Key IDés aSecret Key ID. Mindkét félnek hitelesítenie kell magát az S3-végponton. - Legalább egy tároló vödör konfigurálva van. A tárhelyek nem hozhatók létre vagy konfigurálhatók az SQL Server 2022 környezetében (16.x).
Biztonság
Biztonsági mentési engedélyek
Az SQL Server S3-kompatibilis objektumtárolóhoz való csatlakoztatásához két engedélykészletet kell létrehozni, egyet az SQL Serveren és a tárolási rétegen.
Az SQL Serveren a biztonsági mentési vagy VISSZAÁLLÍTÁSi parancsok kiadásához használt felhasználói fióknak db_backupoperator adatbázis-szerepkörben kell lennie , és módosítania kell a hitelesítő adatokra vonatkozó engedélyeket.
A tárolási rétegen:
- Az AWS S3-ban hozzon létre egy egyéni szerepkört, és konkrétan adja meg, hogy melyik S3 API igényel hozzáférést. A biztonsági mentéshez és a visszaállításhoz a következő engedélyek szükségesek: ListBucket (Tallózás), PutObject (Írás – biztonsági mentéshez).
- Más S3-kompatibilis tárolókban a felhasználónak (
Access Key ID) ListBucket és WriteOnly engedélyekkel is rendelkeznie kell.
Engedélyek visszaállítása
Ha a visszaállított adatbázis nem létezik, a felhasználónak rendelkeznie CREATE DATABASE kell engedéllyel a VISSZAÁLLÍTÁS végrehajtásához. Ha az adatbázis létezik, a RESTORE engedélyek alapértelmezés szerint az adatbázis és a sysadmindbcreator rögzített kiszolgálói szerepkörök tagjai, valamint az adatbázis tulajdonosa (dbo) számára lesznek alapértelmezettek.
A VISSZAÁLLÍTÁSi engedélyek olyan szerepkörökhöz lesznek adva, 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 történik meg a VISSZAÁLLÍTÁS végrehajtásakor, a db_owner rögzített adatbázis-szerepkör tagjai nem rendelkeznek VISSZAÁLLÍTÁSi engedélyekkel.
A tárolási rétegen:
- Az AWS S3-ban hozzon létre egy egyéni szerepkört, és konkrétan adja meg, hogy melyik S3 API igényel hozzáférést. A biztonsági mentéshez és a visszaállításhoz a következő engedélyek szükségesek: ListBucket (Tallózás), GetObject (Olvasás – visszaállításhoz).
- Más S3-kompatibilis tárolókban a felhasználónak (
Access Key ID) a ListBucket és a ReadOnly engedélyekkel is rendelkeznie kell.
Támogatott funkciók
A BACKUP és RESTORE támogatott funkcióinak magas szintű áttekintése:
- Egyetlen biztonsági mentési fájl URL-címenként legfeljebb 200 000 MiB lehet (20 MB-ra
MAXTRANSFERSIZEvan állítva). - A biztonsági másolatok eloszthatók legfeljebb 64 URL-címre.
- A tükrözés támogatott, de csak az URL-címek között. Az URL-cím és a DISK használatával történő tükrözés nem támogatott.
- A tömörítés támogatott és ajánlott.
- A titkosítás támogatott.
- Az URL-címről az S3-kompatibilis objektumtárolóval való visszaállításnak nincs méretkorlátozása.
- Adatbázis visszaállításakor a
MAXTRANSFERSIZEbiztonsági mentési fázis során hozzárendelt érték határozza meg. - Az URL-címek megadhatóak virtuális gazdagép- vagy elérésiút-stílus formátumban is.
-
WITH CREDENTIALtámogatott. -
REGIONtámogatott, az alapértelmezett érték pedig aus-east-1. -
MAXTRANSFERSIZE5 MB és 20 MB közötti tartományba esik. Az S3-összekötő alapértelmezett értéke 10 MB.
A biztonsági mentés támogatott argumentumai
WITH beállítások |
S3 végpont | Jegyzetek |
|---|---|---|
BLOCKSIZE |
Igen |
MAXTRANSFERSIZE határozza meg az alkatrész méretét. |
BUFFERCOUNT |
Igen | |
COMPRESSION |
Igen | |
COPY_ONLY |
Igen | |
CREDENTIAL |
Igen | |
DESCRIPTION |
Igen | |
DIFFERENTIAL |
Igen | |
ENCRYPTION |
Igen | |
FILE_SNAPSHOT |
Nem | |
MAXTRANSFERSIZE |
Igen | Az érték 5 MB (5 242 880 bájt) és 20 MB (20 971 520 bájt) között lehet; az alapértelmezett 10 MB (10 485 760 bájt). |
MEDIADESCRIPTION |
Igen | |
MEDIANAME |
Igen | |
MIRROR TO |
Igen | Csak egy másik URL-címmel működik, MIRROR és URLDISK nem támogatott. |
NAME |
Igen | |
NOFORMAT / FORMAT |
Igen | |
NOINIT / INIT |
Nem | A hozzáfűzés nem támogatott. A biztonsági mentés felülírásához használja WITH FORMAT. |
NO_CHECKSUM / CHECKSUM |
Igen | |
NO_TRUNCATE |
Igen | |
REGION |
Igen | Az alapértelmezett érték a us-east-1. Ezt BACKUP_OPTIONS-el kell használni. |
STATS |
Igen |
A visszaállítás támogatott argumentumai
WITH beállítások |
S3 végpont | Jegyzetek |
|---|---|---|
BLOCKSIZE |
Igen |
MAXTRANSFERSIZE határozza meg az alkatrész méretét. |
BUFFERCOUNT |
Nem | |
CHECKSUM / NO_CHECKSUM |
Igen | |
CREDENTIAL |
Igen | |
ENABLE_BROKER / ERROR_BROKER_CONVERSATIONS / NEW_BROKER |
Igen | |
FILE |
Nem | A logikai nevek nem támogatottak RESTORE FROM URL. |
FILESTREAM |
Igen | |
KEEP_CDC |
Igen | |
KEEP_REPLICATION |
Igen | |
LOADHISTORY |
Igen | |
MAXTRANSFERSIZE |
Nem | |
MEDIANAME |
Igen | |
MEDIAPASSWORD |
Nem | Az SQL Server 2012 előtti verziókban készített biztonsági másolatokhoz szükséges. |
MOVE |
Igen | |
PARTIAL |
Igen | |
PASSWORD |
Nem | Az SQL Server 2012 előtti verziókban készített biztonsági másolatokhoz szükséges. |
RECOVERY / NORECOVERY / STANDBY |
Igen | |
REGION |
Igen | Az alapértelmezett érték a us-east-1. Ezt RESTORE_OPTIONS-el kell használni. |
REPLACE |
Igen | |
RESTART |
Igen | |
RESTRICTED_USER |
Igen | |
REWIND / NOREWIND |
Nem | |
STATS |
Igen | |
STOP_ON_ERROR / CONTINUE_AFTER_ERROR |
Igen | |
STOPAT / STOPATMARK / STOPBEFOREMARK |
Igen | |
UNLOAD / NOUNLOAD |
Nem |
Régió
Az S3-kompatibilis objektumtároló-szolgáltató képes meghatározni a gyűjtő helyének egy adott régióját. Ennek az opcionális paraméternek a használata nagyobb rugalmasságot biztosíthat, ha megadja, hogy az adott gyűjtő melyik régióhoz tartozik. Ehhez a paraméterhez a WITH-t együtt kell használni BACKUP_OPTIONS-gyel vagy RESTORE_OPTIONS-vel. Ezekhez a beállításokhoz JSON formátumban kell deklarálni az értéket. Ez lehetővé teszi azokat a forgatókönyveket, amelyekben egy S3-kompatibilis tárolószolgáltató ugyanazt az univerzális URL-címet használhatja, de több régióban is elosztható. Ebben az esetben a biztonsági mentési vagy visszaállítási parancspont a megadott régiókra mutat anélkül, hogy módosítania kellene az URL-címet.
Ha nincs deklarált érték, us-east-1 a program alapértelmezés szerint hozzárendeli.
Példa biztonsági mentésre:
WITH BACKUP_OPTIONS = '{"s3": {"region":"us-west-1"}}'
Visszaállítási példa:
WITH RESTORE_OPTIONS = '{"s3": {"region":"us-west-1"}}'
Linux-támogatás
Az SQL Server a WinHttp használja az általa használt HTTP REST API-k kliensének megvalósításához. Az operációsrendszer-tanúsítványtárolóra támaszkodik a végpont által http(s) bemutatott TLS-tanúsítványok érvényesítéséhez. A Linuxon futó SQL Serveren azonban a hitelesítésszolgáltatót egy előre meghatározott helyre kell helyezni, ahol létre kell hozni /var/opt/mssql/security/ca-certificates, csak az első 50 tanúsítvány tárolható és támogatott ebben a mappában. A hitelesítésszolgáltatónak a helyén kell lennie az SQL Server-folyamat elindítása előtt.
Az SQL Server az indítás során beolvassa a tanúsítványokat a mappából, és hozzáadja őket a megbízhatósági tárolóhoz.
Csak a rendszergazda írhat a mappába, míg a mssql felhasználó tudnia kell olvasni.
Nem támogatott funkciók
- A nem biztonságos
httpURL-címmel rendelkező S3-kompatibilis objektumtárolók biztonsági mentése nem támogatott. Az ügyfelek az S3-gazdagép url-címmelhttpsvaló beállításáért felelősek, és ezt a végpontot az SQL Server operációsrendszer-gazdagépre telepített tanúsítvány érvényesíti. - Az S3-kompatibilis objektumtárolók biztonsági mentése nem támogatott az SQL Server Express és az SQL Server Express Speciális szolgáltatások kiadásával.
Korlátozások
Az S3-kompatibilis objektumtárolóval történő biztonsági mentés és visszaállítás jelenlegi korlátozásai a következők:
- Az S3 Standard REST API jelenlegi korlátozása miatt az ügyfél S3-kompatibilis objektumtárolójában (folyamatban lévő többrészes feltöltési művelet miatt) létrehozott ideiglenes, nem véglegesített adatfájlok biztonsági mentési hibák esetén nem lesznek eltávolítva. Ezek a nem véglegesített adatblokkok továbbra is megmaradnak az S3-kompatibilis objektumtárolóban abban az esetben, ha a BACKUP T-SQL parancs meghiúsul vagy megszakad. Ha a biztonsági mentés sikeres, az objektumtároló automatikusan eltávolítja ezeket az ideiglenes fájlokat a végső biztonsági mentési fájl létrehozásához. Egyes S3-kompatibilis tárolószolgáltatók ideiglenes fájlokat kezelnek a szemétgyűjtő rendszerükön keresztül.
- A teljes URL-cím hossza legfeljebb 259 karakter lehet. Ebben a korlátozásban a teljes karakterlánc szerepel, beleértve az
s3://összekötő nevét is. A használható korlát tehát 254 karakter. Javasoljuk azonban, hogy a lekérdezési paraméterek lehetséges bevezetése érdekében tartsa be a 200 karakteres korlátot. - Az SQL-hitelesítő adatok neve 128 karakterből áll UTF-16 formátumban.
- A titkos kulcs azonosítója nem lehet
:karakter.
Útvonalstílus és virtuális host stílus
Az S3-ra való biztonsági mentés támogatja, hogy az URL-címek az elérési út stílusában vagy a virtuális gazdagép stílusában íródjanak.
Példa elérésiút-stílusra: s3://<endpoint>:<port>/<bucket>/<backup_file_name>
Példa virtuális gazdagépre: s3://<bucket>.<domain>/<backup_file_name>
Példák
Hitelesítő adatok létrehozása
- A hitelesítő adatok nevének meg kell adnia a tárolási útvonalat, és ehhez a tárolási platformtól függően több szabvány is létezik.
- Az IDENTITÁSnak mindig az S3-összekötő használatakor kell lennie
'S3 Access Key'. - A hozzáférési kulcs azonosítója és a titkos kulcs azonosítója nem tartalmazhat kettőspontot. A hozzáférési kulcs azonosítója és titkos kulcs azonosítója az S3-kompatibilis objektumtárolóban létrehozott felhasználó és jelszó.
- Csak alfanumerikus értékek engedélyezettek.
- A hozzáférési kulcs azonosítójának megfelelő engedélyekkel kell rendelkeznie az S3-kompatibilis objektumtárolóhoz.
A CREATE CREDENTIAL használatával kiszolgálószintű hitelesítő adatokat hozhat létre az S3-kompatibilis objektumtároló végponttal való hitelesítéshez.
USE [master];
CREATE CREDENTIAL [s3://<endpoint>:<port>/<bucket>]
WITH
IDENTITY = 'S3 Access Key',
SECRET = '<AccessKeyID>:<SecretKeyID>';
GO
BACKUP DATABASE [SQLTestDB]
TO URL = 's3://<endpoint>:<port>/<bucket>/SQLTestDB.bak'
WITH FORMAT /* overwrite any existing backup sets */
, STATS = 10
, COMPRESSION;
Az AWS S3 azonban két különböző URL-szabványt támogat.
-
S3://<BUCKET_NAME>.S3.<REGION>.AMAZONAWS.COM/<FOLDER>(alapértelmezett) S3://S3.<REGION>.AMAZONAWS.COM/<BUCKET_NAME>/<FOLDER>
Az AWS S3 hitelesítő adatainak sikeres létrehozásához több módszer is elérhető.
-- S3 bucket name: datavirtualizationsample
-- S3 bucket region: us-west-2
-- S3 bucket folder: backup
CREATE CREDENTIAL [s3://datavirtualizationsample.s3.us-west-2.amazonaws.com/backup]
WITH
IDENTITY = 'S3 Access Key'
, SECRET = 'accesskey:secretkey';
GO
BACKUP DATABASE [AdventureWorks2022]
TO URL = 's3://datavirtualizationsample.s3.us-west-2.amazonaws.com/backup/AdventureWorks2022.bak'
WITH COMPRESSION, FORMAT, MAXTRANSFERSIZE = 20971520;
GO
Vagy
CREATE CREDENTIAL [s3://s3.us-west-2.amazonaws.com/datavirtualizationsample/backup]
WITH
IDENTITY = 'S3 Access Key'
, SECRET = 'accesskey:secretkey';
GO
BACKUP DATABASE [AdventureWorks2022]
TO URL = 's3://s3.us-west-2.amazonaws.com/datavirtualizationsample/backup/AdventureWorks2022.bak'
WITH COMPRESSION, FORMAT, MAXTRANSFERSIZE = 20971520;
GO
Biztonsági mentés az URL-címre
Az alábbi példa teljes adatbázis-biztonsági mentést hajt végre az objektumtár végpontja felé, több fájlra kiterjedően:
BACKUP DATABASE <db_name>
TO URL = 's3://<endpoint>:<port>/<bucket>/<database>_01.bak'
, URL = 's3://<endpoint>:<port>/<bucket>/<database>_02.bak'
, URL = 's3://<endpoint>:<port>/<bucket>/<database>_03.bak'
--
, URL = 's3://<endpoint>:<port>/<bucket>/<database>_64.bak'
WITH FORMAT -- overwrite
, STATS = 10
, COMPRESSION;
Visszaállítás URL-címről
Az alábbi példa egy adatbázis-visszaállítást hajt végre az objektumtároló végpontjának helyére:
RESTORE DATABASE <db_name>
FROM URL = 's3://<endpoint>:<port>/<bucket>/<database>_01.bak'
, URL = 's3://<endpoint>:<port>/<bucket>/<database>_02.bak'
, URL = 's3://<endpoint>:<port>/<bucket>/<database>_03.bak'
--
, URL = 's3://<endpoint>:<port>/<bucket>/<database>_64.bak'
WITH REPLACE -- overwrite
, STATS = 10;
Titkosítási és tömörítési lehetőségek
Az alábbi példa bemutatja, hogyan lehet biztonsági másolatot készíteni és visszaállítani az AdventureWorks2025 adatbázist 20 MB-os titkosítással MAXTRANSFERSIZE és tömörítéssel:
CREATE MASTER KEY ENCRYPTION BY PASSWORD = <password>;
GO
CREATE CERTIFICATE AdventureWorks2022Cert
WITH SUBJECT = 'AdventureWorks2022 Backup Certificate';
GO
-- Backup database
BACKUP DATABASE AdventureWorks2022
TO URL = 's3://<endpoint>:<port>/<bucket>/AdventureWorks2022_Encrypt.bak'
WITH FORMAT, MAXTRANSFERSIZE = 20971520, COMPRESSION,
ENCRYPTION (ALGORITHM = AES_256, SERVER CERTIFICATE = AdventureWorks2022Cert)
GO
-- Restore database
RESTORE DATABASE AdventureWorks2022
FROM URL = 's3://<endpoint>:<port>/<bucket>/AdventureWorks2022_Encrypt.bak'
WITH REPLACE
Régió használata biztonsági mentéshez és visszaállításhoz
Az alábbi példa bemutatja, hogyan lehet a AdventureWorks2025 adatbázist a REGION_OPTIONS használatával biztonsági másolatot készíteni és visszaállítani.
A régiót az egyes BACKUP / RESTORE parancsok között paraméterezheti. Jegyezze fel az S3-specifikus régió sztringjét a következőképpen: BACKUP_OPTIONS és RESTORE_OPTIONS, például '{"s3": {"region":"us-west-2"}}'. Az alapértelmezett régió az us-east-1. Egy egyszerű példa:
-- Backup Database
BACKUP DATABASE AdventureWorks2022
TO URL = 's3://<endpoint>:<port>/<bucket>/AdventureWorks2022.bak'
WITH BACKUP_OPTIONS = '{"s3": {"region":"us-west-2"}}'
-- Restore Database
RESTORE DATABASE AdventureWorks2022
FROM URL = 's3://<endpoint>:<port>/<bucket>/AdventureWorks2022.bak'
WITH
MOVE 'AdventureWorks2022'
TO 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA\AdventureWorks2022.mdf'
, MOVE 'AdventureWorks2022_log'
TO 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA\AdventureWorks2022.ldf'
, RESTORE_OPTIONS = '{"s3": {"region":"us-west-2"}}'
Például:
-- S3 bucket name: datavirtualizationsample
-- S3 bucket region: us-west-2
-- S3 bucket folder: backup
CREATE CREDENTIAL [s3://datavirtualizationsample.s3.amazonaws.com/backup]
WITH
IDENTITY = 'S3 Access Key'
, SECRET = 'accesskey:secretkey';
GO
BACKUP DATABASE [AdventureWorks2022]
TO URL = 's3://datavirtualizationsample.s3.amazonaws.com/backup/AdventureWorks2022.bak'
WITH
BACKUP_OPTIONS = '{"s3": {"region":"us-west-2"}}' -- REGION AS PARAMETER)
, COMPRESSION, FORMAT, MAXTRANSFERSIZE = 20971520;
GO
RESTORE DATABASE AdventureWorks2022_1
FROM URL = 's3://datavirtualizationsample.s3.amazonaws.com/backup/AdventureWorks2022.bak'
WITH
MOVE 'AdventureWorks2022'
TO 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA\AdventureWorks2022_1.mdf'
, MOVE 'AdventureWorks2022_log'
TO 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA\AdventureWorks2022_1.ldf'
, STATS = 10, RECOVERY
, REPLACE, RESTORE_OPTIONS = '{"s3": {"region":"us-west-2"}}'; -- REGION AS PARAMETER)
GO
Kapcsolódó tartalom
- SQL Server biztonsági mentése URL-címre az S3-kompatibilis objektumtárolás legjobb gyakorlatai és hibaelhárítása
- SQL Server biztonsági mentése URL-re a Microsoft Azure Blob Storage legjobb gyakorlataihoz és hibaelhárítási útmutató
- CREATE CERTIFICATE (Transact-SQL)
- SQL Server biztonsági mentése a Microsoft Azure Blob Storage URL-címére