MCDBA Brasil


  • Home
  • Sobre
  • Contato

Livros





Links Rápidos

SQL Server Builds (All Versions/Editions)


Download SQL Server 2017 (trial)


SQL Server 2017 Feature Pack


SQL Server 2016 Feature Pack


Cumulative Update SQL Server 2017 builds


Cumulative Update SQL Server 2016 builds


Cumulative Update SQL Server 2014 builds


Cumulative Update SQL Server 2012 builds


SQL Server 2005/2008 Samples Databases


Documentando o Servidor SQL Server


Analisando a Performance do Servidor-CheckList


Virtual PASS PT


Faça parte do maior virtual chapter do PASS com conteúdos técnicos em Português sobre SQL Server.

Todos os meses um evento Online para você! Acompanhe aqui os WebCasts já agendados

Sindicalize seu blog ou site ao VirtualPASSPT

SQL Server Blogs

SQL Server Query Processing Team


SQL Programmability & API Development Team


SQL Server Manageability Team


Latin America Support Team


Database + Disk + Performance


Microsoft SQL Server Support


SQL CLR Team


SQL Query Optimization Team


SQL 2005 Code Samples


SQL Server Express Team


SQL SMO Samples


SQL Storage Engine Team


SQL CAT Team


SQL Protocols Team


PSS SQL Server Engineers


Slava Oks on SQLOS


Ken Henderson’s blog


LUTI@Microsoft Blog


kimberly L. Trip’s blog


Fernando Garcia Blog

Artigos

Recuperando Full Text Catalog Perdido após o Restore do Database

por Nilton Pinheiro dezembro 11, 2006 Nenhum comentário

Neste artigo vou tomar como cenário inicial que restauramos um database em outro servidor, e este possui um full text catalog definido.


Cenário 1: Remover as referências do full text catalog das tabelas e apagar o FT.


Muito bem, vamos supor que nosso database chama-se DBTESTE e temos definido um full text catalog de nome FT_TESTE que contém as seguintes tabelas com full text index definidos:


– PUBLICACAO
– GRUPO_PUBLICACAO


Caso você não saiba ou não lembre o nome do catálogo,  podemos identificá-lo através de uma query na system table sysfulltextcatalogs.


Exemplo:


SELECT * FROM sysfulltextcatalogs


Para identificarmos os objetos que estão referenciando o FT, podemos novamente utilizar outra system table- a sysobjects.


Exemplo:


SELECT name, ftcatid FROM sysobjects
WHERE ftcatid > 0


Esta query retorna os objetos que fazem referência a um determinado FT.


Nota: O campo ftcatid é FK da tabela sysfulltextcatalogs.


Agora que já identificamos o nosso FT e nossos objetos, vamos tentar removê-los com as stored procedures do SQL Server 2000.


Primeiro devemos retirar os full text indexes das tabelas que fazem referência ao nosso FT. Isso pode ser feito usando o script abaixo:


EXEC sp_fulltext_table ‘GRUPO_PUBLICACAO’, ‘drop’
GO
EXEC sp_fulltext_table ‘PUBLICACAO’, ‘drop’
GO


Server: Msg 7605, Level 17, State 2, Procedure sp_fulltext_table, Line 132
Full-text catalog ‘FT_TESTE’ has been lost. Use sp_fulltext_catalog to rebuild and to repopulate this full-text catalog.


Server: Msg 7605, Level 17, State 2, Procedure sp_fulltext_table, Line 132
Full-text catalog ‘FT_TESTE’ has been lost. Use sp_fulltext_catalog to rebuild and to repopulate this full-text catalog.


Veja que como restauramos o FT em outro servidor e pelo fato dos arquivos e o path deste ser diferente acabamos perdendo as referências para o FT.


Pois bem, porém a mensagem no diz para tentarmos fazer um rebuild no FT para assim este ser repopulado.  Podemos fazer isso usando o script abaixo.


EXEC sp_fulltext_catalog ‘FT_TESTE’, ‘rebuild’


Server: Msg 7610, Level 16, State 1, Procedure sp_fulltext_catalog, Line 276


Access is denied to ‘j:/s6000db25/MSSQL$I6000SQL04/FTData/FTTESTE’, or the path is invalid. Full-text search was not installed properly.


Note que não conseguimos fazer um rebuild no FT, pois os arquivos de full text index não existem e nosso path é diferente. Sendo assim vamos tentar removê-lo, assim podemos recriá-lo com êxito.


EXEC sp_fulltext_catalog ‘FT_TESTE’, ‘drop’


Server: Msg 15604, Level 16, State 1, Procedure sp_fulltext_catalog, Line 75
Cannot drop full-text catalog ‘FT_TESTE’ because it contains a full-text index.


Veja que a mensagem nos retorna ao início do nosso cenário, existem objetos com full text index definidos e o FT não pode ser removido.


Com isso não conseguimos remover ou recriar nada, pois o SQL Server 2000 perdeu as referências para o FT. A solução para este problema é então remover as referências manualmente, como descrito nos passos abaixo.


Passo 1: Vamos remover a referência dos objetos para este FT.


