Toàn văn b?n catalog và l?p ch? m?c không đư?c lưu tr? trong m?t SQL
Máy ch? cơ s? d? li?u. Toàn văn b?n catalog và ch? s? đư?c lưu tr? trong t?p tin riêng bi?t
r?ng các t?m ki?m c?a Microsoft d?ch v? qu?n l?. T?p văn b?n đ?y đ? vào c?a hàng này không
ph?c h?i trong m?t h?i ph?c Microsoft SQL Server. Ngoài ra, b?n không th? s? d?ng
nh?ng đi?u kho?n giao d?ch SQL sao lưu và khôi ph?c sao lưu và khôi ph?c
t?p tin văn b?n đ?y đ? vào c?a hàng. Sau khi ph?c h?i ho?c khôi ph?c l?i ho?t đ?ng, b?n ph?i
m?t cách riêng bi?t, đ?ng b? hoá l?i catalog văn b?n đ?y đ?. Ch? Microsoft Windows NT
qu?n tr? h? th?ng và các d?ch v? t?m ki?m c?a Microsoft có th? truy c?p vào văn b?n đ?y đ?
T?p catalô.
M?c dù b?n không th? s? d?ng cơ s? d? li?u SQL Server đ? sao lưu
toàn văn b?n catalog, b?n có th? s? d?ng cơ s? d? li?u s?n xu?t v?i các b?ng l?n đang
toàn văn b?n cho phép t?m ki?m. N?u b?n làm như v?y, b?n có th? ph?i di chuy?n, sao lưu, ho?c
Khôi ph?c các catalog văn b?n đ?y đ? và cơ s? d? li?u s?n xu?t c?a h?. Th?i gian ch?y
cho m?t c?a hàng văn b?n đ?y đ? có dân s? ho?c resynchronization có th? dài hơn các
c?a s? b?o tr? đi?n h?nh. Bài vi?t này mô t? m?t phương pháp khác nhau mà b?n
có th? s? d?ng đ? di chuy?n ho?c sao chép catalog mà không có m?t dân s? đ?y đ?, m? đ?u.
Phương pháp này đ? tránh m?t th?i gian ch?t đáng k?.
Tài li?u bài vi?t này
m?t s? phương pháp mà b?n có th? s? d?ng đ? sao chép, di chuy?n, và sao lưu ho?c khôi ph?c
văn b?n đ?y đ? danh m?c thư m?c và t?p tin trong nh?ng h?n ch? nh?t đ?nh:
Các phiên b?n SQL Server b?n đang s? d?ng là các
cùng m?t.
Văn b?n đ?y đ? danh m?c thư m?c và t?p tin ph?i trên m?t đ?a phương
? đ?a.
Văn b?n đ?y đ? danh m?c thư m?c và t?p tin ph?i duy tr? c?a h?
Ban đ?u tên và n?i dung c?p.
Văn b?n đ?y đ? kích ho?t cơ s? d? li?u nh?n d?ng và b?ng
đ?nh danh ph?i gi?ng nhau trên c? hai máy ch? khi b?n di chuy?n ho?c sao chép văn b?n đ?y đ?
catalog gi?a các máy ch?.
C?nh báo Các th? t?c này không đư?c h? tr? v? trư?ng h?p c?a c?m chuy?n đ?i d? ph?ng máy ch? SQL.
Toàn văn b?n catalog đư?c duy tr? như là m?t t?p h?p các thư m?c và
t?p tin. V? trí m?c đ?nh c?a văn b?n đ?y đ? catalog là:
Microsoft SQL Server 7.0: \Mssql7\FTDATA
Microsoft SQL Server 2000: Trư?ng h?p m?c đ?nh: chương tr?nh Files\Microsoft SQL
Server\MSSQL\FTDATA Đ?t tên d?: chương tr?nh Files\Microsoft SQL
Server\MSSQL$ instancename\FTDATA
M?i m?c r?ng văn b?n đ?y đ? và c?a nó
k?t h?p các t?p tin đư?c duy tr? theo m?t thư m?c có s? d?ng đ?t tên sau đây
công ư?c nơi dbid là liên quan đ?n cơ s? d? li?u
đ?nh danh, và nơi ftcatid là văn b?n đ?y đ?
Danh m?c
đ?nh danh:
"SQLxxxxx)dbid) yyyyy ()ftcatid)"
M?i ftcatid là duy nh?t trong các liên k?t
cơ s? d? li?u.
Quan tr?ng Ph?n này, phương pháp, ho?c công vi?c có bư?c mà cho b?n bi?t làm th? nào đ? ch?nh s?a registry. Tuy nhiên, v?n đ? nghiêm tr?ng có th? x?y ra n?u b?n s?a đ?i registry không chính xác. V? v?y, h?y ch?c ch?n r?ng b?n làm theo các bư?c sau m?t cách c?n th?n. Đ? b?o v? đư?c thêm vào, sao lưu s? đăng k? trư?c khi b?n s?a đ?i nó. Sau đó, b?n có th? khôi ph?c s? đăng k? n?u m?t v?n đ? x?y ra. Đ? bi?t thêm chi ti?t v? làm th? nào đ? sao lưu và khôi ph?c s? đăng k?, h?y nh?p vào s? bài vi?t sau đ? xem bài vi?t trong cơ s? ki?n th?c Microsoft:
Đ? sao lưu m?t danh m?c toàn văn b?n trên m?t máy tính đ?c l?p ho?c m?t c?m
D?ng d?ch v? t?m ki?m c?a Microsoft vào m?t đ?c l?p
máy tính. Cho m?t c?u h?nh máy ch? SQL c?m, đ? l?i văn b?n đ?y đ?
tài nguyên tr?c tuy?n. Sau khi b?n ng?ng d?ch v? t?m ki?m c?a Microsoft, b?n không th? ch?y
truy v?n văn b?n đ?y đ? mà s? d?ng predicates ch?a ho?c FREETEXT, ho?c các
rowset hàm CONTAINSTABLE ho?c FREETEXTTABLE ch?ng l?i cơ s? d? li?u.
Ngoài ra, truy v?n t?m ki?m văn b?n đ?y đ? không ho?t đ?ng, và b?n nh?n đư?c các
thông báo l?i sau:
Máy ch?: Msg 7602, c?p 16,
1, Đư?ng 2 The toàn văn b?n d?ch v? (t?m ki?m c?a Microsoft) là không có s?n. Các
qu?n tr? h? th?ng ph?i kh?i đ?ng d?ch v? này.
S? d?ng sao lưu h? th?ng t?p Microsoft Windows NT h?u ích, ch?ng h?n
Backup Exec, và sau đó tr? l?i lên văn b?n đ?y đ? catalog, thư m?c và t?p tin.Các
h? th?ng b?ng cho văn b?n đ?y đ? catalog)sysfulltextcatalogs) đư?c sao lưu v?i cơ s? d? li?u SQL Server.
Sao lưu các m?c đăng k? sau đây n?u b?n ph?i sao lưu
catalog riêng:
Đ?i v?i m?t tên d? c?a SQL Server, các m?c nh?p registry là
\SQLServer$InstanceName\.
Đ? khôi ph?c l?i văn b?n đ?y đ? catalog trên cùng m?t máy ch? đ? cùng m?t đ?a c?c b? ho?c đư?ng d?n
D?ng d?ch v? t?m ki?m c?a Microsoft. Chú ý Th?c hi?n bư?c 2 ch? khi cơ s? d? li?u b? lo?i b?. N?u không, đi đ?n
Bư?c 3.
Khôi ph?c ho?c đính kèm cơ s? d? li?u mà b?n cho phép văn b?n đ?y đ?.
Sau khi b?n khôi ph?c l?i cơ s? d? li?u, h?y ch?c ch?n r?ng cơ s? d? li?u ID (dbid) là gi?ng như
đó là khi b?n sao lưu. Chú ý N?u cơ s? d? li?u đư?c g?n vào b?ng cách s? d?ng các sp_attach_dbl?nh, h?y ch?c ch?n r?ng b?n ch?y các exec sp_fulltext_database 'kích ho?t' l?nh
đ? kích ho?t cơ s? d? li?u cho văn b?n đ?y đ?.
Đ? xác đ?nh dbid, ch?y đo?n m? sau:
Use dbname
go
select db_id()
Chú ý Đ? khôi ph?c l?i cá nhân catalog, h?y làm theo bư?c 4. Đ? khôi ph?c l?i t?t c?
catalog, đi sang bư?c 5.
Khôi ph?c các m?c đăng k? b?n sao lưu d?a trên
hư?ng d?n sao lưu trư?c đó. B?n có th? mu?n sao lưu registry c?a b?n trư?c khi
b?n h?y th? bư?c này.
[FT_Catalog_Folder] là m?t danh m?c thư m?c
"SQLxxxxx)dbid) yyyyy ()ftcatid)" Đ?i v?i m?t tên d? c?a SQL Server, các m?c nh?p registry là
\SQLServer$InstanceName\.
Đ? khôi ph?c l?i t?t c? các catalog trên máy ch?, khôi ph?c l?i các
Theo m?c đăng k?. B?n có th? mu?n sao lưu registry c?a b?n trư?c khi b?n
H?y th? bư?c này.
Đ?i v?i m?t tên d? c?a SQL Server, các m?c nh?p registry là
\SQLServer$InstanceName\.
Khôi ph?c các catalog t? sao lưu vào v? trí m?c đ?nh
r?ng b?n sao nó t?.
Kh?i đ?ng l?i d?ch v? t?m ki?m c?a Microsoft.
Xác nh?n r?ng văn b?n đ?y đ? m?i catalog c?p và t?p
ch?c năng b?ng cách s? d?ng m?t tuyên b? Transact-SQL ch?n và s? d?ng m?t ch?a ho?c
FREETEXT predicate trong WHERE kho?n.
Đ? di chuy?n ho?c sao chép văn b?n đ?y đ? catalog gi?a các ? đ?a đ?a phương ho?c đư?ng d?n trên cùng m?t máy tính đang ch?y SQL Server
Xác nh?n các văn b?n đ?y đ? vào c?a hàng tên và đ?a c?c b? ho?c đư?ng d?n
b?ng cách s? d?ng sp_help_fulltext_catalogs 'ft_catalog_name'. Ghi l?i văn b?n đ?y đ?
c?a hàng k? t? ? đ?a và đư?ng d?n đ?y đ? đi?u ki?n đ? s? d?ng sau này.
D?ng d?ch v? t?m ki?m c?a Microsoft. Th?c hi?n bư?c 3 và 4
ch? khi cơ s? d? li?u đ? đư?c gi?m xu?ng, ho?c n?u các c?a hàng đ? b? xóa b?, n?u không, h?y
Bư?c 5.
Khôi ph?c ho?c đính kèm cơ s? d? li?u mà b?n cho phép văn b?n đ?y đ?.
Sau khi b?n khôi ph?c l?i cơ s? d? li?u, h?y ch?c ch?n r?ng cơ s? d? li?u ID (dbid) là gi?ng như
đó là khi b?n sao lưu.
Chú ý N?u cơ s? d? li?u đư?c g?n vào b?ng cách s? d?ng các sp_attach_dbl?nh, h?y ch?c ch?n r?ng b?n ch?y các exec sp_fulltext_database 'kích ho?t' l?nh
đ? kích ho?t cơ s? d? li?u cho văn b?n đ?y đ?.
Đ? xác đ?nh dbid, ch?y
m? sau đây:
Use dbname
go
select db_id()
Khôi ph?c các m?c đăng k? sau đây. B?n có th? mu?n
sao lưu registry c?a b?n trư?c khi b?n th? bư?c này.
[FT_Catalog_Folder] là m?t danh m?c thư m?c
"SQLxxxxx)dbid) yyyyy ()ftcatid)" Đ?i v?i m?t tên d? c?a SQL Server, các m?c nh?p registry là
\SQLServer$InstanceName\.
Xác đ?nh m?i văn b?n đ?y đ? vào c?a hàng đ?a c?c b? ho?c đư?ng d?n.
Sao chép các văn b?n đ?y đ? catalog đ?n v? trí m?i.
Cho phép h? th?ng b?ng tin C?p Nh?t b?ng cách s? d?ng h? th?ng lưu tr?
th? t?c sp_configure c?u h?nh l?i v?i ghi đè và sau đó C?p nh?t các [database_name]. dbo.sysfulltextcatalogs đư?ng d?n c?t cho các đ?a phương đi?m ? đ?a ho?c đư?ng d?n đ?n m?i cho các
văn b?n đ?y đ? danh m?c thư m?c m?c đ?nh, ch?ng h?n như d:\FTData.
S? d?ng Windows NT 4.0 Resource Kit regfind Ti?n ích đ? t?m và thay th? HKLM ky sau đây
giá tr? cho m?i văn b?n đ?y đ? danh m?c thư m?c (FT_Catalog_Folder) (ví d?,
SQL0000500005):
Lưu ?: Thay th? <key name="">,
<old_ft_catalog_path_and_folder>, và
<new_ft_catalog_path_and_folder> v?i các giá tr? thích h?p.<b00></b00></new_ft_catalog_path_and_folder></old_ft_catalog_path_and_folder></key> Cho
Ví d?: -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
Đ? bi?t thêm thông tin v? cú pháp đ? s? d?ng các regfind Ti?n ích, g? tham s? sau đây t? m?t d?u nh?c l?nh DOS:regfind /?
Kh?i đ?ng l?i d?ch v? t?m ki?m c?a Microsoft.
Xác nh?n r?ng văn b?n đ?y đ? m?i catalog c?p và t?p
ch?c năng b?ng cách s? d?ng m?t tuyên b? Transact-SQL ch?n và s? d?ng m?t ch?a ho?c
FREETEXT predicate trong WHERE kho?n.
Đ? sao chép văn b?n đ?y đ? catalog gi?a trư?ng h?p c?a SQL Server đ? cùng m?t đ?a c?c b? ho?c đư?ng d?n
Các bư?c sau đây ch?ng minh làm th? nào đ? di chuy?n ho?c sao chép m?t văn b?n đ?y đ?
Danh m?c thư m?c và t?p tin t? m?t máy tính đang ch?y SQL Server
(server_1) đ?n máy tính khác đang ch?y SQL Server (server_2). Đi?u này
bài gi? đ?nh r?ng SQL Server đ? t?m ki?m toàn văn b?n đư?c cài đ?t và r?ng các
cùng m?t cơ s? d? li?u và b?ng đ?nh danh t?n t?i trên c? hai máy ch?. Đ?i v?i s? thành công
b?n sao c?a văn b?n đ?y đ? catalog m?t ví d? c?a SQL Server khác, các
cơ s? d? li?u ID ph?i gi?ng nhau. V? v?y, nó là t?t nh?t đ? có server_2 (đ? mà
b?n là sao chép các c?a hàng) là m?t b?n sao chính xác (clone) c?a các
server_1.confirm dbids trên c? hai server_1 và server_2 đ?u gi?ng nhau. Đ?
làm như v?y, ch?y các l?nh sau trên c? hai máy ch?:
Use dbname
go
select db_id()
Đ? "trao đ?i" dbids đ? có đư?c dbid chính xác ngày server_2, s? d?ng sp_detach_db và sp_attach_db đ? tách và re-attach cơ s? d? li?u chính xác. Ví d?, n?u
b?n có hai cơ s? d? li?u, ch?ng h?n như TestDB (dbid = 7) và PerfDB (dbid = 8), tách c? hai cơ s? d? li?u, và sau đó đ?u tiên Re-attach các PerfDB cơ s? d? li?u, và sau đó các TestDB cơ s? d? li?u. Đi?u này giao d?ch hoán đ?i các dbids: dbid cho TestDB tr? thành 8 và dbid cho PerfDB tr? thành 7. Dbid th?p nh?t trong h? bơi c?a s?n dbids là
luôn luôn s? d?ng đ?u tiên.
Lưu ý Đ? làm đi?u này, trư?c khi b?n tách các cơ s? d? li?u, đ?m b?o r?ng c? hai cơ s? d? li?u th? không
có b?t k? văn b?n đ?y đ? catalog và r?ng h? không ph?i là văn b?n đ?y đ? kích ho?t. Xem
"Làm s?ch lên th? t?c" trong ph?n "Thông tin thêm" cho bư?c đ? th?
toàn văn b?n catalog và đ? vô hi?u hoá văn b?n đ?y đ? cho m?t cơ s? d? li?u.
Xác nh?n r?ng các Master.dbo.sysdatabases dbid giá tr? cho cơ s? d? li?u cho phép văn b?n đ?y đ? là cùng m?t ngày
c? hai máy ch?.
Xác nh?n r?ng các [database_name]. dbo.sysobjects ID giá tr? cho các văn b?n đ?y đ? hi?u l?c b?ng là gi?ng nhau trên c? hai
các máy ch?. Đ? bi?t thêm chi ti?t v? làm th? nào đ? có đư?c m?t giá tr? ID bàn, xem các
ch? đ? "object_id" trong SQL Server Books.
Xác nh?n r?ng văn b?n đ?y đ? danh m?c tên và đ?a phương ? đ?a ho?c
đư?ng d?n đ?u gi?ng nhau trên c? hai máy ch? b?ng cách s? d?ng sp_help_fulltext_catalogs'FT_Catalog_Name'.
D?ng d?ch v? t?m ki?m c?a Microsoft vào c? hai server_1 và
server_2.
Ánh x? m?t k? t? ? đ?a vào server_1 cho các ? đ?a tương ?ng
ho?c đư?ng d?n trên server_2.
Sao chép các văn b?n đ?y đ? danh m?c thư m?c và t?p tin mà b?n
đư?c xác đ?nh trong bư?c 3 t? server_1 đ? server_2 b?ng cách s? d?ng l?nh DOS xcopy. S? d?ng ? đ?a đ? đi?u ki?n hoàn toàn văn b?n đ?y đ? danh m?c ho?c đư?ng d?n và
tên c?p như v? trí ngu?n và ? đ?a đư?c ánh x? văn b?n đ?y đ? danh m?c ho?c
đư?ng d?n thư m?c tên và theo v? trí đích. N?u thư m?c đích làm
không t?n t?i trên server_2, s? d?ng các xcopy thi?t b? chuy?n m?ch / I và /E đ? t?o ra t?t c? các đi?m đ?n c?p. Đ? khôi ph?c l?i t?t c? các catalog, sao chép
t?t c? danh m?c thư m?c đ? server_2.
B?n có th? s? d?ng l?nh DOS RMDIR /S /Q [FT_Catalog_drive/đư?ng d?n] vào server_1 đ? lo?i b? các t?p tin văn b?n đ?y đ? vào c?a hàng ngày server_1.
Chú ý Đ? khôi ph?c l?i cá nhân catalog, h?y làm theo bư?c 8. Đ? khôi ph?c l?i t?t c?
catalog, đi đ?n bư?c 9.
Khôi ph?c các m?c đăng k? b?n sao lưu d?a trên
hư?ng d?n trư?c đó. B?n có th? mu?n sao lưu registry c?a b?n trư?c khi b?n c? g?ng này
bư?c.
[FT_Catalog_Folder] là m?t danh m?c thư m?c
"SQLxxxxx)dbid) yyyyy ()ftcatid)" Đ?i v?i m?t tên d? c?a SQL Server, các m?c nh?p registry là
\SQLServer$InstanceName\.
Đ? khôi ph?c l?i t?t c? các catalog trên máy ch?, khôi ph?c l?i các
Theo m?c đăng k?. Tuy nhiên, n?u b?n làm như v?y, b?n m?t t?t c? hi?n t?i
catalog ngày server_2 sau khi b?n th?c hi?n bư?c này. B?n có th? mu?n sao lưu c?a b?n
đăng k? trư?c khi b?n th? bư?c này.
Chú ý Theo m?c đ?nh, các v? trí c?a văn b?n đ?y đ? t?p tin nh? phân là: SQL Server 7.0: \Mssql7\FTDATA Microsoft.
SQL Server 2000 m?c đ?nh th?m: \Program Files\Microsoft SQL Server\MSSQL\FTDATA SQL Server 2000 đ?t tên ví d?: MSSQL$InstanceName\FTDATA Đây
Đ?a đi?m và đư?ng d?n thư m?c có th? khác nhau cho các máy tính khác nhau. Trong trư?ng h?p này, b?n
ph?i thay đ?i hai m?c đăng k? do đó các đư?ng d?n đi?m đ?n v? trí chính xác c?a
nh? phân văn b?n đ?y đ? sau khi hoàn t?t khôi ph?c trên server_2.
B?n có th? s? d?ng các regfind Ti?n ích đ? t?m m?c đăng k? và thay đ?i v? trí c?a các
văn b?n đ?y đ? t?p tin nh? phân.
Kh?i đ?ng l?i d?ch v? t?m ki?m c?a Microsoft trên c? hai
các máy ch?.
Xác nh?n r?ng văn b?n đ?y đ? m?i catalog c?p và t?p
ch?c năng b?ng cách s? d?ng m?t tuyên b? Transact-SQL ch?n và s? d?ng m?t ch?a ho?c
FREETEXT predicate trong WHERE kho?n.
Đo?n m? SQL Server sau đây ch?ng t? làm th? nào đ? di chuy?n ho?c
di "chuy?n" thư m?c danh m?c văn b?n đ?y đ? t? SQL Server 7.0 (server_1) khác
máy tính đang ch?y SQL Server 7.0 (server_2) sang m?t ? đ?a đ?a phương khác nhau
ho?c v? trí đư?ng d?n trên server_2. Bài vi?t này gi? đ?nh r?ng SQL Server 7.0 v?i
t?m ki?m toàn văn b?n đư?c cài đ?t trên m?t máy tính d?a trên Windows NT 4.0, và r?ng các
cùng m?t cơ s? d? li?u và b?ng đ?nh danh t?n t?i trên c? hai máy ch?.
Đ?i v?i các
m?c đích c?a minh ho? này, các Quán rư?u (dbid = 5) cơ s? d? li?u và b?ng pub_info (id = 645577338) là văn b?n đ?y đ? kích ho?t và dân cư trên c? hai
các máy ch?. Thay th? server_2 v?i tên máy ch? c?a b?n và thay th? văn b?n đ?y đ?
Danh m?c thư m?c tên và ? đ?a ho?c đư?ng d?n v?i tên thư m?c danh m?c văn b?n đ?y đ? c?a b?n
và ? đ?a ho?c đư?ng d?n.
B?n ph?i đăng nh?p như m?t thành viên c?a máy ch? c?a đ?a phương
Qu?n tr? viên nhóm và tr? thành m?t thành viên c?a SQL Server Ilos h? ph?c v? vai tr? (ho?c đăng nh?p vào vai "sa"). Ngoài ra, b?n ph?i các
cơ s? d? li?u ch? (DBO) cơ s? d? li?u đ? ch?y máy ch? SQL sau đây
k?ch b?n.
Ch?y đo?n m? SQL Server sau trên c? hai máy ch?:
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
Ch?y đo?n m? SQL Server sau trên máy ch? ngu?n (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
B?n ph?i ch?y đo?n m? SQL sau đây v? các đi?m đ?n máy ch? (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
B?n có th? "stop" dân toàn văn b?n trong s? ti?n b? c?a ch?y các
SQL Server m? sau đây:
Lưu ý N?u các tính m?c không ph?i là tương đương v?i s? lư?ng hàng mà
toàn văn b?n l?p ch? m?c c?ng v?i m?t trong nh?ng b? sung, kích thư?c văn b?n đ?y đ? vào c?a hàng có th?
không chính xác!
-- 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)
Th? t?c s?ch-up
Ch?y đo?n m? SQL sau đây trên c? hai máy ch?:
Th? các ch? s? toàn văn b?n, văn b?n đ?y đ? vào c?a hàng, và sau đó vô hi?u hoá t?m ki?m văn b?n đ?y đ?
trong các quán rư?u cơ s? d? li?u:
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 !
TÀI LIỆU THAM KHẢO
Đ? bi?t thêm thông tin v? làm th? nào đ? có đư?c dbid cho m?t cơ s? d? li?u,
xem ch? đ? "db_id" trong SQL Server sách tr?c tuy?n.
Đ? xác đ?nh n?u m?t
cơ s? d? li?u là văn b?n đ?y đ? kích ho?t, xem "databaseproperty" ho?c
Các ch? đ? "isfulltextenabled" trong SQL Server sách tr?c tuy?n.
Đ? bi?t thêm
thông tin v? ftcatid, xem "sp_help_fulltext_catalogs",
"objectproperty", hay "tablefulltextcatalogid" các ch? đ? trong SQL Server Books
Tr?c tuy?n.
ID c?a bài: 240867 - L?n xem xét sau cùng: 21 Tháng Tám 2011 - Xem xét l?i: 2.0
Áp d?ng
Microsoft SQL Server 2000 Standard Edition, khi đư?c dùng v?i:
Microsoft SQL Server 2000 Developer Edition
Microsoft SQL Server 2000 Enterprise Edition
T? khóa:
kbinfo kbmt KB240867 KbMtvi
Máy d?ch
QUAN TRỌNG: Bài vi?t này đư?c d?ch b?ng ph?n m?m d?ch máy c?a Microsoft ch? không ph?i do con ngư?i d?ch. Microsoft cung c?p các bài vi?t do con ngư?i d?ch và c? các bài vi?t do máy d?ch đ? b?n có th? truy c?p vào t?t c? các bài vi?t trong Cơ s? Ki?n th?c c?a chúng tôi b?ng ngôn ng? c?a b?n. Tuy nhiên, bài vi?t do máy d?ch không ph?i lúc nào c?ng hoàn h?o. Lo?i bài vi?t này có th? ch?a các sai sót v? t? v?ng, cú pháp ho?c ng? pháp, gi?ng như m?t ngư?i nư?c ngoài có th? m?c sai sót khi nói ngôn ng? c?a b?n. Microsoft không ch?u trách nhi?m v? b?t k? s? thi?u chính xác, sai sót ho?c thi?t h?i nào do vi?c d?ch sai n?i dung ho?c do ho?t đ?ng s? d?ng c?a khách hàng gây ra. Microsoft c?ng thư?ng xuyên c?p nh?t ph?n m?m d?ch máy này.
Nh?p chu?t vào đây đ? xem b?n ti?ng Anh c?a bài vi?t này:240867