Bilinen sorunlar, sınırlamalar ve sorun giderme

Bu makalede, Azure Data Studio için Azure SQL Geçişi uzantısıyla ilişkili bilinen sorunların ve sorun giderme adımlarının listesi sağlanır.

Önemli

Integration Runtime'ın en son sürümü (5.28.8488), yerel konakta bir ağ dosya paylaşımına erişimi engeller. Bu güvenlik önlemi, DMS kullanarak Azure SQL'e geçiş gerçekleştirirken hatalara yol açar. Integration Runtime'ı ağ paylaşımı barındırmasından farklı bir makinede çalıştırdığınızdan emin olun.

Hata kodu: 2007 - CutoverFailedOrCancelled

  • İleti: Cutover failed or cancelled for database <DatabaseName>. Error details: The restore plan is broken because firstLsn <First LSN> of log backup <URL of backup in Azure Storage container>' is not <= lastLsn <last LSN> of Full backup <URL of backup in Azure Storage container>'. Restore to point in time.

  • Neden: Azure Depolama kapsayıcısında yedeklemelerin yanlış yerleştirilmesi nedeniyle hata oluşabilir. Yedeklemeler ağ dosya paylaşımına yerleştirilirse, bu hata ağ bağlantısı sorunlarından da kaynaklanabilir.

  • Öneri: Azure Depolama kapsayıcınızdaki veritabanı yedeklemelerinin doğru olduğundan emin olun. Ağ dosya paylaşımı kullanıyorsanız, bu hataya neden olan ağ ile ilgili sorunlar ve gecikmeler olabilir. Sürecin tamamlanmasını bekleyin.

  • İleti: Cutover failed or cancelled for database '{databaseName}'. Error details: 'errorCode: Ext_RestoreSettingsError, message: RestoreId: {RestoreId}, OperationId: {operationId}, Detail: Failed to complete restore., RestoreJobState: Restoring, CompleteRestoreErrorMessage: The database contains incompatible physical layout. Too many full text catalog files.

  • Neden: SQL Vm geri yükleme şu anda tam metin kataloğu dosyalarına sahip veritabanlarının geri yüklenmesini desteklememektedir çünkü Azure SQL Vm şu anda bunları desteklememektedir.

  • Öneri: Geri yükleme oluştururken veritabanından tam metin kataloğu dosyalarını kaldırma

  • İleti: Cutover failed or cancelled for database '{databaseName}'. Error details: 'Migration cannot be completed because provided backup file name '{providedFileName}' should be the last restore backup file '{lastRestoredFileName}'.'

  • Neden: Bu hata, SqlMi'deki bilinen bir sınırlama nedeniyle oluşur. Bu, '{providedFileName}' öğesinin '{lastRestoredFileName}' öğesinden farklı olduğu anlamına gelir. SqlMi, LSN dizisine göre kapsayıcıdaki tüm geçerli yedekleme dosyalarını otomatik olarak geri yükler. Tipik bir hata durumu şöyle olabilir: '{providedFileName}' "log1", ancak kapsayıcıdaki dosyaların "log1" yerine en büyük LSN numarasına sahip "log2" gibi başka dosyaları vardır. Bu durumda, SqlMi kapsayıcıdaki tüm dosyaları otomatik olarak geri yükler. Geçişi tamamladıktan sonra SqlMi bu hata iletisini bildirir.

  • Öneri: Çevrimdışı geçiş modu için lütfen en büyük LSN ile "lastBackupName" değerini sağlayın. Çevrimiçi geçiş senaryosunda, geçiş durumu başarılı olursa bu uyarı/hata yoksayılabilir.

