Mairadb数据库的备份和恢复

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: Mairadb数据库的备份和恢复

一、检查数据库状态

1.检查mariadb的服务状态

[root@mster-k8s ~]# systemctl status mariadb
● mariadb.service - MariaDB 10.6.7 database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
  Drop-In: /etc/systemd/system/mariadb.service.d
           └─migrated-from-my.cnf-settings.conf
   Active: active (running) since Tue 2022-04-19 11:25:41 CST; 6h ago
     Docs: man:mariadbd(8)
           https://mariadb.com/kb/en/library/systemd/
  Process: 101452 ExecStartPost=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
  Process: 101428 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= ||   VAR=`cd /usr/bin/..; /usr/bin/galera_recovery`; [ $? -eq 0 ]   && systemctl set-environment _WSREP_START_POSITION=$VAR || exit 1 (code=exited, status=0/SUCCESS)
  Process: 101426 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
 Main PID: 101440 (mariadbd)
   Status: "Taking your SQL requests now..."
    Tasks: 8
   Memory: 54.9M
   CGroup: /system.slice/mariadb.service
           └─101440 /usr/sbin/mariadbd

2.测试进入mariadb数据库

[root@mster-k8s ~]# mariadb
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 23
Server version: 10.6.7-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> 

二、配置二进制日志功能

1.修改/etc/my.conf

[root@mster-k8s ~]# vim /etc/my.cnf
[root@mster-k8s ~]# cat /etc/my.cnf
#
# This group is read both by the client and the server
# use it for options that affect everything
#
[client-server]

#
# include *.cnf from the config directory
#
!includedir /etc/my.cnf.d
[mysqld]
log_bin=mysql-bin

2.重启服务

systemctl restart mariad

3.查看二进制日志文件

在这里插入图片描述

4.查看binlog开启状态


MariaDB [(none)]> show global variables like 'log_bin';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin       | ON    |
+---------------+-------+
1 row in set (0.001 sec)

MariaDB [(none)]> 

三、备份数据库

1.备份全部的数据库

[root@mster-k8s mariadb]# mysqldump -uroot -p123 --all-databases > all_databases.sql
[root@mster-k8s mariadb]# ls
all_databases.sql

2.备份单个数据库

 mysqldump -uroot -p123 huawei > huawei.sql

3.备份一个数据库的表

 mysqldump -uroot -p123 huawei  student > huawei_student.sql

4.备份多个数据库

mysqldump -uroot -p123 --databases huawei mysql > huawei_mysql.sql

四、恢复数据库

1.将备份数据库的student表恢复到某个新数据库

①当前数据库列表

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| huawei             |
| huaweinew          |
| information_schema |
| mysql              |
| performance_schema |
| redhat             |
| sys                |
+--------------------+
7 rows in set (0.000 sec)

②创建新数据库

MariaDB [(none)]> create database test_huawei;
Query OK, 1 row affected (0.000 sec)

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| huawei             |
| huaweinew          |
| information_schema |
| mysql              |
| performance_schema |
| redhat             |
| sys                |
| test_huawei        |
+--------------------+
8 rows in set (0.000 sec)

③将备份的表恢复到新数据库

mysql -uroot -p123  test_huawei < ./huawei_student.sql

④检查恢复的表

MariaDB [(none)]> use test_huawei;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [test_huawei]> show tables;
+-----------------------+
| Tables_in_test_huawei |
+-----------------------+
| student               |
+-----------------------+
1 row in set (0.000 sec)

MariaDB [test_huawei]> select * from student;
+----+--------+--------+------+-------+--------+-------+
| id | name   | gender | age  | class | course | grade |
+----+--------+--------+------+-------+--------+-------+
|  1 | 张三   |      0 |   18 |     3 | 语文   |    98 |
|  2 | 李四   |      0 |   17 |     3 | 数学   |    95 |
|  3 | 王五   |      1 |   16 |     2 | 物理   |    88 |
|  4 | 高峰   |      0 |   22 |     4 | 英语   |   100 |
|  5 | 陈林   |      1 |   15 |     5 | 化学   |    99 |
+----+--------+--------+------+-------+--------+-------+
5 rows in set (0.000 sec)

2.恢复数据库

①.删除源数据库

MariaDB [(none)]> drop database huawei;
Query OK, 1 row affected (0.006 sec)

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| huaweinew          |
| information_schema |
| mysql              |
| performance_schema |
| redhat             |
| sys                |
| test_huawei        |
+--------------------+
7 rows in set (0.000 sec)

