Tüm Ürünler
Search
Belge Merkezi

ApsaraDB RDS:Instance-level migration of SQL Server to the cloud

Son Güncelleme:Oct 03, 2026

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.

Not

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.

      Yetkilendirme yöntemini görüntülemek için tıklayın

      1. ApsaraDB RDS örneğinin Restoration sayfasına gidin ve ardından Restore Backup Data from OSS seçeneğine tıklayın.

      2. Import Guide sayfasında, 3. Import Data adımına gitmek için Next seçeneğine iki kez tıklayın.

        Sayfanın sol alt köşesinde You have authorized the ApsaraDB RDS official service account to access your OSS resources ifadesi görünüyorsa yetkilendirme tamamlanmıştır. Aksi takdirde yetkilendirme tamamlanmamıştır. Bu durumda yetkilendirmeyi vermek için sayfadaki Authorization URL seçeneğine tıklayın.

        3. Data Import sayfasında aşağıdaki parametreleri yapılandırın:

        • Database Name: Hedef veritabanının adını girin.

        • OSS Bucket: Açılan listeden yüklenen yedek dosyasını içeren paketi seçin.

        • OSS File List: Yedek dosyasını aramak için bir dosya adı ön eki girin ve ardından dosyayı seçin.

        • Migration Method: Open Database (Only One Full Backup File) veya Do Not Open Database (Differential Backup or Log Files Available) seçeneğini belirleyin.

        • Consistency Check Method: Synchronous DBCC veya Asynchronous DBCC seçeneğini belirleyin.

    • 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.

      İlke içeriğini görüntülemek için tıklayın

      {
          "Version": "1",
          "Statement": [
              {
                  "Action": [
                      "ram:GetRole"
                  ],
                  "Resource": "acs:ram:*:*:role/AliyunRDSImportRole",
                  "Effect": "Allow"
              }
          ]
      }

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.

image

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

  • Yedek dosyalarını bir OSS paketinden RDS örneğinize dahili ağ üzerinden taşırsanız herhangi bir ücret oluşmaz.

  • Yedek dosyalarını İnternet üzerinden taşırsanız giden İnternet trafiğine göre OSS paketi için ücretlendirilirsiniz. Daha fazla bilgi için OSS'nin Fiyatlandırma sayfasını ziyaret edin.

Ö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 PATH onay 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.

Windows (Komut İstemi veya PowerShell)

python --version
python3 --version
py --version
  • Çıktıda Python 3.12.x veya daha yeni bir sürüm gösteriliyorsa Python doğru şekilde yüklenmiş ve kullanıma hazırdır.

  • ...is not recognized as an internal or external command... gibi bir hata iletisi alıyorsanız Python kurulum yolunu PATH ortam değişkenine manuel olarak eklemeniz gerekir.

macOS/Linux (terminal)

python --version
python3 --version

Bazı sistemlerde python komutu hâlâ eski bir sürüme işaret edebilir. Önce python3 komutunu kullanın. Python 3.12 veya daha yeni bir sürümün yüklü olduğunu 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

Önemli
  • 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.

  1. Yedekleme betiğini indirin.

  2. 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.

  3. Aşağıdaki parametreleri gerektiği gibi değiştirin.

    Örneği genişletmek için tıklayın

    SELECT
        /**
        * The list of databases to back up. Use a semicolon (;) or a comma (,) as the delimiter.
        * An empty value ('') or null backs up all databases except for system databases.
        * example: '[testdb]: TestDR, Test, readonly'
        **/
        @backup_databases_list = N'[dtstestdata],[testdb]'
        @backup_type = N'FULL',                    -- The backup type. Valid values: FULL (full backup), DIFF (differential backup), LOG (log backup).
        @backup_folder = N'C:\BACKUP'              -- The folder to store the backup files.
        @is_run = 1                                -- Specifies whether to run the backup. 1: Runs the backup. 0: Performs a check only.

    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.

    Önemli

    Bu 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.

  4. Veritabanlarını belirtilen dizine yedeklemek için yedekleme betiğini çalıştırın.

    Yedekleme tamamlandıktan sonra C:\backup dizininde .bak yedek dosyaları oluşturulur, örneğin dtstestdata_FULL_20200408154821.bak ve testdb_FULL_20200408154821.bak. Bu dosyalar yedekleme betiğinin başarıyla çalıştığını gösterir.