Hata kodu: 2009 - MigrationRestoreFailed

  • İleti: Migration for Database 'DatabaseName' failed with error cannot find server certificate with thumbprint.

  • Neden: Verileri geçirmeden önce, kaynak SQL Server örneğinin sertifikasını Saydam Veri Şifrelemesi (TDE) tarafından korunan bir veritabanından hedef Azure SQL Yönetilen Örneği veya Azure Sanal Makine'de SQL Server'a geçirmeniz gerekir.

  • Öneri: TDE sertifikasını hedef örneğe geçirin ve işlemi yeniden deneyin. TDE özellikli veritabanlarını geçirme hakkında daha fazla bilgi için bkz . Öğretici: TDE özellikli veritabanlarını Azure Data Studio'da Azure SQL'e geçirme (önizleme).

  • İleti: Migration for Database <DatabaseName> failed with error 'Non retriable error occurred while restoring backup with index 1 - 3169 The database was backed up on a server running version %ls. That version is incompatible with this server, which is running version %ls. Either restore the database on a server that supports the backup, or use a backup that is compatible with this server.

  • Neden: SQL Server yedeklemesi, yedeklemenin oluşturulduğu sürümden daha eski bir SQL Server sürümüne geri yüklenemiyor.

  • Öneri: Sorun giderme adımları için bkz . Farklı SQL Server sürümleri arasında veritabanı geri yüklemesini etkileyen sorunlar.

  • İleti: Migration for Database <DatabaseName> failed with error 'The managed instance has reached its storage limit. The storage usage for the managed instance can't exceed 32768 MBs.

  • Neden: Azure SQL Yönetilen Örneği kaynak sınırlarına ulaştı.

  • Öneri: Depolama sınırları hakkında daha fazla bilgi için bkz. Azure SQL Yönetilen Örneği kaynak sınırlarına genel bakış.

  • İleti: Migration for Database <DatabaseName> failed with error 'Non retriable error occurred while restoring backup with index 1 - 3634 The operating system returned the error '1450(Insufficient system resources exist to complete the requested service.)

  • Neden: DbCC CHECKDB veya Veritabanı Anlık Görüntüsü Oluşturma sırasında veritabanı dosyaları için 1450 ve 665 işletim sistemi hatalarında listelenen belirtilerden biri bildirilir.

  • Öneri: Sorun giderme adımları için bkz . DBCC CHECKDB veya Veritabanı Anlık Görüntüsü Oluşturma sırasında veritabanı dosyaları için işletim sistemi hataları 1450 ve 665 bildiriliyor.

  • İleti: The restore plan is broken because firstLsn <First LSN> of log backup <URL of backup in Azure Storage container>' isn't <= lastLsn <last LSN> of Full backup <URL of backup in Azure Storage container>'. Restore to point in time.

  • Neden: Azure Depolama kapsayıcısında yedeklemelerin yanlış yerleştirilmesi nedeniyle hata oluşabilir. Yedeklemeler ağ dosya paylaşımına yerleştirilirse, bu hata ağ bağlantısı sorunlarından da kaynaklanabilir.

  • Öneri: Azure Depolama kapsayıcınızdaki veritabanı yedeklemelerinin doğru olduğundan emin olun. Ağ dosya paylaşımı kullanıyorsanız, bu hataya neden olan ağ ile ilgili sorunlar ve gecikmeler olabilir. İşlemin tamamlanmasını bekleyin.

  • İleti: Migration for Database <Database Name> failed with error 'Non retriable error occurred while restoring backup with index 1 - 3234 Logical file <Name> isn't part of database <Database GUID>. Use RESTORE FILELISTONLY to list the logical file names. RESTORE DATABASE is terminating abnormally.'.

  • Neden: Veritabanı yedeklemesinde olmayan bir mantıksal dosya adı belirttiniz. Bu hatanın bir diğer olası nedeni de yanlış depolama hesabı kapsayıcı adıdır.

  • Öneri: Yedeklemenizdeki mantıksal dosya adlarını denetlemek için RESTORE FILELISTONLY komutunu çalıştırın. RESTORE FILELISTONLY hakkında daha fazla bilgi için bkz . RESTORE Deyimleri - FILELISTONLY (Transact-SQL).

  • İleti: Migration for Database <Database Name> failed with error 'Azure SQL target resource failed to connect to storage account. Make sure the target SQL VNet is allowed under the Azure Storage firewall rules.'

  • Neden: Azure Depolama güvenlik duvarı, Azure SQL hedefine erişime izin verecek şekilde yapılandırılmamış.

  • Öneri: Azure Depolama güvenlik duvarı kurulumu hakkında daha fazla bilgi için bkz. Azure Depolama güvenlik duvarlarını ve sanal ağları yapılandırma.

  • İleti: Migration for Database <Database Name> failed with error 'There are backups from multiple databases in the container folder. Please make sure the container folder has backups from a single database.

  • Neden: Birden çok veritabanının yedekleri aynı kapsayıcı klasöründedir.

  • Öneri: Aynı Azure Blob Depolama kapsayıcısını kullanarak birden çok veritabanını Azure SQL Yönetilen Örneği geçiriyorsanız, farklı veritabanları için yedekleme dosyalarını kapsayıcının içindeki ayrı klasörlere yerleştirmeniz gerekir. LRS hakkında daha fazla bilgi için bkz. Günlük Yeniden Yürütme Hizmeti 'ni (Önizleme) kullanarak veritabanlarını SQL Server'dan SQL Yönetilen Örneği geçirme.

  • İleti: Migration for Database <Database Name> failed with error 'Non retriable error occurred while restoring backup with index 1 - 12824 The sp_configure value 'contained database authentication' must be set to 1 in order to restore a contained database. You may need to use RECONFIGURE to set the value_in_use. RESTORE DATABASE is terminating abnormally.

  • Neden: Kaynak veritabanı, kapsanan bir veritabanıdır. Kapsanan veritabanının geri yüklenmesini sağlamak için belirli bir yapılandırma gerekir. Kapsanan veritabanları hakkında daha fazla bilgi için bkz . Kapsanan Veritabanı Kullanıcıları.

  • Öneri: Geçişe başlamadan önce kaynak SQL Server'a bağlı aşağıdaki sorguyu belirli bir veritabanı bağlamında çalıştırın. Ardından, kapsanan veritabanının geçişini yeniden deneyin.

    -- Enable "contained database authentication"
    EXEC sp_configure 'contained', 1;
    RECONFIGURE;
    

    Not

    Azure SQL Yönetilen Örneği hatalarıyla ilgili genel sorun giderme adımları hakkında daha fazla bilgi için bkz. Azure SQL Yönetilen Örneği ile ilgili bilinen sorunlar

