Azure SQL Edge'de veritabanlarını yedekleme ve geri yükleme

Önemli

Azure SQL Edge artık ARM64 platformunu desteklememektedir.

Azure SQL Edge, Microsoft SQL Veritabanı Altyapısı'nın en son sürümleri üzerine kurulmuştur. Kapsayıcılarda çalışan Linux üzerinde SQL Server ve SQL Server'a benzer yedekleme ve geri yükleme veritabanı özellikleri sağlar. Yedekleme ve geri yükleme bileşeni, Azure SQL Edge veritabanlarınızda depolanan verileri korumak için önemli bir koruma sağlar.

Yıkıcı veri kaybı riskini en aza indirmek için, verilerinizde yapılan değişiklikleri düzenli aralıklarla korumak için veritabanlarınızı düzenli aralıklarla yedeklemeniz gerekir. İyi planlanmış bir yedekleme ve geri yükleme stratejisi, veritabanlarının çeşitli hatalardan kaynaklanan veri kaybına karşı korunmasına yardımcı olur. Bir dizi yedeklemeyi geri yükleyip veritabanınızı kurtararak stratejinizi test ederek olağanüstü durumlara etkili bir şekilde yanıt vermeye hazırlanın.

Yedeklemelerin neden önemli olduğu hakkında daha fazla bilgi için bkz . SQL Server veritabanlarını yedekleme ve geri yükleme.

Azure SQL Edge, hem yerel depolama hem de Azure bloblarına yedekleme ve geri yükleme olanağı sağlar. Daha fazla bilgi için bkz . Azure Blob depolama ile SQL Server yedekleme ve geri yükleme ve URL'ye SQL Server yedekleme.

Azure SQL Edge'de veritabanını yedekleme

Azure SQL Edge, SQL Server ile aynı yedekleme türlerini destekler. Tam liste için bkz . Yedeklemeye genel bakış.

Önemli

Azure SQL Edge'de oluşturulan veritabanları varsayılan olarak basit kurtarma modelini kullanır. Bu nedenle, bu veritabanlarında günlük yedeklemeleri gerçekleştiremezsiniz. Bunu yapmanız gerekiyorsa, veritabanı kurtarma modelini tam kurtarma modeli olarak değiştirmek için bir yöneticiye ihtiyacınız olacaktır. SQL Server tarafından desteklenen kurtarma modellerinin tam listesi için bkz . Kurtarma modeline genel bakış.

Yerel diske yedekleme

Aşağıdaki örnekte Transact-SQL komutunu kullanarak BACKUP DATABASE kapsayıcıda bir veritabanı yedeklemesi oluşturacaksınız. Bu örnekte, yedekleme dosyalarını depolamak için yedekleme adlı yeni bir klasör oluşturursunuz.

  1. Yedeklemeler için bir klasör oluşturun. Bu komutu Azure SQL Edge kapsayıcınızın çalıştığı konakta çalıştırın. Aşağıdaki komutta AzureSQLEdge_Container_Name> değerini dağıtımınızdaki Azure SQL Edge kapsayıcısının adıyla değiştirin<.

    sudo docker exec -it <AzureSQLEdge_Container_Name> mkdir /var/opt/mssql/backup
    
  2. SQL Server Management Studio (SSMS) veya Azure Data Studio kullanarak Azure SQL Edge örneğine Bağlan. BACKUP DATABASE Kullanıcı veritabanınızın yedeğini almak için komutunu çalıştırın. Aşağıdaki örnekte veritabanının yedeğini IronOreSilicaPrediction alırsınız.

    BACKUP DATABASE [IronOreSilicaPrediction] TO DISK = N'/var/opt/mssql/backup/IronOrePredictDB.bak'
    WITH NOFORMAT,
        NOINIT,
        NAME = N'IronOreSilicaPrediction-Full Database Backup',
        SKIP,
        NOREWIND,
        NOUNLOAD,
        COMPRESSION,
        STATS = 10;
    GO
    
  3. Komutu çalıştırdıktan sonra veritabanının yedeklemesi başarılı olursa SSMS veya Azure Data Studio'nun sonuçlar bölümünde aşağıdakine benzer iletiler görürsünüz.

    10 percent processed.
    20 percent processed.
    30 percent processed.
    40 percent processed.
    50 percent processed.
    60 percent processed.
    70 percent processed.
    80 percent processed.
    90 percent processed.
    100 percent processed.
    Processed 51648 pages for database 'IronOreSilicaPrediction', file 'IronOreSilicaPrediction' on file 1.
    Processed 2 pages for database 'IronOreSilicaPrediction', file 'IronOreSilicaPrediction_log' on file 1.
    BACKUP DATABASE successfully processed 51650 pages in 3.588 seconds (112.461 MB/sec).
    
    Completion time: 2020-04-09T23:54:48.4957691-07:00
    

