Exportálás BACPAC-fájlba – Azure SQL Database és Azure SQL Managed Instance

A következőre vonatkozik: :Azure SQL DatabaseAzure SQL Managed Instance

Ha archiváláshoz vagy másik platformra való áthelyezéshez exportálnia kell egy adatbázist, exportálhatja az adatbázis sémáját és adatait egy BACPAC-fájlba . A BACPAC-fájlok olyan ZIP-fájlok, amelyek a BACPAC kiterjesztésével tartalmazzák az adatbázis metaadatait és adatait. A BACPAC-fájlok tárolhatók Azure Blob Storage-ban vagy helyi tárolóban egy helyszíni helyen, és később újra importálhatók Azure SQL Database, Azure SQL Managed Instance vagy SQL Server példányba.

Megfontolások

Ahhoz, hogy az exportálás tranzakciós konzisztens legyen, győződjön meg arról, hogy az exportálás során nem történik írási tevékenység, vagy az adatbázis tranzakciósan konzisztens másolatából exportál.

Ha blobtárolóba exportál, a BACPAC-fájlok maximális mérete 200 GB. Nagyobb BACPAC-fájl archiválásához exportáljon helyi tárolóba az SqlPackage használatával.

Azure SQL Database importálása vagy exportálása privát hivatkozással előzetes verzióban érhető el.

A Azure Storage fájlnév nem végződhet . karakterrel, és nem tartalmazhat speciális karaktereket, például szóköz vagy <, >, *, %, &, :, \, /, ?. A fájlnévnek 128 karakternél rövidebbnek kell lennie.

Ha az exportálási művelet meghaladja a 20 órát, előfordulhat, hogy a művelet megszakad. Az exportálás közbeni teljesítmény növeléséhez az alábbiakat teheti:

  • Ideiglenesen növelje a számítási méretet.

  • Az exportálás során hagyja abba az összes olvasási és írási tevékenységet.

  • Használjon klaszterezett indexet nem nulla értékekkel az összes nagy táblán. Fürtözött indexek nélkül az exportálás meghiúsulhat, ha 6–12 óránál tovább tart. Ennek az az oka, hogy az exportálási szolgáltatásnak be kell fejeznie egy táblavizsgálatot a teljes tábla exportálásához. Jó módszer annak meghatározására, hogy a táblák exportálásra vannak-e optimalizálva, ha futtatja a DBCC SHOW_STATISTICS parancsot, és megbizonyosodik arról, hogy a RANGE_HI_KEY nem null értékű, és az értékének eloszlása jó. Részletekért lásd: DBCC SHOW_STATISTICS (Transact-SQL).

  • Nagyobb adatbázisok esetén a BACPAC exportálása/importálása hosszú időt vehet igénybe, és különböző okokból meghiúsulhat.

Megjegyzés:

A BACPAC-k nem használhatók biztonsági mentési és visszaállítási műveletekhez. Azure automatikusan biztonsági másolatot készít minden felhasználói adatbázisról. További részletekért lásd: üzletmenet-folytonosság áttekintése és automatikus biztonsági mentések az Azure SQL Database-ben vagy automatikus biztonsági mentések az Azure SQL Managed Instance-ban.

Exportálás a Azure portálról

Megjegyzés:

A Azure portálon vagy a PowerShellen keresztül küldött importálási/exportálási kérelmeket feldolgozó gépeknek tárolniuk kell a Data-Tier Application Framework (DacFX) által létrehozott BACPAC-fájlt és ideiglenes fájlokat. A szükséges lemezterület jelentősen eltér az azonos méretű adatbázisok között, és az adatbázis méretének háromszorosára is szükség lehet lemezterületre. Az importálási/exportálási kérelmet futtató gépeknek csak 450 GB helyi lemezterületük van. Emiatt előfordulhat, hogy egyes kérések meghiúsulnak a There is not enough space on the diskhiba miatt. Ebben az esetben a megkerülő megoldás az SqlPackage futtatása olyan gépen, amelyen elegendő a helyi lemezterület. A probléma elkerülése érdekében használja az SQLPackage segédprogramot a 150 GB-nál nagyobb adatbázisok importálására/exportálására.

  1. Ha a Azure portállal szeretne exportálni egy adatbázist, nyissa meg az adatbázis lapját, és válassza a Export lehetőséget az eszköztáron.

    Az Exportálás gombot kiemelő képernyőkép.

  2. Adja meg a BACPAC-fájlnevet, válasszon ki egy meglévő Azure tárfiókot és tárolót az exportáláshoz, majd adja meg a forrásadatbázishoz való hozzáféréshez szükséges hitelesítő adatokat. Az SQL Kiszolgáló-rendszergazdai bejelentkezésre akkor is szükség van, ha Ön a Azure rendszergazda, mivel a Azure rendszergazda nem egyenlő azzal, hogy rendszergazdai engedélyekkel rendelkezik Azure SQL Database vagy Azure SQL Managed Instance.

    Képernyőkép az Adatbázis exportálása lapról, amelyen meg van adva a felhasználónév és a jelszó.

  3. Kattintson az OK gombra.

  4. Az exportálási művelet előrehaladásának figyeléséhez nyissa meg az exportált adatbázist tartalmazó kiszolgáló lapját. Az Adatkezelés területen válassza az Importálás/Exportálás előzményei lehetőséget.

Exportálás felügyelt identitáshitelesítéssel (előzetes verzió)

A Azure SQL Database adatbázisát exportálhatja BACPAC-fájlba managed identity hitelesítéssel, hogy ne kelljen SQL-rendszergazdai jelszavakat vagy tárelérési kulcsokat megadnia.

Részletes oktatóanyagért lásd: Felügyelt identitás használata importálással és exportálással (előzetes verzió).

