mongodb全庫備份與恢復
一次伺服器異常事件導致mongodb服務掛掉無法重啟,報錯資訊:
2017-10-10T14:35:16.078+0800 I NETWORK [initandlisten] connection accepted from 192.168.1.52:55362 #4 (2 connections now open) 2017-10-10T14:35:16.111+0800 I QUERY [conn4] query chelun.cw_user_position query: { $query: { uid: "22014082" }, $comment: "This is a query comment", $orderby: {} } planSummary: IXSCAN { uid: 1.0 } ntoreturn:999999 ntoskip:0 nscanned:1 nscannedObjects:1 keyUpdates:0 writeConflicts:0 numYields:1 nreturned:1 reslen:468 locks:{} 31ms 2017-10-10T14:35:16.166+0800 F - [conn4] Invalid access at address: 0x7fe6e3645038 2017-10-10T14:35:16.195+0800 F - [conn4] Got signal: 7 (Bus error). 0xf662c9 0xf65942 0xf65c9e 0x7ff2f79787e0 0x7ff2f64636d5 0x7ff2f6ca5886 0xd2981c 0xd4902c 0xd50ad6 0xd49976 0x9046cc 0xc3f001 0xc3df09 0xa32f4c 0xa33705 0xbd54a4 0xbd5854 0xbd5e8d 0x9a7e29 0x9a919c 0x9a96db 0x9ac11d 0x9d0a04...skipping...
查詢了資料,這種情況是mongodb異常關閉導致出錯,嘗試使用repair修復沒有成功,找尋各種啟動修復方法也均沒有成功。好在服務不是核心業務,利用從庫的備份(或者定期的備份資料)來恢復到一個新的庫;
1、新建mongodb例項
假定服務埠定位27027,配置檔案如下:
bind_ip=192.168.xx.xx #指定伺服器監聽的埠,預設是27017 port=27027 #以守護程序的方式執行MongoDB fork=true objcheck=true #2G #oplogSize=2000 #pidfile pidfilepath=/home/LBSUser/pidfile/mongo_27027.pid #指定資料目錄,預設是/data/db/。每個mongod程序都需要獨立的目錄, #啟動mongod時就會在資料目錄中建立mongod.lock檔案,防止其他mongod程序使用該資料目錄。 dbpath=/data/LBSdb #指定日誌輸出路徑,如果不指定則會在終端輸出。每次啟動都會覆蓋原來的日誌,如果不想覆蓋就要用--logappend選項 logpath=/data/log/mongodb_27027.log logappend=true master=true #auth=true profile=2 slowms=1 #only:預設為空,用於從選項,指定一個數據庫進行復制 #only=test #.禁止HTTP狀態介面 nohttpinterface=true #.禁止REST介面-在生產環境下建議不要啟用MongoDB的REST介面 rest=false #keyFile=/home/LBSUser/etc/keyfile
指定配置檔案啟動mongodb服務:
mongod -f /home/LBSUser/LBSmongo/mongodb.conf
(這裡從庫或者叢集搭建略)
搭建好後,準備資料
二、匯出資料
從原例項的從庫節點中匯出最新的資料備份(原埠是27017)
mongodump -h 192.168.xx.xx --port 27017 --oplog -o /data/backup/tmp27107/
匯出記錄:
2017-10-10T15:11:59.215+0800[#######################.] xx.cw_user_position 19578438/20169757 (97.1%) 2017-10-10T15:12:02.215+0800[#######################.] xx.cw_user_position 19834340/20169757 (98.3%) 2017-10-10T15:12:05.215+0800[#######################.] xx.cw_user_position 20113312/20169757 (99.7%) 2017-10-10T15:12:05.645+0800writing xx.cw_user_position metadata to /data/backup/tmp27107/xx/cw_user_position.metadata.json 2017-10-10T15:12:05.653+0800done dumping xx.cw_user_position 2017-10-10T15:12:05.654+0800writing captured oplog to /data/backup/tmp27107/oplog.bson |
看到這個後確認匯出成功。
三、使用mongorestore匯入資料
mongorestore匯入資料可以指定庫匯入,我這個直接全量匯入,不指定庫:
mongorestore -h 192.168.xx.xx:27027 -d chelun --dir /data/backup/tmp27107/
注意這裡是直接匯入到我們新的機器上的新例項27027了。
2017-10-10T15:40:28.345+0800[#######################.] xx.cw_user_position 8.0 GB/8.2 GB (97.6%) 2017-10-10T15:40:31.345+0800[#######################.] xx.cw_user_position 8.0 GB/8.2 GB (97.9%) 2017-10-10T15:40:34.345+0800[#######################.] xx.cw_user_position 8.0 GB/8.2 GB (98.2%) 2017-10-10T15:40:37.345+0800[#######################.] xx.cw_user_position 8.1 GB/8.2 GB (98.5%) 2017-10-10T15:40:40.345+0800[#######################.] xx.cw_user_position 8.1 GB/8.2 GB (98.8%) 2017-10-10T15:40:43.345+0800[#######################.] xx.cw_user_position 8.1 GB/8.2 GB (99.1%) 2017-10-10T15:40:46.345+0800[#######################.] xx.cw_user_position 8.1 GB/8.2 GB (99.3%) 2017-10-10T15:40:49.345+0800[#######################.] xx.cw_user_position 8.2 GB/8.2 GB (99.6%) 2017-10-10T15:40:52.345+0800[#######################.] xx.cw_user_position 8.2 GB/8.2 GB (99.9%) 2017-10-10T15:40:53.621+0800restoring indexes for collection xx.cw_user_position from metadata 2017-10-10T15:44:46.613+0800finished restoring xx.cw_user_position 2017-10-10T15:44:46.613+0800restoring users from /data/backup/tmp27107/admin/system.users.bson 2017-10-10T15:44:47.294+0800done |
根據匯入的提示,確認匯入都成功了;
四、登陸檢查
做基礎檢查和抽樣檢查
[[email protected] data]# mongo 192.168.xx.xx:27027 MongoDB shell version: 3.0.1 connecting to: 192.168.xx.xx:27027/test Server has startup warnings: 2017-10-10T15:12:13.752+0800 I CONTROL [initandlisten] 2017-10-10T15:12:13.752+0800 I CONTROL [initandlisten] ** WARNING: You are running on a NUMA machine. 2017-10-10T15:12:13.752+0800 I CONTROL [initandlisten] ** We suggest launching mongod like this to avoid performance problems: 2017-10-10T15:12:13.752+0800 I CONTROL [initandlisten] ** numactl --interleave=all mongod [other options] 2017-10-10T15:12:13.752+0800 I CONTROL [initandlisten] 2017-10-10T15:12:13.752+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'. 2017-10-10T15:12:13.752+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never' 2017-10-10T15:12:13.752+0800 I CONTROL [initandlisten] 2017-10-10T15:12:13.752+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'. 2017-10-10T15:12:13.752+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never' 2017-10-10T15:12:13.752+0800 I CONTROL [initandlisten] > db.system.users.find() > use admin switched to db admin > db.system.users.find() > db.system.users.find() { "_id" : "admin.xx_user", "user" : "xx_user", "db" : "admin", "credentials" : { "SCRAM-SHA-1" : { "iterationCount" : 10000, "salt" : "IJUswtPOEvJ1qffHjACQIQ==", "storedKey" : "FoVPjbzw74bcs+8WCShuvluA7ssrU=", "serverKey" : "bQd4TlULaxd/6BMLQHoQtvInNJOw=" } }, "roles" : [ { "role" : "root", "db" : "admin" } ] } > show dbs; admin 0.078GB xx 13.947GB local 2.077GB xx2 0.078GB |
相關推薦
mongodb全庫備份與恢復
一次伺服器異常事件導致mongodb服務掛掉無法重啟,報錯資訊: 2017-10-10T14:35:16.078+0800 I NETWORK [initandlisten] connection accepted from 192.168.1.52:55362 #4
rman管理的全庫備份與恢復&使用者管理的全庫的備份與恢復
1.rman全庫備份: RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON; run{ allocate channel c1 type disk; backup database format 'E:\rman2\fulldb_T%T_S%S'; release ch
通過Xtrabackup實現MySQL實例的全庫備份與按需單庫恢復
第二部分 arch tin pri var ins img 備份文件 數據庫的還原 在實際的生產環境中,為了管理方便,我們一般是通過 Xtrabackup實現實例的全庫備份,即將實例上的所有數據庫備份。 但是,考慮到快速恢復 我們常常面臨的需求是快速還原單個數據庫。針對初
mysql數據庫備份與恢復
system ase inux color charsets blog 註釋 更新 create mysqldump -u 用戶名 -p 數據庫名> 備份的文件名 本文中因服務器為多實例,所以在執行登陸等命令時指定了-S參數,即指定其中一個數據庫 備份: mysql
XtraBackup全量備份與恢復MySQL數據
備份 mysql xtrabackup 防偽碼:沒有相當程度的孤獨是不可能有內心的平和。1、概述Percona XtraBackup(簡稱PXB)是 Percona 公司開發的一個用於 MySQL 數據庫物理熱備的備份工具,支持 MySQl(Oracle)、Percona Server 和 Mar
Mysql數據庫備份與恢復--Xtrabackup
mysql innodb xtrabackupMysql數據庫備份與恢復 背景: 作為一個運維工程師,經常會遇到硬件故障(冗余)、軟件故障(bug)、自然災害、黑客攻擊、誤操作等對數據庫破壞的問題,所以一定要做好備份工作,在做好備份後還一定要會恢復,這兩項工作都是很重要的,備份要知道如何備份才能有
Linux運維學習之數據庫備份與恢復
數據庫備份與恢復 linux xtrabackup 今天給大家帶來的是關於數據庫備份與恢復的教程,當我們手賤或者不知道什麽原因導致數據庫的崩潰,甚至刪除數據庫時怎麽辦,總不能跑路吧?所以我們做好日常的備份和相關的災後重建很有必要。 那麽備份都有什麽方式,方法呢?一,文件備份,就是很笨
postgre數據庫備份與恢復
bak 另一個 navicat 一個數 備份數據庫 文件 實現 use 備份與恢復 背景:由於可視化工具navicat上數據傳輸太慢了,因此想要達到復制一個數據庫的效果,可以通過命令來實現,先備份數據庫到服務器某一路徑下,新建一個新的數據庫後,再執行恢復數據庫的命令。步驟:
MySQL創建用戶,常用SQL語句以及數據庫備份與恢復
mysql常用命令 恢復與備份 一、創建普通用戶並授權 1、創建用戶並授權 [root@zlinux ~]# mysql -uroot -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your
2.MySQL用戶管理,常用SQL語句,MySQL數據庫備份與恢復
MySQL用戶管理 常用MySQL語句 MySQL數據備份與恢復 [toc] MySQL用戶管理,重用SQL語句,MySQL數據庫備份與恢復 一、MySQL用戶管理 1.創建一個普通用戶並授權 首先啟動mysql,然後進入 [root@xavi ~]# /etc/init.d/mysqld sta
96.創建普通用戶並授權,常用SQL語句,MySQL數據庫備份與恢復
創建普通用戶並授權常用SQL語句 MySQL數據庫備份與恢復 一、創建普通用戶並授權 1、創建用戶並授權 [root@sdwaqw ~]# mysql -uroot -pEnter password:Welcome to the MySQL monitor. Commands end with ;
db2數據庫備份與恢復
ase into div tar 目錄 img OS clas alt 備份 先停掉Tomcat,然後在機器A上執行以下語句: db2stop force db2start db2 force applications all db2 backup database p
MySQL數據庫的用戶管理、數據庫備份與恢復
sql 創建 user 新建 目錄 數據庫系統 指定 username 目前 MySQL 是一個真正的多線程、多用戶的 SQL 數據庫服務,憑借其高性能、高可靠和易於使用的特性,成為服務器領域中最受歡迎的開源數據庫系統。在2008年以前,MySQL 項目由 MySQL AB
MySQL5.7.20數據庫備份與恢復
時間段 bye tomat 策略 bak del crc32 恢復 備份策略 MySQL數據庫備份與恢復·####造成數據丟失的原因####程序錯誤人為操作錯誤運算錯誤磁盤故障災難(如火災、地震)和盜竊· ####物理與邏輯的角度####1、物理備份:冷備份:在數據關閉的狀
mysqldump全量備份與恢復
一個 like secure exit extra ssi 統計表 建議 per mysql用戶管理 創建授權用戶和密碼 ?grant all on . to ‘user1‘ identified by ‘pwd@1234‘;在mysql中創建連接管理數據庫的用戶,創建用戶
MySQL用全庫備份資料恢復單表資料
備份資料庫時,採用了全庫備份,但是因為某些原因需要回滾一個表的資料到備份資料庫上,如果回滾整個庫就比較費時間,因為可能這個表只有幾十M,但是其它表可能有十幾上百G,這時候就需要將需要恢復的表提取出來了 現在有備份庫fdcsqlmysql-2018_11_30-03_00_01.sql,裡面有多張表,現在需要
Linux -MySQL-數據庫備份與恢復
com sel ESS vpd mage 一個 數據庫名 查看數據庫 ges . >重定向 <反向重定向 show databases; 顯示數據庫數據庫 備份:mysqldump -uroot -p密碼 +數據庫的名稱 > /data/數據
MongoDB 學習之備份與恢復(十)
備份 語法 mongodump -h dbhost -d dbname -o dbdirectory -h:伺服器地址,也可以指定埠號 -d:需要備份的資料庫名稱 -o:備份的資料存放位置,此
linux系統下mongodb資料庫的備份與恢復
Linux系統下: 備份資料庫: 1)cd到mongodb的bin目錄下 例如: cd /usr/local/mongodb/bin 2) $ mongodump -h 資料庫所在pc的ip
MongoDB-5:備份與恢復
一、簡介 匯入和匯出可以操作本地的mongodb伺服器,也可以操作遠端的伺服器。所有有如下通用選項: -h host 主機