2. Yedek dosyalarını OSS'e yükleme

  1. 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:

    • OSS'te paket yoksa önce bir paket oluşturun. (OSS'in etkinleştirildiğinden emin olun.)

      1. OSS konsolunda oturum açın, Buckets seçeneğine tıklayın ve ardından Create bucket seçeneğine tıklayın.

      2. Aşağıdaki anahtar parametreleri yapılandırın ve diğer parametreler için varsayılan değerleri koruyun.

        Önemli
        • Bu 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

  2. 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:

    Dosyaları ossbrowser kullanarak yükleme (önerilen)

    1. ossbrowser uygulamasını indirin.

    2. Bu örnekte Windows x64 kullanılmaktadır. İndirilen oss-browser-win32-x64.zip paketini ayıklayın ve ardından oss-browser.exe uygulamasına çift tıklayın.

    3. Oturum açma yöntemi olarak AK seçeneğini belirleyin, Access Key ID ve Access Key Secret parametrelerini yapılandırın, diğer parametreler için varsayılan değerleri koruyun ve ardından Log On seçeneğine tıklayın.

      Not

      AccessKey kimlik doğrulaması için kullanılır ve veri güvenliğini sağlar. AccessKey bilgilerinizi gizli tutun.

    4. Hedef pakete gitmek için pakete tıklayın.

    5. Upload icon 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.

    Dosyaları OSS konsolunu kullanarak yükleme

    Not

    Yedek dosyası 5 GB'tan küçükse yedek dosyasını doğrudan OSS konsolunda yükleyin.

    1. OSS konsolunda oturum açın.

    2. Buckets seçeneğine tıklayın ve ardından hedef paketin adına tıklayın.

    3. Files bölümünde Upload File seçeneğine tıklayın.

    4. Yedek dosyasını Files to Upload bölümüne sürükleyin veya Select Files seçeneğine tıklayarak yüklemek istediğiniz yedek dosyasını seçin.

    5. Sayfanın alt kısmındaki Upload File seçeneğine tıklayın. Yerel yedek dosyası OSS'e yüklenir.

    Dosyaları OSS API'sini kullanarak yükleme (Python 3 projesi örneği)

    Not

    Yedek dosyası 5 GB'tan büyükse OSS API işlemlerini çağırarak yedek dosyasını çok parçalı yükleme yöntemiyle OSS paketine yükleyin.

    # -*- coding: utf-8 -*-
    """
    Alibaba Cloud OSS Python SDK v2
    Dependency: pip install alibabacloud-oss-v2
    """
    
    import os
    import sys
    from pathlib import Path
    import alibabacloud_oss_v2 as oss
    from alibabacloud_oss_v2 import exceptions as oss_ex
    
    def get_client_from_env(region: str, endpoint: str | None = None) -> oss.Client:
        """
        Create a v2 client from environment variables.
        - Prioritize using Region (recommended), but also support custom Endpoints (optional).
        - Compatible with both AK and STS:
            * AK: Requires OSS_ACCESS_KEY_ID / OSS_ACCESS_KEY_SECRET
            * STS: Also requires OSS_SESSION_TOKEN (compatible with the old variable OSS_SECURITY_TOKEN)
        """
        # Compatibility: If the user uses the old variable OSS_SECURITY_TOKEN, map it to the v2 expected OSS_SESSION_TOKEN
        sec_token_legacy = os.getenv("OSS_SECURITY_TOKEN")
        if sec_token_legacy and not os.getenv("OSS_SESSION_TOKEN"):
            os.environ["OSS_SESSION_TOKEN"] = sec_token_legacy
    
        ak = os.getenv("OSS_ACCESS_KEY_ID")
        sk = os.getenv("OSS_ACCESS_KEY_SECRET")
        st = os.getenv("OSS_SESSION_TOKEN")  # STS Token (optional)
    
        if not (ak and sk):
            raise ValueError("No valid AK found. Set the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables. "
                             "If using STS, also set OSS_SESSION_TOKEN (or the old name OSS_SECURITY_TOKEN).")
    
        # Indicate the type of credential used
        if st:
            print("STS Token (OSS_SESSION_TOKEN) detected. Using STS credentials.")
        else:
            print("No STS Token detected. Using AccessKey (AK) credentials.")
    
        credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()
        cfg = oss.config.load_default()
        cfg.credentials_provider = credentials_provider
    
        # Basic network configuration
        cfg.region = region  # Example: 'cn-hangzhou'
        if endpoint:
            # Optional: Custom Endpoint (e.g., internal network, accelerated, dedicated domain)
            cfg.endpoint = endpoint
    
        # You can also add other configurations here, such as: cfg.use_accelerate_endpoint = True
        return oss.Client(cfg)
    
    def resumable_upload_file_v2(
        client: oss.Client,
        bucket_name: str,
        object_key: str,
        file_path: str,
        part_size: int = 1 * 1024 * 1024,
        parallel_num: int = 4,
        checkpoint_dir: str | None = None,
    ):
        """
        Implement concurrent multipart upload with resumable upload.
    
        :param client: Initialized oss.Client
        :param bucket_name: Destination bucket name
        :param object_key: Destination object key (without bucket name)
        :param file_path: Full path of the local file
        :param part_size: Part size in bytes, default is 1 MB
        :param parallel_num: Number of concurrent upload threads, default is 4
        :param checkpoint_dir: Directory to store breakpoint information; if None, resumable upload is disabled
        """
        file_path = str(file_path)
        if not Path(file_path).exists():
            raise FileNotFoundError(f"Error: Local file not found. Check the file_path configuration: {file_path}")
    
        # Construct the Uploader; enable resumable upload based on whether checkpoint_dir is provided
        if checkpoint_dir:
            uploader = client.uploader(
                enable_checkpoint=True,
                checkpoint_dir=checkpoint_dir,
                part_size=part_size,
                parallel_num=parallel_num,
            )
        else:
            uploader = client.uploader(
                part_size=part_size,
                parallel_num=parallel_num,
            )
    
        print(f"Starting to upload file: {file_path}")
        print(f"Destination Bucket: {bucket_name}")
        print(f"Destination Object: {object_key}")
        print(f"Part size: {part_size} bytes, Concurrency: {parallel_num}")
        if checkpoint_dir:
            print(f"Resumable upload: Enabled (checkpoint_dir={checkpoint_dir})")
        else:
            print("Resumable upload: Disabled (set checkpoint_dir to enable)")
    
        # Execute the upload (Uploader automatically chooses between multi/single part concurrent upload based on size)
        result = uploader.upload_file(
            oss.PutObjectRequest(bucket=bucket_name, key=object_key),
            filepath=file_path,
        )
    
        print("-" * 30)
        print("File uploaded successfully!")
        print(f"HTTP Status: {result.status_code}")
        print(f"ETag: {result.etag}")
        print(f"Request ID: {result.request_id}")
        # CRC-64 checksum; v2 enables data validation by default
        print(f"CRC64: {result.hash_crc64}")
        print("-" * 30)
    
    def main():
        # Before running the code example, make sure you have set the corresponding environment variables.
        # macOS/Linux:
        #   AK method:
        #     export OSS_ACCESS_KEY_ID=YOUR_AK_ID
        #     export OSS_ACCESS_KEY_SECRET=YOUR_AK_SECRET
        #   STS method:
        #     export OSS_ACCESS_KEY_ID=YOUR_STS_ID
        #     export OSS_ACCESS_KEY_SECRET=YOUR_STS_SECRET
        #     export OSS_SECURITY_TOKEN=YOUR_STS_TOKEN
        #
        # Windows:
        #   Powershell: $env:OSS_ACCESS_KEY_ID="YOUR_AK_ID"
        #   cmd: set OSS_ACCESS_KEY_ID=YOUR_AK_ID
    
        # ===================== Parameters (modify as needed) =====================
        # Region example: 'cn-hangzhou'; we recommend using Region first
        region = "cn-hangzhou"
    
        # Optional: Custom Endpoint (for internal network, dedicated domain, accelerated domain name, etc.)
        # Example: 'https://oss-cn-hangzhou.aliyuncs.com'
        endpoint = 'https://oss-cn-hangzhou.aliyuncs.com'
    
        # Bucket and Object
        bucket_name = "examplebucket"
        object_key = "test.bak"
    
        # Full path of the local file to upload.
        # Windows example: r'D:\localpath\examplefile.txt'  (note the r at the beginning)
        # macOS/Linux example: '/Users/test/examplefile.txt'
        file_path = r"D:\oss\test.bak"
    
        # Sharding and concurrency
        part_size = 1 * 1024 * 1024  # Default is 1 MB; OSS requires a minimum part size of 100 KB
        parallel_num = 4
    
        # Resumable upload directory (pass None to disable; we recommend specifying a writable directory)
        checkpoint_dir = str(Path.cwd() / ".oss_checkpoints")
        # =================== End of parameters ===================
    
        print("Script execution starts...")
        try:
            client = get_client_from_env(region=region, endpoint=endpoint)
            # If resumable upload is enabled, make sure the directory exists
            if checkpoint_dir:
                Path(checkpoint_dir).mkdir(parents=True, exist_ok=True)
    
            resumable_upload_file_v2(
                client=client,
                bucket_name=bucket_name,
                object_key=object_key,
                file_path=file_path,
                part_size=part_size,
                parallel_num=parallel_num,
                checkpoint_dir=checkpoint_dir,
            )
        except FileNotFoundError as e:
            print(e)
        except oss_ex.ServiceError as e:
            # Error returned by the OSS server
            print("\nAn OSS server-side error occurred.")
            print(f"HTTP Status: {getattr(e, 'status_code', 'N/A')}")
            print(f"Error Code: {getattr(e, 'code', 'N/A')}")
            print(f"Message: {getattr(e, 'message', 'N/A')}")
            print(f"Request ID: {getattr(e, 'request_id', 'N/A')}")
            print(f"Endpoint: {getattr(e, 'request_target', 'N/A')}")
        except oss_ex.BaseError as e:
            # SDK local/serialization/deserialization/credential errors
            print("\nAn OSS SDK client-side error occurred.")
            print(str(e))
        except Exception as e:
            print(f"\nAn unknown error occurred: {e}")
    
    if __name__ == "__main__":
        main()