Hata kodu: 2012 - Test Bağlan ionFailed

  • İleti: Failed to test connections using provided Integration Runtime. Error details: 'Remote name could not be resolved.'

  • Neden: Güvenlik duvarındaki ağ ayarlarınız Şirket İçinde Barındırılan Tümleştirme Çalışma Zamanı'nın hizmet arka ucuna bağlanamamasına neden oluyor.

  • Öneri: Etki Alanı Adı Sistemi (DNS) sorunu var. Sorunu çözmek için ağ ekibinize ulaşın. Daha fazla bilgi için bkz . Şirket İçinde Barındırılan Tümleştirme Çalışma Zamanı Sorunlarını Giderme.

  • İleti: Failed to test connections using provided Integration Runtime. 'Cannot connect to <File share>. Detail Message: The system could not find the environment option that was entered

  • Neden: Şirket İçinde Barındırılan Tümleştirme Çalışma Zamanı, veritabanı yedeklemelerinin yerleştirildiği ağ dosya paylaşımına bağlanamıyor.

  • Öneri: Ağ dosya paylaşımı adınızın doğru girildiğinden emin olun.

  • İleti: Failed to test connections using provided Integration Runtime. The file name does not conform to the naming rules by the data store. Illegal characters in path.

  • Neden: Şirket İçinde Barındırılan Tümleştirme Çalışma Zamanı, veritabanı yedeklemelerinin yerleştirildiği ağ dosya paylaşımına bağlanamıyor.

  • Öneri: Ağ dosya paylaşımı adınızın doğru girildiğinden emin olun.

  • İleti: Failed to test connections using provided Integration Runtime.

  • Neden: Şirket İçinde Barındırılan Tümleştirme Çalışma Zamanı'na Bağlan başarısız oldu.

  • Öneri: Integration Runtime bağlantı hatalarıyla ilgili genel sorun giderme adımları için bkz . Şirket İçinde Barındırılan Tümleştirme Çalışma Zamanı Sorunlarını Giderme.

Hata kodu: 2014 - IntegrationRuntimeIsNotOnline

  • İleti: Integration Runtime <IR Name> in resource group <Resource Group Name> Subscription <SubscriptionID> isn't online.

  • Neden: Şirket İçinde Barındırılan Tümleştirme Çalışma Zamanı çevrimiçi değil.

  • Öneri: Şirket İçinde Barındırılan Tümleştirme Çalışma Zamanı'nın kayıtlı ve çevrimiçi olduğundan emin olun. Kaydı gerçekleştirmek için yerel PowerShell betiklerini kullanarak şirket içinde barındırılan tümleştirme çalışma zamanı yüklemesinin betiklerini kullanabilirsiniz. Ayrıca Integration Runtime bağlantı hatalarıyla ilgili genel sorun giderme adımları için bkz . Şirket içinde barındırılan tümleştirme çalışma zamanı sorunlarını giderme.

Hata kodu: 2030 - AzureSQLManagedInstanceNotReady

  • İleti: Azure SQL Managed Instance <Instance Name> isn't ready.

  • Neden: Azure SQL Yönetilen Örneği hazır durumda değil.

  • Öneri: Azure SQL Yönetilen Örneği dağıtımı tamamlanana ve hazır olana kadar bekleyin, ardından işlemi yeniden deneyin.

Hata kodu: 2033 - SqlDataCopyFailed

  • İleti: Migration for Database <Database> failed in state <state>.

  • Neden: Veri taşıma için ADF işlem hattı başarısız oldu.

  • Öneri: Daha ayrıntılı hata bilgileri için MigrationStatusDetails sayfasına bakın.

Hata kodu: 2038 - MigrationCompletedDuringCancel

  • İleti: Migration cannot be canceled as Migration was completed during the cancel process. Target server: <Target server> Target database: <Target database>.

  • Neden: İptal isteği alındı, ancak iptal tamamlanmadan önce geçiş başarıyla tamamlandı.

  • Öneri: Eylem gerekmez. Geçiş başarılı oldu.

Hata kodu: 2039 - MigrationRetryNotAllowed

  • İleti: Migration isn't in a retriable state. Migration must be in state WaitForRetry. Current state: <State>, Target server: <Target Server>, Target database: <Target database>.

  • Neden: Geçiş yeniden denemeye izin veren bir durumda olmadığında yeniden deneme isteği alındı.

  • Öneri: Eylem gerekmez. Geçiş devam ediyor veya tamamlandı.

Hata kodu: 2040 - MigrationTimeoutWaitingForRetry

  • İleti: Migration retry timeout limit of 8 hours reached. Target server: <Target Server>, Target database: <Target Database>.

  • Neden: Geçiş başarısız, ancak 8 saat boyunca alınabilir durumda boştaydı ve otomatik olarak iptal edildi.

  • Öneri: Eylem gerekmez; geçiş iptal edildi.

