Bagaimana untuk memindahkan, menyalin, dan cadangan teks lengkap katalog folder dan file

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 240867 - Melihat produk di mana artikel ini berlaku.
Perbesar semua | Perkecil semua

Pada Halaman ini

RINGKASAN

Teks lengkap katalog dan indeks tidak disimpan dalam SQL Server database. Teks lengkap katalog dan indeks disimpan dalam berkas terpisah bahwa layanan Microsoft pencarian mengelola. File teks lengkap katalog yang tidak dipulihkan selama pemulihan Microsoft SQL Server. Selain itu, Anda tidak dapat menggunakan pernyataan Transact SQL cadangan dan MEMULIHKAN cadangan dan memulihkan berkas teks lengkap katalog. Setelah operasi pemulihan atau pemulihan, Anda harus secara terpisah mensinkronisasi ulang katalog teks lengkap. Hanya Microsoft Windows NT administrator sistem dan layanan Microsoft pencarian dapat mengakses teks lengkap berkas katalog.

Meskipun Anda tidak dapat menggunakan SQL Server Database cadangan teks lengkap katalog, Anda dapat menggunakan database produksi dengan meja-meja besar yang teks lengkap diaktifkan pencarian. Jika Anda melakukannya, Anda mungkin harus bergerak, kembali, atau memulihkan teks lengkap katalog ini dan produksi database. Jangka waktu untuk teks lengkap katalog penduduk atau resynchronization mungkin lebih lama daripada jendela pemeliharaan khas. Artikel ini menjelaskan metode yang berbeda yang Anda dapat digunakan untuk memindahkan atau menyalin katalog tanpa memulai populasi penuh. Metode ini menghindari downtime yang signifikan.

Dokumen artikel ini beberapa metode yang dapat Anda gunakan untuk menyalin, memindahkan, dan membuat cadangan atau memulihkan teks lengkap katalog folder dan file di pembatasan tertentu:
  • Versi SQL Server yang Anda gunakan sama.
  • Teks lengkap katalog folder dan file harus di lokal pada komputer.
  • Teks lengkap katalog folder dan file harus mempertahankan mereka nama asli dan konten map.
  • Teks lengkap diaktifkan pengenal database dan tabel pengenal harus sama pada kedua server ketika Anda memindahkan atau menyalin teks lengkap Katalog antara server.
Warning Prosedur ini tidak didukung pada contoh SQL Server Failover Cluster.

Teks lengkap katalog dipertahankan sebagai koleksi folder dan file. Lokasi default teks lengkap katalog adalah:

Microsoft SQL Server 7.0:
\Mssql7\FTDATA

Microsoft SQL Server 2000:
Default contoh: Program Files Microsoft SQL Server\MSSQL\FTDATA
Bernama contoh: Program Files Microsoft SQL Server\MSSQL$ instancename\FTDATA

Setiap teks lengkap katalog dan file terkait dikelola di bawah folder yang menggunakan penamaan berikut Konvensi di mana dbid yang terkait dengan database pengenal, dan di mana ftcatid adalah teks lengkap Katalog pengenal:

"SQLxxxxx)dbid) yyyyy ()ftcatid)"

Setiap ftcatid unik dalam yang terkait database.

Penting Bagian ini, metode, atau tugas yang memuat langkah-langkah yang memberitahu Anda bagaimana memodifikasi registri. Namun, masalah yang serius dapat terjadi apabila Anda salah memodifikasi registri. Oleh karena itu, pastikan Anda mengikuti langkah-langkah tersebut dengan seksama. Untuk perlindungan tambahan, buat cadangan registri sebelum Anda memodifikasi. Kemudian, Anda dapat memulihkan registri apabila terjadi masalah. Untuk informasi selengkapnya tentang cara membuat cadangan dan memulihkan registri, klik nomor artikel berikut ini untuk melihat artikel di Pangkalan Pengetahuan Microsoft:
322756 Cara membuat cadangan dan memulihkan registri di Windows