A BACPAC-fájl felügyelt identitáshitelesítéssel történő exportálásához a következő konfiguráció szükséges:

  • Egy felhasználó által hozzárendelt felügyelt identitás (UAMI) van hozzárendelve az Azure SQL Database logikai kiszolgálójához.
  • A kiszolgáló felügyelt identitása Microsoft Entra rendszergazdaként van konfigurálva.
  • A felügyelt identitás a Storage Blob Data Contributor szerepkörhöz van hozzárendelve a cél Azure Storage fiókban. Ez a felügyelt identitás megegyezhet a kiszolgálóhoz rendelt vagy egy másik identitással.
  • A logikai kiszolgáló, a felügyelt identitás és a tárfiók ugyanabban a Microsoft Entra bérlőben található.

Megjegyzés:

A felügyelt identitáshitelesítéssel történő exportálás jelenleg preview és csak az Azure SQL Database-n érhető el.

SQLPackage segédprogram

A skálázás és a teljesítmény érdekében javasoljuk az SQLPackage segédprogram használatát a legtöbb éles környezetben. Több SqlPackage-parancsot is futtathat párhuzamosan a táblák részhalmazaihoz az importálási/exportálási műveletek felgyorsítása érdekében.

Ha az SQL Database-ben szeretne adatbázist exportálni az SQLPackage parancssori segédprogrammal, tekintse meg az Exportálás paraméterek és tulajdonságok című témakört. A SQLPackage segédprogram Windows, macOS és Linux rendszeren érhető el.

Ez a példa bemutatja, hogyan exportálhat adatbázist az SqlPackage használatával Active Directory univerzális hitelesítéssel:

SqlPackage /a:Export /tf:testExport.bacpac /scs:"Data Source=apptestserver.database.windows.net;Initial Catalog=MyDB;" /ua:True /tid:"apptest.onmicrosoft.com"

Visual Studio Code

A Visual Studio Code MSSQL-bővítménye egy ingyenes, nyílt forráskódú bővítmény, amely Windows, macOS és Linux rendszeren érhető el. A bővítmény tartalmazza az SqlPackage-műveletek adatrétegű alkalmazásának (előzetes verzió) felületét, beleértve az exportálást és az importálást is. A bővítmény telepítésével és használatával kapcsolatos további információkért tekintse meg a MSSQL bővítményt Visual Studio Code.

SQL Server Management Studio (SSMS)

SQL Server Management Studio varázslóval exportálhat adatbázist Azure SQL Database vagy SQL Managed Instance adatbázisból EGY BACPAC-fájlba. Lásd: Adatrétegű alkalmazás exportálása.

PowerShell

Az adatbázis BACPAC-fájljának exportálása Azure SQL Managed Instance PowerShell használatával nem támogatott. Lásd a szempontokat.

A New-AzSqlDatabaseExport parancsmaggal küldjön exportadatbázis-kérelmet a Azure SQL Database szolgáltatásnak. Az adatbázis méretétől függően az exportálási művelet végrehajtása eltarthat egy ideig.

$exportRequest = New-AzSqlDatabaseExport -ResourceGroupName $ResourceGroupName -ServerName $ServerName `
  -DatabaseName $DatabaseName -StorageKeytype $StorageKeytype -StorageKey $StorageKey -StorageUri $BacpacUri `
  -AdministratorLogin $creds.UserName -AdministratorLoginPassword $creds.Password

Az exportálási kérelem állapotának ellenőrzéséhez használja a Get-AzSqlDatabaseImportExportStatus parancsmagot. A parancsmag közvetlenül a kérés után történő futtatása általában a(z) Állapot: InProgress értéket adja vissza. Amikor megjelenik az Állapot: Sikeres az exportálás befejeződött .

$exportStatus = Get-AzSqlDatabaseImportExportStatus -OperationStatusLink $exportRequest.OperationStatusLink
[Console]::Write("Exporting")
while ($exportStatus.Status -eq "InProgress")
{
    Start-Sleep -s 10
    $exportStatus = Get-AzSqlDatabaseImportExportStatus -OperationStatusLink $exportRequest.OperationStatusLink
    [Console]::Write(".")
}
[Console]::WriteLine("")
$exportStatus

Az exportálási kérelem megszakítása

Az Database Operations - Cancel API vagy a PowerShell Stop-AzSqlDatabaseActivity parancs használatával megszakíthat egy exportálási kérelmet. Íme egy példa PowerShell-parancsra:

Stop-AzSqlDatabaseActivity -ResourceGroupName $ResourceGroupName -ServerName $ServerName -DatabaseName $DatabaseName -OperationId $Operation.OperationId

Megjegyzés:

Az exportálási művelet megszakításához az alábbi szerepkörök egyikével kell rendelkeznie:

Korlátozások

  • A BACPAC-fájl exportálása Azure prémium szintű tárolóba a cikkben ismertetett módszerekkel nem támogatott.
  • A tűzfal mögötti tárolás jelenleg nem támogatott.
  • A nem módosítható tároló jelenleg nem támogatott.
  • Azure SQL Managed Instance jelenleg nem támogatja az adatbázis BACPAC-fájlba való exportálását a Azure portál vagy Azure PowerShell használatával. Kezelt példány BACPAC-fájlba való exportálásához használja a SQL Server Management Studio (SSMS) vagy SQLPackage.
  • Az Import/Export szolgáltatás jelenleg nem támogatja Microsoft Entra ID hitelesítést, ha MFA szükséges.
  • Az Import\Export szolgáltatások csak az SQL-hitelesítést és a Microsoft Entra ID támogatják. Az Import\Export nem kompatibilis a Microsoft Identity alkalmazásregisztrációjával.