Hata kodu: 2041 - DataCopyCompletedDuringCancel

  • İleti: Data copy finished successfully before canceling completed. Target schema is in bad state. Target server: <Target Server>, Target database: <Target Database>.

  • Neden: İptal isteği alındı ve veri kopyası başarıyla tamamlandı, ancak hedef veritabanı şeması özgün durumuna döndürülmedi.

  • Öneri: İstenirse, ilk sorgu ve döndürülen tüm sorgular çalıştırılıp ikinci sorgu çalıştırılarak ve aynı işlem gerçekleştirilerek hedef veritabanı özgün durumuna döndürülebilir.

    SELECT [ROLLBACK] FROM [dbo].[__migration_status]
    WHERE STEP in (3,4,6);
    
    SELECT [ROLLBACK] FROM [dbo].[__migration_status]
    WHERE STEP in (5,7,8) ORDER BY STEP DESC;
    

Hata kodu: 2042 - PreCopyStepsCompletedDuringCancel

  • İleti: Pre Copy steps finished successfully before canceling completed. Target database Foreign keys and temporal tables have been altered. Schema migration may be required again for future migrations. Target server: <Target Server>, Target database: <Target Database>.

  • Neden: İptal isteği alındı ve hedef veritabanını kopyalamaya hazırlama adımları başarıyla tamamlandı. Hedef veritabanı şeması özgün durumuna döndürülmedi.

  • Öneri: İstenirse, aşağıdaki sorgu ve döndürülen tüm sorgular çalıştırılarak hedef veritabanı özgün durumuna döndürülebilir.

    SELECT [ROLLBACK] FROM [dbo].[__migration_status]
    WHERE STEP in (3,4,6);
    

Hata kodu: 2043 - CreateContainerFailed

  • İleti: Create container <ContainerName> failed with error Error calling the endpoint '<URL>'. Response status code: 'NA - Unknown'. More details: Exception message: 'NA - Unknown [ClientSideException] Invalid Url:<URL>.

  • Neden: ağ bağlantısı, DNS hatası, sunucu sertifikası doğrulaması veya zaman aşımı gibi temel alınan bir sorun nedeniyle istek başarısız oldu.

  • Öneri: Daha fazla sorun giderme adımı için bkz . Azure Data Factory ve Synapse işlem hatlarında sorun giderme.

Hata kodu: 2049 - FileShareTest Bağlan ionFailed

  • İleti: The value of the property '' is invalid: 'Access to <share path> is denied, resolved IP address is <IP address>, network type is OnPremise'.

  • Neden: Veritabanı yedeklemelerinin depolandığı ağ paylaşımı, şirket içinde barındırılan Integration Runtime (SHIR) ile aynı makinededir.

  • Öneri: Integration Runtime'ın en son sürümü (5.28.8488), yerel konakta ağ dosya paylaşımına erişimi engeller. Integration Runtime'ı ağ paylaşımı barındırmasından farklı bir makinede çalıştırdığınızdan emin olun. Şirket içinde barındırılan Integration Runtime'ı ve ağ paylaşımını farklı makinelerde barındırmak geçerli geçiş kurulumunuzla mümkün değilse, seçeneğini kullanarak DisableLocalFolderPathValidationdevre dışı bırakabilirsiniz.

    Not

    Daha fazla bilgi için bkz . Yerel PowerShell aracılığıyla şirket içinde barındırılan mevcut bir IR'yi ayarlama. Daha az güvenli olduğundan, isteğe bağlı olarak devre dışı bırakma seçeneğini kullanın.

