Síntomas
Suponga que usa SQL Server 2017 en Linux. De forma predeterminada, la base de datos master se encuentra en la ubicación /var/opt/MSSQL/data.Ahora, desea cambiar la ubicación del archivo de base de datos master y del archivo de registro de errores a otra ubicación.
Resolución
Esta actualización se incluye en la siguiente actualización acumulativa de SQL Server:
Actualización acumulativa 4 para SQL Server 2017
Después de instalar SQL Server 2017 CU4, podrá cambiar la ubicación del archivo de base de datos master y la ubicación del archivo de registro de errores.
Cada actualización acumulativa para SQL Server contiene todas las revisiones y todas las revisiones de seguridad incluidas en la actualización acumulativa anterior. Consulte las últimas actualizaciones acumulativas para SQL Server:
Más información
Configurar ubicación de Errorlogfile:
-
Use el comando siguiente para establecer una nueva ubicación de ErrorLog. Asegúrese de que la estructura de carpetas está precreada y de que la cuenta de ' MSSQL ' tiene permisos para crear archivos.
-
./MSSQL-conf Set filelocation. errorlogfile/Home/User/SQLServer/log/ErrorLog
-
La variable de entorno para el registro de errores es MSSQL_ERROR_LOG_FILE.
-
A continuación se describen los escenarios y los pasos para configurar la ubicación de los archivos base de datos maestros:
Nota: Asegúrese de realizar una copia de seguridad completa de todas las bases de datos, incluida la base de datos master, antes de realizar los cambios.
ESCENARIO 1: cambiar la ubicación del archivo de base de datos maestro en la instalación de SQL existente.
-
Las nuevas opciones están disponibles en la utilidad MSSQL-conf para proporcionar la ubicación de Master. MDF, mastlog. ldf y ErrorLog.
-
A continuación se muestran los comandos para establecer la ubicación.
-
./MSSQL-conf Set filelocation. masterdatafile/Home/User/SQLServer/Data/Master.MDF
-
./MSSQL-conf Set filelocation. masterlogfile/Home/User/SQLServer/Data/mastlog.ldf
-
Antes de configurar la configuración, asegúrese de que la ruta de acceso proporcionada ya exista y de que el usuario de ' MSSQL ' tenga permiso total en la carpeta.
-
Después de configurar la opción detener MSSQL-Server (systemctl detener MSSQL-Server) y mover Master. MDF y mastlog. ldf a la ubicación configurada y reiniciar SQL Server (systemctl iniciar MSSQL-Server).
ESCENARIO 2: configuración previa de la ubicación del archivo de base de datos Master antes de la instalación.
-
Después de instalar MSSQL-Server (por ejemplo: apt-obtener install MSSQL-Server).
-
Puede configurar la variable de entorno de la siguiente manera:
-
exportar MSSQL_MASTER_DATA_FILE =/Home/User/sqlservr/Data/Master.MDF
-
exportar MSSQL_MASTER_LOG_FILE =/Home/User/sqlservr/Data/mastlog.ldf
-
O bien, puede usar los pasos mencionados en el escenario 1 para establecer la configuración y, a continuación, cambiar el permiso de la carpeta /var/opt/MSSQL/ que pertenece a la cuenta MSSQL. Si establece la variable de entorno y la configuración de MSSQL-conf, la variable de entorno tendrá prioridad.
Nota: el nombre de archivo de la base de datos Master debe ser 'Master. MDF ' y el registro maestro debe ser 'mastlog. ldf ' durante la instalación. El nombre de archivo se puede cambiar más adelante.
Si la estructura de carpetas no se crea o si la cuenta MSSQL no tiene permiso para ello, recibirá el siguiente error durante la instalación.
ERROR: BootstrapSystemDataDirectories () Failure (HRESULT 0x80070002)
Error en la configuración inicial de Microsoft SQL Server. Consulte el ERRORLOG
ESCENARIO 3: cambiar el nombre de los archivos de base de datos Master
-
Detenga MSSQL-Server.
-
Configurar los nombres de archivo mediante MSSQL-conf
-
Cambie el nombre de los archivos de base de datos Master a los nombres de archivo configurados.
-
Iniciar MSSQL-Server
A continuación se muestran los comandos para cambiar el nombre de los archivos de base de datos master.
systemctl detener MSSQL-Server
./MSSQL-conf Set filelocation. masterdatafile/Home/sqlservr/Data/Testmaster.MDF
./MSSQL-conf Set filelocation. masterlogfile/Home/sqlservr/Data/testmastlog.ldf
MV/Home/sqlservr/Data/Master.MDF/Home/sqlservr/Data/Testmaster.MDF
MV/Home/sqlservr/Data/mastlog.ldf/Home/sqlservr/Data/testmastlog.ldf
systemctl Start MSSQL-Server
Referencias
Obtenga más información sobre la terminologíaque Microsoft usa para describir las actualizaciones de software.