3. Geçiş betiğini çalıştırma

  1. SQL Server geçiş betiğini indirin.

  2. 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 -h

    Komut 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.

  3. Geçişi tamamlamak için geçiş betiğini çalıştırın.

    Bu konuda, testdatabucket adlı bir OSS paketinin Migrationdata dizinindeki 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.

Not

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.

Not

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

HTTP Status: 404 Error:InvalidAccessKeyId.NotFound Specified access key is not found. RequestID: XXXXXXXXXXXXXXXXX

OpenAPI çağrısı için kullanılan AccessKey ID yanlış.

Doğru AccessKey ID ve AccessKey Secret bilgilerini sağlayın.

HTTP Status: 400 Error:IncompleteSignature The request signature does not conform to Aliyun standards. server string to sign is:......

OpenAPI çağrısı için kullanılan AccessKey Secret yanlış.

RDS engine doesn't support, this is only for RDS SQL Server engine.

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.

Couldn't find specify RDS [XXX].

Belirtilen RDS örnek ID'si mevcut değil.

Sağlanan RDS örnek ID'sinin doğru olduğunu doğrulayın.

{'status': -2, 'request-id': '', 'details': "RequestError: HTTPConnectionPool(host='xxxxxxxxxxxxxxxxx', port=80): Max retries exceeded with url: /?bucketInfo= (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x10e996490>: Failed to establish a new connection: [Errno 8] nodename nor servname provided, or not known',))"}

