Olá, meu nome é Curt. Sou Engenheiro Principal Sênior trabalhando com a Equipe GSE.
Este vídeo é dedicado a demonstrar como reduzir um arquivo de log de transações do banco de dados Microsoft SQL Server. Analisaremos as diferentes maneiras de reduzir o log de transações e o que fazer se a operação de redução de log não for executada conforme o esperado.
Temos algumas maneiras diferentes de reduzir o arquivo de log. Podemos acessar o SQL Server Management Studio. Vá para as propriedades do banco de dados e faça a operação de redução lá e vamos demonstrar isso primeiro.
Em seguida, também temos a operação de executar o comando ShrinkFile do TSQL. Outra coisa que queremos discutir neste vídeo específico é o que acontece se a operação de redução de arquivo não for executada conforme o esperado. Vamos discutir as opções que você deve usar nesse caso Vamos prosseguir e entrar no Studio Management.
Vamos trabalhar com o banco de dados 'AdventureWorks2017' e se formos para 'Tarefas' no menu do banco de dados e descer para 'Reduzir' temos duas opções diferentes.
Poderíamos trabalhar no nível do banco de dados lidando com todos os arquivos dentro do banco de dados ou lidando com arquivos específicos, e neste caso, definitivamente queremos ir com arquivos específicos. Por padrão, você vai ver, se estiver olhando para nossa paleta aqui, temos 'Dados' que está aparecendo sob o 'Tipo de arquivo'.
Não vamos fazer nada com o arquivo de banco de dados, em vez disso, estamos procurando reduzir o log de transações, então o log de transações é literalmente 'Log' sob o 'Tipo de arquivo'. Agora, temos algumas informações sobre o banco de dados.
O log do banco de dados é relativamente pequeno, este é um novo banco de dados, e vemos o tamanho alocado para esse log de transação, e vemos espaço livre. O espaço livre pode ser importante porque sem espaço livre não podemos executar uma operação de reduzir arquivo em um banco de dados.
Existem várias opções diferentes. Não entraremos em muitos detalhes aqui, mas temos a opção de liberar espaço não utilizado, que é basicamente truncar o log de transações. Poderíamos executar isso apenas clicando em OK e ele continuaria e faria uma redução ou faria uma tentativa de redução nesse banco de dados. Em vez disso, vamos dar uma olhada na opção TSQL para reduzir o banco de dados.
Estou com um pouco de preguiça hoje, então vou chegar até 'Script Action to Clipboard', que vai puxar a transação, o comando TSQL que teria sido executado se tivéssemos clicado em OK aqui.
Vou clicar em cancelar e colar o comando TSQL para fazer uma redução em nosso banco de dados AdventureWorks2017. Agora, para passar pelo comando mais uma vez, é um comando shrink file. Estamos lidando com o log do AdventureWorks2017 e podemos especificar quão pequeno queremos que esse log seja.
Nesse caso, vamos mantê-lo no padrão zero. Se você não definir nada aqui, ou deixar o valor como zero, ele tentará reduzir o arquivo para o tamanho do arquivo original. Temos a opção 'truncateonly', que está abrindo mão de espaço livre dentro do log de transações de volta para o sistema operacional.
À medida que executamos isso, temos um relatório do que ele fez e o tamanho atual. Então, ele foi em frente e reduziu para cerca de um meg, o que é ótimo para nós. Assim, eu recebo muito mais espaço em disco adicional. Então, uma das coisas que também queremos discutir neste vídeo é o que acontece se executarmos o arquivo shrink e ele não for executado com êxito.
A razão número um pela qual a operação de redução de arquivo falharia é porque não há espaço livre suficiente no banco de dados para executar o comando de reduzir arquivo. A primeira coisa que vamos querer fazer é descobrir a quantidade de espaço livre dentro do arquivo.
Nós vimos isso por meio do menu da GUI. Também podemos executar esse comando específico — agora mudamos nosso foco aqui, estamos trabalhando com o banco de dados AdventureWorks2019. A execução desse comando específico, o comando select, nos dará a quantidade de espaço livre que é vista nesse banco de dados.
Atualmente, estamos vendo três megas de espaço livre no banco de dados. Há duas opções diferentes que podemos usar para tentar reduzir o banco de dados em um caso em que ficamos sem espaço livre nesse banco de dados específico. Podemos alterar a opção, a opção de recuperação, para o banco de dados do adventure Works 2019.
Se alterarmos a opção de recuperação para "simples" e executarmos o comando dbcc shrink file, isso reduzirá o arquivo para um tamanho muito menor do que o tamanho original. Sempre que estamos colocando nosso banco de dados no modo simples, o log de transações está lidando com transações ativas e tudo o que não está ativo está sendo liberado do log.
Podemos executar esses comandos específicos. A maioria dos bancos de dados de produção estará em recuperação total; portanto, usar o simples nos permite, ou pelo menos nos dá uma chance, executar o comando shrink file com sucesso. Então, estamos no modo simples e, mais uma vez, nosso cenário é que estávamos falhando ao executar isso com sucesso.
Depois de entrar no modo simples, executamos a operação de redução de arquivo síncrona com sucesso, ela nos fornece as informações sobre o novo tamanho do arquivo e a última coisa que gostaríamos de fazer nesse caso específico é colocá-lo de volta no modo de recuperação completa.
Então, neste ponto, pegamos um arquivo de log transacional não gerenciável em termos de uso do comando shrink file e o colocamos em um estado em que podemos reduzi-lo e o colocamos de volta em um modo em que agora é possível fazer backup para garantir que obtenhamos as informações de transação mais recentes.
Isso conclui nossa demonstração de como reduzir um log de transação do banco de dados do Microsoft SQL Server.
Agradecemos a você por assistir.