精华内容
下载资源
问答
  • mysql 冷热备份
    2021-01-19 23:05:03

    文章转自:http://www.linuxidc.com/Linux/2014-03/98710.htm

    冷备份(OFF, 慢, 时间点上恢复)冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。冷备份是将关键性文件拷贝到另外位置的一种说法。对于备份数据库信息而言,冷备份是最快和最安全的方法。冷备份的优点: 1.是非常快速的备份方法(只需拷贝文件)2.容易归档(简单拷贝即可)3.容易恢复到某个时间点上(只需将文件再拷贝回去)4.能与归档方法相结合,作数据库“最新状态”的恢复。5.低度维护,高度安全。冷备份的缺点: 1.单独使用时,只能提供到“某一时间点上”的恢复。2.在实施备份的全过程中,数据库必须要作备份而不能作其它工作。也就是说,在冷备份过程中,数据库必须是关闭状态。3.若磁盘空间有限,只能拷贝到磁带等其它外部存储设备上,速度会很慢。4.不能按表或按用户恢复。值得注意的是冷备份必须在数据库关闭的情况下进行,当数据库处于打开状态时,执行数据库文件系统备份是无效的 。而且在恢复后一定要把数据库文件的属组和属主改为mysql。热备份 (ON,快)热备份是在数据库运行的情况下,备份数据库操作的sql语句,当数据库发生问题时,可以重新执行一遍备份的sql语句。热备份的优点:1.可在表空间或数据文件级备份,备份时间短。2.备份时数据库仍可使用。3.可达到秒级恢复(恢复到某一时间点上)。4.可对几乎所有数据库实体作恢复。5.恢复是快速的,在大多数情况下在数据库仍工作时恢复。热备份的缺点:1.不能出错,否则后果严重。2.若热备份不成功,所得结果不可用于时间点的恢复。3.因难于维护,所以要特别仔细小心,不允许“以失败而告终”。

    更多相关内容
  • 一直觉得备毫无技术含量可言拿oracle为例,步骤无非就是关库,cp数据文件、控制文件、redolog文件(archivelog文件)到另一个关闭的oracle库就完事了然而在mysql上执行同样的操作,开启mysql之后确发现了诸如下面的...

    一直觉得冷备毫无技术含量可言

    拿oracle为例,步骤无非就是关库,cp数据文件、控制文件、redolog文件(archivelog文件)到另一个关闭的oracle库就完事了

    然而在mysql上执行同样的操作,开启mysql之后确发现了诸如下面的报错:

    InnoDB: is in the future! Current system log sequence number 73 815920160.

    按照网上的快餐文章说的备份ib_logfile0 ib_logfile1 根本就是然并卵

    此后一直通过逻辑备份对数据库进行备份恢复,直到最近研发把一个测试库搞崩,经过一番操作之后终于理解了如何通过cp来恢复Mysql库

    这里主要涉及到的知识是mysql库data路径和log路径的变更

    CP拷贝主要是2个大文件夹,一个是data,一个是log

    1.关闭数据库,将源路径的data和log分别拷贝到目标路径的对应文件夹下

    2.修改/etc/my.cnf配置的logfile和datafile路径,将源路径修改为目标(实际)路径

    3.将log下面的binlog-index进行编辑,将源路径修改为目标(实际)路径

    4.修改/etc/init.d/mysql脚本中datadir的值

    需要特别注意的是,拷贝时采用cp -a ,这样可以保证复制数据的属性和原来一致;保险起见完成cp之后,检查一下属主和属组是否都是mysql而不是root

    而mysql的冷备就更简单了,对于目标库来说,上面的1,2,4点是不需要变动的,唯一需要修改的就是第3点里面binlog-index的路径而已了

    ########################################

    原理已经在上面了,RDS冷备到线下库仅仅就是一个实验而已

    待续…

    ########################################

    展开全文
  • 个人觉得冷备份数据除了操作方法简单,最大的优点便是安全 为了对比,可参考前面整理的 —— 【MySQL 使用 XtraBackup 进行数据热备份指导 [全量+增量]】 在此还是声明一下 个人觉得,冷备份也可以不在停机状态的 ...

    背景

    • 对于概念的说明不做赘述
      个人觉得冷备份数据除了操作方法简单,最大的优点便是安全
      为了对比,可参考前面整理的 —— 【MySQL 使用 XtraBackup 进行数据热备份指导 [全量+增量]】

    • 在此还是声明一下
      个人觉得,冷备份也可以不在停机状态的
      只要当下没有多少更新操作业务即可

    • 环境

    CentOS 7.9 MySQl5.7.32 
    

    冷备份/还原全部数据

    这种方式,备份了整体的 MySQL 数据,包含默认数据库 "mysql、sys、infomation_schema、performance_schema"

    ☞ tar 打包冷备份

    • 首先,要查询到数据存放目录
      可以通过查看 "my.cnf" 文件,找到参数:datadir
      或者,执行 sql 语句:show variables like "%datadir%";
      如下结果,则我的数据存放目录为:"/var/lib/mysql/data"
      在这里插入图片描述
    • 然后,关闭 mysql 服务(模拟冷备份环境)
      执行如下命令:
    cd /var/lib/mysql	# 进入上级目录
    tar jcvf data_cold_back.tar.bz2 data/	# 打包压缩数据目录到文件 data_cold_back.tar.bz2
    

    至此,已备份完毕,备份数据即在 "data_cold_back.tar.bz2" 文件中

    【提示】:

    • 为了每次的备份操作方便,可以创建一个执行脚本,
      touch cold_back.sh	# 创建执行脚本
      
      并写入打包指令: tar jcvf data_cold_back.tar.bz2 data
       chmod -R 755 cold_back.sh	# 结予脚本权限
      
      当需要进行冷备份操作时,
      只需执行脚本命令即可(操作会覆盖掉之前备份的压缩文件,没啥不利影响)
       ./cold_back.sh
      

    ☞ tar 恢复/还原数据操作

    • 首先删除原来的 /var/lib/mysql/data,或者重命名一下
    mv /var/lib/mysql/data /var/lib/mysql/data_back	# 为避免出错,重命名一下
    tar jxvf data_cold_back.tar.bz2 data	# 解压冷备份数据到 data 目录
    
    • 然后,重启 mysql 服务,查看数据就是之前的备份
    service mysql start # 普遍的 mysql 启动命令
    systemctl start mysql@bootstrap.service # PXC 第一个节点的启动命令
    

    ▶▷ 总结

    【题外话】

    	   个人观点
    	   这种方式的最终目的就是拷贝了数据库
    	   如果像是使用 宝塔管理界面
    	   完全可以直接压缩备份操作的
    	   感觉,这个技术含量不如 —— 使用 XtraBackup 进行数据热备
    


    Shell 脚本自动备份

    不过,这种方式需要 MySQL 服务开启,不然无法备份数据

    • 个人觉得有点像热备份
      但是,鄙人的理解是:
      因为无法操作事务更新,不同于标准的热备份
      可以理解为当下不对外提供数据更新操作
      或者当前时间点离开集群

    ☞ 脚本配置

    • 首先创建脚本
    touch backup.sh
    
    • 然后,编辑如下信息
    #!/bin/bash
    # 以下配置信息请自己修改
    mysql_user="root" #MySQL备份用户
    mysql_password="MT123456" #MySQL备份用户的密码
    mysql_host="localhost"
    mysql_port="3306"
    
    mysql_charset="utf8" #MySQL编码
    backup_db_arr=("test_pxc") #要备份的数据库名称,多个用空格分开隔开 如("db1" "db2" "db3")
    
    backup_location=/var/lib/mysql/backup #备份数据存放位置,末尾请不要带"/",此项可以保持默认,程序会自动创建文件夹
    expire_backup_delete="ON" #是否开启过期备份删除 ON为开启 OFF为关闭
    expire_days=3 #过期时间天数 默认为三天,此项只有在expire_backup_delete开启时有效
    
    
    # 本行开始以下不需要修改
    backup_time=`date +%Y%m%d%H%M` #定义备份详细时间
    backup_Ymd=`date +%Y-%m-%d` #定义备份目录中的年月日时间
    backup_3ago=`date -d '3 days ago' +%Y-%m-%d` #3天之前的日期
    backup_dir=$backup_location/$backup_Ymd #备份文件夹全路径
    welcome_msg="Welcome to use MySQL backup tools!" #欢迎语
    
    # 判断MYSQL是否启动,mysql没有启动则备份退出
    mysql_ps=`ps -ef |grep mysql |wc -l`
    mysql_listen=`netstat -an |grep LISTEN |grep $mysql_port|wc -l`
    
    if [ [$mysql_ps == 0] -o [$mysql_listen == 0] ]; then
    echo "ERROR:MySQL is not running! backup stop!"
    exit
    else
    echo $welcome_msg
    fi
    
    
    # 连接到mysql数据库,无法连接则备份退出
    mysql -h$mysql_host -P$mysql_port -u$mysql_user -p$mysql_password <<end
    use mysql;
    select host,user from user where user='root' and host='localhost';
    exit
    end
     
    
    flag=`echo $?`
    if [ $flag != "0" ]; then
    echo "ERROR:Can't connect mysql server! backup stop!"
    exit
    else
    echo "MySQL connect ok! Please wait......"
    
    # 判断有没有定义备份的数据库,如果定义则开始备份,否则退出备份
    if [ "$backup_db_arr" != "" ];then
    #dbnames=$(cut -d ',' -f1-5 $backup_database)
    #echo "arr is (${backup_db_arr[@]})"
    for dbname in ${backup_db_arr[@]}
    do
    echo "database $dbname backup start..."
    
    `mkdir -p $backup_dir`
    `mysqldump -h$mysql_host -P$mysql_port -u$mysql_user -p$mysql_password $dbname --skip_add_locks --skip-lock-tables --default-character-set=$mysql_charset | gzip > $backup_dir/$dbname-$backup_time.sql.gz`
    flag=`echo $?`
    
    if [ $flag == "0" ];then
    echo "database $dbname success backup to $backup_dir/$dbname-$backup_time.sql.gz"
    else
    echo "database $dbname backup fail!"
    fi
    
    done
    else
    
    echo "ERROR:No database to backup! backup stop"
    exit
    
    fi
    
    # 如果开启了删除过期备份,则进行删除操作
    if [ "$expire_backup_delete" == "ON" -a "$backup_location" != "" ];then
    #`find $backup_location/ -type d -o -type f -ctime +$expire_days -exec rm -rf {} \;`
    `find $backup_location/ -type d -mtime +$expire_days | xargs rm -rf`
    echo "Expired backup data delete complete!"
    fi
    echo "All database backup success! Thank you!"
    exit
    fi
    
    • 然后,需要对脚本赋予权限
    chmod -R 755 backup.sh
    
    • 在需要进行数据备份时,执行指令即可
    ./backup.sh
    
    • 我的打印信息如下:
      ( 可以到生成的备份文件目录中查看检验)
    [root@localhost percona-xtradb-cluster.conf.d]# /var/lib/mysql/backup.sh
    Welcome to use MySQL backup tools!
    mysql: [Warning] Using a password on the command line interface can be insecure.
    MySQL connect ok! Please wait......
    database test_pxc backup start...
    mysqldump: [Warning] Using a password on the command line interface can be insecure.
    database test_pxc success backup to /var/lib/mysql/backup/2021-01-29/test_pxc-202101291158.sql.gz
    Expired backup data delete complete!
    All database backup success! Thank you!
    

    【提示】:

    • 如果是 PXC 集群很可能会报这种错误:
      Percona-XtraDB-Cluster prohibits use of LOCK TABLE/FLUSH TABLE <table> WITH READ LOCK with pxc_strict_mode = ENFORCING

      百度经验会发现,多数是类似这样的建议:【percona集群mysqldump导出数据库报错】
      但是我测试是不管用的
      我的做法比较简单,就是将 PXC 节点的配置参数 pxc_strict_mode 修改一下
      后期可以再改回去

    crontab 计划任务

    像去哪网、12306 都有一个时间段不提供服务,比如,可以设定在凌晨两点,进行自动备份数据

    crontab -e
    
    • 添加计划任务
      (每天凌晨两点进行备份操作)
    00 02 * * * /var/lib/mysql/backup.sh
    
    • crontab 计划任务在添加或修改后,需要保存并重启服务才能生效
    systemctl restart crond
    

    ▶▷ 总结

    • 如果不够合理
      还是需要自己做些优化的哦

    • 对于后期数据的还原其实只要找到备份文件
      解压缩得到一个 sql 文件
      执行指令语句即可

      mysql -u username -p [数据库名称] < [解压后的 .sql 文件]
      

    参考我的指令如下:

     mysql -uroot -p test_pxc < /var/lib/mysql/backup/2021-01-29/test_pxc-202101291229.sql
    

    【题外话】

    	   个人觉得
    	   这种方式倒是挺适合本地测试或者小型项目
    	   最简单的操作就是:
    	   可以进行 .sql 文件的导出操作嘛
    	   使用 Navicat 等数据库工具
    	   就可以很方便的导出数据
    	   并且
    	   导出操作也较为方便 
    

    在这里插入图片描述

    展开全文
  • windows下执行mysql冷备份前言由于业务需要,需要定时对mysql数据库进行备份,因为交易量不算太大,所以没用采用主从同步的方式,采用相对简单的冷备份。bat脚本这边有几个地方需要改动的地方,backup_dir 表示你要...

    windows下执行mysql冷备份

    前言

    由于业务需要,需要定时对mysql数据库进行备份,因为交易量不算太大,所以没用采用主从同步的方式,采用相对简单的冷备份。

    bat脚本

    这边有几个地方需要改动的地方,backup_dir 表示你要备份的文件路径,如果需要备份到其他机器,需要开启远程文件夹共享,uname用户名,这边不推荐用root,用其他账户备份也可以,password登录密码,port端口,dbname要导出的数据库名称。

    remain_day 这个变量表示你要保留多少天的备份,这边我是设置为7天,cd D:\mysql-5.7.17-winx64\bin 这个地方记得改成mysql文件夹bin路径,可以先手动执行下看看有没有备份文件生成,如果没问题可以开始配置定时任务。

    rem today

    set day=%date:~0,4%%date:~5,2%%date:~8,2%

    rem save dir

    set backup_dir=D:\mysql-backup

    set uname=root

    set password=onepay@123

    set port=3306

    set dbname=onepay

    rem day for dmp file remaining

    set remain_day=7

    rem delete files before 7 days

    forfiles /p "%backup_dir%" /d -%remain_day% /c "cmd /c echo deleting @file ... && del /f @path"

    rem locate mysql_home/bin

    cd D:\mysql-5.7.17-winx64\bin

    d:

    rem export to dmp file, do not use root if not local mysql

    mysqldump -h 127.0.0.1 -P %port% -u %uname% -p%password% %dbname% --skip-lock-tables --single-transaction > %backup_dir%\%day%.sql

    创建执行任务

    打开 田-所有程序—附件—系统工具-任务计划程序

    2c197d9cb55478876a4fb69dd591a1cc.png

    创建任务

    a2d2fee1b58d0dadf3a954a26300d455.png

    在常规中输入任务名称

    b0088c72fc2343c9f5a19cdb6ba51678.png

    在操作中选择执行的bat文件

    444f617211e732d5e3c974641815401d.png

    在触发器中新建定时任务

    48e048801693cbba43399b92e5d30dc8.png

    新建完成

    9f83e408ecc619a983cbf9223abf35ca.png

    注意事项

    右键查看这个定时任务属性,有2个地方要勾选,不然待机或者其他用户登录的话会导致任务不能执行下去。

    6c9014d7c1860d2b63f9c65e2a4344f6.png

    还原dump文件

    mysqldump -uroot -ppassword dbname < dump.sql;

    展开全文
  • MYSQL冷备份 恢复

    2021-02-08 02:49:23
    MYSQL冷备份恢复1. SHOW VARIABLES LIKE '%data%' 查看datadir目录,这就是所有数据的备份目录,好像只有innodb的可以直接覆盖备份2. 停掉MYSQL服务,然后整个目录打包3. 到另一台win电脑上,同样的,找到那台电脑的...
  • MySQL冷备份

    2021-01-06 20:30:48
    我们要备份200G的MySQL数据,如果用dump备份是非常慢的,备简单暴力。 首先准备两台虚拟机 centos7 192.168.59.144 192.168.59.143 一、模拟一条数据 MariaDB [(none)]> create database dzw charset utf8; ...
  • mysql冷备份

    千次阅读 2019-06-01 18:12:05
    方法1. 注意如果 ...1.如下错误添加:–set-gtid-purged=OFF mysql5.6以后版本 2.错误如下 解决办法 虽然还有错误但是可以导出数据 原始脚本下载: 链接:https://pan.baidu.com/s/1wNoZq...
  • 3、MySQL冷备份及恢复

    2020-10-21 20:13:48
    冷备份可以称为 Offline Backup(离线备份)。这种备份最为简单,一般只需要复制相关的数据库物理文件到另外的位置即可。 由于 MySQL 服务器中的数据文件是基于磁盘的文本文件,所以最简单、最直接的备份操作,就是...
  • MySQL冷备份恢复

    2019-10-23 13:47:54
    选择和备份的数据库相同的数据库版本,进行绿色安装。 拷贝备份的数据,同时将my.ini文件拷贝一份。 my.ini放在绿色安装的目录下。 [mysqld] #绿色安装的MySQL路径 basedir="C:/Users/Me/Desktop/test/mysql-5....
  • 冷备份主要通过复制相关数据文件来实现,下面主要介绍 MyISAM 和 InnoDB 存储引擎需要备份什么物理文件。 MyISAM存储引擎 MyISAM 存储引擎的所有数据默认存放在 C:/ProgramData/MySQL/MySQL Server 5.7/Data 路径下...
  • MySQL冷备份过程

    千次阅读 2016-07-29 10:17:38
    冷备份实际上是最简单的备份方式(好吧,第一次我就差点把数据库搞崩溃了),但由于要求停止MySQL服务来进行备份和恢复,并且只能完整备份,所以实用性并不高。 备份 首先,进入数据库并找出数据文件存放目录: ...
  • MySQL 冷备份 恢复 (兼创建)安装mariaDB 数据库数据目录为/mysql/date新机器环境为centos 7,会自带安装mariadb,首先卸载mariadb[root@localhost ~]# rpm -qa|grep mariadbmariadb-libs-5.5.60-1.el7_5.x86_64[root...
  • 在用windows时,转存mysql我都是用navicat,登录远程数据库, 然后用图形界面转存sql。 在linux下,如何做呢? 1.linux下转存sql文件 表级别备份 mysqldump [OPTIONS] [database] [tables] 库级别备份 ...
  • bitsCN.commysql数据库冷备份时需要注意冷备份冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。冷备份是将关键性文件拷贝到另外位置的一种说法。的优点是: ...
  • MySQL主从配置 一:主机 使用Ubuntu里的MySQL作为主机,修改配置信息 $ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf # 以下几行都是被注释的,我们把#号去掉,让配置生效 general_log_file = /var/log/mysql/...
  • 进入 mysql数据库冷备份时需要注意 冷备份冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。冷备份是将关键性文件拷贝到另外位置的一种说法。 的优点是: 1.是非欢迎进入...
  • #!/usr/bin/env bash#########数据库基础信息#############DB_HOST=127.0.0.1 ----本机DB_NAME=$1 ----要备份的库名DB_USER=root ----用户名DB_PASS=root ----密码DATE=`date +%Y%m%d%...
  • 冷备份(off, 慢, 时间点上恢复)冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。冷备份是将关键性文件拷贝到另外位置的一种说法。对于备份数据库信息而言,冷备份是最快和最...
  • (1)热备份、温备份、冷备份 (根据服务器状态) 热备份:读、写不受影响; 温备份:仅可以执行读操作; 冷备份:离线备份;读、写操作均中止; (2)物理备份与逻辑备份 (从对象来分) 物理备份:复制...
  • 主要介绍了MySQL备份与恢复之备,备一般需要定制计划,比如什么时候做备份,每次对哪些数据进行备份等等,对备感兴趣的小伙伴们可以参考一下
  • mysql之数据库备份备份备份类型冷、温、热备份物理和逻辑备份冷备份操作 备份 备份类型 完全备份,部分备份 完全备份:整个数据集 部分备份:只备份数据子集,如部分库或表 完全备份、增量备份、差异备份 增量备份:...
  • mysql冷热备份

    2012-11-29 17:07:11
    冷备份要停服务操作,直接考备数据文件就可完成,回复时要应该属主和权限(直接复制回来就行了),安全性高,易操作。 以上为基本特点大家可以跟自己不同的情况进行选用!!! 转载于:https://bl...
  • 一、按照数据库的运行状态分类:(1) 热备:在数据库运行时,直接进行备份,对运行的数据库没有影响(2) 备:在数据库停止运行的时候进行备份,这种备份方式最为简单,只需要拷贝数据库物理文件即可。(3) 温备:同样...
  • 主要介绍了linux系统下实现MySQL主从热备份

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,717
精华内容 5,486
关键字:

mysql如何冷备份

mysql 订阅