Hata kodu: 2056 - SqlInfoValidationFailed

  • İleti: CollationMismatch: Source database collation <CollationOptionSource> is not the same as the target database <CollationOptionTarget>. Source database: <SourceDatabaseName> Target database: <TargetDatabaseName>.

  • Neden: Kaynak veritabanı harmanlaması, hedef veritabanının harmanlaması ile aynı değildir.

  • Öneri: Hedef Azure SQL Veritabanı harmanlamasını kaynak SQL Server veritabanıyla aynı olacak şekilde değiştirdiğinizden emin olun. Azure SQL Veritabanı varsayılan olarak harmanlama kullanırSQL_Latin1_General_CP1_CI_AS. Kaynak SQL Server veritabanınızın farklı bir harmanlama kullanması durumunda harmanlama eşleşmesi olan farklı bir hedef veritabanını yeniden oluşturmanız veya seçmeniz gerekebilir. Daha fazla bilgi için bkz . Harmanlama ve Unicode desteği

  • İleti: TableColumnCollationMismatch: Table <Tablename> with column <columnname> has collation <collationoptionsource> on source but has collation <collationoptiontarget> on target table.

  • Neden: Kaynak veritabanı tablo sütununun harmanlaması, hedef veritabanı tablosu sütununun harmanlaması ile aynı değildir.

  • Öneri:

    1. şemayı Veritabanı Geçiş Hizmeti kullanarak hedef Azure SQL Veritabanı geçirmeyi unutmayın. Bloga bakın.
    2. Harmanlamayı el ile değiştirmek için bu makaleyi izleyin. Daha fazla bilgi için bkz . Harmanlama ve Unicode desteği
  • İleti: DatabaseSizeMoreThanMax: No tables were found in the target Azure SQL Database. Check if schema migration was completed beforehand.

  • Neden: Geçiş için seçilen tablolar hedef Azure SQL Veritabanı yok.

  • Öneri: Geçişe başlamadan önce hedef veritabanı şemasının oluşturulduğundan emin olun. Hedef veritabanı şemasının nasıl dağıtılacağı hakkında daha fazla bilgi için bkz. SQL Veritabanı Projeler uzantısı

  • İleti: DatabaseSizeMoreThanMax: The source database size <Source Database Size> exceeds the maximum allowed size of the target database <Target Database Size>. Check if the target database has enough space.

  • Neden: Hedef veritabanında yeterli alan yok.

  • Öneri: Geçişe başlamadan önce hedef veritabanı şemasının oluşturulduğundan emin olun. Hedef veritabanı şemasının nasıl dağıtılacağı hakkında daha fazla bilgi için bkz. SQL Veritabanı Projeler uzantısı.

  • İleti: NoTablesFound: Some of the source tables don't exist in the target database. Missing tables: <TableList>.

  • Neden: Geçiş için seçilen tablolar hedef Azure SQL Veritabanı yok.

  • Öneri: Seçili tabloların hedef Azure SQL Veritabanı olup olmadığını denetleyin. Bu geçiş bir PowerShell betiğinden çağrılırsa, tablo listesi parametresinin doğru tablo adlarını içerip içermediğini ve geçişe geçirilip geçirilmediğini denetleyin.

  • İleti: SqlVersionOutOfRange: Source instance version is lower than 2008, which is not supported to migrate. Source instance: <InstanceName>.

  • Neden: Azure Veritabanı Geçiş Hizmeti, 2008'den düşük SQL Server örneklerinden geçişi desteklemez.

  • Öneri: Kaynak SQL Server örneğinizi SQL Server'ın daha yeni bir sürümüne yükseltin. Daha fazla bilgi için bkz . SQL Server'ı yükseltme.

  • İleti: TableMappingMismatch: Some of the source tables don't exist in the target database. Missing tables: <TableList>.

  • Neden: Geçiş için seçilen tablolar hedef Azure SQL Veritabanı yok.

  • Öneri: Seçili tabloların hedef Azure SQL Veritabanı olup olmadığını denetleyin. Bu geçiş bir PowerShell betiğinden çağrılırsa, tablo listesi parametresinin doğru tablo adlarını içerip içermediğini ve geçişe geçirilip geçirilmediğini denetleyin.

Hata kodu: 2060 - SqlSchemaCopyFailed

  • İleti: The SELECT permission was denied on the object 'sql_logins', database 'master', schema 'sys'.

  • Neden: Müşterilerin bağlanmak için kullandığı hesap Azure SQL Veritabanı tabloya erişim sys.sql_logins izni yok.

  • Öneri: Sorunu azaltmanın iki yolu vardır:

    1. Hesaba yönetici izni veren 'sysadmin' rolü ekleyin.

    2. Müşteriler sysadmin hesabını kullanamıyorsa veya hesaba sysadmin izni veremiyorsa, kaynak SQL Server için gereken en düşük izin "db_owner" ve hedef Azure SQL DB'de ana veritabanında bir kullanıcı oluşturun ve kullanıcıya ##MS_DatabaseManager##,##MS_Database Bağlan or##, ##MS_DefinitionReader## ve ##MS_LoginManager## sabit sunucu rolleri verin. Örneğin,

      -- Run the script in the master
      -- Please run the script on Master database
      CREATE LOGIN testuser with Password = '*********';
      ALTER SERVER ROLE ##MS_DefinitionReader## ADD MEMBER [testuser]; 
       GO
      ALTER SERVER ROLE ##MS_DatabaseConnector## ADD MEMBER [testuser]; 
       GO
      ALTER SERVER ROLE ##MS_DatabaseManager## ADD MEMBER [testuser]; 
       GO
      ALTER SERVER ROLE ##MS_LoginManager## ADD MEMBER [testuser]; 
       GO
      CREATE USER testuser from login testuser;
      EXEC sp_addRoleMember 'dbmanager', 'testuser';
      EXEC sp_addRoleMember 'loginmanager', 'testuser';
      
  • İleti: Failed to get service token from ADF service.

  • Neden: Müşterinin SHIR'sı veri fabrikasına bağlanamıyor.

  • Öneri: Bu, nasıl çözüldüğüne yönelik örnek belgedir: Tümleştirme çalışma zamanı Data Factory'ye bağlanılamıyor

  • İleti: IR Nodes are offline.

  • Neden: Bunun nedeni, geçiş sırasında ağın kesintiye uğraması ve dolayısıyla IR düğümünü çevrimdışı duruma getirmesi olabilir. SHIR'nin yüklü olduğu makinenin açık olduğundan emin olun.

  • Öneri: SHIR'nin yüklü olduğu makinenin açık olduğundan emin olun.

  • İleti: Deployed failure: {0}. Object element: {1}.

  • Neden: Bu, müşterilerin karşılaşabileceği en yaygın hatadır. Nesnenin hedefte desteklenmediğinden hedefe dağıtılamadığı anlamına gelir.

  • Öneri: Müşterilerin değerlendirme sonuçlarını (Değerlendirme kuralları) denetlemesi gerekir. Şema geçişinde başarısız olabilecek değerlendirme sorunlarının listesi:

    BULK INSERT

    COMPUTE yan tümcesi

    Şifreleme sağlayıcısı

    Çapraz veritabanı başvuruları

    Veritabanı asıl diğer adı

    DISABLE_DEF_CNST_CHK seçeneği

    FASTFIRSTROW ipucu

    FILESTREAM

    MS DTC

    OPENROWSET (toplu)

    OPENROWSET (sağlayıcı)

    Not

    Hata ayrıntılarını görüntülemek için Microsoft Integration runtime yapılandırma yöneticisini açın ve Tanılama Günlüğü > Görünümü günlüklerine> gidin. Olay görüntüleyicisinde Uygulama ve Hizmet günlükleri > Bağlan orlar - Tümleştirme çalışma zamanı'na gidin ve hataları filtreleyin.

  • İleti: Deployed failure: Index cannot be created on computed column '{0}' of table '{1}' because the underlying object '{2}' has a different owner. Object element: {3}.

    Örnek Oluşturulan Betik: IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[Sales].[Customer]') AND name = N'AK_Customer_AccountNumber') CREATE UNIQUE NONCLUSTERED INDEX [AK_Customer_AccountNumber] ON [Sales].[Customer] ( [AccountNumber] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)

  • Neden: Hesaplanan sütundaki tüm işlev başvuruları tabloyla aynı sahip olmalıdır.

  • Öneri: Bkz . Sahiplik Gereksinimleri.

