mysqlbackup 还原特定的表

mysqlbackup 还原特定的表

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

mysqlbackup使用TTS恢复指定表.
 
 
*************************************************************
4.恢复特定表
*************************************************************



--4.1新建測试环境

CREATE DATABASE `wind`  DEFAULT CHARACTER SET gbk ;

use wind;


create table t1
(
sid int not null ,
sname varchar(100)  not null
)engine=innodb charset=gbk  ; 




DELIMITER //
create PROCEDURE proc1()
BEGIN  
    DECLARE i int DEFAULT 0;
    set i=1 ;
set autocommit=0;  
WHILE i<=1000000 DO
INSERT INTO t1 values(i,'mysql測试');
set i=i+1; 
END WHILE; 
commit;
set autocommit=1;      
END  
//
DELIMITER ;

call proc1;


create table t2
as
select * from t1;



--4.2.全备


# rm -rf /backup && mkdir /backup



#mysqlbackup --defaults-file=/usr/local/mysql/my.cnf  \
--host=127.0.0.1   --port=3306  --protocol=tcp  \
--user=root  --password=123  --use-tts --include-tables='wind.t2' \
--with-timestamp   --backup-dir=/backup   \
--log-bin-index=/usr/local/mysql/mysql_logs/binary_log/mysql-bin.index \
backup-and-apply-log 






# cat /backup/2015-04-02_12-41-45/meta/backup_variables.txt  | grep 'end'
end_lsn=138866623





--4.3 增量备份


mysql> select count(*) from t1;
+----------+
| count(*) |
+----------+
|  1000000 |
+----------+
1 row in set (0.75 sec)

mysql> select count(*) from t2;
+----------+
| count(*) |
+----------+
|  1000000 |
+----------+
1 row in set (0.68 sec)


mysql> delete from t2  limit 10;
Query OK, 10 rows affected (0.00 sec)

mysql> commit;
Query OK, 0 rows affected (0.00 sec)

mysql> select count(*) from t2;
+----------+
| count(*) |
+----------+
|   999990 |
+----------+
1 row in set (0.80 sec)



# rm -rf /backupinc && mkdir /backupinc

--第一次增量备份

#mysqlbackup --defaults-file=/usr/local/mysql/my.cnf  \
--host=127.0.0.1   --port=3306  --protocol=tcp  \
--user=root  --password=123  --use-tts --include-tables='wind.t2' \
--with-timestamp  --log-bin-index=/usr/local/mysql/mysql_logs/binary_log/mysql-bin.index \
--incremental --start-lsn=138866623  \
--incremental-backup-dir=/backupinc backup   


# cat /backupinc/2015-04-02_12-44-02/meta/backup_variables.txt  | grep 'end' 
end_lsn=138868639


--第二次增量备份


mysql> select count(*) from wind.t2;
+----------+
| count(*) |
+----------+
|   999990 |
+----------+
1 row in set (0.83 sec)

mysql> desc t2
    -> ;
+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| sid   | int(11)      | NO   |     | NULL    |       |
| sname | varchar(100) | NO   |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

mysql> update t2 set sname='ocpyang mysql test!' limit 5000;
Query OK, 5000 rows affected (0.24 sec)
Rows matched: 5000  Changed: 5000  Warnings: 0

mysql> commit;
Query OK, 0 rows affected (0.00 sec)


mysql> select count(*) from wind.t2 where sname='ocpyang mysql test!';
+----------+
| count(*) |
+----------+
|     5000 |
+----------+
1 row in set (0.86 sec)





#mysqlbackup --defaults-file=/usr/local/mysql/my.cnf  \
--host=127.0.0.1   --port=3306  --protocol=tcp  \
--user=root  --password=123  --use-tts --include-tables="wind.t2" \
--with-timestamp  --log-bin-index=/usr/local/mysql/mysql_logs/binary_log/mysql-bin.index \
--incremental --start-lsn=138868639  \
--incremental-backup-dir=/backupinc  backup 


# cat /backupinc/2015-04-02_12-46-48/meta/backup_variables.txt  | grep end
end_lsn=139571560




--4.4 合并增量备份到全备

ls /backupinc/
2015-04-02_12-44-02  2015-04-02_12-46-48

ls /backup

2015-04-02_12-41-45


mysqlbackup --backup-dir=/backup/2015-04-02_12-41-45/ \
--incremental-backup-dir=/backupinc/2015-04-02_12-44-02 \
--log-bin-index=/usr/local/mysql/mysql_logs/binary_log/mysql-bin.index \
apply-incremental-backup 


mysqlbackup --backup-dir=/backup/2015-04-02_12-41-45 \
--incremental-backup-dir=/backupinc/2015-04-02_12-46-48 \
--log-bin-index=/usr/local/mysql/mysql_logs/binary_log/mysql-bin.index \
apply-incremental-backup 






--4.5  模拟删除指定表

#cat /usr/local/mysql/my.cnf |grep datadir
datadir=/usr/local/mysql/data


mysql> select count(*) from t2;
+----------+
| count(*) |
+----------+
|   999990 |
+----------+
1 row in set (0.80 sec)


