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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 深入浅出vue_深入浅出pandas

    深入浅出vue_深入浅出pandasaboutStream什么是流?Stream是java8中新增加的一个特性,被java猿统称为流.Stream不是集合元素,它不是数据结构并不保存数据,它是有关算法和计算的,它更像一个高级版本的Iterator。原始版本的Iterator,用户只能显式地一个一个遍历元素并对其执行某些操作;高级版本的Stream,用户只要给出需要对其包含的元素执行什么操作,比如“过滤掉长度大于1

    2025年8月10日
    5
  • k8s 微服务打包上传私库、部署、发布

    k8s 微服务打包上传私库、部署、发布微服务打包上传私库、部署、发布1.Ideamaven打包修改配置文件yml的eureka地址:http://10.0.0.111:11111/eurekaMaven打成jar包。2.

    2022年7月1日
    27
  • random.nextInt()的用法

    random.nextInt()的用法1、不带参数的nextInt()会生成所有有效的整数(包含正数,负数,0)2、带参的nextInt(intx)则会生成一个范围在0~x(不包含X)内的任意正整数例如:intx=newRandom.nextInt(100);则x为一个0~99的任意整数3、生成一个指定范围内的整数/**生成[min,max]之间的随机整数*@parammin最小整数…

    2022年7月22日
    15
  • siamfc代码解读_分析SiamFC

    siamfc代码解读_分析SiamFC训练过程训练过程,网络的最终输出是17×17的responsemap.网络的输入需要保证两条支路上目标物体在输入图片的中心位置,且目标物体在整幅图像中有一定的占比。对于模板图片模板图片大小:127×127×3。以目标中心为裁剪中心,确定一个稍大的正方形(记边长为C)裁剪区域(可能会超出原图片,以图片颜色均值填充),然后再将裁剪区域resize到127×127大小。根据paper,C…

    2022年10月1日
    2
  • java的前端还是后端_java语言是开发前端还是后端的[通俗易懂]

    java的前端还是后端_java语言是开发前端还是后端的[通俗易懂]java语言是开发前端还是后端的发布时间:2020-06-2616:01:18来源:亿速云阅读:105作者:Leahjava语言是开发前端还是后端的?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。java不是前端,是后端。Java语言是最常见的后端开发语言之一,Java语言由于自身具备构建多线程的能力,且体系结构比较中…

    2022年7月7日
    20
  • 高中四个基本不等式公式_高中数学基本不等式典型题

    高中四个基本不等式公式_高中数学基本不等式典型题高一数学要从掌握好基本知识点开始,并且要及时做好归纳总结。以下是小编为您整理的关于的相关资料,供您阅读。1.不等式性质比较大小方法:1作差比较法2作商比较法不等式的基本性质①对称性:a>bb>a②传递性:a>b,b>ca>c③可加性:a>ba+c>b+c④可积性:a>b,c>0ac&gt…

    2025年11月17日
    3

发表回复

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

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