精华内容
下载资源
问答
  • iOS备份文件如何删除 电脑上有安装iTunes软件时当我们将苹果...互盾苹果恢复大师找回 一借助iTunes删除备份文件 1运行iTunes软件进入iTunes的偏好设置 2在偏好设置顶部选择设备选项卡这时我们便可以看到存储在电脑上的
  • 一、备份数据库 1.创建要备份到的文件夹用(我的是/home/backup/mysql下) mkdir 文件夹名 或者用 mkdir -p /home/backup/mysq 2.创建一个文件保存备份(我就在mysql下创建了一个sql_package) mkdir sql_package ...

    一、备份数据库
    1.创建要备份到的文件夹用(我的是/home/backup/mysql下)

    mkdir  文件夹名
    或者用
    mkdir -p /home/backup/mysq
    

    2.创建一个文件保存备份(我就在mysql下创建了一个sql_package)

    mkdir sql_package
    

    3.创建脚本文件

    vim mysql_backup.sh
    

    在里面写上

    #!/bin/bash
    #每天早上4点, mysql备份数据
    #chmod u+rwx  mysql_backup.sh
    #crontab -e
    #0 1 * * * /home/backup/mysql/mysql_backup.sh
    #base_dir 公共路径
    base_dir="/home/backup/mysql"
    #日志地址
    mysql_backup_log="${base_dir}/mysql_backup.log"
    #备份地址
    backup_path="${base_dir}/sql_package"
    #当前日期
    date=$(date +"%Y-%m-%d")
    #备份的文件名
    filename=$backup_path/$date.sql.gz
    
    #打印日志
    echo "开始备份,备份日期: $(date +'%Y-%m-%d %H:%M:%S')" >> "$mysql_backup_log"
    #back up备份全部并压缩
    /usr/bin/mysqldump  --add-drop-table --lock-tables  --all-databases --compact > $filename
    #打印日志
    echo "备份成功,备份路径: $filename" >> "$mysql_backup_log"
    
    

    /usr/bin/mysqldump --add-drop-table --lock-tables --all-databases --compact > $filename 以前的样子是
    mysqldump -u账号 -p密码 -host localhost --add-drop-table --lock-tables --all-databases --compact > $filename
    因为mysql是8.0的 -p不能直接出现,不然会出现警告,
    mysqldump: [Warning] Using a password on the command line interface can be insecure.
    虽然还是能备份,但我有点强迫症,我修改了my.cnf
    如果你还是要用以前的,还是可以

    4.进入配置文件

    vim /etc/my.cnf
    

    添加或修改

    [mysqldump]
    host=localhost
    user=账号
    password=密码
    

    5.添加权限

    chmod u+rwx mysql_backup.sh
    

    6.现在可以备份

    ./mysql_backup.sh
    

    二、删除备份
    1.进入/home/backup/mysql目录
    2.创建 mysql_backup_remove.sh脚本

    vim  mysql_backup_remove.sh
    
    展开全文
  • 批量执行SQL SERVER数据库的备份恢复删除,对于用友T3、T6数据库在删除时支持年度或整个账套,并可同时删除对应的账套参数信息。 适用于在重做系统或更换电脑时,需要进行大量数据的备份恢复操作。 如果数据库...
  • 数据备份恢复、系统备份恢复

    万次阅读 2018-04-17 22:56:58
    数据备份恢复、系统备份恢复一、数据备份恢复1、什么是备份备份,即另外准备一– 为应付文件、数据丢失或损坏等可能出现的意外情况,将电子计算机存储设备中的数据复制到大容量存储设备中2、备份对象的类别...

    数据备份与恢复、系统备份与恢复

    一、数据备份与恢复

    1、什么是备份

    备份,即另外准备一

    – 为应付文件、数据丢失或损坏等可能出现的意外情况,将电子计算机存储设备中的数据复制到大容量存储设备中

    2、备份对象的类别

    系统备份

    – 针对整个操作系统进行备份

    – 当操作系统损坏或者无法启动时,能通过备份快速恢复

    数据备份

    – 针对用户的数据文件、应用软件、数据库进行备份

    – 当这些数据丢失或损坏时,也能通过备份恢复

    3、数据冷备份

    • 什么是冷备份

    – 指需要备份的文档不被占用的情况下执行备份的方式

    – 比如将数据库软件关闭,对数据库资料做备份

    • 冷备份的优缺点

    – 优点:简单快速、容易恢复到某个时间点、方便维护

    – 缺点:只能恢复到某个时间点、备份期间数据不便正常使用

    4、数据热备份

    • 什么是热备份

    – 指执行备份时不影响被备份文档正常使用的的方式

    – 比如数据库软件正运行,对数据库资料做备份

    • 热备份的优缺点

    – 优点:备份时间短、不影响数据使用、可达秒级恢复

    – 缺点:所有操作都会同步,包括“删除”

    二、Win10数据备份与还原

    1、Win10文件备份

       ① 开始 -- 设置 -- 更新和安全 -- 备份 -- 转到备份和还原

    -- 设置备份

       ② 指定保存的位置、需要备份的内容

       ③ 检查、保存设置并运行备份

       ④ 等待备份完成

    2、Win10文件备份还原

       ① 开始 -- 设置 -- 更新和安全 -- 备份 -- 转到备份和还原

    -- 还原我的文件

           ② 浏览文件夹 -- 找到并添加此前的备份 -- 选择要还原的位置(原始位置或其他位置)-- 执行还原操作

        3、专用数据恢复

               使用第三方的专用数据恢复软件,能针对删除、格式化、重分区

    等深度损坏执行恢复操作,比如EasyRecovery易恢复、FinalDate

    超级恢复、360文件恢复器、金山数据恢复等

    三、系统备份与恢复

         1、备份Win10系统

         1)常见的系统备份工具

           大都是基于Symantec的Ghost克隆技术实现

           -- U深度一键还原精灵

           -- 一键还原Onekey、一键ghost 等等

    2、一键还原工作方式

    1)U深度一键还原精灵、一键还原Onekey -- 在现有的Win10环境中运行,图形操作为主;

    2)一键ghost

        -- 硬盘版,为Win添加启动项,可支持独立运行环境

        -- U盘版,通过提前制作好的独立U盘启动

    3、制作Win10备份镜像


        等待备份过程


        检查备份结果

    实际备份过程中会执行压缩处理

    备份文件小远小于系统盘的数据大小。


       4、恢复Win10系统

       1)准备好系统备份(实现一键还原的前提条件)

            -- 提前制作了可用的系统备份文件(通常为.gho格式)

            -- 有些一键还原工具支持自定义备份位置


        2)恢复Win10操作系统(执行一键还原操作)

             -- 根据提示选择备份位置

             -- 确认后重启执行

        3)等待恢复过程


        4)确认恢复结果

             恢复完成后

             -- 系统盘C:\数据会还原到备份时的状态

             -- 后增加的数据都会丢失(还原有风险,操作需谨慎!!!!

    、磁盘及文件系统

    1、基本磁盘

    -- 传统磁盘,默认是基本磁盘

    -- 磁盘大小固定扩展不方便,数量受限

    2、动态磁盘(卷)windows 2000及其以后的操作系统支持动态磁盘,

    比基本磁盘有较强的可扩展性高可靠性高读写性能

    基本磁盘概述

    1、主分区:引导操作系统

    (基本磁盘最多建立3个主分区,只有一个主分区处于激活状态)

    2、扩展分区不能直接存储文件需要细分多个逻辑分区)。

       “扩展分区 + 主分区”数量不超过4个

    3、逻辑分区:在扩展分区内部划分逻辑分区(不能直接启动操作系统)

    4、基本磁盘的管理操作

       鼠标右击此电脑 -- 管理 -- 存储 -- 磁盘管理 -- 选中磁盘的未分配空间 --

    右键操作(新建简单卷)-- 选择大小 -- 确定

       选中磁盘的已建立的分区 -- 右击 -- 格式化

    1)创建主分区    2)创建展分区     3)创建逻辑分区

    六、动态磁盘

    1、鼠标右击基本磁盘 -- 转换为动态磁盘

    (除非删除所有简单卷,否则动态磁盘不能转为基本磁盘)

    2、新建简单卷

    3、扩展简单卷

    4、新建跨区卷

    需要至少两块动态磁盘

    容量是组成跨区卷的所有磁盘空间总和

    5、新建带区卷

    1成员容量大小是相同的;(2数据被均匀以带区形式跨磁盘交替分配

    3需要至少两块动态磁盘;(4容量是组成带区卷所有磁盘空间总和

    6、新建镜像卷

    1具备故障转换功能     2在两个物理磁盘上复制数据的容错卷

    3只需两块大小相同的磁盘;(4容量是组成镜像卷所有磁盘空间和的一半

    7、修复镜像卷

    步骤:

    ① 关机取出故障磁盘换入新磁盘② 启动计算机, 存储— 磁盘管理;

    ③ 初始化磁盘转换成动态磁盘

    ④ 右击之前镜像盘盘符— 选择删除镜像—选择丢失 — 删除镜像 — 确定

    右击失败的镜像卷—添加镜像

    8、新建RAID-5卷

    数据分散写入硬盘并建立一份奇偶校验数据信息

    具有较高磁盘利用率、读写性和可靠性

    至少需要三块磁盘空间相同的硬盘

    容量为磁盘数量-1

    9、修复RAID-5卷

    步骤:

    关机取出故障磁盘换入新磁盘

    启动计算机,管理工具— 计算机管理— 存储 — 磁盘管理

    初始化磁盘转换成动态磁盘

    右击之前RAID-5卷—修复卷

    、五种动态磁盘类型的对比

           

     

     

     

     

     

    建立扩展分区 -- 也可用命令敲击

    ① 执行Win + R --- Cmd 命令

    ② diskpart

    ③ select disk + 磁盘区(1、2、3)

    ④ Create partition extended size = 磁盘大小(如300M)

    ⑤ Exit

    展开全文
  • RMAN删除备份

    千次阅读 2017-08-01 14:58:00
    会在RMAN资料库(RMAN Repository)中生成RMAN备份记录,默认情况下RMAN备份记录会被存放在目标数据库的控制文件中,如果配置了恢复目录(Recovery Catalog),那么该备份记录也会被存放到恢复目录中。 RMAN中的...

    删除备份--DELETE命令

    用于删除RMAN备份记录及相应的物理文件。当使用RMAN执行备份操作时,会在RMAN资料库(RMAN Repository)中生成RMAN备份记录,默认情况下RMAN备份记录会被存放在目标数据库的控制文件中,如果配置了恢复目录(Recovery Catalog),那么该备份记录也会被存放到恢复目录中。

    RMAN中的DELETE命令就是用来删除记录(某些情况下并非删除记录,而是打上删除标记),以及这些记录关联的物理备份片段。

    删除过期备份。当使用RMAN命令执行备份操作时,RMAN会根据备份冗余策略确定备份是否过期。

       1. RMAN> DELETE OBSOLETE;

    删除无效备份。首先执行CROSSCHECK命令核对备份集,如果发现备份无效(比如备份对应的数据文件损坏或丢失),RMAN会将该备份集标记为 EXPIRED状态。要删除相应的备份记录,可以执行DELETE EXPIRED BACKUP命令:

       1. RMAN> DELETE EXPIRED BACKUP;

    删除EXPIRED副本,如下所示:

       1. RMAN> DELETE EXPIRED COPY;

    删除特定备份集,如下所示:

       1. RMAN> DELETE BACKUPSET 19;

    删除特定备份片,如下所示:

       1. RMAN> DELETE BACKUPPIECE 'd:/backup/DEMO_19.bak';

    删除所有备份集,如下所示:

       1. RMAN> DELETE BACKUP;

    删除特定映像副本,如下所示:

       1. RMAN> DELETE DATAFILE COPY 'd:/backup/DEMO_19.bak';

    删除所有映像副本,如下所示:

       1. RMAN> DELETE COPY;

    在备份后删除输入对象,如下所示:

       1. RMAN> BACKUP ARCHIVELOG ALL DELETE INPUT; 
       2. RMAN> DELETE BACKUPSET 22 FORMAT = "d:/backup/%u.bak" DELETE INPUT; 

    转载于:https://www.cnblogs.com/hftian/p/7268601.html

    展开全文
  • 文章目录一、MySQL 完全备份1.1、数据库备份方式精讲1.1.1、数据库备份的重要性1.1.2、数据库备份的分类1.1.3、MySQL 完全备份概念解读1.2、物理冷备份恢复1.3、mysqldump 备份二、MySQL 完全恢复2.1、恢复整库...

    一、MySQL 完全备份

    1.1、数据库备份方式精讲

    1.1.1、数据库备份的重要性

    在生产环境中,数据的安全性是至关重要的,任何数据的丢失都可能产生严重的后果。数据库备份的重要性主要体现在:
    (1)提供系统的高可用性和灾难可恢复性,在数据库系统崩溃时,没有数据库备份就没法找到数据
    (2)使用数据库备份还原数据库,是数据库崩溃时提供数据恢复最小代价的最优方案,如果让用户重新添加数据,代价未免太大。
    (3)没有数据就没有一切,数据库备份是一整防范灾难的强力手段。

    数据丢失的原因有
    (1)程序错误
    (2)人为错误(大部分原因)
    (3)计算机失败
    (4)磁盘失败
    (5)灾难(如火灾,地震)和偷窃

    1.1.2、数据库备份的分类

    从物理和逻辑的角度,备份可分为以下几类
    1、物理备份:
    冷备份:在数据关闭的状态下运行
    热备份:在数据库运行的状态时进行备份操作,该备份方法依赖数据库日志文件。
    温备份:数据局锁定表格(可以读不可以写)的状态年备份数据库

    2、逻辑备份:
    逻辑备份是对数据库逻辑组件(如表等数据库对象)的备份,表示为逻辑数据结构(create database、create tabale)
    和内容(insert语句或分割文本文件)的信息

    从数据库的备份策略角度,备份可分为完全备份,差异备份和增量备份
    1、完全备份:
    每次对数据库进行完整的备份,即对整个数据的备份,数据库结构和文件结构备份。保存的是完整时刻的数据库
    2、差异备份
    备份那些自从上次完整备份之后被修改过的所有文件,备份的时间节点是从上次完整备份起,备份的数据量会越来越大,
    恢复数据只是恢复上次的完整备份和最近一次的差异备份。
    3、增量备份
    只有那些在上次完全备份或者增量备份后被修改的文件才会备份,以上次完成整备份,或者上次的增量备份的时间点,
    仅备份这之间的数据变化,因而备份的数据量小,占用空间小,备份数据速度快,但恢复时候,需要从上次的完整备份
    开始到最后一次的增量备份之间所有的增量依次恢复,如中间某次的恢复数据备份损坏,将导致数据的丢失。

    1.1.3、MySQL 完全备份概念解读

    MySQL完全备份
    完全备份是对整个数据库的备份、数据库结构和文件结构的备份
    完全备份保存的是备份完成时刻的数据库
    完全备份是增量备份的基础

    优点:
    安全性高
    备份与恢复操作简单方便

    缺点:
    数据存在大量的重复
    占用大量的备份空间,空间利用率低
    备份与恢复时间长

    完全备份MySQL数据库方式:
    (1)物理冷备份:直接打包数据库文件夹,如/usr/local/mysql/data
    如:tar jcvf /opt/mysql-$(date +%F).tar.gz /usr/local/mysql/data
    (2)使用专用备份工具 mysqldump

    mysqldump命令是MySQLI自带的备份工具,相当方便对MySQL进行备份
    通过该命令工具可以将指定的库、表或全部的库导出为SQL脚本,在需要恢复时可进行数据恢复

    1.2、物理冷备份与恢复

    (1)数据库备份

    [root@localhost ~]# systemctl stop mysqld
    [root@localhost ~]# mkdir /backup
    [root@localhost ~]# tar zcf /backup/mysql_all-$(date +%F).tar.gz /usr/local/mysql/data/
    tar: Removing leading `/' from member names
    [root@localhost ~]# cd /backup/
    [root@localhost backup]# ll
    total 1384
    -rw-r--r-- 1 root root 1413885 Sep 13 02:19 mysql_all-2020-09-13.tar.gz
    

    (2)模拟故障

    [root@localhost backup]# mkdir /bak                 在根下新建bak目录
    [root@localhost backup]# mv /usr/local/mysql/data/ /bak/       将目录data数据移动到bak里面去       
    [root@localhost backup]# cd /usr/local/mysql/          仅mysql目录查看data
    [root@localhost mysql]# ll                             查看后data目录被移走 ,模拟故障成功
    total 64
    drwxr-xr-x  2 mysql mysql  4096 Sep 12 22:45 bin
    -rw-r--r--  1 mysql mysql 17987 Sep 13  2017 COPYING
    -rw-r--r--  1 mysql mysql 17987 Sep 13  2017 COPYING-test
    drwxr-xr-x  2 mysql mysql    55 Sep 12 22:45 docs
    drwxr-xr-x  3 mysql mysql  4096 Sep 12 22:45 include
    drwxr-xr-x  4 mysql mysql   191 Sep 12 22:45 lib
    drwxr-xr-x  4 mysql mysql    30 Sep 12 22:45 man
    drwxr-xr-x 10 mysql mysql  4096 Sep 12 22:45 mysql-test
    -rw-r--r--  1 mysql mysql  2478 Sep 13  2017 README
    -rw-r--r--  1 mysql mysql  2478 Sep 13  2017 README-test
    drwxr-xr-x 28 mysql mysql  4096 Sep 12 22:45 share
    drwxr-xr-x  2 mysql mysql    90 Sep 12 22:45 support-files
    drwxr-xr-x  3 mysql mysql    17 Sep 12 22:45 usr
    

    (3)数据库恢复

    [root@localhost mysql]# mkdir /restore
    [root@localhost mysql]# tar xzvf /backup/mysql_all-2020-09-13.tar.gz -C /restore/
    [root@localhost mysql]# mv /restore/usr/local/mysql/data/ /usr/local/mysql/
    [root@localhost mysql]#  systemctl start mysqld
    [root@localhost mysql]#  cd /usr/local/mysql/ 
    [root@localhost mysql]# ll
    total 72
    drwxr-xr-x  2 mysql mysql  4096 Sep 12 22:45 bin
    -rw-r--r--  1 mysql mysql 17987 Sep 13  2017 COPYING
    -rw-r--r--  1 mysql mysql 17987 Sep 13  2017 COPYING-test
    drwxr-x---  5 mysql mysql   161 Sep 13 02:27 data
    drwxr-xr-x  2 mysql mysql    55 Sep 12 22:45 docs
    drwxr-xr-x  3 mysql mysql  4096 Sep 12 22:45 include
    drwxr-xr-x  4 mysql mysql   191 Sep 12 22:45 lib
    drwxr-xr-x  4 mysql mysql    30 Sep 12 22:45 man
    -rw-r-----  1 mysql mysql     6 Sep 13 02:27 mysqld.pid
    srwxrwxrwx  1 mysql mysql     0 Sep 13 02:27 mysql.sock
    -rw-------  1 mysql mysql     6 Sep 13 02:27 mysql.sock.lock
    drwxr-xr-x 10 mysql mysql  4096 Sep 12 22:45 mysql-test
    -rw-r--r--  1 mysql mysql  2478 Sep 13  2017 README
    -rw-r--r--  1 mysql mysql  2478 Sep 13  2017 README-test
    drwxr-xr-x 28 mysql mysql  4096 Sep 12 22:45 share
    drwxr-xr-x  2 mysql mysql    90 Sep 12 22:45 support-files
    drwxr-xr-x  3 mysql mysql    17 Sep 12 22:45 usr
    

    data目录找回,数控库恢复成功

    1.3、mysqldump 备份

    mysqldump命令是MySQLI自带的备份工具,相当方便对MySQL进行备份
    通过该命令工具可以将指定的库、表或全部的库导出为SQL脚本,在需要恢复时可进行数据恢复

    备份操作及例子
    (1)备份单个库

    语法:
    mysqldump -u 用户名 -p [密码] [选项] [库名] > /备份路径/备份文件名
    例如:
    [root@localhost /]# mysqldump -u root -p --databases auth >auth.sql 
    

    (2)备份多个库

    语法:
    mysqldump -u 用户名 -p [密码] [选项] --databases 库名1 [库名2] ...  > /备份路径/备份文件名
    例如:
    [root@localhost /]# mysqldump -u root -p --databases auth mysql > /backup/databases-auth-mysql.sql
    

    (3)对所有库完全备份

    语法:
    mysqldump -u 用户名 -p [密码] [选项] --all-databases > /备份路径/备份文件名
    例如:
    [root@localhost /]# mysqldump -u root -p --all-databases > /backup/all-data.sql
    

    (4)使用mysqldump备份表的操作

    语法:
    mysqldump -u 用户名 -p [密码] [选项] 数据库名 表名 > /备份路径/备份文件名
    例如:
    [root@localhost /]# mysqldump -u root -p mysql users >mysql-users.sql 
    

    (5)使用mysqldump备份表的结构

    语法:
    mysqldump -u 用户名 -p [密码] [选项] -d 数据库名 表名 > /备份路径/备份文件名
    例如:
    [root@localhost /]# mysqldump -u root -p -d mysql users >mysql-users.sql
    

    二、MySQL 完全恢复

    2.1、恢复整库操作

    使用 mysqldump命令导出的SQL备份脚本,在进行数据恢复时可使用以下方法导入
    source命令
    mysql命令

    2.1.1、source 命令整库恢复

    用 source恢复数据库的步骤
    (1)对库进行备份操作
    (2)假设数据损坏,删除所属数据库
    (3)登录到 MySQL数据库,执行 source备份sql脚本的路径(绝对路径)

    例如

    mysql > source /backup/all-data.sql
    '//source命令在mysql库中使用'
    

    2.1.2、MySQL 命令整库恢复

    使用 mysql恢复数据库
    (1)对库进行备份操作
    (2)假设数据损坏,删除所属数据库
    (3)不登录MySQL,使用mysql命令恢复,命令格式如下

    mysql -u 用户名 -p [密码] < 库备份脚本的路径
    

    此时有损坏数据的数据库已删除,需要先创建再进行恢复操作,否则会报错

    2.2、恢复表操作

    恢复表时同样可以使用 source或者mysql命令进行

    source恢复表的操作与恢复库的操作相同

    当备份文件中只包含表的备份,而不包括创建库的语句时,必须指定库名,且目标库必须存在

    语法
    mysql -u 用户名 -p [密码] < 表备份脚本的路径
    例如
    mysql -u root -p mysql < mysql-users.sql
    

    在生产环境中,可以使用shell脚本自动实现定期备份

    2.3、MySQL 备份思路

    定期实施备份,制定备份计划或者策略,并严格遵守

    除了进行完全备份,开启 MySQL服务器的日志功能是很重要的

    完全备份加上日志,可以对 MySQL进行最大化还原

    使用统一的和易理解的备份文件名称

    不要使用 backup1、 backup2等这样没有意义的名字

    推荐使用库名或者表名加上时间的命名规则

    三、MySQL 增量备份

    3.1、增量备份的概念

    MySQL增量备份是:
    只有那些在上次完全备份或者增量备份后被修改的文件才会被备份

    增量备份就是备份自上一次备份之后增加或变化的文件或者内容

    使用mysqldump命令进行完全备份存在的问题:
    备份数据中有重复数据

    备份时间与恢复时间长

    增量备份特点:
    没有重复数据,效率高,空间利用率最大化

    备份量不大,时间短

    恢复麻烦:需要上次完全备份及完全备份之后所有的增量备份才能恢复,而且要对所有增量备份进行逐个反推恢复

    安全性较低

    3.2、增量备份方法

    MySQL没有提供直接的增量备份方法
    可以通过 MySQL提供的二进制日志( binary logs)间接实现增量备份

    MySQL的配置文件的[mysqld]项中加入log-bin=/usr/local/mysql/data/mysql-bin,然后重启mysqld服务。
    二进制日志文件的默认路径为/usr/local/mysql/data
    [root@localhost ~]# vim /etc/my.cnf
    '//在[mysqld]项中加入配置 log-bin=/usr/local/mysql/data/mysql-bin '
    ...省略内容
    [mysqld]
    user = mysql
    basedir = /usr/local/mysql
    datadir=/usr/local/mysql/data
    port = 3306
    character_set_server=utf8
    pid-file = /usr/local/mysql/mysqld.pid
    socket = /usr/local/mysql/mysql.sock
    server-id = 1
    log-bin=/usr/local/mysql/data/mysql-bin 	'//添加此句'
    ...省略内容
    [root@localhost ~]# systemctl restart mysqld	'//重启服务'
    [root@localhost ~]# ls /usr/local/mysql/data/
    ...省略内容
    mysql-bin.000001	'//发现已经生成了二进制文件,设置成功'
    ...省略内容
    

    MySQL二进制日志对备份的意义:
    二进制日志保存了所有更新或者可能更新数据库的操作

    二进制日志在启动 MySQL服务器后开始记录,并在文件达到max_binlog_size所设置的大小或者接收到 flush-logs命令后重新创建新的日志文件

    语法
    mysqladmin -u 用户名 -p [密码] flush-logs
    

    只需定时执行 flush-logs方法重新创建新的日志,生成二进制文件序列,并及时把这些旧的日志保存到安全的地方就完成了一个时间段的增量备份

    四、MySQL 增量恢复

    4.1、增量恢复方法

    增量恢复的步骤:
    添加数据–进行完全备份–录入新的数据–进行增量备份–模拟故障–恢复操作

    增量恢复方法:
    (1)一般恢复
    将所有备份的二进制日志内容全部恢复

    mysqlbinlog [--no-defaults] 增量备份文件 | mysql -u 用户名 -p
    

    (2)基于位置恢复
    数据库在在某一时间点可能既有错误的操作和正确的操作
    可以基于精准的位置跳过错误的位置

    1、恢复数据到指定位置
    mysqlbinlog --stop-position=’操作 id’ 二进制日志 |mysql -u 用户名 -p 密码
    
    
    2、从指定的位置开始恢复数据
    mysqlbinlog --start-position=’操作 id’ 二进制日志 |mysql -u 用户名 -p 密码
    

    (3)基于时间点恢复
    跳过某个发生错误的时间点实现数据恢复

    1、从日志开头截止到某个时间点的恢复
    mysqlbinlog [--no-defaults] --stop-datetime=’年-月-日 小时:分钟:秒’ 二进制日志 | mysql -u 用户名 -p 密码
    
    2、从某个时间点到日志结尾的恢复
    mysqlbinlog [--no-defaults] --start-datetime=’年-月-日 小时:分钟:秒’ 二进制日志 | mysql -u 用户名 -p 密码
    
    3、从某个时间点到某个时间点的恢复
    mysqlbinlog [--no-defaults] --start-datetime=’年-月-日 小时:分钟:秒’ --stop-datetime=’年-月-日小时:分钟:秒’ 二进制日志 | mysql -u 用户名 -p 密码
    

    4.2、企业恢复案例

    4.2.1、开启二进制日志文件

    [root@localhost ~]# vim /etc/my.cnf
    ...省略内容
    [mysqld]
    user = mysql
    basedir = /usr/local/mysql
    datadir=/usr/local/mysql/data
    port = 3306
    character_set_server=utf8
    pid-file = /usr/local/mysql/mysqld.pid
    socket = /usr/local/mysql/mysql.sock
    server-id = 1
    log-bin=/usr/local/mysql/data/mysql-bin 	'//添加此句'
    ...省略内容
    [root@localhost ~]# systemctl restart mysqld	'//重启服务'
    [root@localhost ~]# ls /usr/local/mysql/data/
    ...省略内容
    mysql-bin.000001	'//发现已经生成了二进制文件,设置成功'
    ...省略内容
    

    4.2.2、创建库和表

    [root@localhost ~]#  mysql -u root -p
    Enter password: 
    
    mysql> create database client;
    Query OK, 1 row affected (0.00 sec)
    
    mysql> use client;
    Database changed
    mysql>  create table user_info(身份证 char(20) not null,姓名 char(20) not null,姓别 char(4),用户ID号 char(10) not null,资费 int(10));
    Query OK, 0 rows affected (0.01 sec)
    
    mysql>  insert into user_info values('000001','张三','男','011','11');
    Query OK, 1 row affected (0.01 sec)
    
    mysql>  insert into user_info values('000002','李四','女','012','99');
    Query OK, 1 row affected (0.00 sec)
    
    mysql> insert into user_info values('000003','王五','女','013','22');
    Query OK, 1 row affected (0.01 sec)
    
    mysql>  select * from user_info;
    +-----------+--------+--------+-------------+--------+
    | 身份证    | 姓名   | 姓别   | 用户ID号    | 资费   |
    +-----------+--------+--------+-------------+--------+
    | 000001    | 张三   || 011         |     11 |
    | 000002    | 李四   || 012         |     99 |
    | 000003    | 王五   || 013         |     22 |
    +-----------+--------+--------+-------------+--------+
    3 rows in set (0.00 sec)
    
    mysql>  show master logs;
    +------------------+-----------+
    | Log_name         | File_size |
    +------------------+-----------+
    | mysql-bin.000001 |      1492 |
    +------------------+-----------+
    1 row in set (0.00 sec)
    

    4.2.3、进行一次完全备份

    mysql> LOCK TABLES user_info WRITE;                       #####备份前需要将数据库加读锁,防止数据在备份时写入。
    Query OK, 0 rows affected (0.01 sec)
    mysql> exit
    Bye
    [root@localhost ~]# mkdir /mysql_bak 
    [root@localhost ~]# mysqldump -u root -p client user_info >/mysql_bak/client_userinfo-$(date +%F).sql 
    Enter password: 
    [root@localhost ~]# ll /mysql_bak/
    total 4
    -rw-r--r-- 1 root root 2055 Sep 13 04:19 client_userinfo-2020-09-13.sql
    [root@localhost ~]# mysqladmin -u root -p flush-logs
    Enter password: 
    [root@localhost ~]#  ll /usr/local/mysql/data/
    total 122928
    -rw-r----- 1 mysql mysql       56 Sep 12 23:14 auto.cnf
    drwxr-x--- 2 mysql mysql       62 Sep 13 04:14 client
    -rw-r----- 1 mysql mysql      357 Sep 13 04:12 ib_buffer_pool
    -rw-r----- 1 mysql mysql 12582912 Sep 13 04:15 ibdata1
    -rw-r----- 1 mysql mysql 50331648 Sep 13 04:15 ib_logfile0
    -rw-r----- 1 mysql mysql 50331648 Sep 12 23:14 ib_logfile1
    -rw-r----- 1 mysql mysql 12582912 Sep 13 04:19 ibtmp1
    drwxr-x--- 2 mysql mysql     4096 Sep 12 23:14 mysql
    -rw-r----- 1 mysql mysql     1539 Sep 13 04:20 mysql-bin.000001
    -rw-r----- 1 mysql mysql      154 Sep 13 04:20 mysql-bin.000002
    -rw-r----- 1 mysql mysql       78 Sep 13 04:20 mysql-bin.index
    drwxr-x--- 2 mysql mysql     8192 Sep 12 23:14 performance_schema
    drwxr-x--- 2 mysql mysql     8192 Sep 12 23:14 sys
    

    4.2.4、继续录入新的内容并进行增量备份

    [root@localhost ~]# mysql -u root -p
    Enter password: 
    mysql> unlock tables;
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> use client;
    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
    mysql>  insert into user_info values('000004','赵六','男','014','33');
    Query OK, 1 row affected (0.00 sec)
    
    mysql> insert into user_info values('000005','孙七','男','015','66');
    Query OK, 1 row affected (0.00 sec)
    
    mysql>  select * from user_info;
    +-----------+--------+--------+-------------+--------+
    | 身份证    | 姓名   | 姓别   | 用户ID号    | 资费   |
    +-----------+--------+--------+-------------+--------+
    | 000001    | 张三   || 011         |     11 |
    | 000002    | 李四   || 012         |     99 |
    | 000003    | 王五   || 013         |     22 |
    | 000004    | 赵六   || 014         |     33 |
    | 000005    | 孙七   || 015         |     66 |
    +-----------+--------+--------+-------------+--------+
    5 rows in set (0.00 sec)
    
    mysql> exit
    Bye
    [root@localhost ~]# mysqladmin -u root -p flush-logs
    Enter password: 
    [root@localhost ~]#  ll /usr/local/mysql/data
    total 122932
    -rw-r----- 1 mysql mysql       56 Sep 12 23:14 auto.cnf
    drwxr-x--- 2 mysql mysql       62 Sep 13 04:14 client
    -rw-r----- 1 mysql mysql      357 Sep 13 04:12 ib_buffer_pool
    -rw-r----- 1 mysql mysql 12582912 Sep 13 04:23 ibdata1
    -rw-r----- 1 mysql mysql 50331648 Sep 13 04:23 ib_logfile0
    -rw-r----- 1 mysql mysql 50331648 Sep 12 23:14 ib_logfile1
    -rw-r----- 1 mysql mysql 12582912 Sep 13 04:19 ibtmp1
    drwxr-x--- 2 mysql mysql     4096 Sep 12 23:14 mysql
    -rw-r----- 1 mysql mysql     1539 Sep 13 04:20 mysql-bin.000001
    -rw-r----- 1 mysql mysql      797 Sep 13 04:24 mysql-bin.000002
    -rw-r----- 1 mysql mysql      154 Sep 13 04:24 mysql-bin.000003
    -rw-r----- 1 mysql mysql      117 Sep 13 04:24 mysql-bin.index
    drwxr-x--- 2 mysql mysql     8192 Sep 12 23:14 performance_schema
    drwxr-x--- 2 mysql mysql     8192 Sep 12 23:14 sys
    [root@localhost ~]#  cp /usr/local/mysql/data/mysql-bin.000002 /mysql_bak/
    

    4.2.5、模拟误操作删除 user_info 表

    [root@localhost ~]# mysql -u root -p -e 'drop table client.user_info'
    Enter password: 
    [root@localhost ~]# mysql -u root -p -e 'select * from client.user_info'
    Enter password: 
    ERROR 1146 (42S02) at line 1: Table 'client.user_info' doesn't exist
    

    4.2.6、恢复操作

    [root@localhost ~]# mysql -u root -p client < /mysql_bak/client_userinfo-2020-09-13.sql 
    Enter password: 
    [root@localhost ~]# mysql -u root -p -e'select * from client.user_info'
    Enter password: 
    +-----------+--------+--------+-------------+--------+
    | 身份证    | 姓名   | 姓别   | 用户ID号    | 资费   |
    +-----------+--------+--------+-------------+--------+
    | 000001    | 张三   || 011         |     11 |
    | 000002    | 李四   || 012         |     99 |
    | 000003    | 王五   || 013         |     22 |
    +-----------+--------+--------+-------------+--------+
    [root@localhost ~]#  mysqlbinlog --no-defaults /mysql_bak/mysql-bin.000002 |mysql -u root -p
    Enter password: 
    [root@localhost ~]# mysql -u root -p -e'select * from client.user_info'
    Enter password: 
    +-----------+--------+--------+-------------+--------+
    | 身份证    | 姓名   | 姓别   | 用户ID号    | 资费   |
    +-----------+--------+--------+-------------+--------+
    | 000001    | 张三   || 011         |     11 |
    | 000002    | 李四   || 012         |     99 |
    | 000003    | 王五   || 013         |     22 |
    | 000004    | 赵六   || 014         |     33 |
    | 000005    | 孙七   || 015         |     66 |
    +-----------+--------+--------+-------------+--------+
    

    4.2.7、基于位置增量恢复

    [root@localhost ~]# mysql -uroot -p -e 'drop table client.user_info' 
    Enter password: 
    [root@localhost ~]# mysql -uroot -p -e 'select * from client.user_info'
    Enter password: 
    ERROR 1146 (42S02) at line 1: Table 'client.user_info' doesn't exist
    [root@localhost ~]#  mysql -u root -p client < /mysql_bak/client_userinfo-2020-09-13.sql 
    Enter password: 
    [root@localhost ~]# mysql -u root -p -e'select * from client.user_info'
    Enter password: 
    +-----------+--------+--------+-------------+--------+
    | 身份证    | 姓名   | 姓别   | 用户ID号    | 资费   |
    +-----------+--------+--------+-------------+--------+
    | 000001    | 张三   | 男     | 011         |     11 |
    | 000002    | 李四   | 女     | 012         |     99 |
    | 000003    | 王五   | 女     | 013         |     22 |
    +-----------+--------+--------+-------------+--------+
    [root@localhost ~]# mysqlbinlog --no-defaults --base64-output=decode-rows -v /mysql_bak/mysql-bin.000002   //查看日志文件操作语句
    /*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
    /*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
    DELIMITER /*!*/;
    # at 4
    #200913  4:20:16 server id 1  end_log_pos 123 CRC32 0xaef64dac 	Start: binlog v 4, server v 5.7.20-log created 200913  4:20:16
    # at 123
    #200913  4:20:16 server id 1  end_log_pos 154 CRC32 0xfae802de 	Previous-GTIDs
    # [empty]
    # at 154
    #200913  4:23:12 server id 1  end_log_pos 219 CRC32 0x52177103 	Anonymous_GTID	last_committed=0	sequence_number=1	rbr_only=yes
    /*!50718 SET TRANSACTION ISOLATION LEVEL READ COMMITTED*//*!*/;
    SET @@SESSION.GTID_NEXT= 'ANONYMOUS'/*!*/;
    # at 219
    #200913  4:23:12 server id 1  end_log_pos 293 CRC32 0x484c2eb6 	Query	thread_id=6	exec_time=0	error_code=0
    SET TIMESTAMP=1599985392/*!*/;
    SET @@session.pseudo_thread_id=6/*!*/;
    SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/;
    SET @@session.sql_mode=1437073414/*!*/;
    SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
    /*!\C utf8 *//*!*/;
    SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=33/*!*/;
    SET @@session.lc_time_names=0/*!*/;
    SET @@session.collation_database=DEFAULT/*!*/;
    BEGIN
    /*!*/;
    # at 293
    #200913  4:23:12 server id 1  end_log_pos 359 CRC32 0x96d88d12 	Table_map: `client`.`user_info` mapped to number 219
    # at 359
    #200913  4:23:12 server id 1  end_log_pos 421 CRC32 0x50cd3e98 	Write_rows: table id 219 flags: STMT_END_F
    ### INSERT INTO `client`.`user_info`
    ### SET
    ###   @1='000004'
    ###   @2='赵六'
    ###   @3=''
    ###   @4='014'
    ###   @5=33
    # at 421
    #200913  4:23:12 server id 1  end_log_pos 452 CRC32 0xe3da063a 	Xid = 50
    COMMIT/*!*/;
    # at 452
    #200913  4:23:39 server id 1  end_log_pos 517 CRC32 0xfe6f3fd6 	Anonymous_GTID	last_committed=1	sequence_number=2	rbr_only=yes
    /*!50718 SET TRANSACTION ISOLATION LEVEL READ COMMITTED*//*!*/;
    SET @@SESSION.GTID_NEXT= 'ANONYMOUS'/*!*/;
    # at 517
    #200913  4:23:39 server id 1  end_log_pos 591 CRC32 0x03ab4ec3 	Query	thread_id=6	exec_time=0	error_code=0
    SET TIMESTAMP=1599985419/*!*/;
    BEGIN
    /*!*/;
    # at 591
    #200913  4:23:39 server id 1  end_log_pos 657 CRC32 0xa8be1bf8 	Table_map: `client`.`user_info` mapped to number 219
    # at 657
    #200913  4:23:39 server id 1  end_log_pos 719 CRC32 0x7a45b5fb 	Write_rows: table id 219 flags: STMT_END_F
    ### INSERT INTO `client`.`user_info`
    ### SET
    ###   @1='000005'
    ###   @2='孙七'
    ###   @3=''
    ###   @4='015'
    ###   @5=66
    # at 719
    #200913  4:23:39 server id 1  end_log_pos 750 CRC32 0xc5ea9376 	Xid = 51
    COMMIT/*!*/;
    # at 750
    #200913  4:24:24 server id 1  end_log_pos 797 CRC32 0x660237d5 	Rotate to mysql-bin.000003  pos: 4
    SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /* added by mysqlbinlog */ /*!*/;
    DELIMITER ;
    # End of log file
    /*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
    /*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
    [root@localhost ~]# mysqlbinlog --no-defaults --stop-position='591' /mysql_bak/mysql-bin.000002 |mysql -u root -p               //恢复赵六
    Enter password: 
    [root@localhost ~]#  mysql -u root -p -e'select * from client.user_info'
    Enter password: 
    +-----------+--------+--------+-------------+--------+
    | 身份证    | 姓名   | 姓别   | 用户ID号    | 资费   |
    +-----------+--------+--------+-------------+--------+
    | 000001    | 张三   | 男     | 011         |     11 |
    | 000002    | 李四   | 女     | 012         |     99 |
    | 000003    | 王五   | 女     | 013         |     22 |
    | 000004    | 赵六   | 男     | 014         |     33 |
    +-----------+--------+--------+-------------+--------+
    [root@localhost ~]# mysql -uroot -p -e 'drop table client.user_info' 
    Enter password: 
    [root@localhost ~]#  mysql -u root -p client < /mysql_bak/client_userinfo-2020-09-13.sql 
    Enter password: 
    [root@localhost ~]# mysqlbinlog --no-defaults --start-position='591' /mysql_bak/mysql-bin.000002 |mysql -u root -p            //恢复孙七
    Enter password: 
    [root@localhost ~]#  mysql -u root -p -e'select * from client.user_info'
    Enter password: 
    +-----------+--------+--------+-------------+--------+
    | 身份证    | 姓名   | 姓别   | 用户ID号    | 资费   |
    +-----------+--------+--------+-------------+--------+
    | 000001    | 张三   || 011         |     11 |
    | 000002    | 李四   || 012         |     99 |
    | 000003    | 王五   || 013         |     22 |
    | 000005    | 孙七   || 015         |     66 |
    +-----------+--------+--------+-------------+--------+
    [root@localhost ~]# 
    

    基于位置恢复的操作,节点不要选择太靠近操作的节点,否则容易恢复失败。

    4.2.7、基于时间增量恢复

    操作方法与基于位置基本相同,寻找时间节点。比如:

    mysqlbinlog --no-defaults --stop-datetime='2020-9-13 4:23:39' /mysql_bak/mysql-bin.000002 |mysql -u root -p    ##恢复赵六
    mysqlbinlog --no-defaults --start-datetime='2020-9-13 4:23:39' /mysql_bak/mysql-bin.000002 |mysql -u root -p    ##恢复孙七
    
    展开全文
  • 数据是任何一家互联网企业的命脉,为了防止数据库服务器异常宕机,停电,非人为关机等造成数据库数据丢失的情况,我们必须要为数据库做备份操作,这样我们就能及时的恢复数据.数据备份还用于做数据迁移,例如公司...
  • 3.软件功能包括批量备份、批量恢复、批量删除、批量分离、批量附加 4.在执行批量恢复和批量删除时,请先做好备份,以免数据丢失 5.对于用友软件的删除操作,年度账套参数信息的删除只支持T3、T6产品 未注册软件,...
  • gitlab 备份恢复 定时备份

    万次阅读 2016-12-29 15:26:08
    注: 仅适用于使用 For omnibus installations 安装的... 默认备份文件储存在 /var/opt/gitlab/backups/140623891_gitlab_backup.tar  sudo gitlab-rake gitlab:backup:create  2. gitlab从备份中还原
  • Oracle10g备份恢复之物理备份--Rman备份 Recovery Manager(RMAN)是一种用于备份(backup)、还原(restore)和恢复(recover)数据库的 Oracle 工具。RMAN只能用于ORACLE8或更高的版本中。它能够备份整个数据库或...
  • 我通过rman对表空间进行备份,然后删除该表空间下表的数据,并删除表。再通过rman进行恢复时,发现并没有对数据以及表进行恢复。 我的具体操作步骤大概如下: 1、创建表空间AAA,并在其下建表aaa、bbb,创建用户aaa...
  • 数据备份 一、数据备份方法及策略 MySQL数据库最常用的...通常小于100GB的MySQL数据库可以使用mysqldump备份工具进行备份,如果是超过100GB的数据,由于mysqldump备份方式采用的是逻辑备份,最大的缺陷是备份...
  • MySQL备份恢复

    千次阅读 2018-09-11 15:45:55
    MySQL备份恢复 本文档主要围绕生产中经常使用的mysqldump、mydumper、xtrabackup等工具来进行备份恢复的学习。 1. MySQL 的备份方式 MySQL的备份方法,划分为如下三种: 冷备份 冷备是指在数据库关闭的情况...
  • 删除rman备份

    2016-08-26 20:16:23
    删除备份--DELETE命令 用于删除RMAN备份记录及相应的物理文件。当使用RMAN执行备份操作时,会在RMAN资料库(RMAN Repository)中生成RMAN备份记录,默认情况下RMAN备份记录会被存放在目标数据库的控制文件中,...
  • Oracle10g备份恢复之物理备份--OS物理备份 本篇文章来说明Oracle数据库的物理备份方式中的用操作系统OS方式进行的备份。之前说过,物理备份分为脱机的冷备份(数据库关闭状态下)和联机的热备份(数据库运行状态...
  • Mongo数据库操作:删除备份恢复 用于rocket.chat 删除 1、进入数据库 mongo 2、查看已有数据库 show dbs 3、删除rocket.chat数据库 use rocketchat 4、删除操作 db.dropDatabase() 5、退出数据库 exit ...
  • 短信删除了怎么恢复?...若是之前有用iTunes软件备份过手机中的数据,既可以直接将手机连接至iTunes,点击【备份】目录下的【恢复备份】,选择一个历史备份恢复到自己的手机后,被删除的短信也就恢复到iPhone中了...
  • 理论介绍数据备份的重要性数据库备份的分类常见的备份方法MySQL完全备份数据库完全备份分类数据库备份恢复MySQL数据库完全备份 数据备份的重要性 ●在生产环境中,数据的安全性至关重要 ●任何数据的丢失都可能...
  • 主要是Linux下通过crontab定时备份数据库文件和删除备份数据库文件
  • ----数据库误删,没有备份。有办法恢复吗?-------------------------------------------------------------
  • 说出来有点丢人,数据库竟然没有备份,是的没有备份。binlog 恢复? 技术还没到家,研究了 半天没敢正式环境中实验,在这文件比较大,处理起来比较麻烦。在这里也正好问问大神,binlog日志中,binlog文件是在某个...
  • MySQL数据库的备份恢复 一、 数据库冷备份 1.查看数据库中是否有数据 2.停止mysql数据库服务 3.MySQL数据库保存的位置 4.查看系统时间 5.备份mysql数据库 6. 恢复数据 7. 启动服务 8.登录mysql 9.查看数据...
  • RMAN删除过期备份或非过期备份

    万次阅读 2017-02-24 14:28:26
    删除备份--DELETE命令 用于删除RMAN备份记录及相应的物理文件。当使用RMAN执行备份操作时,会在RMAN资料库(RMAN Repository)中生成RMAN备份记录,默认情况下RMAN备份记录会被存放在目标数据库的控制文件中,...
  • oracle数据文件被删除备份恢复

    千次阅读 2016-02-24 16:26:16
    说明:数据库开规档,没备份,数据文件被删除恢复 条件:  1.数据库开启归档  2.创建数据文件之后的所有归档日志都在  3.数据文件或表空间没有备份,数据文件异常丢失 步骤: 1.创建测试用的表空间: SQL...
  • 可以使用 ApexSQLLog2014工具恢复
  • 下面,就mysql数据库误删除后的恢复方案进行说明。 不会恢复 可以联系我们帮助解决 275835897@qq.com 数据恢复思路 (1)利用全备的sql文件中记录的CHANGE MASTER语句,binlog文件及其位置点信息,找出binlog文件...
  • --创建数据库 create database XXX --删除数据库 drop database XXX --备份数据库 backup database aaa to disk='h:/sp.bak' --恢复数据库 restore database aaa from disk ='h:/sp.bak'

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 217,827
精华内容 87,130
关键字:

怎么找回删除的备份