mysql> select count(*) from wind.t2 where sname='ocpyang mysql test!';
+----------+
| count(*) |
+----------+
|     5000 |
+----------+
1 row in set (0.86 sec)


mysql> drop table t2;




--4.6 还原指定表(使用mysql用户)


chown -R mysql /backup
chgrp -R mysql /backup

chown -R mysql /usr/local/mysql
chgrp -R mysql /usr/local/mysql


[mysql@mysql ~]$ whoami   #避免权限问题
mysql

/***********************NOTE:权限问题出现的错误 

150402 13:29:26 mysqlbackup: INFO: Importing table: wind.t2.
 mysqlbackup: ERROR: mysql query: 'ALTER TABLE wind.t2 IMPORT TABLESPACE':
 Internal error: Cannot reset LSNs in table '"wind"."t2"' : Tablespace not found
 mysqlbackup: ERROR: Failed to import tablespace wind.t2.

mysqlbackup failed with errors!


*************************************************/




mysqlbackup --host=127.0.0.1   --port=3306  --protocol=tcp  \
--user=root  --password=123  \
--datadir=/usr/local/mysql/data/   \
--log-bin-index=/usr/local/mysql/mysql_logs/binary_log/mysql-bin.index \
--backup-dir=/backup/2015-04-02_12-41-45/ \
--include-tables='wind\.t2$' \
copy-back





[mysql@mysql ~]$ mysqlbackup --host=127.0.0.1   --port=3306  --protocol=tcp  \
> --user=root  --password=123  \
> --datadir=/usr/local/mysql/data/   \
> --log-bin-index=/usr/local/mysql/mysql_logs/binary_log/mysql-bin.index \
> --backup-dir=/backup/2015-04-02_12-41-45/ \
> --include-tables='wind\.t2$' \
> copy-back
MySQL Enterprise Backup version 3.12.0 Linux-2.6.18-194.el5-x86_64 [2015/03/10] 
Copyright (c) 2003, 2015, Oracle and/or its affiliates. All Rights Reserved.

 mysqlbackup: INFO: Starting with following command line ...
 mysqlbackup --host=127.0.0.1 --port=3306 --protocol=tcp --user=root 
        --password=xxx --datadir=/usr/local/mysql/data/ 
        --log-bin-index=/usr/local/mysql/mysql_logs/binary_log/mysql-bin.index 
        --backup-dir=/backup/2015-04-02_12-41-45/ --include-tables=wind\.t2$ 
        copy-back 

 mysqlbackup: INFO: 
IMPORTANT: Please check that mysqlbackup run completes successfully.
           At the end of a successful 'copy-back' run mysqlbackup
           prints "mysqlbackup completed OK!".

150402 13:38:25 mysqlbackup: INFO: MEB logfile created at /backup/2015-04-02_12-41-45/meta/MEB_2015-04-02.13-38-25_copy_back.log

 mysqlbackup: INFO: MySQL server version is '5.6.23-enterprise-commercial-advanced-log'.
 mysqlbackup: INFO: Got some server configuration information from running server.

--------------------------------------------------------------------
                       Server Repository Options:
--------------------------------------------------------------------
  datadir = /usr/local/mysql/data/
  innodb_data_home_dir = /usr/local/mysql/innodb_data
  innodb_data_file_path = ibdata1:800M;ibdata2:800M:autoextend
  innodb_log_group_home_dir = /usr/local/mysql/mysql_logs/innodb_log/
  innodb_log_files_in_group = 3
  innodb_log_file_size = 2147483648
  innodb_page_size = 16384
  innodb_checksum_algorithm = innodb
  innodb_undo_directory = .
  innodb_undo_tablespaces = 0
  innodb_undo_logs = 128

--------------------------------------------------------------------
                       Backup Config Options:
--------------------------------------------------------------------
  datadir = /backup/2015-04-02_12-41-45/datadir
  innodb_data_home_dir = /backup/2015-04-02_12-41-45/datadir
  innodb_data_file_path = ibdata1:800M;ibdata2:800M:autoextend
  innodb_log_group_home_dir = /backup/2015-04-02_12-41-45/datadir
  innodb_log_files_in_group = 3
  innodb_log_file_size = 2147483648
  innodb_page_size = 16384
  innodb_checksum_algorithm = innodb

 mysqlbackup: INFO: Creating 14 buffers each of size 16777216.
150402 13:38:25 mysqlbackup: INFO: Copy-back operation starts with following threads
		1 read-threads    1 write-threads
 mysqlbackup: INFO: Could not find binlog index file. binlogs will not be copied for this backup.
 Point-In-Time-Recovery will not be possible.
 If this is online backup then server may not have started with --log-bin.
 You may specify its location with --log-bin-index option.
150402 13:38:25 mysqlbackup: INFO: Creating table: wind.t2.
150402 13:38:25 mysqlbackup: INFO: Copying /backup/2015-04-02_12-41-45/datadir/wind/t2.ibd.
150402 13:38:26 mysqlbackup: INFO: Completing the copy of all non-innodb files.
150402 13:38:27 mysqlbackup: INFO: Importing table: wind.t2.
150402 13:38:28 mysqlbackup: INFO: Analyzing table: wind.t2.
150402 13:38:29 mysqlbackup: INFO: Copy-back operation completed successfully.
150402 13:38:29 mysqlbackup: INFO: Finished copying backup files to '/usr/local/mysql/data'

