Mover arquivo de log sem colocar o banco de dados offline

14

Eu preciso mover um arquivo de log do banco de dados para uma nova partição sem colocar o banco de dados offline.

A maneira normal de fazer isso seria desanexar o banco de dados, mover o arquivo de log e reconectar o banco de dados.

É possível fazer isso sem colocar o próprio banco de dados offline e, em caso afirmativo, como?

Eu não
fonte

Respostas:

16

Não há como fazer isso com um banco de dados online.

Quando você move um arquivo de banco de dados ( ALTER DATABASE ... MODIFY FILE), você até recebe a seguinte mensagem:

O arquivo "YourFile" foi modificado no catálogo do sistema. O novo caminho será usado na próxima vez que o banco de dados for iniciado .


A maneira normal de fazer isso seria desanexar o banco de dados, mover o arquivo de log e reconectar o banco de dados.

Essa não é a maneira "normal" ou aceita como eu faria. Para mover arquivos de banco de dados, faça o seguinte:

  1. Execute um comando ALTER DATABASE para alterar o local do (s) arquivo (s)
  2. Coloque o banco de dados offline
  3. Mova fisicamente os arquivos para o novo local especificado na etapa 1
  4. Colocar banco de dados online

Consulte esta referência no TechNet: Mover bancos de dados do usuário

Thomas Stringer
fonte
3

De acordo com a referência no TechNet Move User Databases da resposta de Thomas Stringer , se você deseja mover os arquivos sem interromper toda a instância do SQL Server (seguindo o "Procedimento de realocação planejada"), a ordem deve ser:

ALTER DATABASE database_name SET OFFLINE;
... move the file(s) to new location
ALTER DATABASE database_name MODIFY FILE ( NAME = logical_name, FILENAME = 'new_path\os_file_name' );
ALTER DATABASE database_name SET ONLINE;

Observe o OFFLINE primeiro; depois mova os arquivos e informe ao SQL Server sobre os novos locais.

Se você precisar desmontar toda a instância do SQL Server (consulte o procedimento para "Realocação para manutenção agendada do disco"), é melhor modificar primeiro os locais dos arquivos para que, quando a instância for reiniciada, não haja problemas para localizar os arquivos. nos novos locais.

DocOc
fonte
1

Eu sei que essa é uma pergunta antiga, mas você não pode simplesmente adicionar um segundo arquivo de log (que é usado pelo banco de dados em vez do original) no novo local e depois encolher / remover o original?

ibmdba
fonte