生產的資料庫可能因為以下情況導致資料丟失:
硬體故障
軟體故障
自然災害
黑客攻擊
誤操作(佔比例最大)
1.能夠容忍丟失多少資料
2.恢復資料需要多長時間
3.需要恢復哪一些資料
備份整個資料庫
增量備份:備份自從上次備份以來變化的資料。節約空間,還原麻煩
差異備份:備份上次完全備份以來變化的資料。浪費空間,還原比增量備份簡單。
mysql備份資料的方式
把資料庫的結構定義語句,資料內容的插入語句,全部儲存下來,然後在恢復的時候,在另乙個myql伺服器執行這些語句,就可以建立另乙個與之前一樣的資料庫。
典型辦法
1.mysqldump程式可以把對遠端/本地資料庫進行邏輯備份
2.select .... into outfile可以把資料進行邏輯備份,但備份檔案只能儲存在mysql-server的機器上。
適用:適合資料量少的資料庫
特點1.邏輯備份通過查詢資料庫的資訊進行備份
2.速度比較慢,因為獲取了資訊,然後組裝sql語句,如果呼叫命令是遠端,還要把sql語句遠端傳輸。
3.備份檔案要比物理備份大
4.備份粒度只能到表
5.沒有日誌或者配置檔案
6.備份檔案是sql語句,邏輯語句,相對來說,可移植性要好(比如在linux備份了,可以在windows恢復)
// 備份單個資料庫或單個資料庫中指定的表
mysqldump [options] database [tb1] [tb2]...
// 備份多個資料庫
mysqldump [options] -- database [options] db1 [db2,db3...]
// 備份所有資料庫
mysqldump [options] --all-database [options]
// 指定匯出使用何種字符集
--default-character-set=charset
// 只匯出資料,而不新增create table語句
--no-create-info, -t
//只匯出資料庫表結構,不匯出任何資料
--no-data, -d
1.表結構備份和資料備份最好分開
2.在進行表結構備份的時候,記得加上--add-drop-database=false和--add-drop-table=false,以免在進行增量恢復時,覆蓋已存在的資料。如果需要全量恢復,可以先手工drop database或者drop table,再使用表結構備份指令碼恢復表結構
3.innodb引擎要想維護資料一致性,加上--single-transaction,這個引數不會阻塞讀寫鎖
4.備份blob資料,需要加上--hex-blob,否則恢復的時候可能報錯
5.如果想要進行增量資料恢復,那麼備份的時候最好加上--add-locks,否則在恢復過程中,表將無法進行讀寫。
6.備份完成之後,tail -n 1 backup_file,成功的備份會顯示資訊「-- dump completed on 時間」
資料庫 Mysql備份恢復
1 物理備份 2 邏輯備份 庫 表 資料庫的sql指令碼 1 在生產環境中,資料的安全性只管重要 2 任何資料的丟失都可能產生嚴重的後果 3 造成資料丟失的原因 物理冷備份 root localhost sysytemctl stop mysqld root localhost mkdir back...
Mysql資料庫備份與恢復
匯出要用到mysql的mysqldump工具,基本用法是 mysqldump options database tables 幫助 mysqldump help mysqldump支援下列選項 add locks 在每個表匯出之前增加lock tables並且之後unlock table。為了使得更...
mysql 資料庫備份與恢復
首先要用命令列進入mysql的安裝目錄下的bin c program files mysql mysql server 5.1 bin win32下mysql的備份與還原 1.1 備份 開始選單 執行 cmd 利用 cd program files mysql mysql server 5.0 bi...