資料庫備份的詳解和案例操作過程。

2021-10-09 12:18:56 字數 3197 閱讀 6870

先來說一說資料庫備份的幾種備份型別,以下是我整理出來的備份型別和功能介紹。

備份形式1:備份資料庫期間,使用者是否可以正常訪問

溫備份(warm backup)

通過給伺服器施加共享鎖

熱備份(hot backup)

使用者體驗最好

僅僅是支援事務的儲存引擎才支援熱備

備份形式2: 根據備份的資料集分類

部分備份(partial backup)

備份形式3: 根據備份的資料是全部是發生改變的

備份形式4:根據備份介面方式進行分類

邏輯備份(logical backup)

備份策略

建議:

執行備份考慮的因素

備份的資料有哪些

主要的備份工具

myisam儲存引擎,只可以做溫備

可以進行遠端的備份操作

mysqldumper

cp+tar

select命令

# 首先向mysql配置檔案

vim /etc/my.cnf

新增如下行

secure-file-priv = ""

​# 然後登陸mysql,將jobs庫中的students表中的資料儲存成乙個檔案

mysql> select * from jobs.students into outfile "/tmp/1.sql";

xtrabackup

mysqlhostbackup

mysqldump工具

選項

--single-transaction 啟動事務,用於實現對於innodb做熱備

--triggers 指定備份觸發器

格式:

鎖的粒度

案例:備份jobs庫

[root@manager ~]# mysqldump -uroot -p123 jobs>mybackup1.sql
還原

方法1:在mysql中建立乙個資料庫,然後將備份檔案匯入進去

> create database db010;

> use db010;

> source /root/mybackup1.sql

方法1:在mysql中建立乙個資料庫,然後在bash中將備份資料恢復進去

> create database db020;

[root@manager ~]# mysql -uroot -p123 db020案例:純手工方式加鎖並備份資料

第一步:重新整理,將記憶體資料刷到磁碟上

mysql> flush tables;

query ok, 0 rows affected (0.00 sec)

第二步:新增讀鎖

mysql> flush tables with read lock;

query ok, 0 rows affected (0.00 sec)

第三步:滾動日誌

mysql> flush logs;

query ok, 0 rows affected (0.01 sec)

第四步:檢查日誌

mysql> show master status;
第五步:執行備份操作

[root@manager ~]# mysqldump -uroot -p --databases jobs>bk2.sql
第六步:釋放鎖

mysql> unlock tables;

query ok, 0 rows affected (0.00 sec

案例:使用mysqldump自動實現加鎖來備份資料

[root@manager ~]# mysqldump -uroot -p --flush-logs --lock-all-tables --master-data=2 --databases jobs >bk3.sql
注意:在備份檔案中內容:

案例:實現熱備

第一步:檢查表儲存引擎型別

mysql> show table status from jobs\g
第二步:備份資料

[root@manager ~]# mysqldump -uroot -p --flush-logs --single-transaction --master-data=2 --databases jobs >bk4.sql
案例:實現資料恢復【備份完成後,資料發生損壞】

第一步:讓伺服器離線

第二步:立刻備份二進位制日誌

第三步:分析二進位制日誌

mysql> show binlog events in 'mysql-bin.000027';
第四步:將找到的範圍內的有效的內容生成成sql檔案

[root@manager ~]# mysqlbinlog --start-position=194 --stop-position=712 /data/mysql/mysql3306/logs/mysql-bin.000027 >last.sql
第五步:開始還原

mysql> set session sql_log_bin=off;

mysql> reset master;

mysql> source /root/bk7.sql

mysql> source /root/last.sql

第六步:進行一次完整備份

記錄protobuf和grpc的操作過程

1.1 進入獲取特定release版本的安裝包 1.2 解壓 tar xzvf protobuf all 3.5.1.tar.gz1.3 配置 cd protobuf 3.5.1 configure1.4 編譯 如上圖所以編譯成功。1.5 安裝 執行編譯命令 protoc helloworld.pr...

資料庫備份和還原過程

1 新建資料庫例項注意字符集為utf 8 2 命令列下 c set oracle sid eas 注意例項名未大寫例項名 定義預設例項 c sqlplus nolog 3 使用者system使用者登入 sql user password as sysdba 登入sqlplus建立目錄 sql cre...

資料庫備份和還原過程

資料庫備份和還原過程 1 新建資料庫例項注意字符集為utf 8 2 命令列下 c set oracle sid eas 注意例項名未大寫例項名 定義預設例項 c sqlplus nolog 3 使用者system使用者登入 sql user password as sysdba 登入sqlplus建...