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
Azure SQL Felügyelt példány
Ez a cikk ajánlott eljárásokat és hibaelhárítási tippeket tartalmaz az SQL Server Microsoft Azure Blob Storage-ba történő biztonsági mentéséhez és visszaállításához.
További információ az Azure Blob Storage SQL Server biztonsági mentési vagy visszaállítási műveleteinek használatáról:
SQL Server biztonsági mentés és visszaállítás a Microsoft Azure Blob Storage használatával
oktatóanyag: AZ SQL Server biztonsági mentése és visszaállítása az Azure Blob Storage-ba
Biztonsági másolatok kezelése
Az alábbi lista általános javaslatokat tartalmaz a biztonsági mentések kezelésére:
Minden biztonsági mentés egyedi fájlnevét javasoljuk, hogy megakadályozza a blobok véletlen felülírását.
Tároló létrehozásakor a hozzáférési szintet úgy kell beállítania, hogy privát, így csak azok a felhasználók vagy fiókok tudják olvasni vagy írni a blobokat a tárolóban, amelyek meg tudják adni a szükséges hitelesítési adatokat.
Az Azure-beli virtuális gépen futó SQL Server-példányon futó SQL Server-adatbázisok esetében a virtuális géppel azonos régióban lévő tárfiók használatával elkerülheti a régiók közötti adatátvitel költségeit. Ugyanannak a régiónak a használata biztosítja a biztonsági mentési és visszaállítási műveletek optimális teljesítményét is.
A sikertelen biztonsági mentési tevékenység érvénytelen biztonsági mentési fájlt eredményezhet. Javasoljuk a sikertelen biztonsági mentések rendszeres azonosítását és a blobfájlok törlését. További információért lásd: Aktív bérletekkel rendelkező biztonsági mentési blobfájlok törlése.
A biztonsági mentés során a
WITH COMPRESSIONlehetőség használatával minimalizálhatja a tárolási költségeket és a tárolási tranzakciók költségeit. Csökkentheti a biztonsági mentési folyamat befejezéséhez szükséges időt is.Állítsa be a
MAXTRANSFERSIZEésBLOCKSIZEargumentumokat úgy, ahogy az az SQL Server biztonsági mentéséhez ajánlott az URL--ra.Az SQL Server a használt tárolási redundancia típusától függően agnosztikus. A lapblobok és blokkblobok biztonsági mentése minden tárolási redundancia esetében támogatott (LRS/ZRS/GRS/RA-GRS/RA-GZRS stb.).
Nagyméretű fájlok kezelése
Az SQL Server biztonsági mentési művelete több szálat használ az Azure Blob Storage-ba irányuló adatátvitel optimalizálásához. A teljesítmény azonban különböző tényezőktől függ, például az ISV sávszélességétől és az adatbázis méretétől. Ha nagy méretű adatbázisokról vagy fájlcsoportokról szeretne biztonsági másolatot készíteni egy helyszíni SQL Server-adatbázisról, először végezze el az átviteli sebesség tesztelését. Az Azure Storage-ra vonatkozó SLA maximális feldolgozási időket tartalmaz a blobok esetében, amelyeket figyelembe vehet.
A WITH COMPRESSION szakaszban javasolt beállítás használata fontos a nagyméretű fájlok biztonsági mentésekor.
Az URL-címről történő biztonsági mentés vagy visszaállítás hibaelhárítása
Az alábbiakban bemutatunk néhány gyors módszert a hibák elhárítására az Azure Blob Storage-ra való biztonsági mentés vagy visszaállítás során.
A támogatott beállítások és korlátozások miatti hibák elkerülése érdekében tekintse át a korlátozások és a BACKUP és RESTORE parancsok támogatási információinak listáját a SQL Server Biztonsági mentés és visszaállítás a Microsoft Azure Blob Storagecímű cikkben.
Az inicializálás nem sikerült
Az ugyanarra a blobra történő párhuzamos biztonsági mentések miatt az egyik biztonsági mentés meghiúsul egy Inicializálás sikertelen volt hiba miatt.
Az SQL Server 2016 (13.x) és újabb verzióiban a blokkblob használata ajánlott az URL-címre történő biztonsági mentéshez.
Ha
BACKUP TO URLegyütt lapblobokat használ, a 3051-es nyomkövetési jelzővel be lehet kapcsolni a naplózást egy adott hibanaplóba a következő formátummal:BackupToUrl-\<instname>-\<dbname>-action-\<PID>.log, ahol a\<action>az alábbi lehetőségek egyike:DBFILELISTONLYLABELONLYHEADERONLYVERIFYONLY
Az információkat a Windows Eseménynapló áttekintésével is megtalálhatja, alkalmazásnaplókSQLBackupToUrlnéven.
A kérés nem hajtható végre I/O-eszközhiba miatt.
Nagy adatbázisok biztonsági mentésekor fontolja meg a COMPRESSION, a MAXTRANSFERSIZE, a BLOCKSIZEés a több URL-argumentum használatát. Lásd: VLDB biztonsági mentése az Azure Blob Storage.
A hiba:
Msg 3202, Level 16, State 1, Line 1
Write on "https://mystorage.blob.core.windows.net/mycontainer/TestDbBackupSetNumber2_0.bak" failed:
1117(The request could not be performed because of an I/O device error.)
Msg 3013, Level 16, State 1, Line 1
BACKUP DATABASE is terminating abnormally.
Példafeloldás:
BACKUP DATABASE TestDb
TO URL = 'https://mystorage.blob.core.windows.net/mycontainer/TestDbBackupSetNumber2_0.bak',
URL = 'https://mystorage.blob.core.windows.net/mycontainer/TestDbBackupSetNumber2_1.bak',
URL = 'https://mystorage.blob.core.windows.net/mycontainer/TestDbBackupSetNumber2_2.bak'
WITH COMPRESSION, MAXTRANSFERSIZE = 4194304, BLOCKSIZE = 65536;
Az eszköz üzenetfájl-jelzése nincs igazítva
Tömörített biztonsági másolatból való visszaállításkor a következő hiba jelenhet meg:
SqlException 3284 occurred. Severity: 16 State: 5
Message Filemark on device 'https://mystorage.blob.core.windows.net/mycontainer/TestDbBackupSetNumber2_0.bak' is not aligned.
Reissue the Restore statement with the same block size used to create the backupset: '65536' looks like a possible value.
A hiba megoldásához adja meg újra a RESTORE utasítást BLOCKSIZE = 65536 megadva.
A sikertelen biztonsági mentési tevékenység aktív bérleti szerződéssel rendelkező blobokat eredményezhet.
Hiba a biztonsági mentés során az aktív bérletet tartalmazó blobok miatt: Failed backup activity can result in blobs with active leases.
Ha a biztonsági mentési utasítás újra van etetve, a biztonsági mentési művelet meghiúsulhat az alábbi kimenethez hasonló hibával:
Backup to URL received an exception from the remote endpoint. Exception Message:
The remote server returned an error: (412) There is currently a lease on the blob and no lease ID was specified in the request.
Ha egy aktív bérlettel rendelkező biztonsági mentési blobfájlon próbál visszaállítási utasítást végrehajtani, a visszaállítási művelet az alábbihoz hasonló hibával meghiúsul:
Exception Message: The remote server returned an error: (409) Conflict..
Ilyen hiba esetén a blobfájlokat törölni kell. Erről a forgatókönyvről és a probléma megoldásáról további információt a "Biztonsági másolat blobfájlok törlése aktív zárolásokkal"című témakörben talál.
50-ös operációsrendszer-hiba: A kérés nem támogatott
Adatbázis biztonsági mentésekor a következő okokból Operating system error 50(The request is not supported) hiba jelenhet meg:
- A megadott tárfiók nem általános célú V1/V2.
- Az SAS-jogkivonatnak a
?szimbóluma volt az elején, amikor a hitelesítő adatokat létrehozták. Ha igen, távolítsa el. - Az aktuális kapcsolat nem tud csatlakozni a tárfiókhoz az aktuális gépről a Storage Explorer vagy az SQL Server Management Studio (SSMS) használatával.
- Az SAS-jogkivonathoz rendelt szabályzat lejárt. Hozzon létre egy új szabályzatot az Azure Storage Explorerrel, és hozzon létre egy új SAS-jogkivonatot a szabályzat használatával, vagy módosítsa a hitelesítő adatokat, és próbálkozzon újra a biztonsági mentéssel.
- A gyökértanúsítvány hiányzik a Megbízható Gyökértanúsítványok tárolóból. További információért lásd: Azure főtanúsítvány-szolgáltatói.
Hitelesítési hibák
A WITH CREDENTIAL egy új lehetőség, amely az Azure Blob Storage biztonsági mentéséhez vagy visszaállításához szükséges.
A hitelesítő adatokkal kapcsolatos hibák a következők lehetnek: The credential specified in the **BACKUP** or **RESTORE** command does not exist.
A probléma elkerülése érdekében T-SQL-utasításokkal létrehozhatja a hitelesítő adatokat, ha az nem szerepel a biztonsági mentési utasításban. Az alábbi példa használható:
IF NOT EXISTS (
SELECT *
FROM sys.credentials
WHERE credential_identity = 'mycredential'
)
CREATE CREDENTIAL [<credential name>]
WITH IDENTITY = 'mystorageaccount',
SECRET = '<storage access key>';
A hitelesítő adatok léteznek, de a biztonsági mentési parancs futtatásához használt bejelentkezés nem rendelkezik a hitelesítő adatok eléréséhez szükséges engedélyekkel. Használjon egy fiókot a db_backupoperator szerepkörben az Bármely hitelesítőadat- engedély módosítása lehetőséggel.
Ellenőrizze a tárfiók nevét és kulcsértékét. A hitelesítő adatokban tárolt adatoknak meg kell egyeznie a biztonsági mentési és visszaállítási műveletekben használt Azure Storage-fiók tulajdonságértékeivel.
400-ra (hibás kérelem) vonatkozó hibák
Az SQL Server 2012 (11.x) használatával az alábbi kimenethez hasonló biztonsági mentés végrehajtása során hibaüzenet jelenhet meg:
Backup to URL received an exception from the remote endpoint. Exception Message:
The remote server returned an error: (400) Bad Request.
Ezt az Azure Storage-fiók által támogatott TLS-verzió okozza. A támogatott TLS-verzió módosítása vagy a KB4017023-ben felsorolt megoldások használata.
Proxyhibák
Ha proxykiszolgálókat használ az internethez való hozzáféréshez, a következő problémák léphetnek fel:
Kapcsolatszabályozás proxykiszolgálók által
A proxykiszolgálók olyan beállításokkal rendelkezhetnek, amelyek percenként korlátozzák a kapcsolatok számát. Az URL-címre történő biztonsági mentés többszálú folyamat, ezért túllépheti ezt a korlátot. Ha ez történik, a proxykiszolgáló leáll a kapcsolattal. A probléma megoldásához módosítsa a proxybeállításokat, hogy az SQL Server ne használja a proxyt. Az alábbiakban néhány példát talál a hibanaplóban esetleg megjelenő típusokra vagy hibaüzenetekre:
Write on "https://storageaccount.blob.core.windows.net/container/BackupAzurefile.bak" failed: Backup to URL received an exception from the remote endpoint. Exception Message: Unable to read data from the transport connection: The connection was closed.
A nonrecoverable I/O error occurred on file "https://storageaccount.blob.core.windows.net/container/BackupAzurefile.bak:" Error could not be gathered from Remote Endpoint.
Msg 3013, Level 16, State 1, Line 2
BACKUP DATABASE is terminating abnormally.
BackupIoRequest::ReportIoError: write failure on backup device https://storageaccount.blob.core.windows.net/container/BackupAzurefile.bak'. Operating system error Backup to URL received an exception from the remote endpoint. Exception Message: Unable to read data from the transport connection: The connection was closed.
Lapblobok használata esetén a részletes naplózást a 3051 nyomkövetési jelzővel kapcsolhatja be, a naplókban a következő üzenet is megjelenhet: HTTP status code 502, HTTP Status Message Proxy Error (The number of HTTP requests per minute exceeded the configured limit. Contact your ISA Server administrator.)
Az alapértelmezett proxybeállítások nem vehetők fel
Előfordulhat, hogy a rendszer nem veszi fel az alapértelmezett beállításokat, és proxyhitelesítési hibákat okoz, például:
A nonrecoverable I/O error occurred on file "https://storageaccount.blob.core.windows.net/container/BackupAzurefile.bak:" Backup to URL received an exception from the remote endpoint. Exception Message: The remote server returned an error: (407)* **Proxy Authentication Required.
A probléma megoldásához hozzon létre egy konfigurációs fájlt, amely lehetővé teszi, hogy a biztonsági mentés URL-címként történő feldolgozása az alapértelmezett proxybeállításokat használja az alábbi lépések végrehajtásával:
Hozzon létre egy
BackuptoURL.exe.confignevű konfigurációs fájlt a következő XML-tartalommal:<?xml version ="1.0"?> <configuration> <system.net> <defaultProxy enabled="true" useDefaultCredentials="true"> <proxy usesystemdefault="true" /> </defaultProxy> </system.net> </configuration>Helyezze a konfigurációs fájlt az SQL Server-példány
Binnmappájába. Ha például az SQL Server a gépCmeghajtójára kerül telepítésre, helyezze a konfigurációs fájlt aC:\Program Files\Microsoft SQL Server\MSSQL13.\<InstanceName>\MSSQL\Binn-re.BackuptoURL.exenem SAS-kulcsokhasználatakor hívjuk meg, de hozzáférési kulcshasználatakor aktiválódik. Győződjön meg arról, hogy hozzáférési kulcsokat használ, vagy a következő hibaüzenet jelenik meg:50-ös operációsrendszer-hiba (A kérés nem támogatott.)
Gyakori hibák és megoldások
| Probléma | Megoldás |
|---|---|
3063-ás hiba: sikertelen Írás biztonsági mentési blokkblobeszközre https://storageaccount/container/name.bak. Az eszköz elérte az engedélyezett blokkok korlátját. |
A probléma megoldásához csíkozza a biztonsági mentési célt több fájllal, és a biztonsági mentési parancsban a következő paramétereket kell használnia: COMPRESSION, MAXTRANSFERSIZE = 4194304, BLOCKSIZE = 65536. |
| 3035-ös hiba: különbségi biztonsági mentés meghiúsul egy vagy több adatbázis esetében. | Ez akkor fordul elő, ha úgy állította be az Azure Backup szolgáltatást , hogy az SQL-adatbázisokat vagy a virtuális gépek pillanatképeit mentse, amely nem hoz létre csak-másolat biztonsági mentést, emiatt a karbantartási terv vagy az SQL-ügynök feladatának igény szerinti biztonsági mentése sikertelen lesz. A probléma megoldásához adja hozzá ezeket a beállításkulcsokat a beállításkulcs-[HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\BCDRAGENT] SQL Server-példányokat üzemeltető virtuális gépekhez, és adja hozzá a "USEVSSCOPYBACKUP"="TRUE". |
| 3201-ös hiba: biztonsági mentés meghiúsul az 50-ös operációsrendszer-hibával (a kérés nem támogatott). | A megosztott hozzáférésű jogosultságkód (SAS) jogkivonat újragenerálása a Storage Explorerrel: Létrehozhat egy új szabályzatot az Azure Storage Explorer használatával, és létrehozhat egy új SAS-jogkivonatot ezzel a szabályzattal az Azure Storage Explorerből. hozza létre újra a hitelesítő az Azure Storage-ból létrehozott új SAS-jogkivonat használatával, és próbálkozzon újra a biztonsági mentéssel. Az ismert problémák között további információ található a BACKUP TO URLalatt. Győződjön meg arról, hogy a hálózati biztonsági csoport (NSG) és/vagy tűzfal engedélyezi a bejövő és kimenő kapcsolatot az 1433-as és a 443-as porton. |
| 3271-s hiba: biztonsági mentés TLS-hiba miatt meghiúsul – Az URL-címre történő biztonsági mentés kivételt kapott a távoli végponttól. | Ez az SQL Server 2012-ben, 2014-ben és 2016-os verzióiban fordulhat elő. A Microsoft Azure Blob Storage szolgáltatás URL-címének mentése nem kompatibilis a TLS 1.2-vel. A probléma a KB4017023utasításait követve orvosolható. |
| 3271-es hiba: Biztonsági mentés URL-re kivételt adott a távoli végponttól. Kivételüzenet: A távoli név nem oldható fel. | Ez az üzenet akkor jelenik meg, ha a biztonsági mentés konfigurálásához helytelen hitelesítőadat-, titkos vagy SAS-kulcsot használtak. Dobja el a hitelesítő adatokat, és hozza létre újra. Az SQL Server 2012/2014 esetén használja a tárfiók identitását és hozzáférési kulcsát, SQL Server 2016-os és újabb verzióihoz pedig az SAS. |
| 18210-s hiba: kivétel: A távoli kiszolgáló hibát adott vissza: (400) Hibás kérés. | A probléma megoldásához módosítsa a tárfiók minimális TLS-verzióját 1.0-ra (tárfiók>konfigurációs>A TLS minimális verziójának), vagy engedélyezze az erős titkosítást a KB4017023. |
| kivételüzenet: A távoli kiszolgáló hibát adott vissza: (412) Jelenleg bérlet van a blobon, és a kérelemben nem lett megadva bérletazonosító. | Azonosítsa az Azure Storage Explorer 1 TB méretű blobait, bontsa fel a bérletet, törölje a blob, majd próbálkozzon újra a biztonsági mentési művelettel. |
| hiba: A távoli kiszolgáló hibát adott vissza: (403) Tiltott. | Hozza létre újra a tárfiókot, a hitelesítő adatokat és az SAS-jogkivonatot a probléma megoldásához. |
| 1 TB-os adatbázis biztonsági mentése sikertelen az SQL Server 2012/2014 rendszeren. | Az 1 TB-os biztonsági mentések az SQL Server 2016 (13.x) előtti lapblobok ismert . A biztonsági mentés tömörítéséhez adja hozzá a "WITH COMPRESSION" záradékot a T-SQL biztonsági mentési utasításához, vagy frissítse az SQL Server-példányt az SQL Server 2016 (13.x) és újabb verzióira. |
| hiba: URL-címre történő biztonsági mentés kivételt jelzett a távoli végponttól. Kivételüzenet: A távoli kiszolgáló hibát adott vissza: (416) A megadott oldaltartomány érvénytelen. | Ez akkor jelenhet meg, ha az SQL Server 2012 (11.x) és az SQL Server 2014 (12.x) rendszeren dolgozik, és a biztonsági mentés mérete 1 TB-ra nő. Ossza fel a biztonsági mentési fájlokat, és/vagy használjon biztonsági mentési tömörítést a probléma megoldásához. |
| karbantartási terv használatakor a biztonsági mentés sikertelen volt. | Van néhány hiba a karbantartási tervben. Próbálkozzon a T-SQL használatával a biztonsági mentés végrehajtásához. Ha a T-SQL működik, létrehozhat egy SQL Agent-feladatot az adatbázisok biztonsági mentéséhez. |
| biztonsági mentés meghiúsult, mert a virtuálisgép-korlátok elértek. | Ha hibaüzenetet kap a lemez IOPS-/virtuálisgép-korlátjának elérésekor, a biztonsági mentések lelassulhatnak vagy sikertelenek lehetnek. Az IOPS-/virtuálisgép-korlátok monitorozásához használja Azure Monitor-metrikákat, és szükség esetén méretezze át a virtuális gépet/lemezt a probléma megoldásához. |
| A távoli szerver hibát adott vissza: (409) Ütközés az SQL Server 2012/2014 esetében | A hierarchikus névtérrel rendelkező tárfiókok blokkblobokhoz, nem lapblobokhoz vannak felszerelve. Az a szolgáltatás nélküli tárfiókok nem használhatók az SQL Server 2014-ben (12.x) mentés URL-re. |
Kapcsolódó tartalom
- Visszaállítás a Microsoft Azure-ben tárolt biztonsági másolatokból
- BIZTONSÁGI MENTÉS (Transact-SQL)
- ** VISSZAÁLLÍTÁS (Transact-SQL)