DetailPage-MSS-KB

Knowledge Base

Artikel-ID: 240867 - Geändert am: Freitag, 30. November 2007 - Version: 6.5

 

Auf dieser Seite

Zusammenfassung

Volltextkataloge und Indizes werden nicht gespeichert in einer SQL Server-Datenbank. Volltextkataloge und ­Indizes werden in separaten Dateien gespeichert, die der Microsoft Search-Dienst verwaltet. Die Volltext-Katalogdateien werden während einer Microsoft SQL Server-Wiederherstellung nicht wiederhergestellt. Darüber hinaus können nicht Sie die Transact SQL-Anweisungen BACKUP und RESTORE verwenden, Sichern und Wiederherstellen von Full-Text catalog-Dateien. Nach Wiederherstellung oder Wiederherstellung Operationen müssen Sie separat die Volltextkataloge neu synchronisieren. Nur Microsoft Windows NT-Systemadministrator und der Microsoft Search-Dienst können die Volltext-Katalogdateien zugreifen.

Obwohl Sie SQL Server-Datenbanken verwenden können, um Volltextkataloge zu sichern, können Sie Produktion verwenden, die Datenbanken mit großen Tabellen, die Volltext-Suche aktiviert. Wenn Sie dies tun, Sie möglicherweise verschieben, Sichern oder Wiederherstellen dieser Volltextkataloge und Ihre Produktionsdatenbanken. Die Bearbeitungszeit für einen Volltextkatalog kann Auffüllen oder erneute Synchronisierung länger als die typische Wartungsfenster sein. Dieser Artikel beschreibt eine andere Methode, die Sie verschieben oder kopieren die Kataloge ohne initiiert eine vollständige Auffüllung verwenden können. Diese Methode wird eine erhebliche Ausfallzeiten vermieden.

Dieser Artikel beschreibt verschiedene Methoden, die Sie verwenden können, kopieren, verschieben, und Sichern oder Wiederherstellen-Volltextkatalog Ordner und Dateien in bestimmte Einschränkungen:
  • Die SQL Server-Versionen, die Sie verwenden, sind identisch.
  • Volltextkatalog-Ordner und Dateien müssen auf einem lokalen Laufwerk sein.
  • Volltextkatalog-Ordner und Dateien müssen Ihre ursprünglichen Namen und den Inhalt des Ordners beibehalten.
  • Die Volltextsuche aktivierte Datenbank-ID und Tabelle Bezeichner müssen sein auf beiden Servern identisch, wenn Sie Volltextkataloge zwischen Servern kopieren oder verschieben.
Warnung Diese Prozeduren werden nicht auf Instanzen von SQL Server-Failovercluster unterstützt.

Volltextkataloge werden als Auflistung von Dateien und Ordner beibehalten. Die Standardspeicherorte von Volltextkataloge sind:

Microsoft SQL Server 7.0 :
\Mssql7\FTDATA

Microsoft SQL Server 2000 :
Standardinstanz: Programme\microsoft SQL Server\MSSQL\FTDATA
Benannte Instanz: Programme\microsoft SQL Server\MSSQL $ Instancename\FTDATA

Jeden Volltextkatalog und die zugehörigen Dateien werden in einem Ordner, der die folgende Benennungskonvention verwendet verwaltet, wobei dbid der verknüpften Datenbank-ID und ftcatid der Volltextkatalog-Bezeichner ist:

"SQLxxxxx (dbid) Yyyyy (ftcatid)"

Jede ftcatid ist in der zugeordneten Datenbank eindeutig.