Hata kodu: Ext_Restore Ayarlar Hata

  • İleti: Unable to read blobs in storage container, exception: The remote server returned an error: (403) Forbidden.; The remote server returned an error: (403) Forbidden

  • Neden: Azure SQL hedefi blob depolamaya bağlanamıyor.

  • Öneri: Hedef ağ ayarlarının blob depolamaya erişime izin verdiğini onaylayın. Örneğin, Azure VM hedefinde bir SQL Server'a geçiş gerçekleştiriyorsanız, Sanal Makinedeki giden bağlantıların engellenmediğinden emin olun.

  • İleti: Failed to create restore job. Unable to read blobs in storage container, exception: The remote name could not be resolved.

  • Neden: Azure SQL hedefi blob depolamaya bağlanamıyor.

  • Öneri: Hedef ağ ayarlarının blob depolamaya erişime izin verdiğini onaylayın. Örneğin, SQL VM'ye geçiş yapılıyorsa, VM'de giden bağlantıların engellenmediğinden emin olun.

  • İleti: Migration for Database <Database Name> failed with error 'Migration cannot be completed because provided backup file name <Backup File Name> should be the last restore backup file <Last Restore Backup File Name>'.

  • Neden: Yedekleme ayarlarında en son yedekleme belirtilmedi.

  • Öneri: Yedekleme ayarlarında en son yedekleme dosyası adını belirtin ve işlemi yeniden deneyin.

  • İleti: Operation failed: errorCode: Ext_RestoreSettingsError, message: RestoreId: 1111111-aaaa-bbbb-cccc-dddddddd, OperationId: 2222222-aaaa-bbbb-cccc-dddddddd, Detail: Unable to read blobs in storage container, exception: Unable to connect to the remote server;Unable to connect to the remote server;A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond 11.111.11.111:443.

  • Neden: Hem genel ağ hem de özel uç nokta yapılandırmasına sahip depolama hesapları için hata oluşabilir. Karma ağ yönlendirmesini ve DHCP'yi denetleen bir şirket içi DNS sunucunuz da olabilir. DNS sunucunuzda yapılandırılan Azure IP adreslerine izin vermediğiniz sürece, Azure VM'deki SQL Server hedefinizin uzak depolama blobu uç noktasını çözümleme şansı yoktur.

  • Öneri: Bu sorunun hatalarını ayıklamak için Azure VM hedefinizdeki SQL Server'dan Azure Blob Depolama URL'nize ping göndermeyi deneyebilir ve bağlantı sorununuzun olup olmadığını onaylayabilirsiniz. Bu sorunu çözmek için DNS sunucunuzda yapılandırılan Azure IP adreslerine izin vermeliydiniz. Daha fazla bilgi için bkz . Azure Özel Uç Nokta bağlantı sorunlarını giderme

adlandırma kurallarını Azure Veritabanı Geçiş Hizmeti

DMS hizmetiniz "Hata: 'x_y_z' hizmet adı geçerli değil" hatasıyla başarısız olduysa, Azure Veritabanı Geçiş Hizmeti Adlandırma Kuralları'nı izlemeniz gerekir. Azure Veritabanı Geçiş Hizmeti işlem için Azure Data factory'yi kullandığından, burada belirtilen adlandırma kurallarının aynısını izler.

Azure SQL Veritabanı sınırlamaları

Azure Data Studio için Azure SQL uzantısını kullanarak Azure SQL Veritabanı geçiş aşağıdaki sınırlamalara sahiptir:

