欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL全量備份的實現(xiàn)

 更新時間:2024年04月23日 09:41:49   作者:幸存者 · KXY  
全量備份是MySQL數(shù)據(jù)庫備份的常見方式,本文主要介紹了MySQL全量備份的實現(xiàn),全量備份和增量備份是 MySQL 數(shù)據(jù)庫備份的兩種常見方式

一、實驗素材

1.創(chuàng)建student和score表

(1) student表

create database school;
use school

CREATE TABLE student (
id INT(10) NOT NULL UNIQUE PRIMARY KEY ,
name VARCHAR(20) NOT NULL ,
sex VARCHAR(4) ,
birth YEAR,
department VARCHAR(20) ,
address VARCHAR(50)
);

(2) score表

CREATE TABLE score (
id INT(10) NOT NULL UNIQUE PRIMARY KEY AUTO_INCREMENT ,
stu_id INT(10) NOT NULL ,
c_name VARCHAR(20) ,
grade INT(10)
);

2.為student表和score表增加記錄

(1) 向student表插入記錄的INSERT語句如下

INSERT INTO student VALUES( 901,'張老大', '男',1985,'計算機系', '北京市海淀區(qū)');
INSERT INTO student VALUES( 902,'張老二', '男',1986,'中文系', '北京市昌平區(qū)');
INSERT INTO student VALUES( 903,'張三', '女',1990,'中文系', '湖南省永州市');
INSERT INTO student VALUES( 904,'李四', '男',1990,'英語系', '遼寧省阜新市');
INSERT INTO student VALUES( 905,'王五', '女',1991,'英語系', '福建省廈門市');
INSERT INTO student VALUES( 906,'王六', '男',1988,'計算機系', '湖南省衡陽市');

(2) 向score表插入記錄的INSERT語句如下

INSERT INTO score VALUES(NULL,901, '計算機',98);
INSERT INTO score VALUES(NULL,901, '英語', 80);
INSERT INTO score VALUES(NULL,902, '計算機',65);
INSERT INTO score VALUES(NULL,902, '中文',88);
INSERT INTO score VALUES(NULL,903, '中文',95);
INSERT INTO score VALUES(NULL,904, '計算機',70);
INSERT INTO score VALUES(NULL,904, '英語',92);
INSERT INTO score VALUES(NULL,905, '英語',94);
INSERT INTO score VALUES(NULL,906, '計算機',90);
INSERT INTO score VALUES(NULL,906, '英語',85);

二、備份習題

注意:如果感覺每次輸密碼麻煩

[root@node7 ~]# echo 'export MYSQL_PWD=MySQL@123' >> ~/.bashrc #將密碼寫入環(huán)境變量
[root@node7 ~]# source ~/.bashrc

1、備份數(shù)據(jù)庫school到/backup目錄

[root@node7 ~]# mkdir /backup
[root@node7 ~]# mysqldump -B school > /backup/school1_date +%F.sql
[root@node7 ~]# ll /backup/
total 4
-rw-r–r-- 1 root root 3558 Feb 19 16:51 school_2024-02-19.sql
[root@node7 ~]# vim /backup/school1_2024-02-19.sql #可以看到內(nèi)容
[root@node7 ~]# grep -i drop /backup/school1_2024-02-19.sql
DROP TABLE IF EXISTS score;
DROP TABLE IF EXISTS student;

注意:在MySQL8.0版本中默認有–add-drop-table這個選項

2、備份MySQL數(shù)據(jù)庫為帶刪除表的格式,能夠讓該備份覆蓋已有數(shù)據(jù)庫而不需要手動刪除原有數(shù)據(jù)庫

--add-drop-table如果表存在,它將被刪除,然后新的表會被創(chuàng)建

[root@node7 ~]# mysqldump --add-drop-table school > /backup/school_drop_date +%F.sql
#恢復時,如果表存在,它將被刪除,然后新的表會被創(chuàng)建
[root@node7 ~]# vim /backup/school_drop_2024-02-19.sql
[root@node7 ~]# grep -i drop /backup/school_drop_2024-02-19.sql
DROP TABLE IF EXISTS score;
DROP TABLE IF EXISTS student;

