MigraTI - Soluções em banco de dados

Mostrando postagens com marcador sql-server. Mostrar todas as postagens
Mostrando postagens com marcador sql-server. Mostrar todas as postagens

quinta-feira, 9 de julho de 2020

0x851A001A - Wait on the Database Engine recovery handle failed

Servidor: Windows server 2012 R2 Foundation
Controlador de dominio - SQL-Server Express Edition (2014, 2017)

Ao instalar o SQL-Server o mesmo apresenta o erro abaixo:


Wait on the Database Engine recovery handle failed. Check the SQL Server error log for potential causes.

No Erro ele vai te dar uma pasta de logs para entrar, abra essa pasta e veja o arquivo summary.txt.

Nele você encontrará a linha:
SQLSVCACCOUNT: NT Service\MSSQLSERVER

Para resolver, desisntale o SQL-Server e recomece a instalação, siga todos os passos normalmente até chegar em "server configuration"


Troque o usuário para "NT AUTHORITY\NETWORK SERVICE" e siga com os proximos passos da instalação normalmente.

Só trocar o usuário nos services não irá funcionar.

Grato.


Burlando o restart inicial da instalação do SQL-Server (qualquer edição)

    É muito comum termos de instalar um sql-server em um ambiente que já esta em produção e ja logo de cara ele pede um restart, ai precisamos solicitar ao cliente um horário para restartar.

    Muitas vezes o cliente libera sem problemas, mas algumas vezes só depois das 18, atrapalhando o projeto.

Nesse caso o que fazer? Tem como burlarmos este restart? - Tem sim.

Tela que solicita o restart.


Pos então vamos a Mágica.

Abra o regedit, e navegue pelos seguintes diretórios:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager 
Abra esta pastinha e procure o item "PendingFileRenameOperations" ele é um item REG_Multi_SZ.

Ao encontra-lo, apague-o.

Feche o REGEDIT e clique em Re-Run no seu instalador do SQL-Server.

Qualquer duvida deixe seu comentário. 


quarta-feira, 27 de dezembro de 2017

Valor Inválido especificado para o parâmetro EXPIREDATE. (SQL-SERVER)

   Estávamos recebendo alguns erros no backup de um cliente e ao efetuar um backup manual recebemos o seguinte erro:


Pois bem, nosso primeiro passo é verificar a data do servidor e a data do SQL-Server.

Para coletar a data do SQL-Server:

SELECT GETDATE();

Visto que neste caso o cliente estava com 10 a 15 minutos atrasados do horário padrão.

Alteramos o tempo de expiração do backup, conforme:


   Para corrigir o problema, podemos usar duas soluções. Corrigir o horário do servidor, que resolveria o problema na raiz, ou aumentar o valor de tempo de expiração.

Como neste caso não era possível alterar a data do servidor, apenas aumentamos o EXPIREDATE para "1"


terça-feira, 20 de dezembro de 2016

Instalação do mssql-tools no linux

Ontem a tarde foi escrito como efetuar a instalação do SQL-Server no Cento 7.
Agora vamos descrever como efetuar a instalação do SQLCMD.

A instalação é muito parecida com a do SQL-Server, porem são outros pacotes e outro repositório. (coisas de microsoft)

A Instalação esta utilizando o mesmo servidor que foi instalado o SQL-Server Ontem. Veja aqui o post sobre isso.


Mãos a Massa:

Instalar o repositório

[root@localhost ~]#  curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/msprod.repo
Ou adicionar o repositório manualmente:

[root@localhost ~]# vi /etc/yum.repos.d/msprod.repo
[packages-microsoft-com-prod]
name=packages-microsoft-com-prod
baseurl=https://packages.microsoft.com/rhel/7/prod/
enabled=1
gpgcheck=1
gpgkey=https://packages.microsoft.com/keys/microsoft.asc

sábado, 8 de outubro de 2016

Grant para usuário visualizar apenas databases especificas. (SQL-Server)

Bom dia, sempre me preocupei muito em escrever posts sobre Oracle, porem como o meu foco hoje em dia não é apenas Oracle e sim, Banco de dados em Geral, começarei a postar dicas de outros bancos de dados também, dito isso vamos dar uma dica bem bacana de SQL-Server.

Sabe quando você possui um usuário e não quer que ele consiga nem mesmo visualizar os databases que a instancia possui? Então, no SQL-Server é meio "chato" de fazer essa configuração na mão, então la vai os comandos que efetuam esse Grant.

Conecte com algum usuário que possua permissão sysadmin e efetue o processo abaixo:

USE <database_destino>

ALTER AUTHORIZATION ON DATABASE::<database_destino>to <usuário_destino>;


USE MASTER

DENY VIEW ANY DATABASE TO <database_destino>;

Caso o primeiro comando dê erro, verifique se o mesmo já não possui acesso ao database, é importante que ele ainda não possua acesso ao database.

Para você ver como ficaria o usuário seria assim...
Na aba "Mapeamento de Usuário":



Na aba "Protegíveis", vá para "Efetivas":




Boa diversão.