Nodejs&Mongodb 安裝手冊(AmazonEC2)

資料庫備份計畫及還原

設定自動備份至Amazon aws s3

  • 設定Amazon aws s3:
  • 安裝git:
    sudo yum install gcc-c++ make
    sudo yum install openssl-devel
    sudo yum install git
    
  • 安裝nodejs:參考文件
    git clone git://github.com/joyent/node.git
    cd node
    git checkout v0.10.33
    ./configure
    make
    sudo make install
    
  • 測試nodejs安裝:
    • node執行nodejs
    • > 1+1輸入指令
    • 2執行結果
    • 連續ctrl+c兩次離開
  • 設定sudo npm執行環境:參考文件
    • alias sudo="sudo env PATH=$PATH"
  • 安裝forever:npm -g install forever
  • 安裝及設定mongodb_s3_backup:參考文件
    • sudo npm install mongodb_s3_backup -g
    • sudo mkdir /etc/mongodb_s3_backup建立資料夾
    • sudo chown ec2-user /etc/mongodb_s3_backup/取得資料夾權限
    • sudo vi /etc/mongodb_s3_backup/mongodb.json建立設定檔
      • your_s3_key=access key ID
      • your_s3_secret=secret access key
      • bucket=S3上存放位置的bucket名稱
      • destination=S3上bucket中的資料夾
{
  "mongodb": {
    "host": "localhost",
    "port": 27017,
    "username": "application_user",
    "password": "passwd",
    "db": "applicationDB"
  },
  "s3": {
    "key": "your_s3_key",
    "secret": "your_s3_secret",
    "bucket": "your_s3_bucket_to_upload_to",
    "destination": "/PATH"
  },
  "cron": {
    "time": "11:59"
  }
}
  • 啟動背景執行排程自動更新
    forever start -w --watchDirectory=/etc/mongodb_s3_backup/ /usr/local/bin/mongodb_s3_backup /etc/mongodb_s3_backup/mongodb.json
    

設定開機自動啟動

  • 自動執行批次檔:sudo vim /etc/rc.d/rc.local
  • 新增內容:
    forever start -w --watchDirectory=/etc/mongodb_s3_backup/ mongodb_s3_backup /etc/mongodb_s3_backup/mongodb.json
    

還原mongodb

  • 建立還原檔資料夾

    sudo mkdir /srv/mongodb_backup
    sudo chown ec2-user /srv/mongodb_backup
    
  • 下載備份檔 wget -P /srv/mongodb_backup https://.../backup.tar.gz

  • 解壓縮 tar -zxvf /srv/mongodb_backup/backup.tar.gz -C /srv/mongodb_backup/extract

  • 還原 mongorestore -u 'useracc' -p 'password' -d 'dbname' /srv/mongodb_backup/extract/dbname