99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

Solr如何制作和還原備份

2018-12-21 11:51 更新

如果您擔(dān)心數(shù)據(jù)丟失,當(dāng)然您應(yīng)該這樣做,那么您需要一種備份Solr索引的方法,以便在出現(xiàn)災(zāi)難性故障的情況下能夠快速恢復(fù)。

Solr提供了兩種方法來備份和恢復(fù)Solr核心或集合,具體取決于您如何運行Solr。如果在SolrCloud模式下運行,則將使用Collections API。如果以獨立模式運行Solr,則將使用復(fù)制處理程序。

SolrCloud備份

Collections API提供了運行SolrCloud時支持備份的功能。這樣可以在多個碎片之間生成備份,并將其恢復(fù)為與原始分類相同數(shù)量的碎片和副本。

有兩個命令可用:

  • action=BACKUP:該命令備份Solr索引和配置。有關(guān)更多信息,請參閱“備份集合”一節(jié)。
  • action=RESTORE:該命令將恢復(fù)Solr索引和配置?!斑€原收集”部分提供了更多信息。

獨立模式備份

備份和恢復(fù)使用Solr的復(fù)制處理程序。Solr包含對復(fù)制的隱式支持,因此可以使用此API。但是,可以通過在solrconfig.xml中定義自己的復(fù)制處理程序來自定義復(fù)制處理程序的配置。有關(guān)配置復(fù)制處理程序的詳細(xì)信息,請參閱“配置ReplicationHandler”一節(jié)。

Backup API

該backup API需要發(fā)送一個命令到/replication處理程序來備份系統(tǒng)。

您可以使用這樣的HTTP命令來觸發(fā)備份(用正在使用的核心名稱替換“getting start”):

backup API示例如下:

http://localhost:8983/solr/gettingstarted/replication?command=backup

該backup命令是一個異步調(diào)用,它將表示來自最新索引提交點的數(shù)據(jù)。所有的索引和搜索操作將像往常一樣繼續(xù)對索引執(zhí)行。

在任何時間點,只能對一個核心進(jìn)行一次備份調(diào)用。當(dāng)正在進(jìn)行的備份操作正在發(fā)生時,隨后的恢復(fù)調(diào)用將引發(fā)異常。

備份請求還可以采用以下附加參數(shù):

location

將創(chuàng)建備份的路徑。如果路徑不是絕對的,則備份路徑將與Solr的實例目錄相關(guān)。|name |The snapshot將在名為snapshot.<name>的目錄中創(chuàng)建。如果沒有指定名稱,則目錄名稱將具有以下格式:snapshot.<yyyyMMddHHmmssSSS>。

numberToKeep

要保留的備份數(shù)量。如果maxNumberOfBackups已在solrconfig.xml中的復(fù)制處理程序指定,則始終使用maxNumberOfBackups并嘗試使用numberToKeep將導(dǎo)致錯誤。另外,如果指定了備份名稱,則不會考慮此參數(shù)。有關(guān)maxNumberOfBackups的詳細(xì)信息,請參閱配置ReplicationHandler一節(jié)。

repository

用于備份的存儲庫的名稱。如果沒有指定倉庫,那么本地文件系統(tǒng)倉庫將被自動使用。

commitName

使用CREATESNAPSHOT命令拍攝快照時使用的提交的名稱。

Backup Status

可以監(jiān)視備份操作, 以便通過將details命令發(fā)送到/replication處理程序來查看它是否已完成,如以下示例所示:

Status API示例如下所示:

http://localhost:8983/solr/gettingstarted/replication?command=details

輸出代碼片段:

<lst name="backup">
  <str name="startTime">Sun Apr 12 16:22:50 DAVT 2015</str>
  <int name="fileCount">10</int>
  <str name="status">success</str>
  <str name="snapshotCompletedAt">Sun Apr 12 16:22:50 DAVT 2015</str>
  <str name="snapshotName">my_backup</str>
</lst>

如果失敗了,則會在響應(yīng)中發(fā)送 snapShootException。

Restore API

還原備份需要將restore命令發(fā)送到/replication處理程序,然后是要還原的備份的名稱。

您可以使用如下命令從備份中還原:

用法示例:

http://localhost:8983/solr/gettingstarted/replication?command=restore&name=backup_name

這會將指定的索引快照還原到當(dāng)前的核心。還原完成后,搜索將開始反映快照數(shù)據(jù)。

