【无标题】

备份概述

一、备份方式

按照数据库服务状态分为:

冷备份:在备份时暂停数据库运行和服务,将整个数据库复制到备份设备中

热备份:在备份时不停止数据库的运行和服务

按照备份的数据分为:

物理备份:备份数据库服务器上存储的原始数据和文件,可以直接拷贝和恢复

逻辑备份:备份的是SQL语句,可用于不同版本和不同类型的MySQL数据库之间的数据迁移

二、备份策略

三、备份系统三要素

完全备份与恢复

一、物理备份及恢复

适合线下备份,不适合线上备份

1、备份操作

systemctl stop mysqld
cp -rp /var/lib/mysql /opt/mysql.bak
tar -zcf /opt/mysql.tar.gz /var/lib/mysql/*

2、恢复操作

rm -rf /var/lib/mysql/*
cp -r /opt/mysql.bak/* /var/lib/mysql/
tar -zxf /opt/mysql.tar.gz -C /var/lib/mysql/
chown -R mysql:mysql /var/lib/mysql
systemctl start mysqld

二、逻辑备份及恢复

1、完全备份

mysqldump -uroot -p密码 库名 > /目录/xxx.sql

库名表示方式:

库名 表名列表        备份1张表或多张表所有数据

-B 库名列表        备份1个库或多个库所有数据

--all-databases 或 -A        备份1台服务器所有数据

[root@mysql50 ~]# mkdir /bakdir
# 备份所有库 
[root@mysql50 ~]# mysqldump -uroot -p123456 -A > /bakdir/allbak.sql
# 备份1个库 
[root@mysql50 ~]# mysqldump -uroot -p123456 -B tarena > /bakdir/tarena.sql
# 备份多个库
root@mysql50 ~]# mysqldump -uroot -p123456  -B db3 db1 > /bakdir/db3_db1.sql 
# 备份多张表
[root@mysql50 ~]# mysqldump -uroot -p123456  tarena employees departments > /bakdir/tarena_employees_deparments.sql
# 备份1张表 
[root@mysql50 ~]# mysqldump -uroot -p123456 tarena salary > /bakdir/tarena_salary.sql

[root@mysql50 ~]# ls /bakdir/
allbak.sql  tarena_salary.sql  tarena.sql  db3_db1.sql   tarena_employees_deparments.sql

2、完全恢复

1)命令行恢复

mysql -uroot -p密码 [库名] < /目录/xxx.sql

[root@mysql51 ~]# mysql -p123456

mysql> select count(*) from tarena.salary;
mysql> delete from tarena.salary;
mysql> select count(*) from tarena.salary;

[root@mysql50 ~]# scp /bakdir/tarena_salary.sql 192.168.88.51:/root
[root@mysql51 ~]# ls
mysql.tar.gz  tarena_salary.sql
[root@mysql51 ~]# mysql -uroot -p123456 tarena < /root/tarena_salary.sql 
[root@mysql51 ~]# mysql -p123456

mysql> select count(*) from tarena.salary;
2)使用数据库里的 source 命令恢复数据
mysql> drop database tarena;
mysql> show databases;
mysql> source /bakdir/tarena.sql;
mysql> show databases;
mysql> drop table tarena.salary;
mysql> use tarena;
mysql> show tables;
mysql> source /bakdir/tarena_salary.sql;
mysql> show tables;

恢复库时库名可以省略

恢复表时需要库名

备份和恢复时,数据库服务必须是运行状态

Mysqldump 备份和恢复数据时会锁表,锁表期间无法对表做写访问,mysqldump适合备份数据量比较小的数据或在数据库服务器访问量少的时候备份。

3、mysqldump备份缺点

1)物理备份缺点

跨平台性差

备份时间长、冗余备份、浪费存储空间

2)mysqldump备份缺点

效率较低、备份和还原速度慢、锁表

备份过程中,数据插入和更新操作被阻塞

三、增量备份与恢复

软件介绍

一款强大的在线热备份工具

备份过程中不锁库表,适合生产环境

由专业组织Percona提供(改进MySQL分支)

软件安装

[root@mysql50 ~]# yum -y install perl-DBD-MySQL    # 安装依赖
[root@mysql50 ~]# tar -xf percona-xtrabackup-8.0.26-18-Linux-x86_64.glibc2.12-minimal.tar.gz
[root@mysql50 ~]# mv percona-xtrabackup-8.0.26-18-Linux-x86_64.glibc2.12-minimal /usr/local/percona
[root@mysql50 ~]# vim /etc/bashrc           # 配置初始配置文件 系统环境变量
export PATH=/usr/local/percona/bin:$PATH    # 添加此行
[root@mysql50 ~]# source /etc/bashrc        # 使配置生效
[root@mysql50 ~]# man xtrabackup 

差异备份与恢复

你可能感兴趣的:(oracle,数据库)