最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

一、實(shí)驗(yàn)素材

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,'計(jì)算機(jī)系', '北京市海淀區(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,'計(jì)算機(jī)系', '湖南省衡陽市');

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

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

二、備份習(xí)題

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

[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版本中默認(rèn)有–add-drop-table這個(gè)選項(xiàng)

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

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

[root@node7 ~]# mysqldump --add-drop-table school > /backup/school_drop_date +%F.sql
#恢復(fù)時(shí),如果表存在,它將被刪除,然后新的表會(huì)被創(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版本中默認(rèn)有–add-drop-table這個(gè)選項(xiàng),所以加不加都一樣。

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ù)庫某個(gè)(些)表。此例備份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,'計(jì)算機(jī)系','北京市海淀區(qū)'),(902,'張老二','男',1986,'中文系','北京市昌平區(qū)'),(903,'張三','女',1990,'中文系','湖南省永州市'),(904,'李四','男',1990,'英語系','遼寧省阜新市'),(905,'王五','女',1991,'英語系','福建省廈門市'),(906,'王六','男',1988,'計(jì)算機(jī)系','湖南省衡陽市');
/*!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、同時(shí)備份多個(gè)MySQL數(shù)據(jù)庫(其他數(shù)據(jù)庫素材自行準(zhǔn)備)

(1) 建表

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

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

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

(3)備份-B 或 --databases 用于備份多個(gè)數(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:指定只導(dǎo)出數(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、備份服務(wù)器上所有數(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服務(wù)器資源的使用情況、sys視圖,這三個(gè)數(shù)據(jù)庫不會(huì)備份

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命令恢復(fù)
[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恢復(fù)
[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恢復(fù)數(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全量備份的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)MySQL全量備份內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

最新評論

和顺县| 同心县| 甘洛县| 乌什县| 绍兴市| 无锡市| 瑞丽市| 合水县| 时尚| 利辛县| 湖北省| 麻阳| 广安市| 鹰潭市| 呼和浩特市| 资中县| 孝感市| 洞头县| 永安市| 建德市| 清河县| 兴业县| 达拉特旗| 苏尼特左旗| 苗栗县| 塘沽区| 临猗县| 漯河市| 深水埗区| 阳江市| 土默特左旗| 龙川县| 弥勒县| 鱼台县| 靖远县| 宿迁市| 阜阳市| 谷城县| 钦州市| 会宁县| 尼木县|