②创建空数据库

MariaDB [(none)]> create database huawei_reduction;
Query OK, 1 row affected (0.000 sec)

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| huawei_reduction   |
| huaweinew          |
| information_schema |
| mysql              |
| performance_schema |
| redhat             |
| sys                |
| test_huawei        |
+--------------------+
8 rows in set (0.001 sec)

③恢复数据库

mysql -uroot -p123  huawei_reduction  < ./huawei.sql

④查看数据库

MariaDB [huawei_reduction]> show tables;
+----------------------------+
| Tables_in_huawei_reduction |
+----------------------------+
| student                    |
+----------------------------+
1 row in set (0.000 sec)

MariaDB [huawei_reduction]> select * from student;
+----+--------+--------+------+-------+--------+-------+
| id | name   | gender | age  | class | course | grade |
+----+--------+--------+------+-------+--------+-------+
|  1 | 张三   |      0 |   18 |     3 | 语文   |    98 |
|  2 | 李四   |      0 |   17 |     3 | 数学   |    95 |
|  3 | 王五   |      1 |   16 |     2 | 物理   |    88 |
|  4 | 高峰   |      0 |   22 |     4 | 英语   |   100 |
|  5 | 陈林   |      1 |   15 |     5 | 化学   |    99 |
+----+--------+--------+------+-------+--------+-------+
5 rows in set (0.000 sec)

MariaDB [huawei_reduction]>
相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
2月前
|
存储 关系型数据库 MySQL
mysql数据库备份与恢复
MySQL数据库的备份与恢复是确保数据安全性和业务连续性的关键操作。
77 4
|
3月前
|
SQL 关系型数据库 MySQL
如何快速在表级别做同构或者异构数据库之间的数据迁移/备份
【8月更文挑战第17天】本文介绍在同构与异构数据库间快速迁移/备份表级数据的方法。同构迁移可利用数据库自带工具(如MySQL的`mysqldump`)或管理软件(如phpMyAdmin);异构迁移则推荐使用ETL工具(如Pentaho Data Integration)或数据库复制工具(如SymmetricDS),亦可通过编程方式实现。实施前需测试以确保数据完整准确,并注意处理兼容性问题。
132 4
|
11天前
|
关系型数据库 MySQL Linux
Linux环境下MySQL数据库自动定时备份实践
数据库备份是确保数据安全的重要措施。在Linux环境下,实现MySQL数据库的自动定时备份可以通过多种方式完成。本文将介绍如何使用`cron`定时任务和`mysqldump`工具来实现MySQL数据库的每日自动备份。
29 3
|
11天前
|
监控 关系型数据库 MySQL
Linux环境下MySQL数据库自动定时备份策略
在Linux环境下,MySQL数据库的自动定时备份是确保数据安全和可靠性的重要措施。通过设置定时任务,我们可以每天自动执行数据库备份,从而减少人为错误和提高数据恢复的效率。本文将详细介绍如何在Linux下实现MySQL数据库的自动定时备份。
25 3
|
25天前
|
存储 定位技术 数据库
介绍一下数据库的备份和恢复策略
【10月更文挑战第21】介绍一下数据库的备份和恢复策略
|
11天前
|
数据库
【赵渝强老师】数据库的备份方式
备份数据库是指将数据库中的数据及相关信息保存起来,以便在系统故障时恢复。备份对象不仅限于数据本身,还包括数据库对象、用户权限等。根据备份策略、类型和模式的不同,可分为整体/部分备份、完全/增量备份、一致/非一致备份。文中还附有相关视频讲解。
|
2月前
|
关系型数据库 MySQL 数据库
Navicat备份数据库
涵盖`Navicat`数据库备份、数据安全及备份策略等主题。文库采用精美主题,提升阅读体验。
41 1
Navicat备份数据库
|
2月前
|
SQL 数据库 数据安全/隐私保护
如何手动备份数据库?
如何手动备份数据库?
112 1
|
3月前
|
SQL 数据库
Microsoft SQL Server 2014如何来备份数据库
Microsoft SQL Server 2014如何来备份数据库
377 3
|
3月前
|
SQL 关系型数据库 MySQL
在Linux中,如何备份和恢复MySQL数据库?
在Linux中,如何备份和恢复MySQL数据库?