EXEC sp_configure ‘allow updates’, 1
RECONFIGURE WITH OVERRIDE
GO
UPDATE sysobjects SET ftcatid = 0
WHERE ftcatid IN (SELECT ftcatid FROM sysfulltextcatalogs)
GO
EXEC sp_configure ‘allow updates’, 0
RECONFIGURE WITH OVERRIDE
GO

OU


UPDATE sysobjects
SET ftcatid = 0
WHERE ftcatid = 5 –-Este é o id do Full Text no meu ambiente de teste


Passo 2: Vamos remover o full text catalog.


DELETE FROM sysfulltextcatalogs
WHERE ftcatid = 5


OU


DELETE FROM sysfulltextcatalogs –Caso exista apenas um full text catalog definido


Agora que removemos as referências do full text catalog, podemos recriá-lo neste novo servidor.


Cenário 2: Neste segundo cenário vamos restaurar o FT sem remover as suas referências.


Passo 1: Vamos fazer um rebuild no FT.


EXEC sp_fulltext_catalog ‘FT_TESTE’, ‘rebuild’


Server: Msg 7610, Level 16, State 1, Procedure sp_fulltext_catalog, Line 276
Access is denied to ‘j:/s6000db25/MSSQL$I6000SQL04/FTData/FTTESTE’, or the path is invalid. Full-text search was not installed properly.


Observer que neste caso recebemos o mesmo erro do cenário 1, isto deve-se ao fato do path estar diferente no novo servidor e não existir os arquivos de índice.


Passo 2: Neste passo vamos acertar o path para o novo servidor. Como exemplo estou alterando o path para ‘D:/S6000DB10/MSSQL/FTDATA/FTTESTE’.


Nota: Não esqueça de alterar a barra (/) do caminho abaixo!!


SELECT * FROM sysfulltextcatalogs
WHERE ftcatid = 5


UPDATE sysfulltextcatalogs
SET path = ‘D:/S6000DB10/MSSQL/FTDATA/FTTESTE’
WHERE ftcatid = 5


Agora que já acertamos o path para se adequar ao novo servidor, podemos fazer um rebuild no FT.


EXEC sp_fulltext_catalog ‘FT_TESTE’, ‘rebuild’


Após realizarmos um rebuild com êxito, vamos popular o FT.


EXEC sp_fulltext_catalog ‘FT_TESTE’, ‘start_full’


Para maiores informações das procedures aqui utilizadas, consulte o BOL do SQL Server 2000.


Abraços e até a próxima!


Rodrigo Fernandes (RFernandes)

Avaliação:
Compartilhe:
  • Anterior Physical Database Storage Design19 anos atrás
  • Próximo Ganhe Voucher com 100% de desconto para o exame 70-43119 anos atrás

Deixe uma resposta Cancelar resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

MVP Reconnect Award

Categorias

  • Artigos (359)
  • Dica da Semana (95)
  • Documentação (54)
  • Downloads (113)
  • MSDE 2000 (3)
  • Sem categoria (1)
  • Tutoriais (9)

Posts recentes

  • #FechouBrasil #PartiuPortugal
  • Brigando com o erro “The cached MSI file is missing”
  • MCDBABRASIL está de volta
  • Documentando o Servidor SQL Server
  • Brigando com os Erros 17182, 17826 e 17120

SQL Server AlwaysOn Video Series

Video1: Introdução ao SQLServer2012 AlwaysOn


Video2: Introdução ao SQLServer2012 AlwaysOn Availability Group


Video3: Introdução ao SQLServer2012 AlwaysOn AVG-Demo


Video4: Introdução ao SQLServer2012 AlwaysOn Listener


Video5: Introdução ao SQLServer2012 AlwaysOn Readable Secondaries


Video6: Introdução ao SQLServer2012 AlwaysOn Readable Secondaries-Demo


Video7: Introdução ao SQLServer2012 AlwaysOn Failover Clustering


Serie SQL Server Failover Clustering End-to-End

Parte 1: Configuração da Rede e Ambiente


Parte 2: Configurando o Windows 2008 R2 Domain Controler e DNS


Parte 3: Preparando os nós para o Failover Cluster


Parte 4: Configurando um Failover Cluster de 2 nós


Parte 5: Configurando as LUNs no iSCSI Software Target (Parte 1)


Parte 6: Configurando as LUNs no iSCSI Software Target (Parte 2)


Parte 7: Apresentando as LUNs para os nós do Failover Cluster


Parte 8: Configurando os discos no Failover Cluster


Parte 9: Instalando a primeira instância virtual do SQL Server 2008


Parte 10: Instalando a segunda instância virtual do SQL Server 2008


Parte 11: Instalando e Configurando o MSDTC no Failover Cluster


Parte 12: Configurando Mount Points no Cluster e SQL Server 2008


Vídeo Extra: Removendo uma Instância do SQL Server 2008 R2 em Cluster


Alta Disponibilidade no SQL Server 2008 R2: Failover Clustering Overview


Alta Disponibilidade no SQL Server 2008 R2: Failover Clustering na Prática

Menu

  • Home
  • Sobre
  • Contato

Mais

  • RSS Feeds
2026 MCDBA Brasil.