Mencadangkan dan memulihkan database di Azure SQL Edge
Penting
Azure SQL Edge akan dihentikan pada 30 September 2025. Untuk informasi selengkapnya dan opsi migrasi, lihat Pemberitahuan penghentian.
Catatan
Azure SQL Edge tidak lagi mendukung platform ARM64.
Azure SQL Edge dibangun pada versi terbaru SQL Database Engine. Ini menyediakan kemampuan database pencadangan dan pemulihan serupa ke SQL Server di Linux dan SQL Server yang berjalan dalam kontainer. Komponen pencadangan dan pemulihan memberikan perlindungan penting untuk melindungi data yang disimpan di database Azure SQL Edge Anda.
Untuk meminimalkan risiko kehilangan data bencana, Anda harus mencadangkan database Anda secara berkala untuk mempertahankan modifikasi pada data Anda secara teratur. Strategi pencadangan dan pemulihan yang direncanakan dengan baik membantu melindungi database dari kehilangan data yang disebabkan oleh berbagai kegagalan. Uji strategi Anda dengan memulihkan serangkaian cadangan dan kemudian memulihkan database Anda, untuk mempersiapkan respons bencana secara efektif.
Untuk membaca selengkapnya tentang mengapa cadangan penting, lihat Pencadangan dan pemulihan database SQL Server.
Azure SQL Edge memungkinkan Anda mencadangkan dan memulihkan dari penyimpanan lokal dan blob Azure. Untuk informasi selengkapnya, lihat pencadangan dan pemulihan SQL Server dengan penyimpanan Azure Blob dan cadangan SQL Server ke URL.
Mencadangkan database di Azure SQL Edge
Azure SQL Edge mendukung jenis pencadangan yang sama dengan SQL Server. Untuk daftar lengkap, lihat Gambaran umum Azure Backup.
Penting
Database yang dibuat di Azure SQL Edge menggunakan model pemulihan sederhana secara default. Dengan demikian, Anda tidak dapat melakukan pencadangan log pada database ini. Jika Anda perlu melakukan ini, Anda akan memerlukan admin untuk mengubah model pemulihan database ke model pemulihan penuh. Untuk daftar lengkap model pemulihan yang didukung oleh SQL Server, lihat Gambaran umum model pemulihan.
Cadangkan ke disk lokal
Dalam contoh berikut, Anda menggunakan perintah BACKUP DATABASE
T-SQL untuk membuat cadangan database dalam kontainer. Untuk contoh ini, Anda membuat folder baru yang disebut cadangan untuk menyimpan file cadangan.
Buat folder untuk cadangan. Jalankan perintah ini pada host tempat kontainer Azure SQL Edge Anda berjalan. Dalam perintah berikut, ganti <AzureSQLEdge_Container_Name> dengan nama kontainer Azure SQL Edge dalam penyebaran Anda.
sudo docker exec -it <AzureSQLEdge_Container_Name> mkdir /var/opt/mssql/backup
Sambungkan ke instans Azure SQL Edge dengan menggunakan SQL Server Management Studio (SSMS), atau dengan menggunakan Studio Data Azure. Jalankan
BACKUP DATABASE
perintah untuk mengambil cadangan database pengguna Anda. Dalam contoh berikut, Anda mengambil cadanganIronOreSilicaPrediction
database.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
Setelah menjalankan perintah, jika cadangan database berhasil, Anda akan melihat pesan yang mirip dengan yang berikut ini di bagian hasil SQL Server Management Studio atau Studio Data Azure.
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
Mencadangkan ke URL
Azure SQL Edge mendukung pencadangan ke blob halaman dan blob blok. Untuk informasi selengkapnya, lihat Mencadangkan untuk memblokir blob vs blob halaman. Dalam contoh berikut, database IronOreSilicaPrediction
sedang dicadangkan ke blob blok.
Untuk mengonfigurasi cadangan untuk memblokir blob, pertama-tama buat token tanda tangan akses bersama (SAS) yang dapat Anda gunakan untuk membuat informasi masuk SQL Server di Azure SQL Edge. Skrip membuat SAS yang terkait dengan kebijakan akses tersimpan. Untuk informasi selengkapnya, lihat Tanda tangan akses bersama, bagian 1: Memahami model SAS. Skrip juga menulis perintah T-SQL yang diperlukan untuk membuat informasi masuk di SQL Server. Skrip berikut mengasumsikan bahwa Anda sudah memiliki langganan Azure dengan akun penyimpanan, dan kontainer penyimpanan untuk cadangan.
# 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
Setelah berhasil menjalankan skrip, salin perintah
CREATE CREDENTIAL
ke alat kueri. Kemudian sambungkan ke instans SQL Server, dan jalankan perintah untuk membuat informasi masuk dengan SAS.Sambungkan ke instans Azure SQL Edge dengan menggunakan SQL Server Management Studio atau Studio Data Azure, dan buat kredensial dengan menggunakan perintah dari langkah sebelumnya. Pastikan untuk mengganti perintah
CREATE CREDENTIAL
dengan output aktual dari langkah sebelumnya.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>';
Perintah berikut mengambil cadangan
IronOreSilicaPrediction
ke kontainer penyimpanan Azure.BACKUP DATABASE IronOreSilicaPrediction TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/IronOreSilicaPrediction.bak' With MAXTRANSFERSIZE = 4194304,BLOCKSIZE=65536; GO
Memulihkan database di Azure SQL Edge
Di Azure SQL Edge, Anda dapat memulihkan dari disk lokal, lokasi jaringan, atau akun penyimpanan Azure Blob. Untuk informasi selengkapnya tentang penyimpanan ulang dan pemulihan di SQL Server, lihat Gambaran umum pemulihan dan pemulihan. Untuk gambaran umum model pemulihan sederhana di SQL Server, lihat Menyelesaikan pemulihan database (model pemulihan sederhana).
Penting
Database yang dibuat di Azure SQL Edge tidak dapat dipulihkan pada instans Microsoft SQL Server atau Azure SQL. Selain itu, database yang dibuat di Microsoft SQL Server atau Azure SQL dapat dipulihkan di Azure SQL Edge, asalkan database tidak berisi fitur apa pun yang tidak didukung oleh Azure SQL Edge.
Pulihkan dari disk lokal
Contoh ini menggunakan IronOreSilicaPrediction
cadangan yang Anda buat dalam contoh sebelumnya. Sekarang, Anda akan memulihkannya sebagai database baru dengan nama yang berbeda.
Jika file cadangan database belum ada dalam kontainer, Anda bisa menggunakan perintah berikut untuk menyalin file ke dalam kontainer. Contoh berikut mengasumsikan bahwa file cadangan ada di host lokal, dan sedang disalin ke folder /var/opt/mssql/backup ke dalam kontainer Azure SQL Edge bernama sql1.
sudo docker cp IronOrePredictDB.bak sql1:/var/opt/mssql/backup
Sambungkan ke instans Azure SQL Edge dengan menggunakan SQL Server Management Studio atau Azure Data Studio untuk menjalankan perintah pemulihan. Dalam contoh berikut,
IronOrePredictDB.bak
dipulihkan untuk membuat database baru,IronOreSilicaPrediction_2
.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';
Setelah menjalankan perintah pulihkan, jika operasi pemulihan berhasil, Anda akan melihat pesan yang mirip dengan yang berikut ini di jendela output.
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
Pulihkan dari URL
Azure SQL Edge juga mendukung pemulihan database dari akun Azure Storage. Anda dapat memulihkan dari blob blok atau cadangan blob halaman. Dalam contoh berikut, IronOreSilicaPrediction_2020_04_16.bak
file cadangan database pada blob blok dipulihkan untuk membuat database, IronOreSilicaPrediction_3
.
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;