91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mysqldump備份與恢復 之 黑鍋俠

發布時間:2020-07-12 23:06:47 來源:網絡 閱讀:4924 作者:邱月濤 欄目:數據庫

    公司這幾天數據庫有數據丟失,所以找到運維部門要恢復數據庫,但是我們的工程師,在執行完恢復命令后,提示語法錯誤,并沒有恢復數據庫,坑爹啊~~~

    具體原因:由于備份時語法錯誤指定的目錄不存在,但在備份的時候又沒報錯,所以工程師以為備份成功了,最終釀成大禍;(成為黑鍋俠)

  公司最終開恩,每人扣除1000元的懲罰,下面來總結并模擬下正常過程。


 博主新的博客地址: https://www.dgstack.cn/  進入有驚喜哦~~ 歡迎收藏


一、錯誤備份演示

語法出錯,備份失效看似備份成功,但查看備份內容時,出現語法錯誤的警告

[root@db02 ~]# mysqldump -uroot -poldboy123 -A -B oldboy >/opt/oldboy_bak1.sql
[root@db02 ~]# cat /opt/oldboy_bak1.sql
Usage: mysqldump [OPTIONS] database [tables]
OR     mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR     mysqldump [OPTIONS] --all-databases [OPTIONS]
For more options, use mysqldump --help
#提示:
#1,錯誤點就是 -A 與 [-B 指定庫名] 不能同時使用,會產生語法錯誤,看下面解釋就明白了,指定的范圍有沖突
#-A:--all databases 所有數據庫備份
#-B:指定多個數據庫備份 增加建庫語句及use語句 
#mysql 不能使用kill -9 否則后果自負;

補充強調:我們平時發帖子,都是通過web服務器連接mysql,之后通過insert語句把數據存入數據庫

mysqldump的參數說明,總結常用的幾個:

-A:--all databases 所有數據庫備份
-B:指定多個數據庫備份 增加建庫語句及use語句
--compact 減少無用輸出---去掉備份文件中注釋的SQL語句,適合調試,生產中不建議使用
-F 刷新binlog日志,生產新文件,將來增量從這個新文件開始(完整恢復=全備+臨界點binlog)
--master-data 增加binlog日志文件名及對應的位置點(有鎖表功能)(即CHANGE MASTER 語句)
--master-data=1 不注釋可執行 
--master-data=2 注釋信息(
-x 是鎖表,為什么要鎖表?主要是確保備份數據的完整性,不要出現“鋸齒狀”數據,盡量在業務低谷時備份或內部專門用于備份的從數據庫 在鎖表
-l 對所有表加讀鎖。(默認是打開的,用--skip-lock-tables來關閉,上面的選項會把關閉-l選項)
-d 只備份庫表結構無數據
-t 只備份數據無表結構 SQL語句形式
-T 庫表,數據分離不同文件,數據是文本形式、
--single-transaction  適合InnoDB數據數據庫備份,它有Acid 特性,隔離性:執行dump后,只能看到之前的數據,之后插入的被隔離
-q, --quick 直接導出不寫入內存        Don't buffer query, dump directly to stdout.
##快速               (Defaults to on; use --skip-quick to disable.)
--single-transaction 備份期間不鎖表,又能保證數據一致性(基于innodb引擎),例如給每個人照相,“快照”
-S 多實例指定socket

出現events—warning,下面是 處理方法:

這是因為mysqldump默認是不備份事件表的,只有加了--events 才會,解決辦法: 
加上--events  或 --ignore-table=mysql.events 參數即可; 
    #導出事件      #忽略某個表的意思,可以mysqldump --help 查看
mysqldump -uroot -poldboy123 -S /data/3307/mysql.sock  --events  -A >all.sql

-B的“增加建庫語句”作用

如果沒有-B這個參數 備份文件中就不會有如下內容,在恢復的時候不會有建庫的動作

CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mysql` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `mysql`;

如何拒絕成為黑鍋俠:膽大心細,善于總結,吸取經驗,脫離黑鍋;

二,正確備份演示

定期做備份恢復演練 或恢復測試

1,在test數據庫中創建student表

mysql> use test;  ##進入test庫
create table student(
id int(4) not null,
name char(20) not null,
age tinyint(2) NOT NULL default '0',
dept varchar(16) default NULL
);
##創建student表 里面是各個字段的設置

2,備份數據庫test

mysqldump -uroot -poldboy123 -S /data/3307/mysql.sock  -B test >/opt/test.sql
cat /opt/test.sql  #檢測備份是否有效

3,刪除test庫(模擬真實環境)

mysql> drop database test;
Query OK, 0 rows affected (0.00 sec)
mysql> show databases; #沒有test數據了
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| oldboy             |
| performance_schema |
+--------------------

4,恢復test庫

[root@db02 ~]# mysql -uroot -poldboy123 -S /data/3307/mysql.sock  </opt/test.sql
mysql> show databases; #恢復test庫,因為之前使用-B備份的,所以現在不用指定庫,直接恢復
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| oldboy             |
| performance_schema |
| test               |
+--------------------+
5 rows in set (0.00 sec)
mysql> desc student;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(4)      | NO   |     | NULL    |       |
| name  | char(20)    | NO   |     | NULL    |       |
| age   | tinyint(2)  | NO   |     | 0       |       |
| dept  | varchar(16) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

到此,模擬數據恢復成功。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

垣曲县| 阿城市| 青龙| 海门市| 焦作市| 沙雅县| 遵义县| 隆回县| 安徽省| 临潭县| 涪陵区| 曲周县| 石渠县| 桦川县| 申扎县| 平顺县| 长顺县| 奇台县| 霍山县| 宣恩县| 马山县| 旬邑县| 石柱| 托克逊县| 平原县| 潮州市| 乐陵市| 白玉县| 广东省| 漳州市| 盐山县| 永仁县| 福建省| 南开区| 犍为县| 烟台市| 高尔夫| 凯里市| 法库县| 自贡市| 临城县|