URL'ye yedekleme

Azure SQL Edge hem sayfa bloblarına hem de blok bloblarına yedeklemeleri destekler. Daha fazla bilgi için bkz . Blok blobu ve sayfa blobu için yedekleme. Aşağıdaki örnekte veritabanı IronOreSilicaPrediction bir blok bloba yedeklenmektedir.

  1. Yedeklemeleri blobları engelleyecek şekilde yapılandırmak için, önce Azure SQL Edge'de bir SQL Server kimlik bilgisi oluşturmak için kullanabileceğiniz bir paylaşılan erişim imzası (SAS) belirteci oluşturun. Betik, depolanan erişim ilkesiyle ilişkili bir SAS oluşturur. Daha fazla bilgi için bkz . Paylaşılan erişim imzaları, bölüm 1: SAS modelini anlama. Betik ayrıca SQL Server'da kimlik bilgilerini oluşturmak için gereken T-SQL komutunu yazar. Aşağıdaki betikte, depolama hesabı olan bir Azure aboneliğiniz ve yedeklemeler için bir depolama kapsayıcınız olduğu varsayılır.

    # Define global variables for the script
    $subscriptionName='<your subscription name>'   # the name of subscription name you will use
    $resourcegroupName = '<your resource group name>' # the name of resource group you will use
    $storageAccountName= '<your storage account name>' # the storage account name you will use for backups
    $containerName= '<your storage container name>'  # the storage container name to which you will attach the SAS policy with its SAS token
    $policyName = 'SASPolicy' # the name of the SAS policy
    
    # adds an authenticated Azure account for use in the session
    Login-AzAccount
    
    # set the tenant, subscription and environment for use in the rest of
    Select-AzSubscription -Subscription $subscriptionName
    
    # Generate the SAS token
    $sa = Get-AzStorageAccount -ResourceGroupName $resourcegroupName -Name $storageAccountName
    $storagekey = Get-AzStorageAccountKey -ResourceGroupName $resourcegroupName -Name $storageAccountName
    $storageContext = New-AzStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $storagekey[0].Value
    $cbc = Get-AzStorageContainer -Name $containerName -Context $storageContext
    $policy = New-AzStorageContainerStoredAccessPolicy -Container $containerName -Policy $policyName -Context $storageContext -ExpiryTime $(Get-Date).ToUniversalTime().AddYears(10) -Permission "rwld"
    $sas = New-AzStorageContainerSASToken -Policy $policyName -Context $storageContext -Container $containerName
    Write-Host 'Shared Access Signature= '$($sas.Substring(1))''
    
    # Outputs the Transact SQL to the clipboard and to the screen to create the credential using the Shared Access Signature
    Write-Host 'Credential T-SQL'
    $tSql = "CREATE CREDENTIAL [{0}] WITH IDENTITY='Shared Access Signature', SECRET='{1}'" -f $cbc.CloudBlobContainer.Uri.AbsoluteUri,$sas.Substring(1)
    $tSql | clip
    Write-Host $tSql
    

    Betiği başarıyla çalıştırdıktan sonra komutunu bir sorgu aracına kopyalayın CREATE CREDENTIAL . Ardından BIR SQL Server örneğine bağlanın ve komutunu çalıştırarak SAS ile kimlik bilgilerini oluşturun.

  2. SSMS veya Azure Data Studio kullanarak Azure SQL Edge örneğine Bağlan ve önceki adımda yer alan komutu kullanarak kimlik bilgilerini oluşturun. komutunu önceki adımdaki gerçek çıkışla değiştirdiğinden CREATE CREDENTIAL emin olun.

    IF NOT EXISTS
    (SELECT * FROM sys.credentials
    WHERE name = 'https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>')
    CREATE CREDENTIAL [https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>]
       WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
       SECRET = '<SAS_TOKEN>';
    
  3. Aşağıdaki komut, azure depolama kapsayıcısına IronOreSilicaPrediction öğesinin yedeğini alır.

    BACKUP DATABASE IronOreSilicaPrediction
    TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/IronOreSilicaPrediction.bak'
    With MAXTRANSFERSIZE = 4194304,BLOCKSIZE=65536;
    GO
    

