Sintomas
Assuma que utiliza o SQL Server 2017 no Linux. Por predefinição, a base de dados principal está localizada na localização /var/opt/mssql/data.Agora, pretende alterar a localização do ficheiro principal de base de dados e do registo de erros para um local diferente.
Resolução
Esta atualização está incluída na seguinte atualização cumulativa para o SQL Server:
Atualização Cumulativa 4 para SQL Server 2017
Depois de instalar o servidor SQL 2017 CU4 poderá alterar a localização do ficheiro principal de base de dados e a localização do ficheiro de registo de erros.
Cada nova atualização cumulativa do SQL Server contém todos os hotfixes e todas as correções de segurança que foram incluídas com a atualização cumulativa anterior. Confira as últimas atualizações cumulativas do SQL Server:
Mais Informações
Configure a localização do ficheiro de erros:
-
Utilize o seguinte comando para definir a nova localização do errorlog. Certifique-se de que a estrutura da pasta está pré-criada e que a conta 'mssql' tem permissões para criar ficheiros.
-
./mssql-conf set filelocation.errorlogfile /home/user/sqlserver/log/errorlog
-
A variável ambiental para registo de erro é MSSQL_ERROR_LOG_FILE.
-
Seguem-se os passos e passos do cenário para configurar a localização dos ficheiros da base de dados principais:
NOTA: Certifique-se de que faz cópias de segurança completas de todas as suas bases de dados, incluindo a base de dados principal, antes de escotar qualquer uma das alterações.
CENÁRIO 1: alterar a localização do ficheiro de base de dados principal na instalação SQL existente.
-
Novas opções estão disponíveis na utilidade mssql-conf para fornecer a localização de master.mdf, mastlog.ldf e errorlog.
-
Seguem-se 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 configurar as definições, certifique-se de que o caminho fornecido já existe e que o utilizador 'mssql' tem total permissão na pasta.
-
Depois de configurar o mssql-servidor de paragem de definição (stopmssql-server systemctl) e movermaster.mdf e mastlog.ldf para a localização configurada e reiniciar o servidor sql (sistemacítaliniciar omssql-servidor).
CENÁRIO 2: Localização pré-configuração do ficheiro de base de dados principal antes da instalação.
-
Depois de instalar o mssql-server (ex: apt-instale o mssql-server).).
-
Pode configurar a variável ambiente da seguinte forma:
-
exportação MSSQL_MASTER_DATA_FILE=/home/user/sqlservr/data/master.mdf
-
exportação MSSQL_MASTER_LOG_FILE=/home/user/sqlservr/data/mastlog.ldf
-
Ou pode utilizar os passos mencionados no SCENARIO 1 para definir a configuração e, em seguida, alterar a permissão de /var/opt/mssql/ pasta que é propriedade da conta MSSQL. Se definir as definições de variável ambiente e mssql-conf, então a variável ambiente terá precedência.
NOTA:O nome do ficheiro da base de dados principal deve ser'master.mdf' e o registo principal deve ser'mastlog.ldf' durante a instalação. O nome de ficheiro pode ser alterado mais tarde.
Se a estrutura da pasta não for criada ou a conta mssql não tiver a permissão certa, então terá o seguinte erro durante a configuração.
ERRO: Falha nas Difusões de Dados do Sistema de Botas (HRESULT 0x80070002)
A configuração inicial do Microsoft SQL Server falhou. Consulte o ERRORLOG
CENÁRIO 3: alterar o nome dos ficheiros da base de dados principal
-
Pare o mssql-servidor.
-
Desfie os números de ficheiros usando mssql-conf
-
Mude o nome dos ficheiros da base de dados principal para os nomes de ficheiros configurados.
-
Iniciar o mssql-servidor
Seguem-se os comandos para alterar o nome dos ficheiros de base de dados principais.
sistema stop mssql-servidor
./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
sistema iniciar mssql-servidor
Referências
Conheça a terminologiaque a Microsoft utiliza para descrever atualizações de software.