Yanlış uç nokta nedeniyle bağlantı başarısız oldu.

Sağlanan uç noktanın doğru olduğunu doğrulayın.

{'status': 404,'-id': 'xxxxxxxxx', 'details': {'HostId': 'xxxxxxxxx', 'Message': 'The specified bucket does not exist.', 'Code': 'NoSuchBucket', 'RequestId': 'xxxxxxxx', 'BucketName': 'aaaatp-test-on-ecs'}}

Belirtilen OSS paketi mevcut değil.

Sağlanan OSS paket adının doğru olduğunu doğrulayın.

There is no backup file on OSS Bucket [xxxxxx] under [xxxxxxxxx] folder, check please.

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.

Warning!!!!!, [autotest_2005_ent_broken_full_dbcc_failed.bak] is not backup file, filtered.

Yedek dosya adı gerekli adlandırma kuralına uymuyor.

Yedekleme betiğini kullanmıyorsanız yedek dosyasını VeritabanıAdı_YedeklemeTürü_YedeklemeZamanı.bak biçiminde adlandırmanız gerekir. Örnek: Testdb_FULL_20180518153544.bak.

HTTP Status: 403 Error:Forbidden.RAM The user is not authorized to operate the specified resource, or this operation does not support RAM. RequestID: xxxxx{'status': 403, 'request-id': 'xxxx', 'details': {'HostId': 'atp-test-on-ecs.oss-cn-beijing.aliyuncs.com', 'Message': 'The bucket you visit is not belong to you.', 'Code': 'AccessDenied', 'RequestId': 'xxxx'}}

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 Response Error !!!!! : HTTP Status: <Http Status Code> Error:<Error> <Description>. RequestID: 32BB6886-775E-4BB7-A054-635664****

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.

  • ApsaraDB RDS for SQL Server 2008 R2 için önce hedef örnekte aynı ada sahip bir veritabanı oluşturmanız gerekir.

  • ApsaraDB RDS for SQL Server 2012 ve sonraki sürümler için hedef örnekte aynı ada sahip bir veritabanı mevcut olmamalıdır.

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


API


Açıklama


CreateMigrateTask


Yedek dosyalarını OSS'ten bir ApsaraDB RDS for SQL Server örneğine geri yükler ve bir veri geçiş görevi oluşturur.


CreateOnlineDatabaseTask


Bir ApsaraDB RDS for SQL Server örneğinde yedek veri geçiş görevinin veritabanını açar.


DescribeMigrateTasks


Bir ApsaraDB RDS for SQL Server örneğindeki yedek veri geçiş görevlerinin listesini sorgular.


DescribeOssDownloads


Bir ApsaraDB RDS for SQL Server örneğindeki yedek veri geçiş görevinin yedek dosyalarının ayrıntılarını sorgular.