mysqlbackup completed OK!





# ls -ll /usr/local/mysql/data/wind/
total 57360
-rw-rw----. 1 mysql mysql       61 Apr  2 13:26 db.opt
-rw-rw----. 1 mysql mysql     8590 Apr  2 13:38 t2.frm
-rw-rw-r--. 1 mysql mysql 58720256 Apr  2 13:38 t2.ibd


/*******

ALTER TABLE t2 discard TABLESPACE;

ALTER TABLE t2 IMPORT TABLESPACE;

*********/
 
--4.7验证表恢复情况


mysql> use wind;
Database changed
mysql> show tables;
+----------------+
| Tables_in_wind |
+----------------+
| t2             |
+----------------+
1 row in set (0.00 sec)

mysql> select count(*) from t2;
+----------+
| count(*) |
+----------+
|   999990 |
+----------+
1 row in set (1.34 sec)




mysql> select count(*) from wind.t2 where sname='ocpyang mysql test!';
+----------+
| count(*) |
+----------+
|     5000 |
+----------+
1 row in set (0.78 sec)








 

版权声明:本文博主原创文章,博客,未经同意不得转载。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116907.html原文链接:https://javaforall.net

(0)
上一篇 2022年1月13日 下午3:00
下一篇 2022年1月13日 下午3:00


相关推荐

  • 详述 hosts 文件的作用及修改 hosts 文件的方法

    详述 hosts 文件的作用及修改 hosts 文件的方法1 什么是 hosts 文件 hosts 是一个没有扩展名的系统文件 其基本作用就是将一些常用的网址域名与其对应的 IP 地址建立一个关联 数据库 当用户在浏览器中输入一个需要登录的网址时 系统会首先自动从 hosts 文件中寻找对应的 IP 地址 一旦找到 系统就会立即打开对应网页 如果没有找到 则系统会将网址提交 DNS 域名解析服务器进行 IP 地址的解析 2hosts 文件的作用 2 1

    2026年3月18日
    2
  • loadrunner11激活成功教程技巧

    loadrunner11激活成功教程技巧loadrunner11的激活成功教程步骤:1、用mlr5lprg.dll、lm70.dll覆盖LR11安装目录下“bin”文件夹中的对应文件。2、修改注册表,可以使用deletelicence工具删除,也可以手动删除。1)deletelicence工具删除很方便,记住以管理员身份运行,直接按照提示操作即可。2)手动修改注册表。开始-&amp;gt;运行-&amp;gt;regedit即可手动修改注册表。删除下面…

    2022年7月22日
    15
  • java 工厂模式例子_java 工厂模式简单介绍及例子[通俗易懂]

    java 工厂模式例子_java 工厂模式简单介绍及例子[通俗易懂]java中工厂模式在javaee中经常碰见,是一种常见的模式,其可分为三种:静态工厂模式、工厂方法模式、抽象工厂模式。一下做一简单讲述和例子。静态工厂模式:顾名思义就知道他是用静态方法实现的,其创建的对象具有一定的特性,譬如说是某类的派生或者某接口的实现。其比较简单。例子如下Animal类:packagecom.bean;/***动物类*@authorLyonYao**/public…

    2022年7月20日
    16
  • 什么的数据传送单位是报文_简述Mpls数据报文的转发过程

    什么的数据传送单位是报文_简述Mpls数据报文的转发过程http请求报文和响应报文前言http协议是一个应用层协议,其报文分为请求报文和响应报文当客户端请求一个网页时,会先通过http协议将请求的内容封装在http请求报文之中,服务器收到该请求报文后根据协议规范进行报文解析,然后向客户端返回响应报文。http报文结构为:起始行对报文进行描述头部向报文中添加了一些附加信息,是一个名/只的列表,头部和协议配合工作,共同决定了客户端和服务器…

    2025年6月25日
    4
  • 2021必看!java电子书合集,值得收藏![通俗易懂]

    2021必看!java电子书合集,值得收藏![通俗易懂]正文作为后端开发,日常操作数据库最常用的是写操作和读操作。读操作我们下边会讲,这个分类里我们主要来看看写操作时为什么会导致SQL变慢。刷脏页脏页的定义是这样的:内存数据页和磁盘数据页不一致时,那么称这个内存数据页为脏页。那为什么会出现脏页,刷脏页又怎么会导致SQL变慢呢?那就需要我们来看看写操作时的流程是什么样的。对于一条写操作的SQL来说,执行的过程中涉及到写日志,内存及同步磁盘这几种情况。这里要提到一个日志文件,那就是redolog,位于存储引擎层,用来存储物理日志。在写操

    2022年7月9日
    27
  • 访问远程MySQL数据库的方法

    访问远程MySQL数据库的方法

    2021年9月19日
    49

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号