拷贝 var lib mysql 备份_mysql数据库的备份与恢复

方法一:

物理备份

step1:关闭mysqld服务,拷贝数据库的数据目录到本地的备份目录

systemctl stop mysqld

cp/tar  -r /var/lib/mysql/*    备份目录

step2:scp传递本地的备份目录内容给目标主机

scp -r    备份目录/*       远程主机的备份目录

step3:关闭远程主机的mysqld,将备份目录下的内容覆盖拷贝到自己本机的数据目录下

systemctl stop mysqld

rm -rf /var/lib/mysql/*

cp -r 备份目录/*  /var/lib/mysql

step4:更改数据目录的所有者和所属组

chown -R mysql:mysql /var/lib/mysql

step5:开启mysqld服务

systemctl start mysqld

方法二:mysqldump

mysqldump -u用户 -p密码    -A  或  --all-databases(库也会被备份)              >          备份文件.sql

-B  数据库1  数据库2(库也会被备份)

单个数据库(库不会被备份,恢复时先创建库)

数据库  表   (库不会被备份,恢复时先创建库)

备份和恢复时都会锁表

mysqldump --opt --skip-locak-tables                //在不锁表的情况下进行数据的导入导出

注意:

导入单库或是单表时,库必须在目标数据库中结构已经存在(事先创建)

导入多个或全部的库,会连同库一并导入,无需创建

恢复:

方法一:mysql -u用户 -p密码   数据库   

方法二:mysql -u用户 -p密码

> source  备份文件.sql;

方法三:使用mysql服务自带的binlog日志文件实现备份和恢复

启动binlog日志:【记录所有更改数据的操作】

server_id=数字//唯一性【1-255】

log-bin=/路径/文件名//默认在/var/lib/mysql,若自定义路径,则自定义的路径的属性mysql:mysql

max_binlog_size=大小//一个文件最大能存储多少

产生:/var/lib/mysql

日志文件:文件名 .000001

索引文件: 文件名.index

>show master status\G;                         //查看是否开启了binlog日志

手动生成binlog日志文件:

方法1.重启mysqld服务,重启一次生成一次

方法2.>flush logs;

方法3.mysqldump  -u用户 -p密码   --flush-logs     库名  >备份文件.sql

方法4.#mysql -u用户 -p密码  -e 'flush logs'//在linux命令行执行mysql语句

>systemctl   linu命令//在mysql里面执行Linux系统命令

删除已有的日志:

方法一:

>purge master  logs  before '日志名.000005'                //删除000005之前的日志

>purge master  logs  to '日志名.000006'                //删除000006的日志

>reset master;

方法二:

b1e785b2dedff0f1d5e4a9e19b78d06d.png

查看日志文件内容:

mysqlbinlog [选项]  binlog日志文件名

选项:

--start-datetime="yyyy-mm-dd hh:mm:ss"

--stop-datetime="yyyy-mm-dd hh:mm:ss"

--start-position=偏移量

--stop-position=偏移量                             //表中的数据发生变化时才会更改偏移量

查看日志格式:show variables like "binlog_format";

statement:记录每一条修改数据的sql语句

row:不记录sql语句,仅仅保存哪条记录都修改

mixed:混合使用

/etc/my.cnf          --->binlog_format="格式类型"

使用日志文件恢复数据:mysqld服务无需关闭

mysqlbinlog  【选项】  binlog日志文件名|mysql -u用户 -p密码

方法四:innobackupex

step1:安装libev-4.15-1.el6.rf.x86_64.rpm和percona-xtrabackup-24-2.4.7-1.el7.x86_64

rpm -ivhlibev-4.15-1.el6.rf.x86_64.rpm

yum -y install  percona-xtrabackup-24-2.4.7-1.el7.x86_64

使用结构:

innobackupex    [选项]

全量备份数据:

innobackupex --user 用户名  --password  密码    备份文件的存放路径(手动创建)     --no-timestamp(不启动日期命令作为子目录)

全量恢复数据:

step1:停止mysqld服务

systemctl stop mysqld

rm -rf /var/lib/mysql/*

step2:准备还原数据

innobackupex --apply-log     备份文件名

step3:恢复数据

innobackupex --copy-back  备份文件名

step4:修改归属

chown -R mysql.mysql  /var/lib/mysql

step5:重启mysqld服务

systemctl start mysqld

基于全量备份的基础上增量备份:

增量备份数据:

innobackupex --user 用户 --password 密码  --incremental   增量备份文件的存放路径(手动创建)    --incremental-basedir=目录路径(是基于那个全量备份目录增量的) --no-timestamp

恢复数据:

step1:停止mysqld服务

systemctl stop mysqld

rm -rf /var/lib/mysql/*

step2:准备还原数据,合并日志

innobackupex --apply-log    --redo-only   全量备份文件名                                     //将备份文件的备份类型改为log-applied

innobackupex --apply-log    --redo-only --incremental-dir=增量备份文件          全量备份文件     //将增量备份文件中的内容合并到全量备份文件中

step3:恢复数据

innobackupex --copy-back  全量备份文件名

step4:修改归属

chown -R mysql.mysql  /var/lib/mysql

step5:重启mysqld服务

systemctl start mysqld

备份单个的库:

innobackupex --user 用户 --password 密码 --databases='库名'   目录路径(手动创建) --no-timestamp

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Linux MySQL备份data的步骤如下: 1. 登录MySQL数据库,使用mysqldump命令备份数据,例如: mysqldump -u root -p database_name > backup.sql 其中,root是数据库用户名,database_name是要备份数据库名称,backup.sql是备份文件名。 2. 将备份文件复制到另一个地方,例如: cp backup.sql /home/user/backup/ 其中,/home/user/backup/是备份文件要复制到的目录。 3. 如果需要定期备份,可以使用crontab命令设置定时任务,例如: crontab -e 然后添加以下内容: * * * mysqldump -u root -p database_name > /home/user/backup/backup.sql 其中, * * *表示每天点执行备份任务,/home/user/backup/backup.sql是备份文件要保存的路径。 以上就是Linux MySQL备份data的步骤。 ### 回答2: 在Linux系统中,我们可以使用多种方式备份MySQL的数据。 1. 使用MySQL自带的工具:MySQL提供了一个名为mysqldump的工具,可以在命令行中使用该工具来备份数据库。我们可以使用以下命令来备份整个数据库: ``` mysqldump -u 用户名 -p 密码 --all-databases > 备份文件名.sql ``` 如果只想备份特定的数据库,可以使用以下命令: ``` mysqldump -u 用户名 -p 密码 数据库名 > 备份文件名.sql ``` 备份完成后,我们会得到一个以.sql为扩展名的备份文件。 2. 直接复制数据文件:MySQL数据库的数据存储在指定的目录中,通常是/var/lib/mysql。我们可以通过直接复制这个目录来备份数据。首先,停止MySQL服务: ``` sudo service mysql stop ``` 然后,复制整个目录到我们想要备份的位置: ``` sudo cp -R /var/lib/mysql 备份目录的路径 ``` 复制完成后,我们可以重新启动MySQL服务。 无论是使用mysqldump还是直接复制数据文件,都需要定期进行备份,并将备份文件存储在安全的位置,以防止数据丢失。备份数据是保护数据库安全的重要措施,可以在遭遇意外情况时快速恢复数据。 ### 回答3: 在Linux操作系统上备份MySQL数据主要有两种方法:物理备份和逻辑备份。 物理备份是指直接对数据库文件进行复制,这种方式比较快速,可以通过将整个数据库目录拷贝备份位置来进行。首先,停止数据库服务,确保没有正在写入的数据;然后使用cp或rsync命令将MySQL的数据目录复制到备份位置即可。但是物理备份的缺点是备份的文件较大,不易管理。 逻辑备份是通过导出数据库的SQL语句来进行备份。可以使用mysqldump命令来导出数据库或者表的数据结构和数据。语法如下: $ mysqldump -u 用户名 -p 密码 数据库 > 备份文件名.sql 此命令将会将指定数据库导出为一个.SQL文件,可以通过该文件将数据恢复到另一个服务器或者同一服务器的不同数据库中。 为了自动备份MySQL数据,可以使用crontab来定期运行备份脚本。首先,在Linux上编写一个备份脚本,脚本内容包括设置MySQL的用户名、密码和备份文件名,并使用mysqldump命令导出数据库。运行备份脚本后,将备份文件拷贝到指定的备份位置即可。然后,在crontab中添加一个定时任务,设置备份脚本的启动时间和频率。 总结来说,备份MySQL数据可以使用物理备份或逻辑备份的方式。物理备份速度较快但文件较大,适合频繁备份;逻辑备份通过导出SQL语句进行备份,文件较小但恢复时间较长。为了自动备份,可以编写备份脚本并使用crontab定时运行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值