Sintomas
Suponha que você use o SQL Server 2017 no Linux. Por padrão, o banco de dados mestre está localizado no local /var/opt/MSSQL/Data.Agora, você deseja alterar a localização do arquivo de banco de dados mestre e do arquivo de log de erros para um local diferente.
Resolução
Esta atualização está incluída na seguinte atualização cumulativa do SQL Server:
Atualização cumulativa 4 para SQL Server 2017
Depois de instalar o SQL Server 2017 CU4, você poderá alterar o local do arquivo de banco de dados mestre e o local do arquivo de log de erros.
Cada nova atualização cumulativa do SQL Server contém todos os hotfixes e todas as correções de segurança incluídas na atualização cumulativa anterior. Confira as atualizações cumulativas mais recentes do SQL Server:
Informações adicionais
Configurar o local do Configurador de erros:
-
Use o comando a seguir para definir o novo local de erros. Verifique se a estrutura de pastas é pré-criada e se a conta "MSSQL" tem permissões para criar arquivo.
-
./MSSQL-conf Set FileLocation. Test/Home/user/SqlServer/log/errorlogme
-
A variável de ambiente para o log de erros é MSSQL_ERROR_LOG_FILE.
-
Veja a seguir os cenários e as etapas para configurar o local dos arquivos base de dados mestre:
Observação: certifique-se de fazer backup completo de todos os bancos de dados, incluindo o banco de dados mestre antes de fazer qualquer alteração.
CENÁRIO 1: alterar o local do arquivo de banco de dados mestre na instalação existente do SQL.
-
Novas opções estão disponíveis no utilitário MSSQL-conf para fornecer o local de Master. MDF, mastlog. ldf e de erros.
-
Veja a seguir os comandos para definir o local.
-
./MSSQL-conf Set FileLocation. masterdatafile/home/user/SqlServer/data/Master.MDF
-
./MSSQL-conf Set FileLocation. masterlogfile/home/user/SqlServer/data/mastlog.ldf
-
Antes de definir as configurações, certifique-se de que o caminho fornecido já existe e "MSSQL" o usuário tem permissão total na pasta.
-
Depois de definir a configuração, interrompa MSSQL-Server (systemctl Stop MSSQL-Server) e mova Master. MDF e mastlog. ldf para o local configurado e reinicie o SQL Server (systemctl iniciar MSSQL-Server).
CENÁRIO 2: pré-configurar o local do arquivo de banco de dados mestre antes da instalação.
-
Depois de instalar o MSSQL-Server (ex: apt-get install MSSQL-Server).
-
Você pode configurar a variável de ambiente da seguinte maneira:
-
exportar MSSQL_MASTER_DATA_FILE =/home/user/sqlservr/data/Master.MDF
-
exportar MSSQL_MASTER_LOG_FILE =/home/user/sqlservr/data/mastlog.ldf
-
Ou você pode usar as etapas mencionadas no cenário 1 para definir a configuração e, em seguida, alterar a permissão da pasta /var/opt/MSSQL/ pertencente à conta do MSSQL. Se você definir a variável de ambiente e as configurações de MSSQL-conf, a variável de ambiente terá precedência.
Observação: o nome do arquivo da base de dados mestra deve ser 'Master. MDF ' e o log mestre deve ser 'mastlog. ldf ' durante a instalação. O nome do arquivo pode ser alterado mais tarde.
Se a estrutura da pasta não for criada ou a conta do MSSQL não tiver a permissão certa, você receberá o seguinte erro durante a instalação.
ERRO: falha de BootstrapSystemDataDirectories () (HRESULT 0x80070002)
Falha na configuração inicial do Microsoft SQL Server. Consulte o contente
CENÁRIO 3: alterar o nome de arquivos do banco de dados mestre
-
Pare o MSSQL-Server.
-
Defina os nomes dos nomes usando MSSQL-conf
-
Renomeie arquivos do banco de dados mestre para os nomes de arquivo configurados.
-
Iniciar o MSSQL-Server
Veja a seguir os comandos para alterar o nome dos arquivos do banco de dados mestre.
systemctl parar 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 iniciar MSSQL-Server
Referências
Saiba mais sobre a terminologiaque a Microsoft usa para descrever atualizações de software.