çevrimdışı geçiş Azure SQL Veritabanı veri taşıma için Azure Data Factory (ADF) işlem hatlarını kullanır ve bu nedenle ADF sınırlamalarına uyar. Veritabanı geçiş hizmeti de oluşturulduğunda buna karşılık gelen bir ADF oluşturulur. Bu nedenle fabrika sınırları hizmet başına uygulanır.

  • SHIR'nin yüklü olduğu makine, geçiş için işlem işlevi görür. Bu makinenin veri kopyalamanın cpu ve bellek yükünü işleyebileceğinden emin olun. Daha fazla bilgi edinmek için SHIR önerilerini gözden geçirin.
  • Veritabanı sınırı başına 100.000 tablo.
  • Hizmet başına 10.000 eşzamanlı veritabanı geçişi.
  • Geçiş hızı büyük ölçüde hedef Azure SQL Veritabanı SKU'ya ve şirket içinde barındırılan Integration Runtime konağına bağlıdır.
  • Azure SQL Veritabanı geçiş, başlangıç etkinliklerindeki ADF yükü nedeniyle tablo numaralarıyla kötü ölçeklendirilir. Veritabanında binlerce tablo varsa, her tablonun başlangıç işlemi, 1 bit veri içeren bir satırdan oluşsa bile birkaç saniye sürebilir.
  • Azure SQL Veritabanı iki bayt karakterli tablo adları şu anda geçiş için desteklenmiyor. Azaltma, geçiş öncesinde tabloları yeniden adlandırmaktır; başarılı bir geçiş sonrasında özgün adlarına geri dönebilirler.
  • Büyük blob sütunları olan tablolar zaman aşımı nedeniyle geçirilemeyebilir.
  • SQL Server ayrılmış veritabanı adları şu anda desteklenmiyor.
  • Noktalı virgül içeren veritabanı adları şu anda desteklenmemektedir.
  • Hesaplanan sütunlar geçirilmez.

Azure SQL Yönetilen Örneği sınırlamaları

Azure Data Studio için Azure SQL uzantısını kullanarak Azure SQL Yönetilen Örneği’ne geçiş aşağıdaki sınırlamalara sahiptir:

  • Tek bir veritabanı geçirilirse, veritabanı yedeklemeleri veritabanı klasörünün (kapsayıcı kök klasörü dahil) içinde düz bir dosya yapısına yerleştirilmelidir; iç içe yerleştirilme desteklenmediğinden, klasörler iç içe yerleştirilemez.
  • Aynı Azure Blob Depolama kapsayıcısını kullanarak birden çok veritabanını geçiriyorsanız, farklı veritabanları için yedekleme dosyalarını kapsayıcının içindeki ayrı klasörlere yerleştirmeniz gerekir.
  • Hedef Azure SQL Yönetilen Örneği DMS kullanarak mevcut veritabanlarının üzerine yazma desteklenmez.
  • DMS, hedefinizde kaynak topolojiyle eşleşecek şekilde yüksek kullanılabilirlik ve olağanüstü durum kurtarma yapılandırmayı desteklemez.
  • Aşağıdaki sunucu nesneleri desteklenmez:
    • SQL Server Agent işleri
    • Kimlik bilgileri
    • SSIS paketleri
    • Sunucu denetimi
  • DMS ile veritabanı geçişleri için Azure Data Factory’den oluşturulan mevcut, şirket içinde barındırılan tümleştirme çalışma zamanını kullanamazsınız. Başlangıçta, şirket içinde barındırılan tümleştirme çalışma zamanı Azure Data Studio'daki Azure SQL geçiş uzantısı kullanılarak oluşturulmalıdır; bu, daha fazla veritabanı geçişi için yeniden kullanılabilir.
  • Tek bir LRS işi (DMS tarafından oluşturulan) en fazla 30 gün çalıştırılabilir. Bu süre dolduğunda, iş otomatik olarak iptal edilir ve böylece hedef veritabanınız otomatik olarak silinir.
  • Aşağıdaki hatayı aldıysanız: Memory-optimized filegroup must be empty in order to be restored on General Purpose tier of SQL Database Managed Instance. Bu sorun tasarım gereği hekaton (SQL Server Bellek İçi OLTP olarak da bilinir) Azure SQL Yönetilen Örneği Genel Amaçlı katmanında desteklenmez. Geçişe devam etmek için bir yol, Hekaton'ı destekleyen İş Açısından Kritik katmanına yükseltmektir. Bir diğer yol da kaynak veritabanının kullanmadığından emin olmak, Azure SQL Yönetilen Örneği ise Genel Amaçlı'dır.

Azure VM'lerinde SQL Server sınırlamaları

