Em um post no SqlServerCentral.com , é mencionado por várias pessoas que os arquivos do banco de dados Resource (mssqlsystemresource.mdf e ldf) devem ser colocados na mesma pasta do arquivo mestre do banco de dados. Isso foi para o SQL Server 2005. Isso ainda é uma recomendação quando se trata do SQL Server 2017? Tentei procurar no BOL, mas não encontrei nenhuma menção a isso lá.
GHauan's questions
Estou tentando usar sp_DatabaseRestore
o SQL Server First Responder Kit para restaurar alguns bancos de dados. Funciona bem se eu primeiro restaurar o banco de dados de maneira normal usando o SSMS, mas se o banco de dados não existir anteriormente, ele diz que não conseguiu encontrar o arquivo especificado (para ambos os dados e arquivos de log).
Também termina com a seguinte mensagem:
O banco de dados "DatabaseName" não existe. RESTORE só pode criar um banco de dados ao restaurar um backup completo ou um backup de arquivo do arquivo principal.
Mas o primeiro caminho é para o backup completo, então não tenho certeza do que isso significa.
Existe algum uso específico dos parâmetros que me ajudaria a usar isso mesmo quando o banco de dados não existe ou sou forçado a criá-los primeiro?
Todas as sugestões apreciadas.
Edit: Código que é usado (caminhos e nomes foram alterados). O código falhará se o banco de dados não existir. Se eu criar o banco de dados, ele funcionará:
DECLARE @VersionDate datetime;
EXEC dbo.sp_DatabaseRestore @Database = N'DatabaseName',
@BackupPathFull = N'\\SERVERNAME\Backup\servername-wfcs$ServerNameAG01\DatabaseName\FULL\',
@BackupPathLog = N'\\SERVERNAME\Backup\servername-wfcs$ServerNameAG01\DatabaseName\LOG\',
@MoveFiles = 0,
@ContinueLogs = 0,
@RunRecovery = 1,
@ForceSimpleRecovery = 0,
@Debug = 0,
@VersionDate = @VersionDate OUTPUT
Edit 2: Acontece que havia uma diferença nos nomes das pastas de arquivos de dados entre o antigo e o novo servidor. O servidor antigo tinha um número de versão inferior à versão real do SQL Server, provavelmente devido a uma atualização anterior. Ao tentar restaurar de um backup com a pasta de dados correta, não há problema.
Temos um banco de dados bastante grande em execução no SQL Server 2012. O arquivo de dados agora tem 2.118.256 MB. Há algumas semanas, sempre que executo o relatório Uso de disco do SSMS, ele diz na parte inferior que "Não há arquivo de dados para o banco de dados MyDatabase".
Alguém já viu isso antes? O banco de dados está funcionando. Existe uma restrição de tamanho sobre o que este relatório mostrará?
Eu tenho um banco de dados SQL Server 2014 onde o arquivo de log preencheu o disco. Como era um banco de dados de teste, decidimos apenas excluir todo o banco de dados. Nós o colocamos offline, mas quando tentamos descartá-lo, recebemos uma mensagem de que ele não pode ser descartado, pois está em uso.
Como pode estar em uso quando está offline? Como posso derrubá-lo? (Preferível sem levá-lo online.)
Eu experimentei o projeto de banco de dados SSDT no Visual Studio e com a solução SQL Prompt da Red Gate. Parece que o intellisense funciona apenas para palavras-chave SQL como SELECT, WHERE etc, ele não fornece intellisense para nomes de tabelas, nomes de colunas etc.
Existe algum truque para fazer isso funcionar? (Tentei no VS2015 e no VS2017).
Nosso departamento de "hardware" iniciou algumas replicações ASR em um dos servidores onde executamos o SQL Server. Parece que o método que eles usam para isso usa VSS, e eu posso ver muitas mensagens no log SQL sobre bancos de dados que estão sendo copiados e também a E/S congelada/reiniciada. Parece fazer isso a cada hora.
Esses backups feitos pelo VSS quebram a cadeia de logs ou são backups de cópia? Existe alguma maneira de ver se eles são backups de cópia? É possível instruir o VSS a usar backups de cópia?
Qualquer feedback apreciado.
Temos um banco de dados de 300 GB que estou testando a restauração para uma nova instância do SQL Server 2016, em um servidor Windows 2016 virtual, usado para fins de teste.
A VM tem 32 GB de RAM, rodando em uma CPU de 1 soquete com 10 processadores lógicos. (E5 - 2670, 2,6 GHz). Não tenho certeza sobre a configuração de energia, verificarei isso com os caras que configuraram a VM.
A primeira vez que restaurei, fiz de um .bak
arquivo - de uma instância de 2014. Na segunda vez (ainda em execução) fiz a partir de um backup feito na instância do SQL Server 2016.
Nas duas vezes, demorou mais de uma hora para que a mensagem "5% processado" fosse exibida. Antes disso, a porcentagem estava em 0% (usando um script que mostra o progresso da restauração). A restauração foi concluída após cerca de 2 horas na primeira vez. Eu me pergunto especialmente por que demora tanto para o indicador de processo começar a funcionar. O que está acontecendo quando isso permanece em 0%?
Isso é normal em uma instância do SQL Server 2016 ou algo pode estar errado? No servidor de produção, uma restauração será muito mais rápida, mas é difícil comparar, pois o prod é um servidor dedicado com vários eixos, enquanto o test-server é um servidor virtual.
Eu sei que o SQL SERVER 2016 pode coexistir com versões anteriores no mesmo servidor. Eu me pergunto, no entanto, se há alguma pegadinha que eu deveria estar ciente? Temos um servidor de teste que já possui instâncias 2008r2, 2012 e 2014. Existe alguma chance de que haja algo nas instâncias existentes que se comportem de maneira diferente se instalarmos 2016 também no mesmo servidor?
Eu tenho um tipo de tabela definido pelo usuário no SQL Server 2014 que preciso descartar e recriar. No entanto, se eu usar o script do SSMS, as restrições de valor padrão que estão em algumas das colunas não serão criadas.
Também tenho problemas para visualizar a restrição padrão, então não sei qual deve ser o valor padrão.
Existe uma maneira de ver o que essas restrições de valor padrão contêm?
CREATE TYPE [Logging].[LogElements] AS TABLE(
[LogMessage] [nvarchar](MAX) NOT NULL,
[MessageTypeId] [smallint] NOT NULL,
[Origin] [varchar](50) NOT NULL,
[JobRunId] [int] NULL,
[InvoiceId] [int] NULL,
[AccountlineId] [int] NULL,
[MSErrorCode] [bigint] NOT NULL,
[LogStatusId] [int] NOT NULL,
[LogUser] [varchar](50) NULL
) VAI
Acima está a definição criada ao gerar o script no SSMS. Como você pode ver, os valores padrão não estão no script.
Há algum tempo estou com um job de agente sp_AskBrent
rodando com os seguintes parâmetros:
EXEC sp_AskBrent @Expertmode=1
,@OutputDatabaseName = 'DBName'
, @OutputSchemaName = 'dbo'
, @OutputTableName = 'AskBrentResults'
,@seconds = 30
, @OutputTableNameFileStats='AskBrentResultsFileStats'
,@OutputTableNamePerfmonStats='AskBrentResultsPerfmonStats'
, @OutputTableNameWaitStats='AskBrentResultsWaitStats'
Hoje eu queria atualizar para o novo procedimento renomeado sp_BlitzFirst
. Depois de criar o novo procedimento, alterei o código no trabalho do agente para ser executado sp_BlitzFirst
, com os mesmos parâmetros.
Tudo parece correr bem até a hora de enviar os valores para as tabelas, então parece haver algum tipo de erro de conversão.
Toda a saída do histórico é a seguinte:
Configurando variáveis de configuração [SQLSTATE 01000] (Mensagem 50000)
Agora iniciando a análise de diagnóstico [SQLSTATE 01000] (Mensagem 50000)
Capturando a primeira passagem de estatísticas de espera, contadores perfmon, estatísticas de arquivo [SQLSTATE 01000] (Mensagem 50000)
Iniciando consultas de investigação [SQLSTATE 01000 ] (Mensagem 50000)
Concluiu a execução de consultas de investigação [SQLSTATE 01000] (Mensagem 50000)
Aguardando para corresponder ao parâmetro @Seconds [SQLSTATE 01000] (Mensagem 50000)
Capturando a segunda passagem de estatísticas de espera, contadores de desempenho, estatísticas de arquivo [SQLSTATE 01000] (Mensagem 50000 )
Analisando alterações entre a primeira e a segunda passagem de DMVs [SQLSTATE 01000] (Mensagem 50000)
Análise concluída, exibindo resultados [SQLSTATE 01000] (Mensagem 50000)
A conversão falhou ao converter a data e/ou hora da cadeia de caracteres. [SQLSTATE 22007] (Erro 241). A etapa falhou.
Alguém tem alguma sugestão para o que pode causar isso? As tabelas de saída foram alteradas de alguma forma desde que o procedimento foi chamado sp_Askbrent
? A versão de sp_Askbrent
foi relatada desta forma: sp_AskBrent (TM) v20 a partir de 1º de janeiro de 2016, 12h.
Por algum tempo, suspeitei que o relatório de uso do disco no SSMS parou de mostrar eventos de crescimento automático. Para testar, criei um banco de dados vazio com uma configuração de crescimento automático muito pequena. Em seguida, inseri muitos dados em uma tabela no banco de dados para saber que teria que crescer. O arquivo era maior ao examinar as propriedades do arquivo do banco de dados, mas o relatório de uso do disco não mostrava nenhum evento de crescimento automático.
Em seguida, tentei executar o script de Aaron Bertrand a partir desta postagem e isso mostra claramente todos os eventos de crescimento automático.
Então, por que o relatório Disk Usage não mostra o mesmo crescimento? Alguma sugestão? Aliás, é SQL Server 2014 SP2.
No modo de recuperação total, um backup diferencial "quebrará" os backups de log anteriores?
Deixe-me dar um exemplo: digamos que temos os seguintes backups:
- Backup COMPLETO 1
- Log de backup 1
- LogBackup 2
- DIFF backup 1
- LogBackup 3
- LogBackup 4
Normalmente, para restaurar nessa situação, restauraria da seguinte maneira:
- Backup COMPLETO 1
- DIFF Backup 1
- LogBackup 3
- LogBackup 4
Minha pergunta é a seguinte: Se o arquivo DIFF Backup 1 estiver corrompido de alguma forma, eu poderia restaurar o banco de dados apenas com os backups FULL e LOG? Assim:
- Backup COMPLETO 1
- LogBackup 1
- LogBackup 2
- LogBackup 3
- LogBackup 4
Qualquer ajuda é apreciada. Se isso foi respondido em outro post, por favor me avise (tentei pesquisar).
Temos uma instância do SQL Server 2014 (atualizada recentemente de 2008 R2) em que um dos bancos de dados possui algumas configurações estranhas para collation:
Na janela Propriedades do banco de dados temos o seguinte:
- Na guia "Geral" e Manutenção, está escrito: Collation: Compatibility_60_406_30001
- Na guia "Opções", o agrupamento está em branco no menu suspenso (embora muitos agrupamentos estejam disponíveis para escolha na lista)
Tentei pesquisar no Google o agrupamento Compatibility_60_406_30001, mas a pesquisa não deu certo. Alguém tem alguma sugestão sobre o que fazer aqui? Até agora não vi nenhum erro por causa disso, mas gostaria de escolher um agrupamento válido para este banco de dados também.
Vamos mover uma instância sql para um novo servidor físico (SQL SERVER 2008 r2). A resposta a esta pergunta explica como os trabalhos do agente e os pacotes ssis serão movidos restaurando os bancos de dados master e msdb para o novo servidor.
Minha pergunta é se a ordem de restauração do sistema versus bancos de dados do usuário tem algo a dizer? Posso restaurar o master e o msdb antes dos bancos de dados do usuário, mesmo que isso restaure os trabalhos do agente e os pacotes ssis que apontam para os bancos de dados do usuário ainda não restaurados/criados?
Obrigado por qualquer ajuda.
br Gert