Untuk membuat cadangan teks lengkap katalog pada komputer yang berdiri sendiri atau sebuah cluster

  1. Menghentikan layanan Microsoft pencarian pada berdiri sendiri komputer. Untuk konfigurasi SQL Server berkerumun, meninggalkan teks lengkap sumber daya online. Setelah Anda berhenti layanan Microsoft pencarian, Anda tidak dapat menjalankan teks lengkap query yang menggunakan predicates mengandung atau FREETEXT, atau rowset-fungsi CONTAINSTABLE atau FREETEXTTABLE terhadap database. Selain itu, permintaan pencarian teks lengkap tidak berfungsi, dan Anda menerima pesan galat berikut:
    Server: Msg 7602, tingkat 16, Negara bagian 1, baris 2 The penuh-teks layanan (Microsoft Search) ini tidak tersedia. The administrator sistem harus memulai layanan ini.
  2. Menggunakan sistem berkas Microsoft Windows NT backup utility, seperti seperti Backup Exec, dan kemudian kembali ke teks lengkap katalog, folder dan file.The sistem meja untuk teks lengkap katalog)sysfulltextcatalogs) didukung dengan SQL Server database.
  3. Kembali ke atas entri registri berikut jika Anda harus membuat cadangan Katalog secara individual:
    \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Gather\SQLServer\[FT_Catalog_Folder \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\CatalogNames\SQLServer\[FT_Catalog_Folder \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Applications\SQLServer\Catalogs\[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] adalah nama folder katalog "SQLxxxxx)dbid) yyyyy ()ftcatid)"
    Misalnya bernama SQL Server, entri registri adalah \SQLServer$InstanceName\.
  4. 2. Membuat cadangan entri registri berikut untuk membuat cadangan semua Katalog: (ini membuat cadangan semua teks lengkap katalog pada 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... \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Indexer\SQLServer
    Misalnya bernama SQL Server, entri registri adalah \SQLServer$InstanceName\.

Untuk memulihkan teks lengkap katalog pada server yang sama ke drive lokal yang sama atau jalan

  1. Menghentikan layanan Microsoft pencarian. Catatan Melakukan langkah 2 hanya jika database dijatuhkan. Jika tidak, pergi ke Langkah 3.
  2. Mengembalikan atau melampirkan database di mana Anda mengaktifkan teks lengkap. Setelah Anda memulihkan database, memastikan bahwa database ID (dbid) adalah sama dengan itu adalah ketika Anda membuat cadangan.
    Catatan Jika database terpasang dengan menggunakan sp_attach_dbperintah, pastikan bahwa Anda menjalankan exec sp_fulltext_database 'Aktifkan' perintah agar database untuk teks lengkap.
  3. Untuk menentukan dbid, jalankan kode berikut:
    Use dbname
    go
    select db_id()
    Catatan Untuk memulihkan individu katalog, ikuti langkah 4. Untuk memulihkan semua Katalog, pergi ke langkah 5.
  4. Memulihkan entri registri yang Anda didukung berdasarkan petunjuk cadangan sebelumnya. Anda mungkin ingin membuat cadangan registri sebelum Anda Anda mencoba langkah ini.
    \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Gather\SQLServer\[FT_Catalog_Folder \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\CatalogNames\SQLServer\[FT_Catalog_Folder \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Applications\SQLServer\Catalogs\[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] adalah nama folder katalog "SQLxxxxx)dbid) yyyyy ()ftcatid)"
    Misalnya bernama SQL Server, entri registri adalah \SQLServer$InstanceName\.
  5. Untuk memulihkan semua katalog pada server, memulihkan entri registri berikut. Anda mungkin ingin membuat cadangan registri sebelum Anda coba langkah ini.
    \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... \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Indexer\SQLServer
    Misalnya bernama SQL Server, entri registri adalah \SQLServer$InstanceName\.
  6. Mengembalikan katalog dari cadangan untuk lokasi default bahwa Anda didukung itu dari.
  7. Restart layanan Microsoft Search.
  8. Mengkonfirmasi bahwa teks lengkap baru katalog folder dan file fungsional dengan menggunakan Transact-SQL Pilih pernyataan dan menggunakan mengandung atau FREETEXT predikat dalam klausul WHERE.

Untuk memindahkan atau menyalin teks lengkap katalog antara drive lokal atau jalan di komputer yang sama yang menjalankan SQL Server

  1. Mengkonfirmasi nama teks lengkap katalog dan drive lokal atau jalan dengan menggunakan sp_help_fulltext_catalogs 'FT_Catalog_Name'. Catatan teks lengkap Katalog huruf kandar dan lintasan yang memenuhi syarat untuk digunakan kemudian.
  2. Menghentikan layanan Microsoft pencarian. Lakukan langkah 3 dan 4 hanya jika database dijatuhkan atau jika katalog telah dihapus, jika tidak, pergi ke langkah 5.
  3. Mengembalikan atau melampirkan database di mana Anda mengaktifkan teks lengkap. Setelah Anda memulihkan database, memastikan bahwa database ID (dbid) adalah sama dengan itu adalah ketika Anda membuat cadangan.

    Catatan Jika database terpasang dengan menggunakan sp_attach_dbperintah, pastikan bahwa Anda menjalankan exec sp_fulltext_database 'Aktifkan' perintah agar database untuk teks lengkap.

    Untuk menentukan dbid, jalankan kode berikut:
    Use dbname
    go
    select db_id()
  4. Memulihkan entri registri berikut. Anda mungkin ingin membuat cadangan registri Anda sebelum Anda mencoba langkah ini.
    \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Gather\SQLServer\[FT_Catalog_Folder \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\CatalogNames\SQLServer\[FT_Catalog_Folder \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Applications\SQLServer\Catalogs\[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] adalah nama folder katalog "SQLxxxxx)dbid) yyyyy ()ftcatid)"
    Misalnya bernama SQL Server, entri registri adalah \SQLServer$InstanceName\.
  5. Menentukan drive lokal teks lengkap katalog baru atau jalan. Salin teks lengkap katalog ke lokasi baru.
  6. Memungkinkan sistem update tabel dengan menggunakan sistem yang disimpan prosedur sp_configure MENGKONFIGURASI dengan menimpa dan kemudian update [database_name]. dbo.sysfulltextcatalogs jalan kolom untuk lokal drive atau jalan tujuan baru untuk teks lengkap katalog folder default, seperti d:\FTData.
  7. Menggunakan Kit sumber daya Windows NT 4.0 regfind utilitas untuk menemukan dan mengganti kunci registri HKLM berikut nilai-nilai untuk setiap teks lengkap katalog folder (FT_Catalog_Folder) (misalnya, 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]
    Selain itu, pastikan untuk menggunakan kutipan lurus tanda ("") untuk menyertakan kunci registri untuk kedua -p dan -r parameter. Misalnya:
    -m \\server_2 -p "<Key Name>" <Old_FT_Catalog_Path_and_Folder> -r <New_FT_Catalog_Path_and_Folder>

    Catatan: Ganti <key name="">, <old_ft_catalog_path_and_folder>, dan <new_ft_catalog_path_and_folder>dengan nilai-nilai yang sesuai.<b00></b00></new_ft_catalog_path_and_folder></old_ft_catalog_path_and_folder></key>
    Untuk contoh: -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

    Untuk informasi selengkapnya tentang sintaks untuk menggunakan regfind utilitas, ketik parameter berikut dari prompt perintah DOS:regfind /?
  8. Restart layanan Microsoft pencarian.
  9. Mengkonfirmasi bahwa teks lengkap baru katalog folder dan file fungsional dengan menggunakan Transact-SQL Pilih pernyataan dan menggunakan mengandung atau FREETEXT predikat dalam klausul WHERE.

Untuk menyalin teks lengkap katalog antara contoh-contoh SQL Server untuk drive lokal yang sama atau jalan

Langkah-langkah berikut menunjukkan cara untuk memindahkan atau menyalin teks lengkap Katalog folder dan file dari satu komputer yang menjalankan SQL Server (server_1) ke komputer lain yang menjalankan SQL Server (server_2). Ini Artikel ini mengasumsikan bahwa SQL Server memiliki lengkap-teks pencarian diinstal dan yang pengidentifikasi database dan tabel yang sama yang ada pada kedua server. Untuk sukses salinan teks lengkap katalog dari satu contoh dari SQL Server lain, database id harus sama. Oleh karena itu, terbaik untuk memiliki server_2 (untuk yang Anda menyalin katalog) menjadi replika (klon) server_1.CONFIRM dbids di server_1 dan server_2 yang sama. Pada melakukannya, jalankan perintah berikut di kedua server:
Use dbname
go
select db_id()
Untuk "menukar" dbids untuk mendapatkan benar dbid di server_2, menggunakan sp_detach_db dan sp_attach_db untuk melepaskan dan melampirkan kembali database benar. Sebagai contoh, jika Anda memiliki dua database, seperti TestDB (dbid = 7) dan PerfDB (dbid = 8), melepaskan kedua database, dan kemudian pertama melampirkan kembali PerfDB database, dan kemudian TestDB database. Ini swap dbids: dbid untuk TestDB menjadi 8 dan dbid untuk PerfDB menjadi 7. Dbid terendah di kolam renang tersedia dbids adalah selalu digunakan pertama kali.

Perhatian Untuk melakukan hal ini, sebelum Anda melepaskan database, memastikan bahwa database kedua tidak memiliki setiap teks lengkap katalog dan bahwa mereka tidak teks lengkap diaktifkan. Lihat "Pembersihan prosedur" di bagian "Informasi selengkapnya" untuk langkah-langkah untuk menjatuhkan teks lengkap katalog dan menonaktifkan teks lengkap untuk database.
  1. Mengkonfirmasi bahwa Master.dbo.sysdatabases nilai-nilai dbid untuk teks lengkap diaktifkan database yang sama pada kedua server.
  2. Mengkonfirmasi bahwa [database_name]. dbo.sysobjects Nilai-nilai ID untuk teks lengkap diaktifkan tabel yang sama pada kedua server. Untuk informasi lebih lanjut tentang cara mendapatkan ID tabel nilai, lihat "object_id" topik di buku-buku Server SQL.
  3. Mengkonfirmasi bahwa teks lengkap katalog nama dan lokal drive atau jalan yang sama pada kedua server dengan menggunakan sp_help_fulltext_catalogs'FT_Catalog_Name'.
  4. Berhenti layanan Microsoft pencarian di kedua server_1 dan server_2.
  5. Peta huruf kandar pada server_1 untuk pengandar yang sesuai atau jalan di server_2.
  6. Menyalin teks lengkap katalog folder dan file yang Anda diidentifikasi dalam langkah 3 dari server_1 ke server_2 dengan menggunakan perintah DOS Xcopy. Menggunakan drive memenuhi syarat teks lengkap katalog atau jalan dan nama folder sebagai sumber lokasi dan pengandar yang dipetakan teks lengkap katalog atau jalan dan folder nama sebagai lokasi tujuan. Jika folder tujuan tidak ada di server_2, penggunaan Xcopy switch /I dan / E untuk membuat semua folder tujuan. Untuk memulihkan semua katalog, salin semua katalog folder untuk server_2.
  7. Anda dapat menggunakan perintah DOS RMDIR/s /Q [FT_Catalog_drive/path] pada server_1 untuk menghapus berkas teks lengkap katalog pada server_1.

    Catatan Untuk memulihkan individu katalog, ikuti langkah 8. Untuk memulihkan semua Katalog, lanjutkan ke langkah 9.
  8. Memulihkan entri registri yang Anda didukung berdasarkan sebelumnya petunjuk. Anda mungkin ingin membuat cadangan registri Anda sebelum Anda mencoba ini langkah.
    \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Gather\SQLServer\[FT_Catalog_Folder \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\CatalogNames\SQLServer\[FT_Catalog_Folder \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Applications\SQLServer\Catalogs\[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] adalah nama folder katalog "SQLxxxxx)dbid) yyyyy ()ftcatid)"
    Misalnya bernama SQL Server, entri registri adalah \SQLServer$InstanceName\.
  9. Untuk memulihkan semua katalog pada server, memulihkan entri registri berikut. Namun, jika Anda melakukannya, Anda kehilangan semua yang ada Katalog pada server_2 setelah Anda menjalankan langkah ini. Anda mungkin ingin membuat cadangan Anda registri sebelum Anda mencoba langkah ini.
    \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... \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Indexer\SQLServer
    Catatan Secara default, lokasi berkas teks lengkap adalah:
    SQL Server 7.0: \Mssql7\FTDATA
    Microsoft. Misalnya standar SQL Server 2000: \Program SQL Server\MSSQL\FTDATA
    SQL Server 2000 bernama contoh: MSSQL$InstanceName\FTDATA
    Ini lokasi dan lintasan map dapat bervariasi untuk komputer yang berbeda. Dalam kasus ini, Anda harus mengubah entri registri dua sehingga jalan yang mengarah ke lokasi benar teks lengkap binari setelah Anda menyelesaikan pemulihan di server_2.
    \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\CatalogNames\SQLServer \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Indexer\SQLServer
    Anda dapat menggunakan regfind utilitas untuk menemukan entri registri dan mengubah lokasi teks lengkap binari.
  10. Restart layanan Microsoft Search pada kedua server.
  11. Mengkonfirmasi bahwa teks lengkap baru katalog folder dan file fungsional dengan menggunakan Transact-SQL Pilih pernyataan dan menggunakan mengandung atau FREETEXT predikat dalam klausul WHERE.

INFORMASI LEBIH LANJUT

Skrip SQL Server berikut menunjukkan bagaimana memindahkan atau "bermigrasi" folder teks lengkap katalog dari SQL Server 7.0 (server_1) yang lain komputer yang menjalankan SQL Server 7.0 (server_2) ke drive lokal yang berbeda atau lokasi jalan di server_2. Artikel ini mengasumsikan bahwa SQL Server 7.0 dengan lengkap-teks pencarian diinstal pada komputer berbasis Windows NT 4.0, dan bahwa pengidentifikasi database dan tabel yang sama yang ada pada kedua server.

Untuk Tujuan dari ilustrasi ini, Pub (dbid = 5) database dan tabel pub_info (id = 645577338) adalah teks lengkap diaktifkan dan diisi pada kedua server. Ganti server_2 dengan nama server dan mengganti teks lengkap Katalog nama folder dan drive atau jalan dengan nama folder teks lengkap katalog dan drive atau jalan.

Anda harus log on sebagai anggota server lokal Administrator kelompok dan menjadi anggota SQL Server sysadmin Server peran (atau masuk sebagai "sa"). Selain itu, Anda harus database pemilik (DBO) dari database untuk menjalankan Server SQL berikut script.

Menjalankan skrip SQL Server berikut pada kedua server:
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
Menjalankan skrip SQL Server berikut pada server SOURCE (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
Anda harus menjalankan skrip SQL berikut pada tujuan Server (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
Anda dapat "berhenti" penduduk teks lengkap berlangsung dengan menjalankan kode SQL Server berikut:

Perhatian Jika jumlah item yang tidak sama dengan jumlah baris yang teks lengkap diindeks ditambah satu tambahan, ukuran teks lengkap katalog mungkin akan salah!
-- 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)
Pembersihan prosedur

Menjalankan skrip SQL berikut pada kedua server:

Drop indeks teks lengkap, teks lengkap katalog, dan kemudian menonaktifkan lengkap-teks pencarian dalam pub database:
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 !

REFERENSI

Untuk informasi lebih lanjut tentang cara mendapatkan dbid untuk database, lihat topik "DB_ID" dalam SQL Server buku Online.

Untuk menentukan apakah database memungkinkan teks lengkap, lihat "DATABASEPROPERTY" atau "IsFulltextEnabled" topik di SQL Server buku Online.

Untuk lebih melihat informasi tentang ftcatid, "sp_help_fulltext_catalogs", "OBJECTPROPERTY", atau "TableFulltextCatalogId" topik di SQL Server buku Online.

Properti

ID Artikel: 240867 - Kajian Terakhir: 20 September 2011 - Revisi: 2.0
Berlaku bagi:
  • Microsoft SQL Server 2000 Standard Edition, ketika digunakan dengan:
    • Microsoft SQL Server 2000 Developer Edition
    • Microsoft SQL Server 2000 Enterprise Edition
Kata kunci: 
kbinfo kbmt KB240867 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:240867

Berikan Masukan

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com