Estoy tratando de importar la base de datos de SQL Server desde AWS SQL Server a Azure SQL Server. A continuación se muestran los pasos que estoy haciendo para el proceso de importación:
Después del proceso de carga, cuando restauro el archivo .bacpac del almacenamiento de blobs de Azure a Azure SQL Server, obtengo la siguiente excepción.
*No se puede usar el archivo de copia de seguridad ' https://sqlmigrateassistant.blob.core.windows.net/sql2005backup/demodatabase.bacpac ' porque originalmente se formateó con el tamaño de sector 512 y ahora está en un dispositivo con el tamaño de sector 65536. RESTORE FILELIST es terminando anormalmente *
Después del paso 2 anterior, también intenté importar el archivo .bacpac desde la ruta del archivo local manualmente a Azure SQL Server desde SQL Server Management Studio (SSMS). En ese momento, recibo la siguiente excepción.
*El archivo contiene datos dañados. (Microsoft.Data.Tools.Schema.Sql) *
¿Alguien puede proporcionar información sobre cómo puedo restaurar la base de datos en Azure SQL Server?
Cualquier información es muy apreciada.
Tendrá que usar Restaurar base de datos con URL y especificar el tamaño de bloque de 512..
RESTORE DATABASE [AdventureWorks2012] FROM URL = N'your bacpac path' WITH CREDENTIAL = N'My_Credential' , FILE = 1, NOUNLOAD, STATS = 5,BLOCKSIZE= 512;el motivo de la falla se ha explicado aquí: falla de restauración de la base de datos al restaurar desde la URL y el contexto también se aplica a su escenario
Al realizar una copia de seguridad en la dirección URL, SQL Server usa el tamaño de bloque de 64 KB de forma predeterminada porque el tamaño del sector presentado por el almacenamiento de blobs de Azure es de 64 KB. Por lo tanto, las copias de seguridad regulares programadas a la URL creadas por Managed Backup tienen el mismo tamaño de bloque que el tamaño del sector de medios, y este problema no ocurre. Pero cuando una copia de seguridad creada en un disco local con un tamaño de sector de 4K se copia en la cuenta de almacenamiento y luego se intenta restaurar desde ella, SQL Server la bloquea con el mensaje de error anterior.