SQL server 備份還原帶全文索引的 處理方式

來源:互聯網
上載者:User
sp_help_fulltext_catalogs

尋找全文索引目錄

sp_help_fulltext_columns

全文索引列

sp_help_fulltext_tables

全文索引表

 

刪除全文索引所在表DROP FULLTEXT INDEX ON TableName

 

刪除全文索引目錄DROP FULLTEXT CATALOG catalog_name

 

當無法SQL備份中有全文索引時候,需要把索引刪除後才可還原 必須經上述步驟。

 

具體如下:

 

如何獲得資料庫裡有多少個全文索引。刪除全文索引的方法 SQL server 2005

今天使用命令備份資料庫的時候發生了異常:

Msg 3007, Level 16, State 1, Line 4
The backup of the file or filegroup "sysft_db_FullText" is not permitted because it is not online. BACKUP can be performed by using the FILEGROUP or FILE clauses to restrict the selection to include only online data.
Msg 3007, Level 16, State 1, Line 4
The backup of the file or filegroup "sysft_ccc" is not permitted because it is not online. BACKUP can be performed by using the FILEGROUP or FILE clauses to restrict the selection to include only online data.
Msg 3007, Level 16, State 1, Line 4
The backup of the file or filegroup "sysft_aaa" is not permitted because it is not online. BACKUP can be performed by using the FILEGROUP or FILE clauses to restrict the selection to include only online data.
Msg 3013, Level 16, State 1, Line 4
BACKUP DATABASE is terminating abnormally.

其中:db_FullText、ccc、aaa是原來的三個全文索引目錄。

想起來是重新裝系統後原來的全文索引被破壞了。 全文索引自己嘗試後,發現對中文的支援很不好。查處的結果一般比實際的要少得多。所以不使用它了。

但是忘記在那個表上建立過全文索引了。花了不少時間,與大家共用 :

--全文索引目錄sp_help_fulltext_catalogs--全文索引列sp_help_fulltext_columns--全文索引表sp_help_fulltext_tables

  

通過 sp_help_fulltext_catalogs找到了已經建立的全文索引目錄。但全文索引列和索引表卻沒有。所以只需要刪除全文索引目錄就OK了。

刪除全文檢索目錄:
DROP FULLTEXT CATALOG    目錄名稱。

 當運行上面三個SQL結果都為空白的時候,這樣全文索引就清除了。可以備份了。

如果全文索引還在的話,那要啟動全文索引服務後 執行DROP FULLTEXT INDEX ON 全文索引表,然後再運行 DROP FULLTEXT CATALOG    目錄名稱。 OK了。

參考資料:

14.8  2005新增:與全文索引相關的T-SQL語句

在SQL Server 2005以前的版本中,建立與管理全文檢索目錄、全文索引主要是使用預存程序來完成。從SQL Server 2005開始新增加了一些與全文索引相關的T-SQL語句,可以用來建立與管理全文檢索目錄和全文索引。

14.8.1  建立全文檢索目錄

建立全文檢索目錄的T-SQL語句為:

 1 CREATE FULLTEXT CATALOG catalog_name 2  3      [ON FILEGROUP filegroup ] 4  5      [IN PATH 'rootpath'] 6  7      [WITH <catalog_option>] 8  9      [AS DEFAULT]10 11      [AUTHORIZATION owner_name ]12 13 <catalog_option>::=14 15      ACCENT_SENSITIVITY = {ON|OFF}

 

其中參數說明如下:

l  catalog_name:全文檢索目錄名稱。l  ON FILEGROUP filegroup:包含全文檢索目錄的檔案組名。l  IN PATH 'rootpath':全文檢索目錄的路徑。l  AS DEFAULT:指定該全文檢索目錄為預設目錄。l  AUTHORIZATION owner_name:將全文檢索目錄的所有者設為資料庫使用者名稱或角色的名稱。l  ACCENT_SENSITIVITY:設定該全文檢索目錄的全文索引是否區分重音。

 

 

例十三、在Northwind資料庫中建立一個名為“TSQL全文檢索目錄”全文檢索目錄,其代碼如下:

 

CREATE FULLTEXT CATALOG TSQL全文檢索目錄         ON FILEGROUP [PRIMARY]         IN PATH 'E:\book\SQL Server 2005大全\資料庫\第十四章\運行後資料庫'         AS DEFAULT

 

 

14.8.2  更改全文檢索目錄屬性

建立完全文檢索目錄之後,如果發現其設定有不如意之處,可以用T-SQL語句對其進行修改。更改全文檢索目錄屬性的T-SQL語句代碼如下:

ALTER FULLTEXT CATALOG catalog_name{ REBUILD [ WITH ACCENT_SENSITIVITY = { ON | OFF } ]| REORGANIZE| AS DEFAULT}

 

其中參數說明如下:

l  catalog_name:全文檢索目錄名稱l  REBUILD:重建全文檢索目錄。l  WITH ACCENT_SENSITIVITY:設定該全文檢索目錄的全文索引是否區分重音。l  REORGANIZE:執行主要合併索引以便將在索引過程中建立的各個較小的索引合并成一個大索引。l  AS DEFAULT:指定該全文檢索目錄為預設目錄。

 

