leanote數據遷移

背景:

現有的螞蟻筆記部署在機器xx.x.xxx.135上,之後這臺機器不使用了,需要將螞蟻筆記以及相關數據都遷移到另一臺機器xx.x.xxx.55上


思路:

  1. 重新部署搭建新的leanote
  2. 從原機器上備份全部的數據,並在新機器上恢復數據

步驟:

1.安裝數據庫MongoDB

螞蟻筆記使用的數據庫就是MongoDB

(1)添加yum源

vi /etc/yum.repos.d/mongodb-org-4.0.repo

添加以下內容:

  1.  
    [mongodb-org-4.0]
  2.  
    name = MongoDB Repository
  3.  
    baseurl = https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
  4.  
    gpgcheck = 1
  5.  
    enabled = 1
  6.  
    gpgkey = https://www.mongodb.org/static/pgp/server-4.0.asc

退出保存

(2)使用yum安裝相應版本MongoDB

yum install -y mongodb-org-4.0.9 mongodb-org-server-4.0.9 mongodb-org-shell-4.0.9 mongodb-org-mongos-4.0.9 mongodb-org-tools-4.0.9

2.下載螞蟻筆記

從螞蟻筆記官網下載相應的壓縮包

leanote-linux-amd64-v2.6.1.bin.tar.gz

創建目錄developer存放壓縮包以及相應數據

  1.  
    cd /
  2.  
    #創建一個developer目錄用於存放壓縮包和數據,當然你也可以選擇其他的目錄結構
  3.  
    mkdir developer
  4.  
    cd developer
  5.  
    # 上傳安裝包至該目錄下並創建等會需要使用的目錄,mongodbdata用於存放數據庫,log用於存放日誌
  6.  
    mkdir mongodbdata
  7.  
    mkdir log
  8.  
    #解壓該壓縮包
  9.  
    tar -zxvf leanote-linux-amd64-v2.6.1.bin.tar.gz

啓動MongoDB數據庫,並導入螞蟻筆記初始化數據,螞蟻筆記初始化數據存放在/developer/leanote/mongodb_backup/leanote_install_data

  1.  
    #後臺運行,以守護進程的方式運行mongodb數據庫,需要--fork #需要設置日誌路徑和自定義數據庫路徑--logpath和--dbpath#--fork has to be used with --logpath or --syslog
  2.  
     
  3.  
    mongod --fork --logpath /developer/log/mongodb.log --dbpath /developer/mongodbdata
  4.  
     
  5.  
    #Leanote 初始數據存儲在${PATH_TO_LEANOTE}/mongodb_backup/leanote_install_data
  6.  
    # 初始化才運行此行,再次重啓時無需運行該行命令
  7.  
     
  8.  
    mongorestore -h localhost -d leanote --dir /developer/leanote/mongodb_backup/leanote_install_data/

3.進入MongoDB數據庫,爲leanote數據庫添加root用戶

  1.  
    # 進入MongoDB
  2.  
    mongo
  3.  
     
  4.  
    # 切換到leanote數據庫
  5.  
    use leanote;
  6.  
     
  7.  
    # 添加root用戶
  8.  
    db.createUser(
  9.  
    {
  10.  
    user: "root",
  11.  
    pwd: "xxxx",
  12.  
    roles: [ { role: "dbOwner", db: "leanote" } ]
  13.  
    }

修改螞蟻筆記相應配置表/developer/leanote/conf/app.conf

4.啓動螞蟻筆記

  1.  
    #後臺運行腳本,設置日誌路徑爲/developer/log/leanote.log
  2.  
    nohup bash /developer/leanote/bin/run.sh >/developer/log/leanote.log 2>&1 &

5.測試與修改管理員admin密碼

在地址欄輸入http://${centos ip}:8098,即可看到以下頁面。

螞蟻筆記默認管理員賬號和密碼爲 admin abc123。爲了安全,應該第一時間修改管理員密碼,具體操作:管理員賬號登錄後,個人中心直接修改密碼

6.數據遷移與恢復

(1)在原機器上備份leanote數據

mongodump --port 27017 --db leanote -o /data/leanoteBackUp/

(2)使用scp命令將備份數據拷貝到新機器上

scp -r leanoteBackUp root@xx.x.xxx.xx:/developer/data

(3)回去新機器上,先關閉leanote服務,直接殺進程

(4)恢復備份數據

mongorestore -h 127.0.0.1:27017 -d leanote /developer/data/leanoteBackUp/leanote -u=root -p=xxxx

(5)重新啓動leanote服務

nohup bash /developer/leanote/bin/run.sh >/developer/log/leanote.log 2>&1 &

(6)到此螞蟻筆記數據遷移恢復完畢,但是在新的機器上登錄螞蟻筆記時,發現有很多圖片沒有顯示,原因在於圖片信息存放在leanote下的files目錄下,所以還需要將files目錄備份。具體操作方法:直接將原機器中的files目錄拷貝到新機器中即可。

7.leanote開機自啓動設置

(1)切換到以下目錄

cd  /etc/rc.d/init.d

(2)創建 leanote的一個自啓動腳本

  1.  
    #!/bin/bash
  2.  
    # chkconfig: 2345 80 90
  3.  
    #description:leanote.sh
  4.  
    cd /developer/leanote/bin/
  5.  
    bash run.sh

(3)設置腳本權限

chmod 754 leanote.sh

(4)服務腳本加入到系統啓動隊列

  1.  
    chkconfig --add leanote.sh
  2.  
    chkconfig leanote.sh on

8.設置MongoDB開啓啓動

在/etc/rc.local添加以下腳本

  1.  
    # add mongodb service
  2.  
    mongod --fork --logpath /developer/log/mongodb.log --dbpath /developer/mongodbdata

9.定時備份螞蟻筆記數據,並將備份數據發送到另一臺機器存儲

編寫備份腳本

  1.  
    DUMP=/usr/bin/mongodump # mongodump備份文件執行路徑
  2.  
    OUT_DIR=/data/backupLeanoteMongodb # 臨時備份目錄
  3.  
    TAR_DIR=/data/backupLeanoteMongodb # 備份存放路徑
  4.  
    DATE=`date -d "today" +"%Y-%m-%d-%H-%M-%S"` # 獲取當前系統時間,作爲文件名的一部分
  5.  
    DAYS=7
  6.  
    TAR_BAK="leanote_mongodb_bak_$DATE.tar.gz" # 最終保存的數據庫備份文件名
  7.  
    cd $OUT_DIR
  8.  
    rm -rf $OUT_DIR/
  9.  
    mkdir -p $OUT_DIR/$DATE
  10.  
    mkdir -p $TAR_DIR/
  11.  
    $DUMP -d leanote -o $OUT_DIR/$DATE # 備份leanote數據庫
  12.  
    tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE # 壓縮爲.tar.gz格式
  13.  
    #find $TAR_DIR/ -mtime +$DAYS -delete # 刪除7天前的備份文件
  14.  
    sshpass -p xxxx scp $TAR_DIR/$TAR_BAK [email protected]:$TAR_DIR # 通過 scp 發送至另一臺服務器

將定時任務執行腳本寫入/var/spool/cron/root

30 0-23/12  * * * bash /developer/leanote_bak.sh

 

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章