mongodb 的數據備份與恢復
2024-07-21 02:52:27
供稿:網友
導入/導出可以操作是本地的或遠程的,所以都有以下通用選項【如果是操作本地機并且沒有密碼的話可以省去】:
1、-h host 主機 2、-port port 端口 3、-u username 用戶名 4、-p passWord 密碼 導出【這兩種格式適合做數據交換】: ./bin/mongoexport -d test -c stu -f sn,name -q '{sn:{$lte:1000}}' -o ./test.stu.json【因為導出的是 json 格式,所以是 json 后綴命名】 -d 庫名 -c 表名 -f 屬性名(列名,不聲明就是全部導出) -q 導出條件 -o 存放文件位置及名字 ./bin/mongoexport -d test -c stu -f sn,name -q '{sn:{$lte:1000}}' --csv -o ./test.stu.csv【因為導出的是csv 格式,所以是 csv 后綴命名】 --csv 聲明是 csv 格式【便于和傳統型數據庫交換數據,因為 MySQL 有一個引擎就是 csv 的,只要把文件放在mysql相關目錄,引擎改為 csv 的,就能直接讀取數據】 導出成二進制格式: ./bin/mongodump -d test -c tea -d 導出庫名 -c 導出的表名(不寫導出庫內所有表) -f 導出的字段(不寫導出表內所有字段) 【導出成二進制文件,好處是索引文件也被備份下來了,適合做備份,且導出速度快】 規律: 默認會導出到 mongo 下的dump目錄 導出的文件放在 庫名 的命名目錄下 每個表生成兩個文件,分別是 bson 結構的數據文件,json 的索引信息 如果不聲明表名,會導出所有表 導入: ./bin/mongoimport -d test -c animal --type json --file ./test.stu.json 【導入 json 格式】 -d 導入的庫名 -c 導入的表名【不存在會隱式創建】 --type 導入數據的類型【不寫默認 json】 --file 導入數據文件路徑 ./bin/mongoimport -d test -c bird --type csv -f sn,name --headerline --file ./test.stu.csv 【導入 csv 格式】 因為 csv 格式文件第一行是逗號分割的字段名,所以需要聲明都有哪些字段。并且 mondodb 會把第一行也當作數據,所以我們要 --headerline 聲明跳過第一行 導入【二進制文件】 ./bin/mongorestore -d test --directoryperdb dump/test -d 導入進的庫名【不存在會創建】 --directoryperdb 備份文件存放的位置【會把此目錄下的所有備份文件都導入】