ApsaraDB RDS for SQL Server, kendi yönetiminizdeki SQL Server üzerinde bulunan bir veya daha fazla veritabanındaki tüm veri kümesinin örnek düzeyinde cloud'a taşınmasını sağlar. Geçiş yapmak için kendi yönetiminizdeki SQL Server'daki tüm veritabanlarını yedekleyin, yedek dosyalarını tek bir OSS paketindeki klasöre yükleyin ve cloud geçiş betiğini çalıştırın.
Tek bir veritabanı geçirmek için bkz. Tam yedekten veri geçirme ve Artımlı yedekten veri geçirme.
Önkoşullar
Kaynak, kendi yönetiminizdeki bir SQL Server veritabanı olmalıdır.
-
Hedef ApsaraDB RDS for SQL Server örneği aşağıdaki gereksinimleri karşılamalıdır:
Örnekteki kullanılabilir depolama alanı, taşınacak veri dosyalarının boyutundan büyük olmalıdır. Kullanılabilir depolama alanı yetersizse örnek teknik özelliklerini yükseltin.
SQL Server 2008 R2 için, hedef örnekte kaynak veritabanıyla aynı ada sahip bir veritabanı oluşturmanız gerekir. Bu gereksinim diğer sürümler için geçerli değildir.
-
Bir RAM kullanıcısı olarak oturum açıyorsanız aşağıdaki gereksinimler karşılanmalıdır:
RAM kullanıcısına AliyunOSSFullAccess ve AliyunRDSFullAccess izinleri verilmiştir. 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 (birincil hesap), ApsaraDB RDS resmi hizmet hesabının OSS kaynaklarınıza erişmesine yetki vermiştir.
-
Alibaba Cloud hesabınızda (birincil hesap) manuel olarak bir izin ilkesi oluşturun ve ardından bu ilkeyi RAM kullanıcısına ekleyin.
Sınırlamalar
Bu çözüm yalnızca tam geçişi destekler; artımlı geçiş şu anda desteklenmemektedir.
Faturalama
Bu konuda açıklanan yöntemi kullanarak veri geçirdiğinizde yalnızca OSS paketlerinin kullanımı için ücretlendirilirsiniz.
|
Senaryo |
Faturalama kuralı |
|
Yedek dosyalarını bir OSS paketine yükleme |
Ücretsizdir. |
|
Yedek dosyalarını bir OSS paketinde depolama |
Depolama ücreti ödersiniz. Daha fazla bilgi için OSS'nin Fiyatlandırma sayfasını ziyaret edin. |
|
Yedek dosyalarını bir OSS paketinden RDS örneğinize taşıma |
|
Önkoşullar
1. Python 3'ü yükleyin
İşletim sisteminiz için uygun paketi indirmek ve yüklemek üzere resmi Python web sitesine gidin. 3.12 veya sonraki bir sürümü seçin.
Windows: Kurulum sırasında, ortam değişkenini manuel olarak yapılandırmaktan kaçınmak için
Add python.exe to PATHonay kutusunu seçin.macOS/Linux: Resmi yükleyiciyi veya Homebrew, apt ya da dnf gibi bir paket yöneticisini kullanarak kurulum yapabilirsiniz. Rehberlik için resmi web sitesine bakın.
2. Python kurulumunu ve sürümünü doğrulayın
Çalıştırılabilir dosyanın adı, işletim sisteminize ve kurulum yönteminize bağlı olarak farklılık gösterebilir (örneğin python, python3 veya py). Komutları sırayla deneyin ve kurulumu onaylamak için çıktıyı kontrol edin.
3. SDK bağımlılıklarını yükleyin
pip install alibabacloud_rds20140815
pip install alibabacloud-oss-v2
pip install alibabacloud_tea_openapi
pip install alibabacloud_tea_util
1. Kendi yönetiminizdeki SQL Server veritabanlarını yedekleme
Veri tutarlılığını sağlamak için tam yedekleme sırasında yeni veri yazmayın. Hizmetlerinizi aksatmamak için bu işlemi önceden planlayın.
Yedekleme betiğini kullanmıyorsanız yedek dosyalarınıveritabanı_adı_yedekleme_türü_yedekleme_zamanı.bak biçiminde adlandırmanız gerekir, örneğin
Testdb_FULL_20180518153544.bak. Aksi takdirde yedekleme başarısız olur.
Yedekleme betiğini indirin.
Microsoft SQL Server Management Studio (SSMS) içinde açmak için yedekleme betiğine çift tıklayın. SSMS kullanarak bağlanma talimatları için resmi belgelere bakın.
-
Aşağıdaki parametreleri gerektiği gibi değiştirin.
Parametre
Açıklama
@backup_databases_list
Yedeklenecek veritabanları. Birden fazla veritabanı adını ayırmak için noktalı virgül (;) veya virgül (,) kullanın.
@backup_type
Yedekleme türü. Geçerli değerler:
FULL: tam yedekleme.
DIFF: fark yedekleme.
LOG: günlük yedekleme.
ÖnemliBu prosedür için bu parametreyi FULL olarak ayarlamanız gerekir.
@backup_folder
Yedek dosyalarını depolamak için yerel dizin. Bu dizin yoksa otomatik olarak oluşturulur.
@is_run
Yedeklemenin çalıştırılıp çalıştırılmayacağını belirtir. Geçerli değerler:
1: Yedeklemeyi çalıştırır.
0: Yalnızca kontrol gerçekleştirir.
-
Veritabanlarını belirtilen dizine yedeklemek için yedekleme betiğini çalıştırın.
Yedekleme tamamlandıktan sonra
C:\backupdizininde.bakyedek dosyaları oluşturulur, örneğindtstestdata_FULL_20200408154821.bakvetestdb_FULL_20200408154821.bak. Bu dosyalar yedekleme betiğinin başarıyla çalıştığını gösterir.
2. Yedek dosyalarını OSS'e yükleme
-
Yedek 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 yeterlidir. 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 küresel olarak 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. Dahili ağ üzerinden bir ECS örneğinden pakete veri yüklerseniz ve verileri dahili ağ üzerinden ApsaraDB RDS örneğine 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 belirleyin. Bu konuda açıklanan geçiş işlemi diğer depolama sınıflarındaki paketleri desteklemez.
Standard
-
-
Yedek dosyasını OSS'e yükleyin.
Kendi yönetiminizdeki veritabanının yedeklenmesi tamamlandıktan sonra yedek dosyasını ApsaraDB RDS örneğinizle aynı bölgede bulunan bir OSS paketine yükleyin. Paket ve ApsaraDB RDS örneği aynı bölgede bulunursa paket ile örnek dahili ağ üzerinden iletişim kurabilir. Bu durumda İnternet trafiği ücreti alınmaz ve veriler daha hızlı yüklenir. Aşağıdaki yöntemlerden birini kullanabilirsiniz:
3. Geçiş betiğini çalıştırma
SQL Server geçiş betiğini indirin.
-
Paketi çıkardıktan sonra betiğin parametrelerini görüntülemek için aşağıdaki komutu çalıştırın.
python ~/Downloads/RDSSQLCreateMigrateTasksBatchly.py -hKomut aşağıdaki çıktıyı döndürür:
RDSSQLCreateMigrateTasksBatchly.py -k <access_key_id> -s <access_key_secret> -i <rds_instance_id> -e <oss_endpoint> -b <oss_bucket> -d <directory>Aşağıdaki tabloda parametreler açıklanmaktadır.
Parametre
Açıklama
access_key_id
Alibaba Cloud hesabınızın AccessKey ID'si.
access_key_secret
Alibaba Cloud hesabınızın AccessKey Secret'ı.
rds_instance_id
Hedef RDS örneğinin ID'si.
oss_endpoint
Paketinizin bulunduğu OSS bölgesinin uç noktası.
oss_bucket
Yedek dosyalarını içeren paketin adı.
directory
OSS paketindeki yedek dosyaları için dizin. Kök dizin için/girin. -
Geçişi tamamlamak için geçiş betiğini çalıştırın.
Bu konuda,
testdatabucketadlı bir OSS paketininMigrationdatadizinindeki belirtilen koşulları karşılayan tüm yedek dosyalarının, rm-2zesz5774ud8s**** örnek ID'sine sahip bir ApsaraDB RDS for SQL Server örneğine tamamen taşınmasına ilişkin bir örnek sunulmaktadır.python ~/Downloads/RDSSQLCreateMigrateTasksBatchly.py -k yourAccessKeyID -s yourAccessKeySecret -i rm-2zesz5774ud8s**** -e oss-cn-beijing.aliyuncs.com -b testdatabucket -d Migrationdata
4. Geçiş görevi ilerlemesini görüntüleme
ApsaraDB RDS örneğinizin SQL Server sürümü için talimatları izleyin.
SQL Server 2012 ve sonraki sürümler
ApsaraDB RDS örneğinizin sol gezinme bölmesinde Backup and Restoration sayfasına gidin. Cloud Migration Records of Backup Data sekmesinde görev durumu, başlangıç zamanı ve bitiş zamanı dahil olmak üzere cloud geçiş kayıtlarını görüntüleyebilirsiniz. Varsayılan olarak son haftanın kayıtları görüntülenir. Zaman aralığını gerektiği gibi ayarlayın.
Task Status değeri Failed ise hedef geçiş görevinin yanındaki Task Description öğesini kontrol edin veya neden başarısız olduğunu belirlemek için View File Details seçeneğine tıklayın. Sorunu çözdükten sonra geçiş görevini yeniden çalıştırın.
SQL Server 2008 R2
ApsaraDB RDS örneğinizin sol gezinme bölmesinde Data Migration To Cloud sayfasına gidin. Ardından ilerlemeyi görüntülemek için hedef geçiş görevini bulun.
Task Status değeri Failed ise hedef geçiş görevinin yanındaki Task Description öğesini kontrol edin veya neden başarısız olduğunu belirlemek için View File Details seçeneğine tıklayın. Sorunu çözdükten sonra geçiş görevini yeniden çalıştırın.
Yaygın hatalar
Hata iletisi | Neden | Çözüm |
| OpenAPI çağrısı için kullanılan AccessKey ID yanlış. | Doğru AccessKey ID ve AccessKey Secret bilgilerini sağlayın. |
| OpenAPI çağrısı için kullanılan AccessKey Secret yanlış. | |
| Bu çözüm yalnızca ApsaraDB RDS for SQL Server'ı destekler. Diğer veritabanı motorları desteklenmez. | Geçiş hedefi olarak bir ApsaraDB RDS for SQL Server örneği kullanın. |
| Belirtilen RDS örnek ID'si mevcut değil. | Sağlanan RDS örnek ID'sinin doğru olduğunu doğrulayın. |
| Yanlış uç nokta nedeniyle bağlantı başarısız oldu. | Sağlanan uç noktanın doğru olduğunu doğrulayın. |
| Belirtilen OSS paketi mevcut değil. | Sağlanan OSS paket adının doğru olduğunu doğrulayın. |
| Belirtilen klasör OSS paketinde mevcut değil veya klasörde nitelikleri karşılayan herhangi bir veritabanı yedek dosyası yok. | Klasörün OSS paketinde mevcut olduğunu ve nitelikleri karşılayan veritabanı yedek dosyaları içerdiğini doğrulayın. |
| Yedek dosya adı gerekli adlandırma kuralına uymuyor. | Yedekleme betiğini kullanmıyorsanız yedek dosyasını |
| RAM kullanıcısının yetersiz izni var. | RAM kullanıcısına OSS ve RDS'ye erişim izni vermeniz gerekir. Bunun için AliyunOSSFullAccess ve AliyunRDSFullAccess ilkeleri gereklidir. |
| OpenAPI çağrısı bir hata döndürdü. | Döndürülen hata kodu ve hata iletisine göre kök nedeni analiz edin. |
OpenAPI hata kodları
HTTP durum kodu | Hata | İleti | Açıklama |
403 | InvalidDBName | The specified database name is not allowed. | Veritabanı adı geçersiz. Sistem veritabanı adlarını kullanamazsınız. |
403 | IncorrectDBInstanceState | The current instance state does not allow this operation. | RDS örneği geçersiz bir durumdadır. Örneğin, örnek Creating durumundadır. |
400 | IncorrectDBInstanceType | The current instance type does not support this operation. | Örneğin motoru desteklenmiyor. Bu özellik yalnızca ApsaraDB RDS for SQL Server için kullanılabilir. |
400 | IncorrectDBInstanceLockMode | The current instance lock mode does not support this operation. | Veritabanı geçersiz bir kilitleme durumundadır. |
400 | InvalidDBName.NotFound | One or more of the specified database names do not exist, or their status does not allow the operation. | Veritabanı mevcut değil.
|
400 | IncorrectDBType | The database type does not support this operation. | |
400 | IncorrectDBState | The current database state does not allow this operation. | Veritabanı geçersiz bir durumdadır, örneğin oluşturuluyor veya bir geçiş devam ediyor. |
400 | UploadLimitExceeded | The daily migration quota for the database has been exceeded. | Her örnekteki her veritabanı için günlük en fazla 20 geçişe izin verilir. |
400 | ConcurrentTaskExceeded | The daily migration quota for the instance has been exceeded. | Bir örnek için günlük en fazla 500 geçişe izin verilir. |
400 | IncorrectFileExtension | The file extension is not supported. | Yedek dosyasının uzantısı geçersiz. |
400 | InvalidOssUrl | The specified OSS URL is invalid. | Sağlanan OSS indirme URL'si kullanılamıyor. |
400 | BakFileSizeExceeded | The backup file exceeds the allowed size limit. | Yedek dosyası boyutu 3 TB'ı aşamaz. |
400 | FileSizeExceeded | The file is too large for the destination instance. | Yedek dosyasının geri yüklenmesi hedef örneğin depolama kapasitesini aşacaktır. |
İlgili API işlemleri
|
|
|
|
|
|
|
|
|
|
|
|
|
|
simgesine tıklayın, yüklemek istediğiniz yedek dosyasını seçin ve ardından Open seçeneğine tıklayın. Yerel dosya OSS'e yüklenir.