ApsaraDB RDS for SQL Server, kendi kendinize yönettiğiniz SQL Server veritabanlarını Alibaba Cloud'a geçirmenizi sağlayan bir çözüm sunar. Kendi kendinize yönettiğiniz SQL Server veritabanınızın tam yedekleme verilerini Alibaba Cloud Object Storage Service (OSS) hizmetine yüklemeniz ve ardından bu verileri ApsaraDB RDS konsolundan belirtilen ApsaraDB RDS for SQL Server veritabanına aktarmanız yeterlidir. Bu çözüm; veri yedekleme, veri geçişi ve olağanüstü durum kurtarma gibi senaryolar için uygundur.
Önkoşullar
-
ApsaraDB RDS for SQL Server örneği aşağıdaki gereksinimleri karşılamalıdır:
Örneğin kalan depolama alanı, taşınacak veri dosyalarının boyutundan büyük olmalıdır. Depolama alanı yetersizse önceden örneğin depolama alanını yükseltin.
Örnek SQL Server 2012 veya sonraki bir sürümü ya da cloud diskli SQL Server 2008 R2 çalıştırıyorsa, örnekte taşınacak veritabanıyla aynı ada sahip bir veritabanının bulunmadığından emin olun.
Örnek yüksek performanslı yerel diskli SQL Server 2008 R2 çalıştırıyorsa, örnekte taşınacak veritabanıyla aynı ada sahip bir veritabanının oluşturulduğundan emin olun.
-
Bir RAM kullanıcısı olarak oturum açıyorsanız aşağıdaki gereksinimlerin karşılanması gerekir:
RAM kullanıcısına AliyunOSSFullAccess ve AliyunRDSFullAccess izinleri verilmiş olmalıdır. Bir RAM kullanıcısına izin verme hakkında daha fazla bilgi için bkz. RAM kullanarak OSS izinlerini yönetme ve RAM kullanarak ApsaraDB RDS izinlerini yönetme.
-
Alibaba Cloud hesabınız (ana hesap), ApsaraDB RDS resmi hizmet hesabının OSS kaynaklarınıza erişmesine yetki vermiştir.
-
Alibaba Cloud hesabınızda (ana hesap) manuel olarak bir izin ilkesi oluşturun ve bu ilkeyi RAM kullanıcısına atayın.
Notlar
Geçiş kapsamı: Bu çözüm yalnızca tek bir veritabanının (veritabanı düzeyinde) geçişini destekler. Birden çok veritabanını veya tüm veritabanlarını geçirmek için örnek düzeyindeki geçiş çözümünü kullanın.
Sürüm uyumluluğu: Kendi kendinize yönetilen bir SQL Server ortamında oluşturulan bir yedekleme dosyası, daha düşük bir sürüm çalışan bir ApsaraDB RDS for SQL Server örneğine geçirilemez.
İzin yönetimi: ApsaraDB RDS hizmet hesabına OSS erişim izinlerini verdikten sonra sistem RAM içinde
AliyunRDSImportRoleadlı bir rol oluşturur. Bu rolü değiştirmeyin veya silmeyin. Aksi takdirde geçiş görevleri başarısız olur. Rolü yanlışlıkla değiştirir veya silerseniz veri geçişi sihirbazında izinleri yeniden verin.Hesap yönetimi: Geçiş tamamlandıktan sonra orijinal veritabanının hesapları kullanılamaz hale gelir. ApsaraDB RDS konsolunda hesapları yeniden oluşturun.
OSS dosya saklama: Geçiş görevi tamamlanmadan önce yedekleme dosyasını OSS'ten silmeyin. Aksi takdirde görev başarısız olur.
-
Yedekleme dosyası gereksinimleri:
Dosya adı: Dosya adı
!@#$%^&*()_+-=gibi özel karakterler içeremez. Aksi takdirde geçiş başarısız olur.Dosya uzantısı: ApsaraDB RDS tarafından desteklenen yedekleme dosyaları
.bak(tam yedekleme),.diff(artımlı yedekleme) ve.trnveya.log(günlük yedekleme) dosyalarıdır. Diğer türdeki dosyalar tanınmaz.Dosya türü: Yalnızca tam yedekleme dosyaları yüklenebilir. Artımlı yedekleme dosyaları ve günlük yedekleme dosyaları desteklenmez.
Dosya kaynağı: Kaynak veriler, daha önce indirilmiş olan ApsaraDB RDS for SQL Server tam yedekleme dosyasıysa (varsayılan olarak
.zipformatındadır), buluta geçirmeden önce bunu.bakdosyasına ayıklayın.
Faturalandırma
Bu çözümde yalnızca OSS ile ilgili ücretler tahakkuk eder. Daha fazla bilgi için aşağıya bakın:
Senaryo | Faturalandırma |
Kendi kendinize yönetilen veritabanının yedekleme dosyasını OSS'e yükleme | Ücretsizdir. |
Yedekleme dosyasını OSS'te depolama | OSS depolama ücretleri tahakkuk eder. Faturalandırma hakkında daha fazla bilgi için bkz. OSS fiyatlandırması. |
Yedekleme dosyasını OSS'ten ApsaraDB RDS'e geçirme |
|
Hazırlık
Veritabanında allocation errors veya consistency errors olmadığından emin olmak için kendi kendinize yönetilen veritabanı ortamında DBCC CHECKDB ifadesini çalıştırın. Veritabanı normal durumdaysa aşağıdaki sonuç döndürülür:
...
CHECKDB found 0 allocation errors and 0 consistency errors in database 'xxx'.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
1. Kendi kendinize yönetilen veritabanını yedekleyin
ApsaraDB RDS for SQL Server örneğinizin sürümüne göre bir çözüm seçin.
SQL Server 2012 veya sonrası ya da cloud diskli SQL Server 2008 R2
Kendi kendinize yönetilen veritabanı için tam yedekleme oluşturmadan önce veri yazma işlemlerinin durdurulduğundan emin olun. Yedekleme işlemi sırasında yazılan veriler yedekleme dosyasına dahil edilmez.
-
Kaynak veritabanının mevcut kurtarma modelini kontrol etmek için aşağıdaki komutu çalıştırın:
SELECT name AS DatabaseName, recovery_model_desc AS RecoveryModel, state_desc AS State FROM sys.databases ORDER BY name;ApsaraDB RDS'e geçiş için üretim yedeklemesi oluşturmadan önce veritabanının kurtarma modelini FULL olarak değiştirin:
ALTER DATABASE [db_simple] SET RECOVERY FULL WITH NO_WAIT; yedekleme betiğini indirin ve ardından yedekleme betiğini SQL Server Management Studio (SSMS) içinde açın.
-
Betiğin SELECT ifadesindeki aşağıdaki parametreleri değiştirin. Parametreler, betikte
YOU HAVE TO INIT PUBLIC VARIABLES HEREsatırının altında yer alır.Parametre
Açıklama
@backup_databases_list
Yedeklemek istediğiniz veritabanları. Birden çok veritabanını noktalı virgül (;) veya virgül (,) ile ayırın.
@backup_type
Yedekleme türü. Geçerli değerler:
FULL: tam yedekleme.
DIFF: artımlı yedekleme.
LOG: günlük yedekleme.
@backup_folder
Yedekleme dosyalarının depolandığı yerel dizin. Dizin yoksa otomatik olarak oluşturulur.
@is_run
Yedeklemenin yapılıp yapılmayacağını belirtir. Geçerli değerler:
1: yedeklemeyi gerçekleştirir.
0: yalnızca kontrol gerçekleştirir ve yedekleme yapmaz.
Yedekleme betiğini çalıştırın.
Yüksek performanslı yerel diskli SQL Server 2008 R2
Microsoft SQL Server Management Studio (SSMS) uygulamasını açın.
Geçirmek istediğiniz veritabanında oturum açın.
-
Kaynak veritabanının mevcut kurtarma modelini kontrol etmek için aşağıdaki komutu çalıştırın:
USE master; GO SELECT name, CASE recovery_model WHEN 1 THEN 'FULL' WHEN 2 THEN 'BULK_LOGGED' WHEN 3 THEN 'SIMPLE' END model FROM sys.databases WHERE name NOT IN ('master','tempdb','model','msdb'); GOSorgu sonucundaki
modeldeğeriFULLdeğilse 4. Adımı uygulayın.Sorgu sonucundaki
modeldeğeriFULLise 5. Adımı uygulayın.
-
Kaynak veritabanının kurtarma modelini
FULLolarak ayarlamak için aşağıdaki komutu çalıştırın:ALTER DATABASE [dbname] SET RECOVERY FULL; GO ALTER DATABASE [dbname] SET AUTO_CLOSE OFF; GOÖnemliKurtarma modeli
FULLolarak ayarlandıktan sonra daha fazla SQL Server günlüğü oluşturulur. Yeterli disk alanı bulunduğundan emin olun. -
Kaynak veritabanını yedeklemek için aşağıdaki komutu çalıştırın.
Bu örnekte dbtest veritabanı backup.bak dosyasına yedeklenmektedir.
USE master; GO BACKUP DATABASE [dbtest] to disk ='d:\backup\backup.bak' WITH COMPRESSION,INIT; GO -
Yedekleme dosyasının bütünlüğünü doğrulamak için aşağıdaki komutu çalıştırın:
USE master GO RESTORE FILELISTONLY FROM DISK = N'D:\backup\backup.bak';ÖnemliBir sonuç kümesi döndürülürse yedekleme dosyası geçerlidir.
Bir hata bildirilirse yedeklemeyi tekrar gerçekleştirin.
-
İsteğe bağlı: Veritabanının kurtarma modelini geri yüklemek için aşağıdaki komutu çalıştırın:
ÖnemliVeritabanının kurtarma modeli zaten
FULLise bu adımı atlayın.ALTER DATABASE [dbname] SET RECOVERY SIMPLE; GO
2. Yedekleme dosyasını OSS'e yükleyin
ApsaraDB RDS for SQL Server örneğinizin sürümüne göre bir çözüm seçin.
SQL Server 2012 veya sonrası ya da cloud diskli SQL Server 2008 R2
-
Yedekleme dosyalarını OSS'e yüklemeden önce OSS'te bir paket oluşturmanız gerekir.
-
OSS'te zaten bir paket varsa paketin aşağıdaki gereksinimleri karşıladığından emin olun:
Paketin depolama sınıfı Standard olmalıdır. IA, Archive, Cold Archive ve Deep Cold Archive depolama sınıfları desteklenmez.
Paket için sunucu tarafı şifreleme etkinleştirilmemiştir.
-
OSS'te paket yoksa önce bir paket oluşturun. (OSS'in etkinleştirildiğinden emin olun.)
OSS konsolunda oturum açın, Buckets seçeneğine tıklayın ve ardından Create bucket seçeneğine tıklayın.
-
Aşağıdaki anahtar parametreleri yapılandırın ve diğer parametreler için varsayılan değerleri koruyun.
ÖnemliBu paket yalnızca bu veri geçişi , bu nedenle yalnızca anahtar parametreleri yapılandırmanız gerekir. Geçiş tamamlandıktan sonra veri sızıntılarını ve ek ücretleri önlemek için paketi zamanında silin.
Paketi oluştururken sunucu tarafı şifrelemeyi etkinleştirmeyin.
Parametre
Açıklama
Örnek
Bucket Name
Paketin adı. Ad globally benzersiz olmalı ve paket oluşturulduktan sonra değiştirilememelidir.
Adlandırma kuralları:
Ad yalnızca küçük harfler, rakamlar ve tire (-) içerebilir.
Ad küçük harf veya rakamla başlamalı ve bitmelidir.
Ad 3 ila 63 karakter uzunluğunda olmalıdır.
migratetest
Region
Paketin bulunduğu bölge. Verileri bir ECS örneğinden dahili ağ üzerinden pakete yükler ve verileri ApsaraDB RDS örneğine dahili ağ üzerinden geri yüklerseniz ECS örneğinin, paketin ve ApsaraDB RDS örneğinin aynı bölgede bulunduğundan emin olun.
China (Hangzhou)
Storage Type
Standard seçeneğini seçin. Bu konuda açıklanan geçiş işlemi diğer depolama sınıflarındaki paketleri desteklemez.
Standard
-
-
Yedekleme dosyasını OSS'e yükleyin.
Kendi kendinize yönetilen veritabanının yedeklemesi tamamlandıktan sonra yedekleme dosyasını ApsaraDB RDS örneğinizle aynı bölgede bulunan bir OSS paketine yükleyin. Paket ve ApsaraDB RDS örneği aynı bölgedeyse paket ile örnek arasında dahili ağ üzerinden iletişim kurulabilir. Bu durumda İnternet trafiği ücreti alınmaz ve veriler daha hızlı bir hızda yüklenir. Aşağıdaki yöntemlerden birini kullanabilirsiniz:
Yüksek performanslı yerel diskli SQL Server 2008 R2
-
Yedekleme dosyalarını OSS'e yüklemeden önce OSS'te bir paket oluşturmanız gerekir.
-
OSS'te zaten bir paket varsa paketin aşağıdaki gereksinimleri karşıladığından emin olun:
Paketin depolama sınıfı Standard olmalıdır. IA, Archive, Cold Archive ve Deep Cold Archive depolama sınıfları desteklenmez.
Paket için sunucu tarafı şifreleme etkinleştirilmemiştir.
-
OSS'te paket yoksa önce bir paket oluşturun. (OSS'in etkinleştirildiğinden emin olun.)
OSS konsolunda oturum açın, Buckets seçeneğine tıklayın ve ardından Create bucket seçeneğine tıklayın.
-
Aşağıdaki anahtar parametreleri yapılandırın ve diğer parametreler için varsayılan değerleri koruyun.
ÖnemliBu paket yalnızca bu veri geçişi , bu nedenle yalnızca anahtar parametreleri yapılandırmanız gerekir. Geçiş tamamlandıktan sonra veri sızıntılarını ve ek ücretleri önlemek için paketi zamanında silin.
Paketi oluştururken sunucu tarafı şifrelemeyi etkinleştirmeyin.
Parametre
Açıklama
Örnek
Bucket Name
Paketin adı. Ad globally benzersiz olmalı ve paket oluşturulduktan sonra değiştirilememelidir.
Adlandırma kuralları:
Ad yalnızca küçük harfler, rakamlar ve tire (-) içerebilir.
Ad küçük harf veya rakamla başlamalı ve bitmelidir.
Ad 3 ila 63 karakter uzunluğunda olmalıdır.
migratetest
Region
Paketin bulunduğu bölge. Verileri bir ECS örneğinden dahili ağ üzerinden pakete yükler ve verileri ApsaraDB RDS örneğine dahili ağ üzerinden geri yüklerseniz ECS örneğinin, paketin ve ApsaraDB RDS örneğinin aynı bölgede bulunduğundan emin olun.
China (Hangzhou)
Storage Type
Standard seçeneğini seçin. Bu konuda açıklanan geçiş işlemi diğer depolama sınıflarındaki paketleri desteklemez.
Standard
-
-
Yedekleme dosyasını OSS'e yükleyin.
Kendi kendinize yönetilen veritabanının yedeklemesi tamamlandıktan sonra yedekleme dosyasını ApsaraDB RDS örneğinizle aynı bölgede bulunan bir OSS paketine yükleyin. Paket ve ApsaraDB RDS örneği aynı bölgedeyse paket ile örnek arasında dahili ağ üzerinden iletişim kurulabilir. Bu durumda İnternet trafiği ücreti alınmaz ve veriler daha hızlı bir hızda yüklenir. Aşağıdaki yöntemlerden birini kullanabilirsiniz:
-
Yedekleme dosyası URL'sinin geçerlilik süresini ayarlayın ve yedekleme dosyasının URL'sini edinin.
OSS konsolunda oturum açın.
Buckets seçeneğine tıklayın ve ardından hedef paketin adına tıklayın.
Sol gezinme bölmesinde File Management > Files seçeneklerini seçin.
-
Hedef veritabanı yedekleme dosyasının İşlemler sütununda Details seçeneğine tıklayın ve ardından açılan panelde Expiration (Seconds) değerini 28800 saniye (8 saat) olarak değiştirin.
ÖnemliYedekleme dosyasını OSS'ten ApsaraDB RDS'e geçirirken yedekleme dosyasının URL'si gerekir. Geçiş tamamlanmadan önce URL'nin süresi dolarsa veri geçişi başarısız olur.
Yedekleme dosyasının URL'sini edinmek için Copy Object URL seçeneğine tıklayın.
-
Yedekleme dosyasının URL'sini değiştirin.
Edindiğiniz URL, varsayılan olarak dosyanın genel URL'sidir. Verileri dahili ağ üzerinden geçirmek için dosya URL'sindeki uç noktayı dahili uç nokta ile değiştirin.
Örneğin, yedekleme dosyasının URL'si
http://rdstest.oss-cn-shanghai.aliyuncs.com/testmigraterds_20170906143807_FULL.bak?Expires=15141****&OSSAccessKeyId=TMP****ise URL'dekioss-cn-shanghai.aliyuncs.comifadesinioss-cn-shanghai-internal.aliyuncs.comile değiştirin.ÖnemliDahili uç noktalar ağ türüne ve bölgeye göre değişir. Daha fazla bilgi için bkz. Bölgeler ve uç noktalarBölgeler ve uç noktalar.
3. OSS yedekleme verilerini ApsaraDB RDS'e aktarın
ApsaraDB RDS for SQL Server örneğinizin sürümüne göre bir çözüm seçin.
SQL Server 2012 veya sonrası ya da cloud diskli SQL Server 2008 R2
Instances sayfasına gidin. Üst gezinme çubuğunda RDS örneğinin bulunduğu bölgeyi seçin. Ardından RDS örneğini bulun ve örneğin Kimliğine tıklayın.
Sol gezinme bölmesinde Restoration seçeneğini belirleyin.
Sayfanın üst kısmındaki Restore Backup Data from OSS seçeneğine tıklayın.
-
Import Guide sayfasında, veri aktarma adımına gitmek için Next düğmesine iki kez tıklayın.
NotOSS yedekleme verisi geçiş özelliğini ilk kez kullanırken ApsaraDB RDS hizmet hesabının OSS'e erişmesine yetki vermeniz gerekir. Authorization URL seçeneğine tıklayarak yetkilendirmeyi onaylayın. Aksi takdirde izin sorunu nedeniyle OSS Bucket açılır listesi boş görünür.
Hedef dosya sayfada görüntülenmiyorsa OSS'teki yedekleme dosyasının dosya uzantısının gereksinimleri karşılayıp karşılamadığını kontrol edin (uzantı gereksinimlerini bu konudaki Notlar bölümünde görebilirsiniz) ve ApsaraDB RDS örneği ile OSS paketinin aynı bölgede bulunduğundan emin olun.
-
Aşağıdaki parametreleri yapılandırın.
Parametre
Açıklama
Database Name
Yedekleme verilerinin hedef ApsaraDB RDS örneğinde aktarılacağı veritabanının adı. Ad, resmi SQL Server adlandırma kurallarına uygun olmalıdır.
ÖnemliVerileri buluta geçirmeden önce hedef örnekte yedekleme dosyasından geri yüklenecek veritabanıyla aynı ada sahip bir veritabanının ve aynı ada sahip eklenmemiş bir veritabanı dosyasının bulunmadığından emin olun. Her ikisi de yoksa yedekleme kümesindeki hedef veritabanı adıyla aynı ada sahip veritabanı dosyasını kullanarak veritabanını geri yükleyebilirsiniz.
Hedef örnekte yedekleme dosyasından geri yüklenecek veritabanıyla aynı ada sahip bir veritabanı veya aynı ada sahip eklenmemiş bir veritabanı dosyası varsa geçiş başarısız olur.
OSS Bucket
Yedekleme dosyasının depolandığı OSS paketini seçin.
OSS File
Yedekleme dosyalarını dosya adı önekiyle aramak için sağ taraftaki
simgesine tıklayın. Her dosyanın dosya adı, dosya boyutu ve güncelleme zamanı görüntülenir. Geçirmek istediğiniz yedekleme dosyasını seçin.Cloud Migration Method
Immediate Access (Only One Full Backup): tam geçiş. Bu seçenek yalnızca bir tam yedekleme dosyasının geçiş için kullanıldığı senaryolar için uygundur. Bu örnekte Immediate Access (Only One Full Backup) seçeneği seçilmiştir. Bu durumda CreateMigrateTask işlemi için
BackupMode = FULLveIsOnlineDB = Trueparametreleri kullanılır.Access Pending (Incremental Backup or Log Files): artımlı geçiş. Bu seçenek, bir tam yedekleme dosyasının günlük yedekleme dosyaları veya artımlı yedekleme dosyalarıyla birlikte geçiş için kullanıldığı senaryolar için uygundur. Bu durumda CreateMigrateTask işlemi için
BackupMode = UPDFveIsOnlineDB = Falseparametreleri kullanılır.
Consistency Check Mode
Asynchronous DBCC: Sistem, veritabanı açıldığında DBCC CHECKDB çalıştırmaz. Bunun yerine sistem, veritabanı açma görevi tamamlandıktan sonra DBCC CHECKDB işlemini eşzamansız olarak çalıştırır. Bu sayede veritabanı açmanın zaman maliyeti azaltılır (büyük veritabanlarında DBCC CHECKDB zaman alıcıdır) ve hizmet kesinti süresi kısaltılır. Kesinti süresine karşı hassasiyetiniz yüksekse ve DBCC CHECKDB sonuçlarıyla ilgilenmiyorsanız eşzamansız DBCC kullanın. Bu durumda CreateMigrateTask işlemi için
CheckDBMode = AsyncExecuteDBCheckparametresi kullanılır.Synchronous DBCC: Eşzamansız DBCC'ye kıyasla eşzamanlı DBCC, DBCC CHECKDB sonuçlarıyla ilgilenen ve kendi kendinize yönetilen veritabanlarında veri tutarlılığı hatalarını tespit etmek isteyen kullanıcılar için daha uygundur. Bu durumda veritabanının açılması için gereken süre artar. Bu durumda CreateMigrateTask işlemi için
CheckDBMode = SyncExecuteDBCheckparametresi kullanılır.
-
OK seçeneğine tıklayın.
Geçiş görevinin tamamlanmasını bekleyin. Görevin en son durumunu görüntülemek için Refresh seçeneğine tıklayabilirsiniz. Geçiş görevi başarısız olursa görev açıklamasındaki mesaja göre sorunu giderin. Daha fazla bilgi için bu konudaki Yaygın hatalar bölümüne bakın.
NotVeri geçişi tamamlandıktan sonra sistem, ApsaraDB RDS örneğinin otomatik yedekleme ilkesine göre belirtilen yedekleme saatinde bir yedekleme başlatır. Yedekleme saatini manuel olarak değiştirebilirsiniz. Oluşturulan yedekleme kümesi geçirilen verileri içerir. Yedekleme kümesini ApsaraDB RDS örneğinin Restoration sayfasında görüntüleyebilirsiniz.
Yedekleme saati gelmediyse ancak bulutta mümkün olan en kısa sürede bir yedekleme oluşturmak istiyorsanız manuel yedekleme gerçekleştirebilirsiniz.
Yüksek performanslı yerel diskli SQL Server 2008 R2
ApsaraDB RDS konsolunda oturum açın ve Instances sayfasına gidin. Üst gezinme çubuğunda RDS örneğinin bulunduğu bölgeyi seçin. Ardından RDS örneğini bulun ve örneğin Kimliğine tıklayın.
Sol gezinme bölmesinde Databases seçeneğine tıklayın.
Hedef veritabanını bulun ve Actions sütununda Migrate Backup Files from OSS seçeneğine tıklayın.
Import Guide iletişim kutusunda mesajı okuyun ve ardından Next seçeneğine tıklayın.
OSS yükleme hakkındaki mesajı okuyun ve ardından Next seçeneğine tıklayın.
-
OSS URL of the Backup File alanına yedekleme dosyasının OSS URL'sini girin ve ardından OK seçeneğine tıklayın.
NotYüksek performanslı yerel diskli SQL Server 2008 R2 çalışan ApsaraDB RDS for SQL Server örnekleri yalnızca tam yedekleme dosyalarını tek seferde buluta geçiren çözümü destekler.
4. Yedekleme geçiş ilerlemesini görüntüleyin
ApsaraDB RDS for SQL Server örneğinizin sürümüne göre bir çözüm seçin.
SQL Server 2012 veya sonrası ya da cloud diskli SQL Server 2008 R2
ApsaraDB RDS örneğinin sol gezinme bölmesindeki Restoration sayfasına gidin ve ardından Cloud Migration Records of Backup Data sekmesindeki yedekleme geçiş kayıtlarını görüntüleyin. Kayıtlar görev durumu, görev başlangıç saati ve görev bitiş saati bilgilerini içerir. Varsayılan olarak son haftanın kayıtları görüntülenir. Zaman aralığını gerektiği şekilde değiştirebilirsiniz.
Task Status değeri Failed ise Task Description bilgisini kontrol edin veya hedef geçiş görevinin yanındaki View File Details seçeneğine tıklayarak hatanın nedenini belirleyip düzeltin ve ardından veri geçişini tekrar gerçekleştirin.
Yüksek performanslı yerel diskli SQL Server 2008 R2
ApsaraDB RDS örneğinin sol gezinme bölmesindeki veri geçiş sayfasına gidin ve ardından veri geçişinin ilerlemesini görüntülemek için hedef geçiş görevini bulun.
Task Status değeri Failed ise Task Description bilgisini kontrol edin veya hedef geçiş görevinin yanındaki View File Details seçeneğine tıklayarak hatanın nedenini belirleyip düzeltin ve ardından veri geçişini tekrar gerçekleştirin.
Yaygın hatalar
Her yedekleme geçiş kaydı bir görev açıklaması içerir. Görev açıklamalarından görev hatalarının ve hataların nedenlerini belirleyebilirsiniz. Aşağıdaki hata mesajları yaygındır:
-
Aynı ada sahip bir veritabanı zaten var
Hata mesajı 1: The database (xxx) is already exist on RDS, please backup and drop it, then try again.
Hata mesajı 2: Database 'xxx' already exists. Choose a different database name.
Neden: ApsaraDB RDS for SQL Server üzerinde veri güvenliğini sağlamak amacıyla ApsaraDB RDS for SQL Server, mevcut bir veritabanıyla aynı ada sahip bir veritabanına veri geçişini desteklemez.
Çözüm: Mevcut veritabanının verilerinin üzerine yazmak istiyorsanız mevcut verileri yedekleyin, veritabanını silin ve ardından veri geçiş görevini tekrar gerçekleştirin.
-
Artımlı yedekleme dosyası kullanılıyor
Hata mesajı: Backup set (xxx.bak) is a Database Differential backup, we only accept a FULL Backup.
Neden: Sağladığınız yedekleme dosyası tam yedekleme dosyası yerine artımlı yedekleme dosyasıdır. Tek seferlik tam yedekleme dosyası geçişi yalnızca tam yedekleme dosyalarını destekler ve artımlı yedekleme dosyalarını desteklemez.
-
Günlük yedekleme dosyası kullanılıyor
Hata mesajı: Backup set (xxx.trn) is a Transaction Log backup, we only accept a FULL Backup.
Neden: Sağladığınız yedekleme dosyası tam yedekleme dosyası yerine günlük yedekleme dosyasıdır. Tek seferlik tam yedekleme dosyası geçişi yalnızca tam yedekleme dosyalarını destekler ve günlük yedekleme dosyalarını desteklemez.
-
Yedekleme dosyası doğrulama hatası
Hata mesajı: Failed to verify xxx.bak, backup file was corrupted or newer edition than RDS.
Neden: Yedekleme dosyası bozuk veya kendi kendinize yönetilen ortamdaki SQL Server örneğinin sürümü, ApsaraDB RDS for SQL Server örneğinin sürümünden daha yeni. Bu nedenle doğrulama başarısız oluyor. Örneğin, SQL Server 2016 yedekleme dosyasını SQL Server 2012 çalışan bir ApsaraDB RDS for SQL Server örneğine geri yüklediğinizde bu hata bildirilir.
-
Çözüm: Yedekleme dosyası bozuksa kendi kendinize yönetilen ortamda başka bir tam yedekleme oluşturun ve yeni bir geçiş görevi oluşturun. Kendi kendinize yönetilen ortamdaki SQL Server örneğinin sürümü ApsaraDB RDS for SQL Server örneğinin sürümünden daha yeniyse aynı sürümü veya daha yeni bir sürümü çalışan bir ApsaraDB RDS for SQL Server örneği kullanın.
NotMevcut bir ApsaraDB RDS for SQL Server örneğini daha yeni bir sürüme yükseltmek için bkz. Veritabanı sürümünü yükseltme.
-
DBCC CHECKDB hatası
Hata mesajı: DBCC checkdb failed.
Neden: DBCC CHECKDB işlemi başarısız oldu. Bu durum, kendi kendinize yönetilen ortamdaki veritabanında hata oluştuğunu gösterir.
-
Çözüm: Aşağıdaki komutu kullanarak kendi kendinize yönetilen ortamdaki veritabanı hatalarını düzeltin ve ardından verileri tekrar geçirin.
ÖnemliBu komutu kullanarak hataları düzeltme süreci veri kaybına neden olabilir.
DBCC CHECKDB (DBName, REPAIR_ALLOW_DATA_LOSS) WITH NO_INFOMSGS, ALL_ERRORMSGS
-
Yetersiz depolama alanı 1
Hata mesajı: Not Enough Disk Space for restoring, space left (xxx MB) < needed (xxx MB).
Neden: ApsaraDB RDS örneğinin kalan depolama alanı, yedekleme dosyasını geçirmek için gereken minimum depolama alanını karşılamıyor.
-
Yetersiz depolama alanı 2
Hata mesajı: Not Enough Disk Space, space left xxx MB < bak file xxx MB.
Neden: ApsaraDB RDS örneğinin kalan depolama alanı yedekleme dosyasının boyutundan küçüktür ve minimum depolama alanı gereksinimini karşılamaz.
-
Oturum açma hesabının yetersiz izinleri
Hata mesajı: Cannot open database "xxx" requested by the login. The login failed.
Neden: ApsaraDB RDS örneğinde oturum açmak için kullanılan hesabın veritabanı üzerinde erişim izni yok.
Çözüm: ApsaraDB RDS örneğinin Accounts sayfasında hesaba veritabanı üzerinde erişim veya yönetim izni verin. Daha fazla bilgi için bkz. Bir hesabın izinlerini değiştirme ve ApsaraDB RDS for SQL Server örneğinde hesap izinleri.
-
Yetkili hesap yok
Hata mesajı: Your RDS doesn’t have any init account yet, please create one and grant permissions on RDS console to this migrated database (xxx).
Neden: ApsaraDB RDS örneğinde yetkili hesap yok. Geçiş görevi, geçirilen veritabanı üzerindeki izinlerin hangi hesaba verilmesi gerektiğini belirleyemiyor. Ancak yedekleme dosyası hedef örneğe geri yüklenir. Bu nedenle görev durumu Başarılı olarak işaretlenir.
Çözüm: Yetkili bir hesap oluşturun.
-
RAM kullanıcısının yetersiz işlem izinleri
S1: veri geçiş görevi oluşturma prosedürünün 5. Adımını uygularken tüm parametreler yapılandırılmış olsa da OK düğmesi gri renkte görünür ve tıklanamaz. Ne yapmalıyım?
C1: Düğmenin tıklanamamasının nedeni bir RAM kullanıcısı olarak oturum açmış olmanız ve hesabınızın yetersiz izinlere sahip olması olabilir. Gerekli izinlerin verildiğinden emin olmak için bu konudaki Önkoşullar bölümünü kontrol edin.
-
S2: Bir RAM kullanıcısı kullanarak
AliyunRDSImportRoleüzerinde izin verirkenpermission deniedmesajı görünürse ne yapmalıyım? C2: Alibaba Cloud ana hesabınızı kullanarak RAM kullanıcısına geçici olarak AliyunRAMFullAccess izni verin.
-
Veritabanı adı bir SQL Server sistem veritabanının adıyla aynı
Hata mesajı: The database (xxx) is mssql system db, change your database name and try again.
Neden: Belirtilen veritabanı adı master, msdb, tempdb veya model gibi bir SQL Server sistem veritabanının adıyla aynı.
Çözüm: Farklı bir veritabanı adı belirtin.
-
Veritabanı adı RDS örneğinin bir sistem veritabanının adıyla aynı
Hata mesajı: The database (xxx) is RDS system db, change your database name and try again.
Neden: Belirtilen veritabanı adı rdscore gibi ApsaraDB RDS for SQL Server örneğinin bir yönetim veritabanının adıyla aynı.
Çözüm: Farklı bir veritabanı adı belirtin.
-
Veritabanı sayısı üst sınırı aşıyor
Hata mesajı: The database (xxx) migration failed due to databases count limitation: xxx.
Neden: Veritabanı sayısı üst sınırı aşıyor.
Çözüm: Örnekteki veritabanı sayısını azaltın ve tekrar deneyin.
-
OSS indirme URL sorunları
Hata mesajı 1: Failed to download backup (xxx) since OSS URL was expired.
Hata mesajı 2: Failed to download since could not find backup file (xxx) on OSS.
Neden: OSS indirme URL'sinin süresi doldu, ApsaraDB RDS hizmet hesabına yetki verilmedi, RAM kullanıcısının izinleri yetersiz veya dosya mevcut değil.
Çözüm: Dosyanın OSS'te mevcut olup olmadığını, izinlerin doğru verilip verilmediğini ve yetkilendirmenin geçerli olup olmadığını kontrol edin. Ardından tekrar deneyin.
-
Şeritli yedekleme sorunları
Hata mesajı: Failed to verify (xxx.bak), error message:The media set has xxx media families but only 1 are provided. All members must be provided. VERIFY DATABASE is terminating abnormally.
Neden: Kaynak veritabanı yedeklenirken şeritli yedekleme özelliği kullanıldı. Bu durumda tam yedekleme birden çok .bak dosyasına bölünür ancak veriler OSS'ten ApsaraDB RDS'e geçirilirken yalnızca bir dosya sağlanır. ApsaraDB RDS, tek seferde birden çok dosyaya dayalı geçişi desteklemez.
Çözüm: Kaynak veritabanını tek bir .bak dosyasına yedekleyin ve tekrar deneyin.
Yaygın dönüş mesajları
Görev türü | Görev durumu | Görev açıklaması | Açıklama |
Tek seferlik tam yedekleme dosyası geçişi | Başarılı |
| Geçiş başarılı. |
Başarısız |
| OSS indirme URL'sinin geçerlilik süresi dolduğu için geçiş başarısız oldu. | |
| Yedekleme dosyası bozuk veya RDS sürümünden daha yeni bir sürümde oluşturulduğu için geçiş başarısız oldu. | ||
| DBCC checkdb işlemi başarısız olduğu için geçiş başarısız oldu. | ||
| Günlük yedekleme dosyası kullanıldığı için geçiş başarısız oldu. | ||
| Artımlı yedekleme dosyası kullanıldığı için geçiş başarısız oldu. |
İlgili API işlemleri
|
|
|
|
|
|
|
|
|
|
|
|
|
|
simgesine tıklayın, yüklemek istediğiniz yedekleme dosyasını seçin ve ardından Aç'a tıklayın. Yerel dosya OSS'e yüklenir.