对于MySQL的不完全恢复,我们可以借助于Innobackupex的多重备份加上binlog来将数据库恢复到任意时刻。这里的不完全恢复(也叫时点恢复)是相对于完全恢复。本文主要演示了基于Innobackupex如何做一个不完全恢复,供大家参考。 a、创建演示环境 robin@localhost[
对于MySQL的不完全恢复,我们可以借助于Innobackupex的多重备份加上binlog来将数据库恢复到任意时刻。这里的不完全恢复(也叫时点恢复)是相对于完全恢复。本文主要演示了基于Innobackupex如何做一个不完全恢复,供大家参考。a、创建演示环境 robin@localhost[(none)]> show variables like 'version'; --当前MySQL版本 +---------------+------------+ | Variable_name | Value | +---------------+------------+ | version | 5.6.12-log | +---------------+------------+ robin@localhost[(none)]> reset master; Query OK, 0 rows affected (0.03 sec) robin@localhost[(none)]> use tempdb; robin@localhost[tempdb]> create table tb(id smallint,val varchar(20)); robin@localhost[tempdb]> insert into tb values(1,'fullbak'); --创建一个全备 SHELL> innobackupex --user=robin -password=xxx --port=3606 --socket=/tmp/mysql3606.sock --defaults-file=/etc/my3606.cnf \ > /hotbak/full --no-timestamp b、创建一个增备 --在创建增备前插入一条记录到tb robin@localhost[tempdb]> insert into tb values(2,'Incbak'); SHELL> innobackupex --user=robin -password=xxx --port=3606 --socket=/tmp/mysql3606.sock --defaults-file=/etc/my3606.cnf \ > --incremental /hotbak/inc --incremental-basedir=/hotbak/full --no-timestamp --再次新增一条记录 robin@localhost[tempdb]> insert into tb values(3,'pointrecover'); Query OK, 1 row affected (0.01 sec) --记下当前的时间点用于后续的不完全恢复 robin@localhost[tempdb]> system date; Thu Dec 25 11:53:54 CST 2014 --模拟误操作 robin@localhost[tempdb]> truncate table tb; Query OK, 0 rows affected (0.01 sec) c、再次全备 SHELL> innobackupex --user=robin -password=xxx --port=3606 --socket=/tmp/mysql3606.sock --defaults-file=/etc/my3606.cnf \ > /hotbak/full2 --no-timestamp --全备后新增一张表 robin@localhost[tempdb]> create table tb_after_truncate(id int,val varchar(20)); Query OK, 0 rows affected (0.02 sec)3、演示恢复过程
--下面理清一下思路: --当前备份情况: 全备+增备+全备 --我们在增备之后truncate了表tb,然后又创建了一个全备,新建了一个表tb_after_truncate。 --此时我们需要将数据库恢复到truncate(误操作)之前 --解决方案:我们需要利用第一次的全备+增备+binglog来恢复到truncate前,当前第二次全备用不上。 a、先做基于全备的apply,注意,此时使用了--redo-only SHELL> i【本文来自鸿网互联 (http://www.68idc.cn)】nnobackupex --apply-log --redo-only --user=robin -password=xxx --port=3606 \ > --defaults-file=/etc/my3606.cnf /hotbak/full b、基于增备的apply, --此时没有--redo-only,如果有多个增备,仅仅最后一个增备无需指定--redo-only SHELL> innobackupex --apply-log --user=robin -password=xxx --port=3606 --defaults-file=/etc/my3606.cnf \ > /hotbak/full --incremental-dir=/hotbak/inc c、进行copy back SHELL> mysqldown -P3606 --copy back前关闭实例 SHELL> netstat -nltp|grep mysql|grep 3606 SHELL> mv /data/inst3606/data3606 /data/inst3606/data3606bk SHELL> mkdir -p /data/inst3606/data3606 SHELL> innobackupex --user=robin -password=xxx --port=3606 --copy-back /hotbak/full --defaults-file=/etc/my3606.cnf SHELL> chown -R mysql:mysql /data/inst3606/data3606 d、启动恢复后的实例 SHELL> mysqld_safe --defaults-file=/etc/my3606.cnf & SHELL> mysql -uroot -pxxx -P3606 -S /tmp/mysql3606.sock \ > -e "select * from tempdb.tb" Warning: Using a password on the command line interface can be insecure. +------+---------+ | id | val | +------+---------+ | 1 | fullbak | | 2 | Incbak | +------+---------+ --获取增量之后的log position SHELL> cd /hotbak/inc/ SHELL> more xtrabackup_binlog_info inst3606bin.000001 774 --这里使用了stop-datetime去将日志追加到truncate之前 SHELL> mysqlbinlog /data/inst3606/log/bin/inst3606bin.000001 --start-position=774 --stop-datetime="2014-12-25 11:53:54" \ > |mysql -urobin -pxxx -P3606 -S /tmp/mysql3606.sock --验证结果如下,可以看到已经恢复到truncate之前了 SHELL> mysql -uroot -pxxx -P3606 -S /tmp/mysql3606.sock \ > -e "select * from tempdb.tb" Warning: Using a password on the command line interface can be insecure. +------+--------------+ | id | val | +------+--------------+ | 1 | fullbak | | 2 | Incbak | | 3 | pointrecover | +------+--------------+ --如果我们需要继续恢复后面的事务,我们可以找出truncate前后位置,然后跳过这个position SHELL> mysqlbinlog /data/inst3606/log/bin/inst3606bin.000001 --start-datetime="2014-12-25 11:53:54"|grep truncate -A5 truncate table tb /*!*/; # at 1180 #141225 11:55:35 server id 3606 end_log_pos 1260 CRC32 0x12f55fc5 Query thread_id=928 exec_time=0 error_code=0 SET TIMESTAMP=1419479735/*!*/; /*!\C latin1 *//*!*/; -- create table tb_after_truncate(id int,val varchar(20)) /*!*/; # at 1392 #141225 13:06:47 server id 3606 end_log_pos 1415 CRC32 0xf956f311 Stop DELIMITER ; # End of log file --我们找出的position为1260,跳过1260之前的继续追加binlog SHELL> mysqlbinlog /data/inst3606/log/bin/inst3606bin.000001 --start-position=1260 \ > |mysql -urobin -pxxx -P3606 -S /tmp/mysql3606.sock --验证追加后的结果,可以看到表tb_after_truncate存在 [mysql@app ~]$ mysql -uroot -pxxx -P3606 -S /tmp/mysql3606.sock \ > -e "desc tempdb.tb_after_truncate" Warning: Using a password on the command line interface can be insecure. +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | id | int(11) | YES | | NULL | | | val | varchar(20) | YES | | NULL | | +-------+-------------+------+-----+---------+-------+4、小结
f、也可以跳过故障点,继续追加后面的binlog日志至最新,如本文尾部的演示

Steam会在您玩游戏时保存您的游戏进度并将其存储在Steam云中。当您在多台设备上玩Steam游戏时,此功能非常有用。只需在所有设备上使用您的Steam凭据登录,安装游戏即可!所有用户设置、游戏保存数据、您朋友的聊天框等等。修复1–检查游戏是否受支持所有Steam游戏均不支持Steam云存档功能。因此,您必须检查游戏是否真的支持此功能。1.在您的系统上打开Steam应用程序。2.现在,您必须使用您的凭据登录Steam。3.然后,输入您的用户名和密码,然后点击“登录

当我们的电脑遇到问题时,很多小伙伴都会使用恢复出厂设置来还原系统解决问题,今天要讲的就是联想电脑一键恢复系统的特点,我们都知道联想笔记本上都有一个小孔,大部分小伙伴都不知道这个小孔的用处,接下来小编就把联想一键恢复小孔的使用方法带给大家。 联想小新一键恢复小孔: 1.首先我们准备一个卡针,然后使用卡针捅一下机器左侧的一键恢复孔。 2.接着使用键盘上的按键选择“systemrecovery”,按回车。 3.在选择一个选项页面中,我们选择“疑难解答”。 4.我们点击“重置此电脑”选项。

您的PC有时会遇到问题,导致难以正常启动。在这种情况下,您可以使用Windows11恢复USB恢复它。虽然这一切看起来简单明了,但您仍然需要知道如何创建和使用恢复USB。在本指南中,我们将引导您完成轻松执行此任务所需的步骤。我可以下载Windows11恢复USB吗?如果您的操作系统完全崩溃,您可以从另一台运行良好的PC下载Windows11恢复USB。但是,要从中创建恢复驱动器的电脑必须与你的电脑具有相同的体系结构。最好的选择仍然是在PC正常运行时从PC创建USB。这消除了任何兼容性风险。或者,

微软6月24号正式公布了win11系统,可以看到用户界面、开始菜单等和Windows10X中发现的非常相似。有的朋友在使用预览版的时候发现用的不习惯,想要改win10系统开使用,那么我们要如何操作呢,下面我们就来看看win11改win10系统教程,一起来学习一下吧。1、第一步是从Windows11打开新设置。在这里,您需要转到图像中显示的系统设置。2、在系统设置下,选择“恢复”选项。在这里,您将能够看到“以前版本的窗口”选项。您还可以在它旁边看到一个“返回”按钮,单击此按钮。3、您可以指定要返回

有一些笔记本windows7顾客遇到了键盘失灵的情况,导致很多操作过程都不能进行,这种事情要怎么办呢?如果只是一部分功能按键不能使用得话,你可以尝试消除功能按键。若不是得话,你也就打开系统属性提示框,进入网络适配器,之后找寻电脑的键盘机械设备,鼠标点击选择升级驱动程序,以后按照步骤去重装一下电脑键盘的驱动程序就能够。windows7键盘失灵应该怎么办:一、消除笔记本键盘看一下是不是具备一些键按下去没法弹上来,这种事情还会继续导致其他键不能用;二、修改笔记本驱动1.依据“我的电脑”打开系统属性,选

出厂设置恢复到出厂时的默认状态,删除所有的文件和软件。在手机上很多朋友都会设置出厂设置,那么你们知道电脑如何恢复出厂设置吗?下面小编就以win7为例和大家分享一下过程吧。1、首先打开下电脑,看到win7图标点开。2、接着我们打开下【控制面板】。3、然后我们找到【系统】点击并打开。4、在系统窗口中我们点击【系统保护】。5、接着我们选择【系统还原】选项。6、接着我们来到这个界面,点击下一步即可。7、选择还原点,一般都是默认的初始的状态。8、最后我们来到这个界面,点击完成就可以进入到还原过程。以上就是

在开发业务系统过程中,数据库是非常重要的一环。因此,对数据库进行备份和恢复是非常必要的操作。本文将结合ThinkPHP6框架实例,介绍如何使用ThinkPHP6实现数据库备份与恢复。一、数据库备份1.1环境准备在进行数据库备份之前,需要确认如下几点:1、需要设置好mysql数据库的bin目录地址,并把其路径加入系统Path变量中;2、需要安装好mysqld

如何应对Linux系统中的文件系统损坏和恢复问题在使用Linux系统时,由于各种原因,文件系统可能会遭受损坏,这可能导致数据丢失和系统无法正常运行。因此,我们需要知道如何应对文件系统损坏和恢复问题,以保护我们的数据和系统的稳定性。如何判断文件系统是否损坏?当文件系统受损时,将会出现一些明显的迹象。例如,文件或文件夹无法访问、文件大小异常、系统启动慢或无法启动


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Dreamweaver CS6
視覺化網頁開發工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

記事本++7.3.1
好用且免費的程式碼編輯器

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中