Azure Data Studio için Azure SQL uzantısını kullanarak Azure VM'lerinde SQL Server'a geçiş aşağıdaki sınırlamalara sahiptir:

  • Tek bir veritabanı geçiriliyorsa, veritabanı yedekleri bir veritabanı klasörünün (kapsayıcı kök klasörü dahil) içinde düz dosya yapısına yerleştirilmelidir ve klasörler desteklenmediğinden iç içe yerleştirilemiyor.
  • Aynı Azure Blob Depolama kapsayıcısını kullanarak birden çok veritabanını geçiriyorsanız, farklı veritabanları için yedekleme dosyalarını kapsayıcının içindeki ayrı klasörlere yerleştirmeniz gerekir.
  • Azure Sanal Makinesi'ndeki hedef SQL Server'da DMS kullanarak mevcut veritabanlarının üzerine yazmak desteklenmez.
  • Hedefinizde kaynak topolojisi ile eşleşecek şekilde yüksek kullanılabilirlik ve olağanüstü durum kurtarma yapılandırması DMS tarafından desteklenmez.
  • Aşağıdaki sunucu nesneleri desteklenmez:
    • SQL Server Agent işleri
    • Kimlik bilgileri
    • SSIS paketleri
    • Sunucu denetimi
  • DMS ile veritabanı geçişleri için Azure Data Factory’den oluşturulan mevcut, şirket içinde barındırılan tümleştirme çalışma zamanını kullanamazsınız. Başlangıçta, şirket içinde barındırılan tümleştirme çalışma zamanı Azure Data Studio'daki Azure SQL geçiş uzantısı kullanılarak oluşturulmalıdır; bu, daha fazla veritabanı geçişi için yeniden kullanılabilir.
  • Hedef sürüm olarak SQL Server 2008 ve altındaki VM, Azure Sanal Makineler'da SQL Server'a geçirilirken desteklenmez.
  • SQL Server 2012 veya SQL Server 2014 ile vm kullanıyorsanız, kaynak veritabanı yedekleme dosyalarınızı ağ paylaşımı seçeneğini kullanmak yerine bir Azure Depolama Blob Kapsayıcısı'nda depolamanız gerekir. Blok blobları yalnızca SQL 2016 ve sonrasında desteklendiği için yedekleme dosyalarını sayfa blobları olarak depolayın.
  • Hedef Azure Sanal Makinesinde SQL IaaS Aracısı Uzantısı'nın Basit mod yerine Tam modda olduğundan emin olmanız gerekir.
  • SQL IaaS Aracısı Uzantısı yalnızca Varsayılan Sunucu Örneğinin veya Tek Adlandırılmış Örneğin yönetimini destekler.
  • SQL server Azure Sanal Makinesi'ne geçirebileceğiniz veritabanlarının sayısı donanım belirtimine ve iş yüküne bağlıdır, ancak zorunlu bir sınır yoktur. Ancak, her veritabanı için her geçiş işlemi (geçişi başlatma, tam geçiş) sırayla birkaç dakika sürer. Örneğin, 100 veritabanını geçirmek için, geçiş kuyruğu/sn oluşturmak yaklaşık 200 (2 x 100) dakika ve yaklaşık 100 (1 x 100) dakika sürebilir. 100 veritabanının tamamının (yedekleme ve geri yükleme zamanlaması hariç) tam olarak tamamlanması 100 (1 x 100) dakika sürebilir. Bu nedenle, veritabanı sayısı arttıkça geçiş yavaşlar. Microsoft, sıkı geçiş testlerine dayalı olarak önceden daha uzun bir geçiş penceresi zamanlamayı veya çok sayıda veritabanını bir SQL sunucusu Azure VM'sine geçirirken toplu işlemlere ayırmayı önerir.
  • Vm'nizin yedekleme dosyalarına erişmesine izin vermek için Azure Depolama Hesabınızın Ağ/Güvenlik Duvarı'nı yapılandırmanın dışında. Depolama hesabınıza giden bağlantıya izin vermek için Azure VM'de SQL Server'ınızın Ağ/Güvenlik Duvarı'nı da yapılandırmanız gerekir.
  • SQL Geçişi devam ederken Hedef SQL Server'ı Azure VM'de açık tutmanız gerekir. Ayrıca, yeni bir geçiş oluştururken yük devretme veya geçişi iptal etme.
  • Hata: Login failed for user 'NT Service\SQLIaaSExtensionQuery. Neden: SQL Server örneği tek kullanıcı modunda. Olası nedenlerden biri, Azure VM'deki hedef SQL Server'ın yükseltme modunda olmasıdır. Çözüm: Azure VM'de hedef SQL Server'ın yükseltme modundan çıkmasını bekleyin ve geçişi yeniden başlatın.
  • Hata: Ext_RestoreSettingsError, message: Failed to create restore job.;Cannot create file 'F:\data\XXX.mdf' because it already exists. Çözüm: Azure VM'de hedef SQL Server'a Bağlan ve XXX.mdf dosyasını silin. Ardından geçişi yeniden başlatın.

Azure Data Studio sınırlamaları

Sql Geçiş Hizmeti başlatılamadı: Hata: İstek hatası:

  • İleti: Error at ClientRequest.<anonymous> (c:\Users\MyUser\.azuredatastudio\extensions\microsoft.sql-migration-1.4.2\dist\main.js:2:7448) at ClientRequest.emit (node:events:538:35) at TLSSocket.socketOnEnd (node:_http_client:466:9) at TLSSocket.emit (node:events:538:35) at endReadableNT (node:internal/streams/readable:1345:12) at process.processTicksAndRejections (node:internal/process/task_queues:83:21)

  • Neden: Bu sorun, Azure Data Studio'nun MigrationService paketini adresinden https://github.com/microsoft/sqltoolsservice/releasesindiremediğinde oluşur. İndirme hatası, bağlantısız ağ çalışmasından veya çözümlenmemiş ara sunucu ayarlarından kaynaklanıyor olabilir.

  • Öneri: Bu sorunu çözmenin en iyi yolu paketi el ile indirmektir. Bu bağlantıda özetlenen risk azaltma adımlarını izleyin: https://github.com/microsoft/azuredatastudio/issues/22558#issuecomment-1496307891