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

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

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

一、實(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語(yǔ)句如下

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,'英語(yǔ)系', '遼寧省阜新市');
INSERT INTO student VALUES( 905,'王五', '女',1991,'英語(yǔ)系', '福建省廈門(mén)市');
INSERT INTO student VALUES( 906,'王六', '男',1988,'計(jì)算機(jī)系', '湖南省衡陽(yáng)市');

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

INSERT INTO score VALUES(NULL,901, '計(jì)算機(jī)',98);
INSERT INTO score VALUES(NULL,901, '英語(yǔ)', 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, '英語(yǔ)',92);
INSERT INTO score VALUES(NULL,905, '英語(yǔ)',94);
INSERT INTO score VALUES(NULL,906, '計(jì)算機(jī)',90);
INSERT INTO score VALUES(NULL,906, '英語(yǔ)',85);

二、備份習(xí)題

注意:如果感覺(jué)每次輸密碼麻煩

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

1、備份數(shù)據(jù)庫(kù)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ù)庫(kù)為帶刪除表的格式,能夠讓該備份覆蓋已有數(shù)據(jù)庫(kù)而不需要手動(dòng)刪除原有數(shù)據(jù)庫(kù)

--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ù)庫(kù)壓縮備份

[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ù)庫(kù)某個(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,'英語(yǔ)系','遼寧省阜新市'),(905,'王五','女',1991,'英語(yǔ)系','福建省廈門(mén)市'),(906,'王六','男',1988,'計(jì)算機(jī)系','湖南省衡陽(yáng)市');
/*!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ù)庫(kù)(其他數(shù)據(jù)庫(kù)素材自行準(zhǔn)備)

(1) 建表

create database db1;
use db1
CREATE TABLE `stu` (
`Sno` int(10) NOT NULL COMMENT '學(xué)號(hào)', `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, '英語(yǔ)'),(3, '張陽(yáng)', '男', 21, '物流管理'), (4, 'alex', '女', 22, '電子商務(wù)');

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

[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ù)庫(kù)結(jié)構(gòu)

-d:指定只導(dǎo)出數(shù)據(jù)庫(kù)結(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 #沒(méi)有insert語(yǔ)句
[root@node7 ~]# echo $?

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

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

[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ù)庫(kù)不會(huì)備份

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

[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ù)庫(kù)

[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ù)庫(kù)

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ù)庫(kù)

[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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • SQL查詢語(yǔ)句執(zhí)行的過(guò)程

    SQL查詢語(yǔ)句執(zhí)行的過(guò)程

    這篇文章主要介紹了SQL查詢語(yǔ)句執(zhí)行的過(guò)程,文章圍繞主題展開(kāi)SQL查詢語(yǔ)句的相關(guān)資料,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-05-05
  • MYSQL時(shí)區(qū)導(dǎo)致時(shí)間差了14或13小時(shí)的解決方法

    MYSQL時(shí)區(qū)導(dǎo)致時(shí)間差了14或13小時(shí)的解決方法

    本文主要介紹了MYSQL時(shí)區(qū)導(dǎo)致時(shí)間差了14或13小時(shí)的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • 更改Mysql數(shù)據(jù)庫(kù)存儲(chǔ)位置的具體步驟

    更改Mysql數(shù)據(jù)庫(kù)存儲(chǔ)位置的具體步驟

    首先把mysql的服務(wù)先停掉,更改MySQL配置文件My.ini中的數(shù)據(jù)庫(kù)存儲(chǔ)主路徑,將老的數(shù)據(jù)庫(kù)存儲(chǔ)主路徑中的數(shù)據(jù)庫(kù)文件和文件夾復(fù)制到新的存儲(chǔ)主路徑,接下來(lái)重啟搞定
    2013-07-07
  • mysql將bin-log日志文件轉(zhuǎn)為sql文件的方法

    mysql將bin-log日志文件轉(zhuǎn)為sql文件的方法

    這篇文章主要介紹了mysql將bin-log日志文件轉(zhuǎn)為sql文件的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-12-12
  • Mac上安裝MySQL過(guò)程分享

    Mac上安裝MySQL過(guò)程分享

    這篇文章主要介紹了Mac上安裝MySQL過(guò)程分享,本文共分4步完成,簡(jiǎn)單易懂,需要的朋友可以參考下
    2014-11-11
  • MySQL優(yōu)化GROUP BY(松散索引掃描與緊湊索引掃描)

    MySQL優(yōu)化GROUP BY(松散索引掃描與緊湊索引掃描)

    這篇文章主要介紹了MySQL優(yōu)化GROUP BY(松散索引掃描與緊湊索引掃描),需要的朋友可以參考下
    2016-05-05
  • mysql觸發(fā)器trigger實(shí)例詳解

    mysql觸發(fā)器trigger實(shí)例詳解

    MySQL好像從5.0.2版本就開(kāi)始支持觸發(fā)器的功能了,本次博客就來(lái)介紹一下觸發(fā)器,首先還是談下概念性的東西吧,需要的朋友可以參考下
    2021-03-03
  • 詳解mysql表數(shù)據(jù)壓縮

    詳解mysql表數(shù)據(jù)壓縮

    mysql進(jìn)行壓縮是借助于zlib庫(kù),采用L777壓縮算法,這種算法在減少數(shù)據(jù)大小、CPU利用方面是成熟的、健壯的、高效的,這篇文章主要介紹了mysql表數(shù)據(jù)壓縮,需要的朋友可以參考下
    2022-01-01
  • 深入淺析MySQL?Explain

    深入淺析MySQL?Explain

    這篇文章主要介紹了MySQL?Explain詳解,expain出來(lái)的信息有10列,分別是id、select_type、table、type、possible_keys、key、key_len、ref、rows、Extra,本文對(duì)每一字段進(jìn)行逐一解釋?zhuān)枰呐笥芽梢詤⒖枷?/div> 2022-07-07
  • 簡(jiǎn)單談?wù)凪ySQL中的int(m)

    簡(jiǎn)單談?wù)凪ySQL中的int(m)

    設(shè)置int型的時(shí)候,需要設(shè)置int(M),以前知道這個(gè)M最大是255,但是到底應(yīng)該設(shè)置多少并沒(méi)有在意。注意zerofill,今天我們來(lái)簡(jiǎn)單探討下
    2016-09-09

最新評(píng)論