Azure SQL Edge'de veritabanını geri yükleme

Azure SQL Edge'de yerel diskten, ağ konumundan veya Azure Blob depolama hesabından geri yükleyebilirsiniz. SQL Server'da geri yükleme ve kurtarma hakkında daha fazla bilgi için bkz . Geri yükleme ve kurtarmaya genel bakış. SQL Server'daki basit kurtarma modeline genel bakış için bkz . Tam veritabanı geri yüklemeleri (basit kurtarma modeli).

Önemli

Azure SQL Edge'de oluşturulan veritabanları Microsoft SQL Server veya Azure SQL örneğine geri yüklenemez. Ayrıca, Microsoft SQL Server veya Azure SQL'de oluşturulan bir veritabanı, Azure SQL Edge tarafından desteklenmeyen özelliklerden hiçbirini içermemesi koşuluyla Azure SQL Edge'de geri yüklenebilir.

Yerel diskten geri yükleme

Bu örnek, önceki örnekte yaptığınız yedeklemeyi kullanır IronOreSilicaPrediction . Şimdi bunu farklı bir ada sahip yeni bir veritabanı olarak geri yükleyeceksiniz.

  1. Veritabanı yedekleme dosyası kapsayıcıda zaten yoksa, aşağıdaki komutu kullanarak dosyayı kapsayıcıya kopyalayabilirsiniz. Aşağıdaki örnekte, yedekleme dosyasının yerel konakta bulunduğu ve /var/opt/mssql/backup klasörüne sql1 adlı bir Azure SQL Edge kapsayıcısına kopyalandığı varsayılır.

    sudo docker cp IronOrePredictDB.bak sql1:/var/opt/mssql/backup
    
  2. Geri yükleme komutunu çalıştırmak için SSMS veya Azure Data Studio kullanarak Azure SQL Edge örneğine Bağlan. Aşağıdaki örnekte, IronOrePredictDB.bak yeni bir veritabanı IronOreSilicaPrediction_2oluşturmak için geri yüklenir.

    Restore FilelistOnly from disk = N'/var/opt/mssql/backup/IronOrePredictDB.bak'
    
    Restore Database IronOreSilicaPrediction_2
    From disk = N'/var/opt/mssql/backup/IronOrePredictDB.bak'
    WITH MOVE 'IronOreSilicaPrediction' TO '/var/opt/mssql/data/IronOreSilicaPrediction_Primary_2.mdf',
    MOVE 'IronOreSilicaPrediction_log' TO '/var/opt/mssql/data/IronOreSilicaPrediction_Primary_2.ldf';
    
  3. Geri yükleme komutunu çalıştırdıktan sonra, geri yükleme işlemi başarılı olursa çıkış penceresinde aşağıdakine benzer iletiler görürsünüz.

    Processed 51648 pages for database 'IronOreSilicaPrediction_2', file 'IronOreSilicaPrediction' on file 1.
    Processed 2 pages for database 'IronOreSilicaPrediction_2', file 'IronOreSilicaPrediction_log' on file 1.
    RESTORE DATABASE successfully processed 51650 pages in 6.543 seconds (61.670 MB/sec).
    
    Completion time: 2020-04-13T23:49:21.1600986-07:00
    

URL’den geri yükleme

Azure SQL Edge, bir Azure Depolama hesabından veritabanını geri yüklemeyi de destekler. Blok bloblarından veya sayfa blobu yedeklemelerinden geri yükleyebilirsiniz. Aşağıdaki örnekte, bir blok blobu IronOreSilicaPrediction_2020_04_16.bak üzerindeki veritabanı yedekleme dosyası, IronOreSilicaPrediction_3veritabanını oluşturmak için geri yüklenir.

RESTORE DATABASE IronOreSilicaPrediction_3
FROM URL = 'https://mystorageaccount.blob.core.windows.net/mysecondcontainer/IronOreSilicaPrediction_2020_04_16.bak'
WITH MOVE 'IronOreSilicaPrediction' TO '/var/opt/mssql/data/IronOreSilicaPrediction_Primary_3.mdf',
MOVE 'IronOreSilicaPrediction_log' TO '/var/opt/mssql/data/IronOreSilicaPrediction_Primary_3.ldf',
STATS = 10;