例十四、重建“TSQL全文檢索目錄”,其代碼如下:

ALTER FULLTEXT CATALOG TSQL全文檢索目錄         REBUILD

 

14.8.3  建立全文索引

有了全文檢索目錄後,可以在全文檢索目錄裡建立全文索引。一個全文檢索目錄裡可以包含多個全文索引,但一個全文索引只能屬於一個全文檢索目錄。

每個資料表只能有一個全文索引。建立全文索引的T-SQL語句代碼如下:

 

CREATE FULLTEXT INDEX ON table_name     [(column_name [TYPE COLUMN type_column_name]          [LANGUAGE language_term] [,...n])]     KEY INDEX index_name          [ON fulltext_catalog_name]     [WITH          {CHANGE_TRACKING {MANUAL | AUTO | OFF [, NO POPULATION]}}     ]

 

 

其中參數說明如下:

l  table_name:資料表名。l  column_name:全文索引中包括的一列或多列的名稱。只能對類型為char、varchar、nchar、nvarchar、text、ntext、image、xml和varbinary的列進行全文索引。l  TYPE COLUMN type_column_name:用於儲存column_name的文件類型的資料表中的列名。l  LANGUAGE language_term:儲存在column_name中的資料所用的語言。l  KEY INDEX index_name:資料表中唯一鍵索引的欄位名。l  ON fulltext_catalog_name:全文檢索目錄名。l  MANUAL:指定是使用SQL Server代理還是手動傳播追蹤記錄檔。l  AUTO:當關聯的資料表中修改了資料時,SQL Server自動更新全文索引。l  OFF[,NO POPULATION]:不保留對索引資料的更改列表。

 

例十五、為“文章”表的“標題”、“內容”和“檔案”三個欄位建立全文索引,其代碼如下:

CREATE FULLTEXT INDEX         ON 文章(標題,內容,檔案 TYPE COLUMN 副檔名)         KEY INDEX PK_文章         ON TSQL全文檢索目錄

 

注意:由於在前面的章節裡已經為“文章”表建立了全文索引,因此在運行本例之前要先把原來建立的全文索引刪除。

 

14.8.4  更改全文索引屬性

建立完全文索引之後,如果發現其設定有不如意之處,可以用T-SQL語句對其進行修改。更改全文索引屬性的T-SQL語句代碼如下:

ALTER FULLTEXT INDEX ON table_name   { ENABLE   | DISABLE   | SET CHANGE_TRACKING { MANUAL | AUTO | OFF }   | ADD ( column_name     [ TYPE COLUMN type_column_name ]     [ LANGUAGE language_term ] [,...n] )     [ WITH NO POPULATION ]   | DROP ( column_name [,...n] )     [WITH NO POPULATION ]   | START { FULL | INCREMENTAL | UPDATE } POPULATION   | STOP POPULATION   }

 

其中一些參數說明如下:

l  table_name:資料表名。l  ENABLE | DISABLE:啟用或禁用全文索引。l  MANUAL:指定是使用SQL Server代理還是手動傳播追蹤記錄檔。l  AUTO:當關聯的資料表中修改了資料時,SQL Server自動更新全文索引。l  OFF:不保留對索引資料的更改列表。l  ADD:指定在全文索引中添加列。l  WITH NO POPULATION:指定添加過刪除全文索引列之後不填充全文索引。l  DROP:指定在全文索引中刪除列。l  START……POPULATION:開始填充全文索引。l  FULL:指定填充所有全文索引。l  INCREMENTAL:指定對上次填充以來修改過的行進行填充。l  UPDATE :指定對自上次更新變更追蹤索引以來的所有插入、更新或刪除進行處理。l  STOP POPULATION:停止進行中的填充。

 

例十六、禁用“文章”表的全文索引,其代碼如下:

ALTER FULLTEXT INDEX ON 文章 DISABLE

 

例十七、啟用“文章”表的全文索引,其代碼如下:

ALTER FULLTEXT INDEX ON 文章   ENABLE

 

例十八、將“文章”表裡的“檔案”欄位從全文索引裡刪除,其代碼如下:

ALTER FULLTEXT INDEX ON 文章  DROP (檔案)

 

例十九、填充“文章”表的全文索引,其代碼如下:

ALTER FULLTEXT INDEX ON 文章  START FULL POPULATION

 

14.8.5  刪除全文索引

刪除全文索引的T-SQL的文法代碼比較簡單,如下所示:

DROP FULLTEXT INDEX ON table_name

 

例二十、刪除“文章”表裡的全文索引,其代碼如下:

DROP FULLTEXT INDEX ON 文章

 

14.8.6  刪除全文檢索目錄

刪除全文檢索目錄的T-SQL的文法代碼比較簡單,如下所示:

DROP FULLTEXT CATALOG catalog_name

 

例二十一、刪除“文章”表裡的全文索引,其代碼如下:

DROP FULLTEXT CATALOG TSQL全文檢索目錄

  參考文章 http://msdn.microsoft.com/zh-cn/library/ms142549(v=SQL.105).aspx

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.