注意:在MySQL8.0版本中默認有–add-drop-table這個選項,所以加不加都一樣。

3、直接將MySQL數(shù)據(jù)庫壓縮備份

[root@node7 ~]# mysqldump -B school | gzip > /backup/school2_date +%F.sql
[root@node7 ~]# vim /backup/school2_2024-02-19.sql
[root@node7 ~]# zcat /backup/school2_2024-02-19.sql

4、備份MySQL數(shù)據(jù)庫某個(些)表。此例備份student表

[root@node7 ~]# mysqldump school student > /backup/school3_date +%F.sql
[root@node7 ~]# cat /backup/school3_2024-02-19.sql #只有student表的數(shù)據(jù)
 MySQL dump 10.13  Distrib 8.0.36, for Linux (x86_64)
--
-- Host: localhost    Database: school
-- ------------------------------------------------------
-- Server version       8.0.36

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!50503 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `student`
--

DROP TABLE IF EXISTS `student`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `student` (
  `id` int NOT NULL,
  `name` varchar(20) NOT NULL,
  `sex` varchar(4) DEFAULT NULL,
  `birth` year DEFAULT NULL,
  `department` varchar(20) DEFAULT NULL,
  `address` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `student`
--

LOCK TABLES `student` WRITE;
/*!40000 ALTER TABLE `student` DISABLE KEYS */;
INSERT INTO `student` VALUES (901,'張老大','男',1985,'計算機系','北京市海淀區(qū)'),(902,'張老二','男',1986,'中文系','北京市昌平區(qū)'),(903,'張三','女',1990,'中文系','湖南省永州市'),(904,'李四','男',1990,'英語系','遼寧省阜新市'),(905,'王五','女',1991,'英語系','福建省廈門市'),(906,'王六','男',1988,'計算機系','湖南省衡陽市');
/*!40000 ALTER TABLE `student` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2024-02-19 17:21:31

5、同時備份多個MySQL數(shù)據(jù)庫(其他數(shù)據(jù)庫素材自行準備)

(1) 建表

create database db1;
use db1
CREATE TABLE `stu` (
`Sno` int(10) NOT NULL COMMENT '學號', `Sname` varchar(16) NOT NULL COMMENT
'姓名',
`Ssex` char(2) NOT NULL COMMENT '性別', `Sage` tinyint(2) NOT NULL DEFAULT '0'
COMMENT '學生年齡',
`Sdept` varchar(16) DEFAULT 'NULL' COMMENT '學生所在系別', PRIMARY KEY (`Sno`)
);

(2) 插入數(shù)據(jù)

INSERT INTO `stu` VALUES (1, '陸亞', '男', 24, '計算機網(wǎng)絡'),(2, 'tom', '男',
26, '英語'),(3, '張陽', '男', 21, '物流管理'), (4, 'alex', '女', 22, '電子商務');

(3)備份-B 或 --databases 用于備份多個數(shù)據(jù)庫

[root@node7 ~]# mysqldump --databases school db1 > /backup/school4_date +%F.sql

[root@node7 ~]# grep school /backup/school4_2024-02-19.sql
– Host: localhost Database: school
– Current Database: school
CREATE DATABASE /!32312 IF NOT EXISTS/ school /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci / /!80016 DEFAULT ENCRYPTION=‘N' */;
USE school;

[root@node7 ~]# grep db1 /backup/school4_2024-02-19.sql
– Current Database: db1
CREATE DATABASE /!32312 IF NOT EXISTS/ db1 /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci / /!80016 DEFAULT ENCRYPTION=‘N' */;
USE db1;

6、僅僅備份數(shù)據(jù)庫結(jié)構(gòu)

-d:指定只導出數(shù)據(jù)庫結(jié)構(gòu)而不包含數(shù)據(jù)

[root@node7 ~]# mysqldump -d school > /backup/school5_date +%F.sql
[root@node7 ~]# grep -i insert /backup/school5_2024-02-19.sql #沒有insert語句
[root@node7 ~]# echo $?

7、備份服務器上所有數(shù)據(jù)庫

–all-databases 指所有數(shù)據(jù)庫

[root@node7 ~]# mysqldump --all-databases > /backup/school6_date +%F.sql
[root@node7 ~]# mysql -e 'show databases'
+--------------------+
| Database           |
+--------------------+
| db1                |
| information_schema |
| mysql              |
| performance_schema |
| school             |
| sys                |
+--------------------+
[root@node7 ~]# grep -i ‘use db1' /backup/school6_2024-02-19.sql
USE db1;
[root@node7 ~]# grep -i ‘use mysql' /backup/school6_2024-02-19.sql
USE mysql;
[root@node7 ~]# grep -i ‘use school' /backup/school6_2024-02-19.sql
USE school;

注意:information_schema MySQL的內(nèi)部狀態(tài)和配置信息、performance_schema服務器資源的使用情況、sys視圖,這三個數(shù)據(jù)庫不會備份

8、還原MySQL數(shù)據(jù)庫

[root@node7 ~]# mysql -e 'drop database school'
[root@node7 ~]# mysql -e 'show databases'
+--------------------+
| Database           |
+--------------------+
| db1                |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
#mysql命令恢復
[root@node7 ~]# mysql < /backup/school1_2024-02-19.sql
[root@node7 ~]# mysql -e 'show databases'
+--------------------+
| Database           |
+--------------------+
| db1                |
| information_schema |
| mysql              |
| performance_schema |
| school             |
| sys                |
+--------------------+
#source恢復
[root@node7 ~]# mysql -e 'drop database school'
[root@node7 ~]# mysql -e 'source /backup/school1_2024-02-19.sql'
[root@node7 ~]# mysql -e 'show databases'
+--------------------+
| Database           |
+--------------------+
| db1                |
| information_schema |
| mysql              |
| performance_schema |
| school             |
| sys                |
+--------------------+

9、還原壓縮的MySQL數(shù)據(jù)庫

[root@node7 ~]# mysqldump -B school | gzip > /backup/school2_date +%F.sql
[root@node7 ~]# mysql -e 'drop database school'
[root@node7 ~]# mysql -e 'show databases'
+--------------------+
| Database           |
+--------------------+
| db1                |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
[root@node7 ~]# zcat /backup/school2_2024-02-19.sql | mysql
[root@node7 ~]# mysql -e 'show databases'
+--------------------+
| Database           |
+--------------------+
| db1                |
| information_schema |
| mysql              |
| performance_schema |
| school             |
| sys                |
+--------------------+

10、使用mydumper備份數(shù)據(jù)庫

mydumper安裝部署

[root@node7 ~]# wget -c https://github.com/mydumper/mydumper/releases/download/v0.15.1-3/mydumper-0.15.1-3.el8.x86_64.rpm
[root@node7 ~]# yum install mydumper-0.15.1-3.el8.x86_64.rpm
[root@node6 ~]# mydumper -B school -o /backup/
[root@node6 ~]# ll /backup/
total 32
drwx------ 2 root root 4096 Feb 19 19:01 2024-02-19_19-01-26
drwx------ 2 root root 4096 Feb 19 19:01 2024-02-19_19-01-44
-rw-r--r-- 1 root root  323 Feb 19 19:13 metadata
-rw-r--r-- 1 root root  155 Feb 19 19:13 school-schema-create.sql
-rw-r--r-- 1 root root    0 Feb 19 19:13 school-schema-triggers.sql
-rw-r--r-- 1 root root  352 Feb 19 19:13 school.score.00000.sql
-rw-r--r-- 1 root root  384 Feb 19 19:13 school.score-schema.sql
-rw-r--r-- 1 root root  503 Feb 19 19:13 school.student.00000.sql
-rw-r--r-- 1 root root  435 Feb 19 19:13 school.student-schema.sql

11、使用mydumper恢復數(shù)據(jù)庫

[root@node6 ~]# mysql -e 'drop database school'
[root@node6 ~]# mysql -e 'show databases'
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
[root@node6 ~]# myloader -d /backup/ -o -B school
[root@node6 ~]# mysql -e 'show databases'
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| school             |
| sys                |
+--------------------+

到此這篇關(guān)于MySQL全量備份的實現(xiàn)的文章就介紹到這了,更多相關(guān)MySQL全量備份內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • Mysql中replace與replace into的用法講解

    Mysql中replace與replace into的用法講解

    今天小編就為大家分享一篇關(guān)于Mysql中replace與replace into的用法講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • xampp修改mysql默認密碼的方法

    xampp修改mysql默認密碼的方法

    在這里介紹xampp修改mysql默認密碼的大概過程是先利用xampp的phpmyadmin進入修改mysql密碼,修改之后我們再修改xampp中phpmyadmin的密碼,這樣就完整的修改mysql默認密碼了,感興趣的朋友一起通過本文學習吧
    2016-10-10
  • 重裝MySQL最后一步失敗的完美解決方案(經(jīng)驗總結(jié))

    重裝MySQL最后一步失敗的完美解決方案(經(jīng)驗總結(jié))

    使用MySQL都有過重裝的經(jīng)歷,要是重裝MySQL基本都是在最后一步通不過,究竟是什么原因呢?下面是我總結(jié)的一點經(jīng)驗,都是血的教訓
    2014-06-06
  • Mysql8創(chuàng)建用戶及賦權(quán)操作實戰(zhàn)記錄

    Mysql8創(chuàng)建用戶及賦權(quán)操作實戰(zhàn)記錄

    一般在開發(fā)中,我們需要新建一個賬戶,并賦予某個數(shù)據(jù)庫的訪問權(quán)限,下面這篇文章主要給大家介紹了關(guān)于Mysql8創(chuàng)建用戶及賦權(quán)操作的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-04-04
  • MySQL解決字符集編碼問題

    MySQL解決字符集編碼問題

    MySQL的默認編碼方式是?拉丁文,如果想要設(shè)置一些漢字的數(shù)據(jù).可能會報錯.這篇文章中主要介紹了解決這個問題的方法,需要的朋友可以參考一下
    2023-04-04
  • MYSQL中文亂碼問題的解決方案

    MYSQL中文亂碼問題的解決方案

    mysql是我們項目中非常常用的數(shù)據(jù)型數(shù)據(jù)庫,但是因為我們需要在數(shù)據(jù)庫保存中文字符,所以經(jīng)常遇到數(shù)據(jù)庫亂碼情況這篇文章主要給大家介紹了關(guān)于MYSQL中文亂碼問題的解決方案,需要的朋友可以參考下
    2022-06-06
  • mysql行鎖(for update)解決高并發(fā)問題

    mysql行鎖(for update)解決高并發(fā)問題

    這篇文章主要介紹了mysql行鎖(for update)解決高并發(fā)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • MySQL錯誤:You can‘t specify target table ‘xxx‘ for update in FROM clause的解決方案

    MySQL錯誤:You can‘t specify target table&n

    在編寫MySQL的UPDATE或DELETE語句時,如果子查詢中直接引用了要操作的目標表,可能會遇到一個常見的錯誤:You can’t specify target table ‘xxx’ for update in FROM clause,這個錯誤讓許多開發(fā)者感到困惑,本文將深入分析其原因,并提供多種解決方案,
    2025-02-02
  • MySQL通過binlog恢復數(shù)據(jù)

    MySQL通過binlog恢復數(shù)據(jù)

    通過了解binlog日志的相關(guān)配置,簡單掌握通過binlog對數(shù)據(jù)庫進行數(shù)據(jù)恢復操作。有此需求的朋友可以參考下
    2021-05-05
  • mysql簡單實現(xiàn)查詢結(jié)果添加序列號的方法

    mysql簡單實現(xiàn)查詢結(jié)果添加序列號的方法

    這篇文章主要介紹了mysql簡單實現(xiàn)查詢結(jié)果添加序列號的方法,結(jié)合實例形式演示了2種查詢結(jié)果添加序列號的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2016-06-06

最新評論