wichtig In diesem Abschnitt, Methode oder Aufgabe enthält Hinweise zum Ändern der Registrierung. Allerdings können schwerwiegende Probleme auftreten, wenn Sie die Registrierung falsch ändern. Stellen Sie daher sicher, dass Sie diese Schritte sorgfältig ausführen. Für zusätzlichen Schutz sichern Sie der Registrierung, bevor Sie ihn ändern. Anschließend können Sie die Registrierung wiederherstellen, wenn ein Problem auftritt. Weitere Informationen zum Sichern und Wiederherstellen der Registrierung finden Sie im folgenden Artikel der Microsoft Knowledge Base:
322756  (http://support.microsoft.com/kb/322756/ ) Zum Sichern und Wiederherstellen der Registrierung in Windows

Zum Sichern eines Volltextkatalogs auf einem eigenständigen Computer oder einem cluster

  1. Beenden Sie den Microsoft Search-Dienst auf einem eigenständigen Computer. Lassen Sie die Full-Text-Ressource online, für einer gruppierten SQL Server-Konfiguration. Nachdem Sie den Microsoft Search-Dienst beendet haben, kann nicht Full-Text-Abfragen, die Prädikate CONTAINS oder FREETEXT, ausgeführt oder die Rowset auswerten Funktionen CONTAINSTABLE oder FREETEXTTABLE in der Datenbank. Außerdem Volltextsuche Abfragen funktionieren nicht und Sie erhalten folgende Fehlermeldung:
    Server: Msg 7602, Ebene 16, Status 1, Zeile 2 der Volltextdienst (Microsoft Search) ist nicht verfügbar. Der Systemadministrator muss diesen Dienst starten.
  2. Ein Microsoft Windows NT-Datei System Sicherungsprogramm, z. B. Backup Exec ist gesichert und dann die Volltextkataloge, die Ordner und die files.The sichern-Systemtabelle für Volltextkataloge ( Sysfulltextcatalogs ) mit der SQL Server-Datenbank.
  3. Sichern Sie die folgenden Registrierungseinträge, wenn Sie die Kataloge einzeln sichern müssen:
    \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Applications\SQLServer\Catalogs\[FT_Catalog_Folder] \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\CatalogNames\SQLServer\[FT_Catalog_Folder] \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Gather\SQLServer\[FT_Catalog_Folder] \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Gathering Manager\Applications\SQLServer\Projects\[FT_Catalog_Folder] \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Indexer\SQLServer\[FT_Catalog_Folder] [FT_Catalog_Folder] wird der Katalog Ordner namens "SQLxxxxx(dbid) yyyyy(ftcatid)"
    Der Registrierungseintrag ist für eine benannte Instanz von SQL Server InstanceName \SQLServer$ \.
  4. 2. Sichern die folgenden Registrierungseinträge zum Sichern der Kataloge: (dies sichert alle Volltextkataloge auf dem Server.)
    \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Applications\SQLServer\Catalogs \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\CatalogNames\SQLServer \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Gather\SQLServer \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Gathering Manager\Applications\SQLServer\Projects \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Indexer\SQLServer Der Registrierungseintrag ist für eine benannte Instanz von SQL Server InstanceName \SQLServer$ \.

Volltextkataloge auf dem gleichen Server die gleichen lokalen Laufwerk oder den Pfad wiederherstellen

  1. Beenden Sie den Microsoft Search-Dienst. Hinweis: Führen Sie Schritt 2 nur durch, wenn die Datenbank gelöscht wurde. Andernfalls fahren Sie mit Schritt 3.
  2. Stellen Sie wieder her, oder fügen Sie der Datenbank, in denen Full-Text aktiviert. Nach dem Wiederherstellen der Datenbank entspricht stellen Sie sicher, dass der Datenbank-ID (Dbid) galt, wenn Sie es gesichert.
    Hinweis: Wenn die Datenbank mithilfe des Befehls Sp_attach_db angefügt wurde, stellen Sie sicher, dass Sie den Befehl, um die Datenbank für Volltextindizierung aktivieren "aktivieren" Exec Sp_fulltext_database ausführen.
  3. Um festzustellen, die dbid normalerweise, führen Sie den folgenden Code:
    Use dbname
    go
    select db_id()
    Hinweis Einzelkataloge wiederherzustellen, führen Sie Schritt 4. Um alle Kataloge wiederherzustellen, wechseln Sie zu Schritt 5.
  4. Wiederherstellen der Registrierungseinträge, die gesichert, basierend auf den früheren Sicherungen Anweisungen. Möglicherweise möchten Sie die Registrierung sichern, bevor Sie, diese Schritt versuchen.
    \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Applications\SQLServer\Catalogs\[FT_Catalog_Folder] \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\CatalogNames\SQLServer\[FT_Catalog_Folder] \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Gather\SQLServer\[FT_Catalog_Folder] \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Gathering Manager\Applications\SQLServer\Projects\[FT_Catalog_Folder] \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Indexer\SQLServer\[FT_Catalog_Folder] [FT_Catalog_Folder] wird der Katalog Ordner namens "SQLxxxxx(dbid) yyyyy(ftcatid)"
    Der Registrierungseintrag ist für eine benannte Instanz von SQL Server InstanceName \SQLServer$ \.
  5. Um alle Kataloge auf dem Server wiederherzustellen, stellen Sie die folgenden Registrierungseinträge wieder her. Möglicherweise möchten Sie die Registrierung sichern, bevor Sie, diese Schritt versuchen.
    \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Applications\SQLServer\Catalogs \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\CatalogNames\SQLServer \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Gather\SQLServer \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Gathering Manager\Applications\SQLServer\Projects \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Indexer\SQLServerDer Registrierungseintrag ist für eine benannte Instanz von SQL Server InstanceName \SQLServer$ \.
  6. Stellen Sie die Kataloge aus Sicherung am Standardspeicherort, die Sie es von gesichert wieder her.
  7. Starten Sie den Microsoft Search-Dienst neu.
  8. Bestätigen Sie, dass neue Volltextsuche Ordner Kataloge und Dateien mithilfe einer Transact-SQL-SELECT-Anweisung funktionsfähig sind und ein CONTAINS- oder FREETEXT-Prädikat in der WHERE-Klausel.

Verschieben oder kopieren Volltextkataloge zwischen lokalen Laufwerken oder Pfade auf dem Computer, auf dem SQL Server ausgeführt wird

  1. Sp_help_fulltext_catalogs 'FT_Catalog_Name' verwenden, um den Volltextkatalog Namen und lokalen Laufwerk oder den Pfad zu bestätigen. Zeichnen Sie die Laufwerkbuchstaben-Volltextkatalog und vollständig qualifizierten Pfad zu einem späteren Zeitpunkt verwenden.
  2. Beenden Sie den Microsoft Search-Dienst. Führen Sie Schritt 3 und 4 nur durch, wenn die Datenbank gelöscht wurde oder wenn der Katalog gelöscht wurde, andernfalls auf Schritt 5.
  3. Stellen Sie wieder her, oder fügen Sie der Datenbank, in denen Full-Text aktiviert. Nach dem Wiederherstellen der Datenbank entspricht stellen Sie sicher, dass der Datenbank-ID (Dbid) galt, wenn Sie es gesichert.

    Hinweis: Wenn die Datenbank mithilfe des Befehls Sp_attach_db angefügt wurde, stellen Sie sicher, dass Sie den Befehl, um die Datenbank für Volltextindizierung aktivieren "aktivieren" Exec Sp_fulltext_database ausführen.

    Um festzustellen, die dbid normalerweise, führen Sie den folgenden Code:
    Use dbname
    go
    select db_id()
  4. Stellen Sie die folgenden Registrierungseinträge wieder her. Möglicherweise möchten Sie die Registrierung sichern, bevor Sie, diese Schritt versuchen.
    \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Applications\SQLServer\Catalogs\[FT_Catalog_Folder] \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\CatalogNames\SQLServer\[FT_Catalog_Folder] \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Gather\SQLServer\[FT_Catalog_Folder] \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Gathering Manager\Applications\SQLServer\Projects\[FT_Catalog_Folder] \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Indexer\SQLServer\[FT_Catalog_Folder] [FT_Catalog_Folder] wird der Katalog Ordner namens "SQLxxxxx(dbid) yyyyy(ftcatid)"
    Der Registrierungseintrag ist für eine benannte Instanz von SQL Server InstanceName \SQLServer$ \.
  5. Bestimmen der neuen Volltextkatalog lokales Laufwerk oder Pfad. Kopieren Sie die Volltextkataloge an die neue Position.
  6. System Tabellenaktualisierungen mithilfe von gespeicherten Systemprozeduren ermöglichen Prozedur Sp_configure RECONFIGURE mit überschreiben und aktualisieren Sie dann die [database_name]. dbo.sysfulltextcatalogs Spalte Pfad zu neuen lokalen Laufwerks oder Pfads-Ziel für den Volltextkatalog Standardordner wie z. B. d:\FTData.
  7. Verwenden Sie das Windows NT 4.0 Resource Kit-Dienstprogramm Regfind "" Suchen und ersetzen den folgenden HKLM Registrierungsschlüsselwerte für jeden Volltextkatalog-Ordner (FT_Catalog_Folder), (z. B. SQL0000500005):
    \SOFTWARE\Microsoft\Search\1.0\Gather\SQLServer\[FT_Catalog_Folder] \SOFTWARE\Microsoft\Search\1.0\Gathering Manager\Applications\SQLServer\Projects\[FT_Catalog_Folder] \SOFTWARE\Microsoft\Search\1.0\Indexer\SQLServer\[FT_Catalog_Folder]
    Darüber hinaus verwenden Sie immer gerade Anführungszeichen ("") setzen die Registrierungsschlüssel für beide die -p und -R Parameter. Zum Beispiel:
    -m \\server_2 -p "<Key Name>" <Old_FT_Catalog_Path_and_Folder> -r <New_FT_Catalog_Path_and_Folder>

    Hinweis: < Schlüsselname > ersetzen, <Old_FT_Catalog_Path_and_Folder>, <New_FT_Catalog_Path_and_Folder>, und mit den entsprechenden Werten.
    Zum Beispiel: -m \\server_2 -p "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Indexer\sqlserver$SQL2k\SQL0000500005" d:\programme\Microsoft SQL Server\MSSQL $ SQL2K\FTDATA\SQL0000500005 - R d:\programme\Microsoft SQL Server\MSSQL $ SQL2K\FTDATA\New Location\SQL0000500005

    Weitere Informationen über die Syntax für das Dienstprogramm Regfind Eingabe von einer DOS-Eingabeaufforderung den folgenden Parameter: Regfind /?
  8. Starten Sie den Microsoft Search-Dienst neu.
  9. Bestätigen Sie, dass neue Volltextsuche Ordner Kataloge und Dateien mithilfe einer Transact-SQL-SELECT-Anweisung funktionsfähig sind und ein CONTAINS- oder FREETEXT-Prädikat in der WHERE-Klausel.

Volltextkataloge zwischen Instanzen von SQL Server die gleichen lokalen Laufwerk oder den Pfad kopieren

Die folgenden Schritte demonstrieren das Verschieben oder kopieren Sie einen Volltextkatalog-Ordner und Dateien von einem Computer, auf dem SQL Server ausgeführt wird (server_1) einem anderen Computer mit SQL Server (server_2). Dieser Artikel setzt voraus, dass SQL Server die Volltextsuche installiert hat und dass die gleiche Datenbank und Tabelle Bezeichner auf beiden Servern vorhanden sind. Für die erfolgreiche Kopie Volltextkataloge aus einer Instanz von SQL Server zu einem anderen muss die Datenbank-IDs identisch sein. Daher ist es am besten, server_2 haben (mit dem Sie den Katalog kopieren) ein genaues Replikat des server_1.Confirm (Klon) sein, dass die Dbids auf server_1 und server_2 identisch sind. Führen Sie hierzu die folgenden Befehle auf beiden Servern:
Use dbname
go
select db_id()
für Dbids zu den richtigen Dbid auf server_2, "vertauscht" verwenden Sie Sp_detach_db und Sp_attach_db um trennen und fügen Sie die richtigen Datenbanken wieder an. Wenn Sie z. B. zwei Datenbanken haben z. B. TestDB (dbid = 7) und PerfDB (Dbid = 8) beide Datenbanken trennen, und fügen Sie wieder dann erste an der PerfDB -Datenbank und dann die Datenbank TestDB . Vertauscht die die Dbids: die Dbid für TestDB wird 8 und die dbid normalerweise für PerfDB wird 7. Die niedrigste Dbid im Pool der verfügbaren Dbids wird immer zuerst verwendet.

Vorsicht Gehen Sie hierzu sicher bevor Sie die Datenbanken trennen, dass beide Datenbanken keine Volltextkataloge verfügen und dass Sie nicht volltextfähig sind. Finden Sie unter „ Clean-Up-Verfahren"in der “ Weitere Informationen eingeben Abschnitt für Schritte, um Volltextkataloge löschen und Full-Text für eine Datenbank zu deaktivieren.
  1. Bestätigen Sie, dass die master.dbo.sysdatabases Dbid Werte für die Volltextsuche aktivierten Datenbanken auf beiden Servern identisch sind.
  2. Sicherstellen, dass die [database_name]. dbo.sysobjects ID-Werte für die Volltextsuche aktivierten Tabellen sind auf beiden Servern identisch. Weitere Informationen dazu, wie einen Tabelle ID-Wert zu erhalten, finden Sie unter "Object_id" in SQL Server-Onlinedokumentation.
  3. Bestätigen Sie, dass den Volltextkatalog Namen und lokalen Laufwerk oder den Pfad auf beiden Servern identisch sind, indem Sp_help_fulltext_catalogs ' FT_Catalog_Name ' .
  4. Beenden Sie den Microsoft Search-Dienst auf server_1 und server_2.
  5. Ordnen Sie einen Laufwerkbuchstaben auf server_1 das entsprechende Laufwerk oder den Pfad auf server_2.
  6. Kopieren der Volltextkatalog Ordner und Dateien, die Sie identifiziert in Schritt 3 von server_1, server_2 mithilfe DOS Befehl Xcopy . Verwenden Sie den vollqualifizierten Volltextkatalog Laufwerk oder Pfad und den Ordner-Namen als am Quellspeicherort und den zugeordneten Volltextkatalog Laufwerk oder Pfad und Ordner-Namen als Zielspeicherort für. Wenn der Zielordner nicht auf server_2 vorhanden sind, wechselt verwenden Xcopy/i und/e , um alle Zielordner zu erstellen. Alle Kataloge wiederherstellen möchten, kopieren Sie alle Katalog-Ordner in server_2.
  7. Sie können den Befehl DOS verwenden, die RMDIR/s/q [FT_Catalog_drive/Path] auf server_1, um die Dateien Volltextkatalog auf server_1 zu entfernen.

    Hinweis: Gehen Sie Schritt 8 vor, um einzelne Kataloge. Um alle Kataloge wiederherzustellen, wechseln Sie zu Schritt 9.
  8. Wiederherstellen der Registrierungseinträge, die Sie basierend auf früheren Anweisungen gesichert. Möglicherweise möchten Sie die Registrierung sichern, bevor Sie, diese Schritt versuchen.
    \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Applications\SQLServer\Catalogs\[FT_Catalog_Folder] \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\CatalogNames\SQLServer\[FT_Catalog_Folder] \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Gather\SQLServer\[FT_Catalog_Folder] \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Gathering Manager\Applications\SQLServer\Projects\[FT_Catalog_Folder] \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Indexer\SQLServer [FT_Catalog_Folder] [FT_Catalog_Folder] wird der Katalog Ordner namens "SQLxxxxx(dbid) yyyyy(ftcatid)"
    Der Registrierungseintrag ist für eine benannte Instanz von SQL Server InstanceName \SQLServer$ \.
  9. Um alle Kataloge auf dem Server wiederherzustellen, stellen Sie die folgenden Registrierungseinträge wieder her. Jedoch, wenn Sie dies tun, verlieren Sie alle vorhandenen Kataloge auf server_2 nach Durchführung dieser Schritt. Möglicherweise möchten Sie die Registrierung sichern, bevor Sie, diese Schritt versuchen.
    \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Applications\SQLServer\Catalogs \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\CatalogNames\SQLServer \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Gather\SQLServer \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Gathering Manager\Applications\SQLServer\Projects \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Indexer\SQLServer
    Hinweis: Standardmäßig sind die Speicherorte der Volltext-Binärdateien:
    SQLServer 7.0 : \Mssql7\FTDATA
    Microsoft. SQL Server 2000-Standardinstanz : \Programme\Microsoft SQL Server\MSSQL\FTDATA
    SQL Server 2000 benannte Instanz : MSSQL $ InstanceName \FTDATA
    Diese Speicherorte und Ordnerpfaden können für verschiedene Computer variieren. In diesem Fall müssen Sie zwei Registrierungseinträge ändern, damit die Pfade auf den richtigen Speicherort der Volltext-Binärdateien verweisen nach Abschluss die Wiederherstellung auf server_2.
    \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\CatalogNames\SQLServer \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Indexer\SQLServer
    Verwenden Sie das Regfind -Dienstprogramm finden Einträge in der Registrierung und Ändern des Speicherortes der Volltext-Binärdateien.
  10. Starten Sie den Microsoft Search-Dienst auf beiden Servern neu.
  11. Bestätigen Sie, dass neue Volltextsuche Ordner Kataloge und Dateien mithilfe einer Transact-SQL-SELECT-Anweisung funktionsfähig sind und ein CONTAINS- oder FREETEXT-Prädikat in der WHERE-Klausel.

Weitere Informationen

Das folgende Skript aus SQL Server veranschaulicht, wie verschieben oder "Systemumstellung" einen Volltextkatalog-Ordner von SQL Server 7.0 (server_1) einem anderen Computer mit SQL Server 7.0 (server_2) auf ein anderes lokalen Laufwerk oder Pfad auf server_2. In diesem Artikel wird davon ausgegangen, dass SQL Server 7.0 mit Volltextsuche auf einem Windows NT 4.0-Computer installiert ist und, dass die gleiche Datenbank und Tabelle Bezeichner auf beiden Servern vorhanden sind.

Für die Zwecke dieser Abbildung Pubs (Dbid = 5) Datenbank und Tabelle Pub_info (Id = 645577338) Full-Text aktiviert und auf beiden Servern aufgefüllt werden. Ersetzen Sie server_2 mit Ihrem Servernamen und Ersetzen Sie den Volltextkatalog Ordnernamen und Laufwerk oder den Pfad Ihrer Volltextkatalog Ordnernamen und Laufwerk oder den Pfad.

Sie müssen als Mitglied der lokalen Administratorengruppe des Servers anmelden und ein Mitglied der SQL Server-Serverrolle Sysadmin (oder melden Sie sich als "sa"). Außerdem müssen Sie der Datenbankbesitzer (DBO) der Datenbank, die folgenden SQL Server ausgeführt sein Skripts.

Führen Sie das folgende SQL Server-Skript auf beiden Servern:
use pubs
go
sp_fulltext_service 'clean_up'
go
sp_fulltext_database 'enable'
go

-- Creates and activates the full-text catalog: PubInfo, if it does not exist.
-- Drops, re-creates and activates the full-text catalog: PubInfo, if it does
-- exist.
IF OBJECTPROPERTY ( object_id('pub_info'),
                    'TableHasActiveFulltextIndex') = 1
BEGIN
    print 'Table pub_info is Full-Text Enabled, dropping Full-Text Index
& Catalog...'
    EXEC sp_fulltext_table 'pub_info', 'drop'
    EXEC sp_fulltext_catalog 'PubInfo', 'drop'
    print 'Table pub_info is NOT Full-Text Enabled, creating FT Catalog,
Index & Activating...'
    EXEC sp_fulltext_catalog 'PubInfo', 'create'
    EXEC sp_fulltext_table 'pub_info', 'create', 'PubInfo', 'UPKCL_pubinfo'
    EXEC sp_fulltext_column 'pub_info', 'pub_id', 'add'
    EXEC sp_fulltext_column 'pub_info', 'pr_info', 'add'
    EXEC sp_fulltext_table 'pub_info', 'activate'
END
ELSE IF OBJECTPROPERTY ( object_id('pub_info'),'TableHasActiveFulltextIndex') = 0
BEGIN
    print 'Table pub_info is NOT Full-Text Enabled, creating FT Catalog,
Index & Activating...'
    EXEC sp_fulltext_catalog 'PubInfo', 'create'
    EXEC sp_fulltext_table 'pub_info', 'create', 'PubInfo', 'UPKCL_pubinfo'
    EXEC sp_fulltext_column 'pub_info', 'pub_id', 'add'
    EXEC sp_fulltext_column 'pub_info', 'pr_info', 'add'
    EXEC sp_fulltext_table 'pub_info', 'activate'
END
go -- Confirm Database ID, Object ID, FT Catalog ID and FT folder(default)
   -- location.
select dbid, name from master.dbo.sysdatabases where dbid = DB_ID('pubs')
-- dbid = 5
go
select id, name from pubs.dbo.sysobjects where id = object_id('pub_info') 
go
sp_help_fulltext_catalogs 'PubInfo' 
go
sp_help_fulltext_tables 'PubInfo', 'pub_info' 
go
sp_help_fulltext_columns 'pub_info' 
go
exec master..xp_cmdshell 'dir d:\MSSQL70\FTDATA'
go

--- After full-text is enabled and activated, start full crawl/population
BEGIN
SET NOCOUNT ON
EXEC sp_fulltext_catalog 'PubInfo', 'start_full'
--
--  Wait for crawl to complete
--  NOTE: Forlarger tables, increase the WAITFOR DELAY time appropriately
--
DECLARE @status int, @itemCount int, @keyCount int, @indexSize int
SELECT @status = FullTextCatalogProperty('PubInfo', 'populatestatus')
WHILE (@status <> 0)
BEGIN
  WAITFOR DELAY '00:00:01' -- wait for 1 second before checking FT
                           -- Populatestatus...
  SELECT @status = FullTextCatalogProperty('PubInfo', 'populatestatus')
END
WAITFOR DELAY '00:00:05' -- wait for 5 seconds to receive correct FT Property
                         -- info (add more time for larger tables)...
SET @itemCount = FullTextCatalogProperty('PubInfo', 'itemcount')
SET @keyCount = FullTextCatalogProperty('PubInfo', 'uniquekeycount')
SET @indexSize = FullTextCatalogProperty('PubInfo', 'indexsize')
PRINT 'Nbr. of Rows FT Indexed = ' + CAST((CONVERT(varchar(10), @itemCount)
- 1) as varchar(12)) + char(09) + 'Nbr. of Unique FT Words = '
+  CONVERT(varchar(10), @keyCount) + char(09)
SET NOCOUNT OFF
END
go

-- Confirm FT population, 1 row should be returned (pub_id = 0736). 
SELECT pub_id, pr_info FROM pub_info WHERE CONTAINS(pr_info, 'moon')
go

-- Stop the Microsoft Search service on both servers
exec master..xp_cmdshell 'net stop "Microsoft Search"'
go
führen Sie das folgende SQL Server-Skript auf den Quellserver (server_1):
use pubs
go
-- Map a Drive letter to the destination server.
exec master..xp_cmdshell 'NET USE K: \\server_2\[drive]$'
go
-- Copy the destination server's FT catalog folder and files as a backup.
exec master..xp_cmdshell 'ROBOCOPY K:\MSSQL70\FTDATA\SQL0000500005
K:\MSSQL70\BACKUP\SQL0000500005 /E /NP'
go
-- Remove the destination server's full-text catalog folder and files.
exec master..xp_cmdshell 'RMDIR /S /Q K:\MSSQL70\FTDATA\SQL0000500005'
go
-- Copy the SOURCE full-text catalog folder and files to the destination server's
NEW full-text catalog location.
exec master..xp_cmdshell 'ROBOCOPY D:\MSSQL70\FTDATA\SQL0000500005
K:\FTData\SQL0000500005 /E /NP'
go
-- Restart the Microsoft Search service.
exec master..xp_cmdshell 'net start "Microsoft Search"'
go
-- Remove the mapped drive letter to the destination server, for example
-- K:\.
exec master..xp_cmdshell 'NET USE K: /delete'
go
führen folgende SQL-Skript müssen Sie auf dem Zielserver (server_2) :
use master
go
-- Enable system table updates.
sp_configure allow,1
go
reconfigure with override
go

use pubs
go
-- Record full-text catalog information (Note: path = NULL)
select * from sysfulltextcatalogs
go
-- Update the full-text catalog information with the new full-text catalog location
UPDATE sysfulltextcatalogs set path = 'E:\FTData'
   WHERE ftcatid = 5
go
-- Record full-text catalog info. (Note: path = E:\FTData)
select * from sysfulltextcatalogs
go

use master
go
-- Disable system table updates.
sp_configure allow,0
go
reconfigure with override
go

-- CAUTION: Back up your registry hive before you contine!

-- Search and replace HKLM "Gather" registry keys with new full-text catalog
-- folder location [10 row(s) affected]:
exec master..xp_cmdshell 'REGFIND -m \\server_2 -p
\Registry\Machine\SOFTWARE\Microsoft\Search\1.0\Gather\SQLServer\SQL0000500005
"E:\MSSQL70\FTDATA\SQL0000500005" -r "E:\FTData\SQL0000500005"'
go
-- Search and replace HKLM "Gatherer Manager" registry keys with new FT
-- catalog folder location [6 row(s) affected]:
exec master..xp_cmdshell 'REGFIND -m \\server_2 -p
"\Registry\Machine\SOFTWARE\Microsoft\Search\1.0\Gathering
Manager\Applications\SQLServer\Projects\SQL0000500005"
"E:\MSSQL70\FTDATA\SQL0000500005" -r "E:\FTData\SQL0000500005"'
go
-- Search and replace HKLM indexer registry keys with new FT catalog folder
-- location [6 row(s) affected]:
exec master..xp_cmdshell 'REGFIND -m \\server_2 -p
"\Registry\Machine\SOFTWARE\Microsoft\Search\1.0\Indexer\SQLServer\SQL0000500005"
"E:\MSSQL70\FTDATA\SQL0000500005" -r "E:\FTData\SQL0000500005"'
go

-- Restart the Microsoft Search service
exec master..xp_cmdshell 'net start "Microsoft Search"'
go

-- Confirm FT population, 1 row should be returned (pub_id = 0736). 
use pubs
go
SELECT pub_id, pr_info FROM pub_info WHERE CONTAINS(pr_info, 'moon')
go
Sie können "stop" eine Volltextauffüllung in Bearbeitung durch den folgenden SQL Server-Code ausführen:

Vorsicht Wenn die Anzahl der Elemente nicht gleich der Anzahl der Zeilen ist die Volltextindizierung sowie eine zusätzliche, die Größe des Volltextkatalogs sein kann falsch sein!
-- Run the following code after starting full crawl/population through another connection.
use pubs
go
BEGIN
SET NOCOUNT ON
EXEC sp_fulltext_catalog 'PubInfo', 'stop'

-- Wait for crawl to stop

--  NOTE: For larger tables, increase the WAITFOR DELAY time appropriately

DECLARE @status int, @itemCount int, @keyCount int, @indexSize int
SELECT @status = FullTextCatalogProperty('PubInfo', 'populatestatus')
WHILE (@status <> 0)
BEGIN
  WAITFOR DELAY '00:00:01' -- wait for 1 second before checking FT
                           -- Populatestatus...
  SELECT @status = FullTextCatalogProperty('PubInfo', 'populatestatus')
END
WAITFOR DELAY '00:00:05' -- wait for 5 seconds to receive correct FT Property
                         -- info (add more time for larger tables)...
SET @itemCount = FullTextCatalogProperty('PubInfo', 'itemcount')
SET @keyCount = FullTextCatalogProperty('PubInfo', 'uniquekeycount')
SET @indexSize = FullTextCatalogProperty('PubInfo', 'indexsize')
PRINT 'Nbr. of Rows FT Indexed = ' + CAST((CONVERT(varchar(10), @itemCount) - 1)
as varchar(12)) + char(09) + 'Nbr. of Unique FT Words = ' +
CONVERT(varchar(10), @keyCount) + char(09)
SET NOCOUNT OFF
END
go
-- Can return: Nbr. of Rows FT Indexed = -1 Nbr. of Unique FT Words = 0 
-- (depending upon when the crawl/population stopped)
Clean-Up-Verfahren

Führen Sie folgende SQL-Skript auf beiden Servern:

Der Volltextindex, der Volltextkatalog löschen und deaktivieren dann Volltextsuche in der Pubs -Datenbank:
use pubs
go
sp_fulltext_table 'pub_info', 'drop'
go
sp_fulltext_catalog 'PubInfo', 'drop'
go
sp_fulltext_database 'disable'
go
sp_fulltext_service 'clean_up'
go
-- end SQL Script !

Informationsquellen

Weitere Informationen zum beziehen die dbid normalerweise für eine Datenbank finden Sie "DB_ID" in der SQL Server-Onlinedokumentation.

Finden Sie in festzustellen, ob eine Datenbank volltextfähig ist, den "DATABASEPROPERTY" oder "IsFulltextEnabled" Themen in der SQL Server-Onlinedokumentation.

Weitere Informationen über Ftcatid finden Sie unter "Sp_help_fulltext_catalogs", "OBJECTPROPERTY" oder "TableFulltextCatalogId" in der SQL Server-Onlinedokumentation.

Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft SQL Server 2000 Standard Edition, wenn verwendet mit:
    • Microsoft SQL Server 2000 Developer Edition
    • Microsoft SQL Server 2000 Standard Edition
    • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 7.0 Standard Edition
Keywords: 
kbmt kbinfo KB240867 KbMtde
Maschinell übersetzter ArtikelMaschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 240867  (http://support.microsoft.com/kb/240867/en-us/ )
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.
Freigeben
Weitere Supportoptionen
Microsoft Community-Supportforen
Kontaktieren Sie uns direkt
Zertifizierten Partner finden
Microsoft Store