Azure SQL Veritabanı'da veritabanının işlem açısından tutarlı bir kopyasını kopyalama
Şunlar için geçerlidir: Azure SQL Veritabanı
Azure SQL Veritabanı, aynı sunucuda veya farklı bir sunucuda var olan bir veritabanının kopyasını oluşturmak için çeşitli yöntemler sağlar. Veritabanını Azure portalı, PowerShell, Azure CLI veya Transact-SQL kullanarak kopyalayabilirsiniz.
Not
Microsoft Entra Id daha önce Azure Active Directory (Azure AD) olarak biliniyordu.
Genel bakış
Veritabanı kopyası, kopyalama isteğinin başlatıldığı noktada kaynak veritabanının işlem açısından tutarlı bir anlık görüntüsüdür. Kopya için aynı sunucuyu veya farklı bir sunucuyu seçebilirsiniz. Ayrıca, kaynak veritabanının yedek yedekliliğini ve işlem boyutunu korumayı seçebilir veya aynı hizmet katmanında farklı bir yedekleme depolama yedekliliği ve/veya işlem boyutu kullanabilirsiniz. Standart hizmet katmanındaki bir veritabanını Standart veya Genel Amaçlı katmanına ve Premium hizmet katmanındaki bir veritabanını Premium veya İş Açısından Kritik katmanına kopyalamak da mümkündür.
Kopyalama tamamlandıktan sonra yeni veritabanı, kaynak veritabanına tamamen işlevsel ve bağımsız bir veritabanıdır. Kopyalanan veritabanındaki oturum açma bilgileri, kullanıcılar ve izinler kaynak veritabanından bağımsız olarak yönetilir. Kopya, coğrafi çoğaltma teknolojisi kullanılarak oluşturulur. Çoğaltma dengeli dağıtımı tamamlandıktan sonra, coğrafi çoğaltma bağlantısı otomatik olarak sonlandırılır. Coğrafi çoğaltmayı kullanmayla ilgili tüm gereksinimler veritabanı kopyalama işlemine de uygulanır. Ayrıntılar için bkz . Etkin coğrafi çoğaltmaya genel bakış .
Not
Azure portalı, PowerShell ve Azure CLI farklı bir aboneliğe veritabanı kopyalamayı desteklemez.
Hiper Ölçek veritabanları için veritabanı kopyası
Hiper Ölçek hizmet katmanındaki veritabanları için hedef veritabanı, kopyanın hızlı bir kopya mı yoksa veri boyutu kopyası mı olduğunu belirler:
Hızlı kopyalama: Kopya kaynakla aynı bölgede yapıldığında, kopya blobların anlık görüntülerinden oluşturulur, bu kopya veritabanı boyutundan bağımsız olarak hızlı bir işlemdir.
Veri kopyalama boyutu: Hedef veritabanı kaynaktan farklı bir bölgedeyse veya hedeften veritabanı yedekleme depolama yedekliliği (Yerel, Bölgesel, Coğrafi) kaynak veritabanından farklıysa, kopyalama işlemi veri boyutu işlemidir. Sayfa sunucusu blobları paralel olarak kopyalandığından, kopyalama süresi boyutla doğrudan orantılı değildir.
Veritabanı kopyasında oturum açma bilgileri
Bir veritabanını aynı sunucuya kopyaladığınızda, her iki veritabanında da aynı oturum açma bilgileri kullanılabilir. Veritabanını kopyalamak için kullandığınız güvenlik sorumlusu, yeni veritabanında veritabanı sahibi olur.
Veritabanını farklı bir sunucuya kopyaladığınızda hedef sunucuda kopyalama işlemini başlatan güvenlik sorumlusu yeni veritabanının sahibi olur.
Hedef sunucudan bağımsız olarak tüm veritabanı kullanıcıları, izinler ve güvenlik tanımlayıcıları (SID) veritabanı kopyasına kopyalanır. Veri erişimi için kapsanan veritabanı kullanıcılarının kullanılması, kopyalanan veritabanının aynı kullanıcı kimlik bilgilerine sahip olmasını sağlar, böylece kopyalama tamamlandıktan sonra buna aynı kimlik bilgileriyle hemen erişebilirsiniz.
Veri erişiminde sunucu düzeyi oturum açma bilgilerini kullanır ve veritabanını farklı bir sunucuya kopyalarsanız, oturum açma tabanlı erişim çalışmayabilir. Bunun nedeni, oturum açma bilgilerinin hedef sunucuda mevcut olmaması veya bu parolaların ve güvenlik tanımlayıcılarının (SID) farklı olması olabilir. Veritabanını farklı bir sunucuya kopyalarken oturum açma bilgilerini yönetme hakkında daha fazla bilgi için bkz. Olağanüstü durum kurtarma sonrasında Azure SQL Veritabanı güvenliği yönetme. Farklı bir sunucuya kopyalama işlemi başarılı olduktan sonra ve diğer kullanıcılar yeniden eşlenmeden önce, yalnızca veritabanı sahibiyle ilişkili oturum açma bilgileri veya sunucu yöneticisi kopyalanan veritabanında oturum açabilir. Kopyalama işlemi tamamlandıktan sonra oturum açma bilgilerini çözmek ve veri erişimi oluşturmak için bkz . Oturum açma bilgilerini çözme.
Azure portalını kullanarak kopyalama
Azure portalını kullanarak veritabanını kopyalamak için veritabanınızın sayfasını açın ve kopyala'yı seçerek SQL Veritabanı Oluştur - Veritabanı kopyala sayfasını açın. Veritabanınızı kopyalamak istediğiniz hedef sunucunun değerlerini doldurun.
Veritabanı kopyalama
PowerShell, Azure CLI ve Transact-SQL (T-SQL) kullanarak veritabanını kopyalayabilirsiniz.
PowerShell için New-AzSqlDatabaseCopy cmdlet'ini kullanın.
Önemli
PowerShell Azure Resource Manager (RM) modülü Azure SQL Veritabanı tarafından hala desteklenmektedir ancak gelecekteki tüm geliştirmeler Az.Sql modülüne yöneliktir. AzureRM modülü en az Aralık 2020'ye kadar hata düzeltmeleri almaya devam edecektir. Az modülündeki ve AzureRm modüllerindeki komutların bağımsız değişkenleri önemli ölçüde aynıdır. Uyumlulukları hakkında daha fazla bilgi için bkz . Yeni Azure PowerShell Az modülüne giriş.
New-AzSqlDatabaseCopy -ResourceGroupName "<resourceGroup>" -ServerName $sourceserver -DatabaseName "<databaseName>" `
-CopyResourceGroupName "myResourceGroup" -CopyServerName $targetserver -CopyDatabaseName "CopyOfMySampleDatabase"
Veritabanı kopyası zaman uyumsuz bir işlemdir, ancak istek kabul edildikten hemen sonra hedef veritabanı oluşturulur. Devam ederken kopyalama işlemini iptal etmeniz gerekiyorsa Remove-AzSqlDatabase cmdlet'ini kullanarak hedef veritabanını bırakın.
Eksiksiz bir örnek PowerShell betiği için bkz . Veritabanını yeni bir sunucuya kopyalama.
Kopyalama işleminin ilerleme durumunu izleme
sys.databases, sys.dm_database_copies ve sys.dm_operation_status görünümlerini sorgulayarak kopyalama işlemini izleyin. Kopyalama işlemi devam ederken, state_desc
yeni veritabanı için görünümün sys.databases
sütunu olarak COPYING
ayarlanır.
- Kopyalama başarısız olursa,
state_desc
yeni veritabanı için görünümünsys.databases
sütunu olarakSUSPECT
ayarlanır. Drop deyimini yeni veritabanında yürütün ve daha sonra yeniden deneyin. - Kopyalama başarılı olursa,
state_desc
yeni veritabanı için görünümünsys.databases
sütunu olarakONLINE
ayarlanır. Kopyalama tamamlandı ve yeni veritabanı, kaynak veritabanından bağımsız olarak değiştirilebilen normal bir veritabanıdır.
Not
Kopyalama işlemi devam ederken iptal etmeye karar verirseniz DROP DATABASE deyimini yeni veritabanında yürütün.
Önemli
Kaynaktan çok daha küçük bir hizmet hedefine sahip bir kopya oluşturmanız gerekiyorsa, hedef veritabanının kaynak oluşturma işlemini tamamlamak için yeterli kaynağı olmayabilir ve kopyalama işleminin başarısız olmasına neden olabilir. Bu senaryoda, farklı bir sunucuda ve/veya farklı bir bölgede kopya oluşturmak için coğrafi geri yükleme isteği kullanın. Daha fazla bilgi için bkz. Veritabanı yedeklemelerini kullanarak Azure SQL Veritabanı kurtarma.
İzinler
Veritabanı kopyası oluşturmak için aşağıdaki rollerde olmanız gerekir:
- Abonelik Sahibi veya
- SQL Server Katkıda Bulunanı rolü veya
- Aşağıdaki izinlere sahip kaynak sunucuda özel rol:
- Microsoft.Sql/servers/databases/read
- Microsoft.Sql/servers/databases/write ve
- Aşağıdaki izinlere sahip hedef sunucuda özel rol:
- Microsoft.Sql/servers/read
- Microsoft.Sql/servers/databases/read
- Microsoft.Sql/servers/databases/write
Veritabanı kopyasını iptal etmek için aşağıdaki rollerde olmanız gerekir:
- Abonelik Sahibi veya
- SQL Server Katkıda Bulunanı rolü veya
- Hedef veritabanında aşağıdaki izinlere sahip özel rol:
- Microsoft.Sql/servers/databases/delete
Azure portalını kullanarak veritabanı kopyasını yönetmek için aşağıdaki izinlere de ihtiyacınız vardır:
- Microsoft.Resources/subscriptions/resources/read
- Microsoft.Resources/deployments/read
- Microsoft.Resources/deployments/write
- Microsoft.Resources/deployments/operationstatuses/read
İşlemleri portaldaki kaynak grubundaki dağıtımlar altında, SQL işlemleri de dahil olmak üzere birden çok kaynak sağlayıcısındaki işlemleri görmek istiyorsanız şu ek izinlere ihtiyacınız vardır:
- Microsoft.Resources/subscriptions/resourcegroups/deployments/operations/read
- Microsoft.Resources/subscriptions/resourcegroups/deployments/operationstatuses/read
Oturum açma bilgilerini çözme
Hedef sunucuda yeni veritabanı çevrimiçi olduktan sonra, kullanıcıları yeni veritabanından hedef sunucuda oturum açmak üzere yeniden eşlemek için ALTER USER deyimini kullanın. Yalnız bırakılmış kullanıcıları çözmek için bkz . Yalnız Bırakılmış Kullanıcıların Sorunlarını Giderme. Ayrıca bkz. Olağanüstü durum kurtarma sonrasında Azure SQL Veritabanı güvenliği yönetme.
Yeni veritabanındaki tüm kullanıcılar, kaynak veritabanında sahip oldukları izinleri korur. Veritabanı kopyasını başlatan kullanıcı, yeni veritabanının veritabanı sahibi olur. Kopyalama başarılı olduktan sonra ve diğer kullanıcılar yeniden eşlenmeden önce, yeni veritabanında yalnızca veritabanı sahibi oturum açabilir.
Veritabanını farklı bir sunucuya kopyalarken kullanıcıları ve oturum açma bilgilerini yönetme hakkında bilgi edinmek için bkz. Olağanüstü durum kurtarma sonrasında Azure SQL Veritabanı güvenliği yönetme.
Veritabanı kopyalama hataları
Azure SQL Veritabanı'nda veritabanı kopyalanırken aşağıdaki hatalar oluşabilir. Daha fazla bilgi için bkz. Azure SQL Veritabanını kopyalama.
Hata kodu | Önem Derecesi | Açıklama |
---|---|---|
40635 | 16 | "%.*ls" IP adresine sahip istemci geçici olarak devre dışı bırakıldı. |
40637 | 16 | Veritabanı kopyası oluşturma şu anda devre dışı. |
40561 | 16 | Veritabanı kopyalama başarısız oldu. Kaynak veya hedef veritabanı yok. |
40562 | 16 | Veritabanı kopyalama başarısız oldu. Kaynak veritabanı kaldırıldı. |
40563 | 16 | Veritabanı kopyalama başarısız oldu. Hedef veritabanı kaldırıldı. |
40564 | 16 | Veritabanı kopyalama bir iç hata nedeniyle başarısız oldu. Lütfen hedef veritabanını bırakıp yeniden deneyin. |
40565 | 16 | Veritabanı kopyalama başarısız oldu. Aynı kaynaktan aynı anda en fazla 1 veritabanı kopyalama işlemi yapılabilir. Lütfen hedef veritabanını bırakın ve daha sonra yeniden deneyin. |
40566 | 16 | Veritabanı kopyalama bir iç hata nedeniyle başarısız oldu. Lütfen hedef veritabanını bırakıp yeniden deneyin. |
40567 | 16 | Veritabanı kopyalama bir iç hata nedeniyle başarısız oldu. Lütfen hedef veritabanını bırakıp yeniden deneyin. |
40568 | 16 | Veritabanı kopyalama başarısız oldu. Kaynak veritabanı kullanılamaz duruma geldi. Lütfen hedef veritabanını bırakıp yeniden deneyin. |
40569 | 16 | Veritabanı kopyalama başarısız oldu. Hedef veritabanı kullanılamaz duruma geldi. Lütfen hedef veritabanını bırakıp yeniden deneyin. |
40570 | 16 | Veritabanı kopyalama bir iç hata nedeniyle başarısız oldu. Lütfen hedef veritabanını bırakın ve daha sonra yeniden deneyin. |
40571 | 16 | Veritabanı kopyalama bir iç hata nedeniyle başarısız oldu. Lütfen hedef veritabanını bırakın ve daha sonra yeniden deneyin. |
İlgili içerik
- SQL Veritabanı’na, SQL Yönetilen Örneği’ne ve Azure Synapse Analytics’e veritabanı erişimini yetkilendirme
- Azure SQL Veritabanı güvenliğini coğrafi geri yükleme veya yük devretme gerçekleştirecek şekilde yapılandırma ve yönetme
- BACPAC dosyasına aktarma - Azure SQL Veritabanı ve Azure SQL Yönetilen Örneği