一、需求
將服務器A的圖庫數據/索引/配置完整遷移到B服務器。
二、腳本實現方式
1、壓縮
在壓縮時注意忽略不必要的數據文件,優化壓縮/傳輸/解壓效率。
#!/usr/bin/env bash
# 圖譜引擎壓縮
nohup zip -r scj-GRAPH-ENGINE.zip neo4j-3.4.9 -x "./neo4j/import/*" -x "./neo4j/backup/*" -x "./neo4j/data_backup/*" >>graph-engine-zip.log 2>&1 &
2、傳輸
可以PING的服務器之間設置無密碼登錄之後可以直接使用SCP直接傳輸。
#!/usr/bin/env bash
# 免密登錄
# 當前機器使用ssh-keygen生成一對rsa公私鑰,生成的密鑰對會存放在~/.ssh目錄下
ssh-keygen -t rsa
# 接下來,使用下面的命令在目標主機hostB上的aliceB用戶目錄下創建~/.ssh目錄。如果在aliceB@hostB上已經存在.ssh目錄,這一步會被略過。
ssh aliceB@hostB mkdir -p .ssh
# 最後,將hostA上用戶“aliceA”的公鑰拷貝到aliceB@hostB上,來實現無密碼ssh。
cat ~/.ssh/id_rsa.pub | ssh aliceB@hostB 'cat >> ~/.ssh/authorized_keys'
#!/usr/bin/env bash
# 傳輸
nohup scp scj-GRAPH-ENGINE.zip [email protected]:/home/neo4j/ >>graph-engine-transfer.log 2>&1 &
3、解壓
解壓之後在當前目錄下生成neo4j-3.4.9文件夾。
#!/usr/bin/env bash
# 解壓
nohup unzip scj-GRAPH-ENGINE.zip >>graph-engine-unzip.log 2>&1 &
三、備註
包含與圖譜引擎交互注意事項。
- 1. 構建全文索引必須使用腳本完整運行
- 2. 全文索引之後必須設置事務超時提交,防止內存過度消耗
- 3. 查詢禁止無向圖遍歷
- 4. OR條件的使用括號很重要
- 5. 圖譜引擎壓縮遷移忽略不必要的數據文件