Usuário com melhor resposta
Apagar arquivo de dados secundario NDF

Pergunta
-
Bom dia a todos
Alguem sabe me informar se é possível apagar um arquivo de dados secundario (NDF) ?
o objetivo é que a base tenha somente o arquivo primario de dados e o de log
Obrigado
Alessandro Rossi Kiffer
arkiffer@hotmail.com
Alessandro Kiffersexta-feira, 8 de janeiro de 2010 13:29
Respostas
-
Bom dia Alessandro,
Apesar da pergunta ter sido direcionada ao Júnior, segue abaixo uma opção:
saber quais arquivos estão no filegroup:SELECT name,
Filegroup_name(groupid)
FROM [SUA_BASE]..sysfiles
listar objetos e seus filegroups:SELECT fg.data_space_id,
fg.name AS [filegrou_name],
objectname = Object_name(p.object_id),
p.index_id,
df.name,
df.physical_name,
[Size] = df.size * 8 / 1024
FROM sys.filegroups fg
LEFT JOIN sys.database_files df
ON fg.data_space_id = df.data_space_id
LEFT JOIN sys.partitions p
ON fg.data_space_id = p.partition_number
WHERE (p.object_id > 4096
OR p.object_id IS NULL)
Atenciosamente,
André Rocha.
http://br.linkedin.com/pub/andre-rocha/10/269/5a http://CleverData.com.br- Marcado como Resposta Junior Galvão - MVPMVP, Moderator terça-feira, 5 de junho de 2018 13:12
segunda-feira, 11 de janeiro de 2010 11:35
Todas as Respostas
-
Bom dia Alessandro,
Arquivos secundários podem ser deletados sim, basta que estejam vazios.
Arquivos de dados e log primários é que não podem.
Atenciosamente,
André Rocha.
http://br.linkedin.com/pub/andre-rocha/10/269/5a http://CleverData.com.br- Sugerido como Resposta Andre Felipe Rocha sexta-feira, 8 de janeiro de 2010 13:31
sexta-feira, 8 de janeiro de 2010 13:31 -
Bom Dia,
É possível sim, mas é necessário garantir que os arquivos secundários estejam vazios.
Você poderá esvaziá-los usando o comando DBCC SHRINKFILE com o parâmentro EMPTY FILE. Ex:USE Banco GO DBCC SHRINKFILE('Arquivo',EMPTYFILE) GO
Se estiver utilizando um arquivo secundário de log, é necessário efetuar um backup de log antes.
[ ]s,Gustavo Maia Aguiar
http://gustavomaiaaguiar.spaces.live.comCriptografia, Autenticadores e Ataques de Inferência no SQL Server
http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!908.entry
Classifique as respostas. O seu feedback é imprescindível- Sugerido como Resposta Gustavo Maia Aguiar sexta-feira, 8 de janeiro de 2010 13:42
sexta-feira, 8 de janeiro de 2010 13:41 -
Ok Obrigado!!
Alessandro Kiffersexta-feira, 8 de janeiro de 2010 14:07 -
Olá Alessandro,
Se puder classifique as respostas.
[ ]s,Gustavo Maia Aguiar
http://gustavomaiaaguiar.spaces.live.comCriptografia, Autenticadores e Ataques de Inferência no SQL Server
http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!908.entry
Classifique as respostas. O seu feedback é imprescindívelsexta-feira, 8 de janeiro de 2010 14:59 -
Alesssandro,
Aconselho a migrar todos os dados, melhor dizendo todas as tabelas e índices que estão relacionados ao arquivo secundário para o primário antes de realizar qualquer procedimento.
Com isso você estará garantindo a existência dos seus dados.
Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBAsábado, 9 de janeiro de 2010 00:41Moderador -
Galvao, qual o procedimento para identificar quais tabelas , indices, etc estao no arquivo master ou no secundario ?
Obrigado
Alessandro Kiffersegunda-feira, 11 de janeiro de 2010 11:06 -
Bom dia Alessandro,
Apesar da pergunta ter sido direcionada ao Júnior, segue abaixo uma opção:
saber quais arquivos estão no filegroup:SELECT name,
Filegroup_name(groupid)
FROM [SUA_BASE]..sysfiles
listar objetos e seus filegroups:SELECT fg.data_space_id,
fg.name AS [filegrou_name],
objectname = Object_name(p.object_id),
p.index_id,
df.name,
df.physical_name,
[Size] = df.size * 8 / 1024
FROM sys.filegroups fg
LEFT JOIN sys.database_files df
ON fg.data_space_id = df.data_space_id
LEFT JOIN sys.partitions p
ON fg.data_space_id = p.partition_number
WHERE (p.object_id > 4096
OR p.object_id IS NULL)
Atenciosamente,
André Rocha.
http://br.linkedin.com/pub/andre-rocha/10/269/5a http://CleverData.com.br- Marcado como Resposta Junior Galvão - MVPMVP, Moderator terça-feira, 5 de junho de 2018 13:12
segunda-feira, 11 de janeiro de 2010 11:35 -
André, muito Obrigado!
Alessandro Kiffersegunda-feira, 11 de janeiro de 2010 12:09 -
Olá Alessandro,
Não há como saber que tabelas e índices estão em qual arquivo. Isso porque o vínculo é com FILEGROUPs e não com arquivos. Se você tem um FILEGROUP com dois arquivos, as tabelas e índices desses FILEGROUP estarão nos dois arquivos. Por isso que o EMPTYFILE é utilizado. Ele esvazia o arquivo secundário colocando todos os dados no arquivo primário e nos demais secundários se houver.
Basta rodar o EMPTYFILE que o arquivo secundário será esvaziado e poderá ser removido com o ALTER DATABASE ou via interface gráfica.
[ ]s,Gustavo Maia Aguiar
http://gustavomaiaaguiar.spaces.live.comCriptografia, Autenticadores e Ataques de Inferência no SQL Server
http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!908.entry
Classifique as respostas. O seu feedback é imprescindívelsegunda-feira, 11 de janeiro de 2010 12:22 -
André,
Normalmente eu utilizo a system table sys.filegroups para obter informações sobre o filegroup com isso identifico os arquivos envolvidos no filegroup.
Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBAsegunda-feira, 11 de janeiro de 2010 13:20Moderador -
olá a todos, hoje que tive como criar um ambiente de teste para dar manutenção na referida base.
Qdo eu vou dar o shrink , a mensagem que me aparece é:
Msg 2556, Level 16, State 1, Line 1
There is insufficient space in the filegroup to complete the emptyfile operation.
No arquivo secundario , na qual eu quero apagar, tem 1 objeto
data_space_id filegrou_name objectname index_id name physical_name size
2 SENCONDARY NULL NULL DADOSADV_IDX d:\MSSQL\DATA\DADOSADV_1.NDF 1794
Alessandro Kifferterça-feira, 2 de fevereiro de 2010 20:36 -
Post antigo, por isso o mesmo foi encerrado.
Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]
terça-feira, 5 de junho de 2018 13:12Moderador