該restore請求可以采取這些附加參數(shù):

location

備份快照文件的位置。如果未指定,它將在Solr的數(shù)據(jù)目錄中查找備份。

name

要還原的備份索引快照的名稱。如果沒有提供該名稱,則snapshot.<timestamp>在位置目錄中查找?guī)в懈袷降膫浞?。它在這種情況下選擇最新的時間戳備份。

repository

用于備份的存儲庫的名稱。如果沒有指定倉庫,那么本地文件系統(tǒng)倉庫將被自動使用。

該restore命令是一個異步調(diào)用。一旦恢復(fù)完成,反映的數(shù)據(jù)將是還原的備份索引。

在一個時間點上只能對一個核心進(jìn)行一次restore調(diào)用。當(dāng)正在進(jìn)行的還原操作正在發(fā)生時,隨后的還原調(diào)用將引發(fā)異常。

Restore Status API

您還可以通過將restorestatus命令發(fā)送到/replication處理程序來檢查restore操作的狀態(tài),如下例所示:

Status API 示例:

http://localhost:8983/solr/gettingstarted/replication?command=restorestatus

Status API輸出:

<response>
  <lst name="responseHeader">
    <int name="status">0</int>
    <int name="QTime">0</int>
  </lst>
  <lst name="restorestatus">
    <str name="snapshotName">snapshot.<name></str>
    <str name="status">success</str>
  </lst>
</response>

狀態(tài)值可以是“In Progress”,“success”或“failed”。如果失敗了,那么也會在響應(yīng)中發(fā)送一個“exception”。

Create Snapshot API

快照(snapshot)功能與備份(backup)功能不同,因為索引文件不會復(fù)制到任何位置。索引文件在同一個索引目錄中被快照,并且可以在進(jìn)行備份時被引用。

您可以用這樣的HTTP命令觸發(fā)一個快照命令(將 "techproducts" 替換為您正在使用的核心名稱):

Create Snapshot API示例:

http://localhost:8983/solr/admin/cores?action=CREATESNAPSHOT&core=techproducts&commitName=commit1

所述CREATESNAPSHOT請求參數(shù)是:

commitName

將快照存儲為的名稱。

core

要在其上執(zhí)行快照的核心的名稱。

async

請求ID來跟蹤這個將被異步處理的操作。

List Snapshot API

該LISTSNAPSHOTS命令列出了特定核心的所有拍攝快照。

您可以使用像這樣的 HTTP 命令觸發(fā)列表快照命令(將 "techproducts" 替換為您正在使用的核心的名稱):

List Snapshot API示例:

http://localhost:8983/solr/admin/cores?action=LISTSNAPSHOTS&core=techproducts&commitName=commit1

列表快照請求參數(shù)是:

core

要列出其快照的核心的名稱。

async

請求ID來跟蹤這個將被異步處理的動作。

Delete Snapshot API

該DELETESNAPSHOT命令刪除特定核心的快照。

您可以像這樣使用HTTP命令來觸發(fā)刪除快照(將“techproducts”替換為正在使用的核心的名稱):

Delete Snapshot API示例:

http://localhost:8983/solr/admin/cores?action=DELETESNAPSHOT&core=techproducts&commitName=commit1

刪除快照請求參數(shù)是:

commitName

指定要刪除的提交名稱

core

我們要刪除快照的核心的名稱

async

請求ID來跟蹤這個將被異步處理的操作

備份/還原存儲庫

Solr提供了接口來插入不同的存儲系統(tǒng)進(jìn)行備份和還原。例如,您可以在本地文件系統(tǒng)(如EXT3)上運行Solr群集,但可以將索引備份到HDFS文件系統(tǒng),反之亦然。

存儲庫接口需要在solr.xml文件中配置。在運行備份/恢復(fù)(backup/restore )命令時,我們可以指定要使用的存儲庫。

如果未配置任何存儲庫,則將自動使用本地文件系統(tǒng)存儲庫。

示例solr.xml部分用于配置類似HDFS的存儲庫:

<backup>
  <repository name="hdfs" class="org.apache.solr.core.backup.repository.HdfsBackupRepository" default="false">
    <str name="location">${solr.hdfs.default.backup.path}</str>
    <str name="solr.hdfs.home">${solr.hdfs.home:}</str>
    <str name="solr.hdfs.confdir">${solr.hdfs.confdir:}</str>
  </repository>
</backup>
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號