Este artículo explora la configuración de recopilación de bases de datos SQL de Azure y cómo cambiarla al importar la base de datos desde un archivo BACPAC.
Introducción
La intercalación se refiere a una configuración que determina el comportamiento del motor de base de datos para el conjunto de datos de caracteres a nivel de servidor, base de datos o columna. SQL Server tiene una amplia gama de intercalaciones para manejar las diferencias de idioma en diferentes partes del mundo. Proporciona reglas de clasificación, sensibilidad de mayúsculas y minúsculas para tipos de datos Unicode (nchar, nvarchar o ntext) y no Unicode (char, varchar, nvarchar).
SQL Server admite las siguientes intercalaciones.
- Windows
- Binario: La intercalación binaria siempre termina con _BIN o _BIN2
- SQL Server: Estos nombres de intercalación siempre comienzan con SQL_
Para un servidor SQL tradicional (local), la configuración regional del sistema operativo determina la intercalación predeterminada. Sin embargo, puede modificar la intercalación a nivel de servidor durante la instalación de SQL Server o modificar la configuración regional del sistema operativo. La intercalación predeterminada de SQL Server es SQL_Latin1_General_CP1_CI_AS. Puede comprender estas intercalaciones en detalle haciendo referencia a la compatibilidad con intercalación y Unicode.
Requisitos
Este artículo supone que tiene un conocimiento básico de las bases de datos SQL de Azure. Si es un principiante, puede consultar los artículos existentes de SQL Azure en SQLShack. Puede utilizar el crédito gratuito de Microsoft Azure registrándose en URL https://azure.microsoft.com/en-us/free/
Recopilación de bases de datos SQL de Azure
Azure SQL DB es una oferta PaaS administrada para SQL Server con ciertas restricciones y limitaciones para realizar tareas específicas. Al igual que el servidor SQL local, Azure DB también admite varias intercalaciones. Para obtener una lista de intercalaciones compatibles con Azure SQL DB, podemos consultar el sistema.fn_helpcollations() función. Devuelve una lista de 5,508 intercalaciones. La siguiente figura le da un vistazo de la recopilación y las descripciones.
Para Azure SQL DB, puede elegir intercalación de base de datos en la pestaña configuración adicional de crear base de datos SQL. Como se muestra a continuación, la intercalación predeterminada aparece como SQL_Latin1_General_CP1_CI_AS.
Podemos desglosar esta intercalación para entenderla.
- SQL-Se refiere a que es una colación de SQL Server
- Latin1_General – Esta parte define la regla de clasificación de caracteres
- CI-Se refiere a que no distingue entre mayúsculas y minúsculas
- YA que define la sensibilidad de acento
Puede hacer clic en buscar una intercalación y buscar la intercalación específica que desea configurar para Azure DB.
Puede implementar una base de datos de Azure en un servidor lógico Azure existente. Por lo tanto, si crea una nueva base de datos de Azure con SSMS, puede definir una intercalación específica mediante la página opciones.
Si usted crea una Azure SQL DB usando T-SQL, puede utilizar el COLLATE palabra clave y especifica la DB de intercalación.
1
2
3
|
CREAR BASE de datos MyDemoSQLDB
INTERCALAR Latin1_General_100_CS_AS_SC;
IR
|
debe crear la base de datos en la intercalación correcta. Es posible que las consultas SQL no funcionen correctamente debido a la falta de coincidencia de intercalación. Sin embargo, si necesita realizar modificaciones después de crear la base de datos SQL de Azure, no es sencillo. Azure SQL DB no admite el cambio de intercalación mediante la INTERCALACIÓN ALTER DATABASE. Aparece el siguiente mensaje de error si intenta cambiarlo.
1
2
3
4
|
Usar maestro
ir
ALTER DATABASE Azuredemodatabase
COTEJAR SQL_Latin1_General_CP1250_CI_AS
|
- Nota: No modifique ni establezca una intercalación específica hasta que tenga requisitos específicos. Nunca lo haga directamente en una base de datos de producción. Pruébelo a fondo en un entorno de base de datos inferior y, a continuación, planee proceder a la recopilación de producción
Supongamos que está implementando una base de datos SQL de Azure desde el archivo BACPAC local. Desea una intercalación diferente en la base de datos de destino.
- Nota: Asumo que tiene una base de datos SQL de Azure activa. Si no, puede usar una cuenta de nivel gratuito para implementar su base de datos de pruebas
- Exporte la base de datos SQL de Azure en formato BACPAC
- Instale el marco de aplicaciones de nivel de datos de Microsoft SQL Server (18.1)
- Modifique el modelo.configuración de archivos xml
- Utilice sqlpackage.exe para implementar la base de datos de Azure con intercalación actualizada
- Verificar la intercalación de la base de datos
- /tsn: Especifique el FQDN de Azure SQL Server en el que queremos importar este archivo BACPAC. En mi caso, es azuredemosqldemo.database.windows.net
- / tdn: Es el nuevo nombre de la base de datos SQL de Azure. No puede importar BACPAC en una base de datos existente
- /tu: Especifique el nombre de usuario de administrador para conectarse con Azure SQL Server e implementar la base de datos
- / tp: Introduzca la contraseña para el usuario administrador
- / sf: Especifique la ubicación del archivo BACPAC
- / ModelFilePath: Introduzca el modelo actualizado.Ruta del archivo XML
- Nota: No debe modificar la intercalación de bases de datos sin requisitos específicos. Podría causar problemas si lo cambia arbitrariamente
- Autor
- Publicaciones recientes
- Usar plantillas ARM para implementar instancias de contenedores de Azure con imágenes de SQL Server Linux – 21 de diciembre de 2021
- Acceso a escritorio remoto para AWS RDS SQL Server con Amazon RDS Personalizado – 14 de diciembre de 2021
- Almacenar archivos de SQL Server en Almacenamiento persistente para Instancias de contenedores de Azure – Diciembre 10, 2021
Para esta demostración de artículo, realizaremos las siguientes tareas:
Paso 1: Exportar la base de datos SQL de Azure en formato BACPAC
En este paso, exportamos la base de datos SQL de Azure en formato BACPAC. Podemos verificar que la intercalación existente es SQL_Latin1_General_CP1_CI_AS.
Para exportar, haga clic con el botón secundario en la base de datos de Azure y elija Exportar aplicación de nivel de datos…
Especifique el directorio en guardar en el disco local.
Verificar, exportar y supervisar el progreso de la aplicación de nivel de datos en formato BACPAC.
Paso 2: Descargar Microsoft SQL Server Data-Tier Application Framework (18.1)
Necesita descargar e instalar la última versión de SSDT. Vaya a URL https://www.microsoft.com/en-us/download/details.aspx?id=57784 y haga clic en Descargar.
Seleccione la versión de archivo MSI requerida y descárguelo. Es un archivo de paquete ligero.
Siga el asistente de instalación para configurar el marco de aplicaciones de nivel de datos de Microsoft SQL Server.
Paso 3: Cambiar el nombre de la. Archivo BACPAC a .ZIP
En este paso, cambiamos el nombre del archivo de paquete BACPAC exportado a un formato ZIP. Para hacerlo, haga clic con el botón derecho en el BACPAC importado y cambie la extensión a ZIP. El tipo de archivo se comprime (comprime) después de cambiar la extensión, como se muestra en la siguiente figura.
Haga clic con el botón derecho en el archivo comprimido y extráigalo. En la carpeta extraída, encontrará un modelo.xml, copia el modelo.xml a otro directorio, como el C:\Temp carpeta.Modelo
Abra el modelo.xml desde C:\Temp\Model.xml y modificar la intercalación de BD. En la siguiente figura se muestran las intercalaciones antiguas y nuevas para la base de datos SQL de Azure. Aquí usamos la intercalación SQL con sensibilidad a mayúsculas y minúsculas.
Paso 4: Implemente la base de datos de Azure mediante sqlpackage.exe
Aquí, vaya al directorio C:\Program Archivos\Microsoft SQL Server \ 150 \ DAC \ bin en el símbolo del sistema. Usamos el paquete sql.exe para importar el BACPAC con el parámetro / ModelFilePath. Anula la configuración del archivo de modelo BACPAC con el archivo específico de este parámetro.
Parámetros requeridos:
Anteriormente, cambiamos la extensión del archivo BACPAC a ZIP. Tenemos que volver a cambiarlo a BACPAC para ejecutar el paquete sql.comando exe.
Para modificar la intercalación en el BACPAC, ejecute el siguiente comando en un símbolo del sistema.
paquete sql.exe /Acción:Importación /tsn:azuredemosqldemo.database.windows.net /tdn:azuredemodatabasenew /tu:sqladmin /tp:******* /sf:C:\Temp\azuredemodatabase.BACPAC / ModelFilePath: C: \ Temp \ model.xml
Aparece un mensaje de advertencia:
» Sobreescribir el modelo.xml usando archivo ‘C:\Temp\model.xml». El uso de esta configuración puede provocar un error de implementación y/o una pérdida de datos involuntaria. Esta configuración se usa solo para solucionar problemas con la publicación, importación o generación de scripts»
Inicia la importación de datos, procesa tablas e implementa la base de datos en ella. El tiempo de implementación de la base de datos depende del número de tablas, el tamaño de los datos y los índices.
Al final, se obtiene la base de datos importada con éxito.
Paso 5: Verificación
Ahora, conéctese a Azure Database mediante SSMS y verifique la intercalación de la base de datos mediante el siguiente script.
1
|
SELECT CONVERT (varchar(256), DATABASEPROPERTYEX(‘azuredemodatabasenew’,’intercalación’));
|
Como se muestra a continuación, la base de datos recién implementada utiliza la intercalación SQL_Latin1_General_CP1_CS_AS.
Ahora, inicie sesión en el portal de Azure y vea las propiedades de la base de datos. Esta base de datos tiene un nivel de precios Gen5, 2vcores de propósito general. No especificamos ningún nivel de precios al implementar la base de datos. Por lo tanto, la base de datos SQL de Azure toma el nivel de precios predeterminado.
Paso 6: Implementar una base de datos de Azure en un nivel de precios específico
Supongamos que queremos implementar una base de datos con intercalación modificada y un nivel de precios básico. Para esta demostración, cambiamos la intercalación de BD a Latin1_General_BIN. Por lo tanto, abra el modelo.xml y cambie la intercalación como se resaltó anteriormente.
Esta vez especificamos un nuevo parámetro (/p) para configurar la edición de la base de datos. Indica a Azure que implemente la base de datos en el nivel de precios específico.
paquete sql.exe / Action: Import / tsn: azuredemosqldemo.base.windows.net /tdn: azuredemodatabasenew / tu: sqladmin /tp:******* /p:DatabaseEdition=Basic /sf: C:\Temp\azuredemodatabase.BACPAC / ModelFilePath: C: \ Temp \ model.xml
Una vez implementada la base de datos, verifique la intercalación de la base de datos. Como se muestra a continuación, utiliza la intercalación Latin1_General_BIN.
Puede conectarse al portal de Azure y verificar el nivel de precios como Básico.
Conclusión
En este artículo se exploró la recopilación predeterminada de bases de datos SQL de Azure y el proceso para cambiarla al importar una base de datos desde un archivo BACPAC. Puede especificar la intercalación deseada e implementar la base de datos. Sin embargo, nunca cambie la comparación a menos que tenga un requisito específico. Puede probar los pasos en su propia base de datos SQL de prueba de Azure.
Es el creador de una de las mayores colecciones gratuitas en línea de artículos sobre un solo tema, con su serie de 50 partes en grupos de disponibilidad Always On de SQL Server. En base a su contribución a la comunidad de SQL Server, ha sido reconocido con varios premios, incluido el prestigioso «Mejor autor del año» de forma continua en 2020 y 2021 en SQLShack.
Raj siempre está interesado en nuevos desafíos, por lo que si necesita ayuda de consultoría sobre cualquier tema cubierto en sus escritos, puede comunicarse con él en rajendra.gupta16 @ gmail.com
Ver todos los mensajes de Rajendra Gupta