Linux命令:MySQL系列之十四--MySQL备份与还原(xtrabackup工具重要章节)

一、percona-xtrabckup安装
环境:redhat 6.0
数据库:mysql 5.5.28  (编译安装)

1,官网下载并安装(下载地址文章尾部)

[[email protected] ~]# rpm -ivh percona-xtrabackup-2.0.0-417.rhel6.x86_64.rpm

warning: percona-xtrabackup-2.0.0-417.rhel6.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID cd2efd2a: NOKEY

error: Failed dependencies:

mysql is needed by percona-xtrabackup-2.0.0-417.rhel6.x86_64

提示安装percona-xtrabackup需要mysql(因为编译安装的路径与yum安装的目录不同所以需要通过yum安装mysql,但是不启用该方式安装的mysql)

[[email protected] ~]# yum install mysql

Loaded plugins: refresh-packagekit, rhnplugin

--> Running transaction check

---> Package mysql.x86_64 0:5.1.47-4.el6 set to be updated

--> Finished Dependency Resolution

...........

Installing:

mysql                x86_64                5.1.47-4.el6                Server                889 k

Transaction Summary

====================================================================================================

Warning: RPMDB altered outside of yum.

Installing     : mysql-5.1.47-4.el6.x86_64                                                    1/1

Installed:

mysql.x86_64 0:5.1.47-4.el6

Complete!                  #yum安装mysql完成

[[email protected] ~]# rpm -ivh percona-xtrabackup-2.0.0-417.rhel6.x86_64.rpm   #再次执行rpm安装

warning: percona-xtrabackup-2.0.0-417.rhel6.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID cd2efd2a: NOKEY

Preparing...                ########################################### [100%]

1:percona-xtrabackup     ########################################### [100%]

# percona-xtrabackup 安装完成

[[email protected] ~]# rpm -ql percona-xtrabackup  #查看安装的相关目录 (绿色目录为主要使用目录及运行程序)

/usr/bin/innobackupex

/usr/bin/innobackupex-1.5.1

/usr/bin/xbstream

/usr/bin/xtrabackup

/usr/bin/xtrabackup_51

/usr/bin/xtrabackup_55

/usr/share/doc/percona-xtrabackup-2.0.0

/usr/share/doc/percona-xtrabackup-2.0.0/COPYING

/usr/share/percona-xtrabackup-test

/usr/share/percona-xtrabackup-test/bootstrap.sh

/usr/share/percona-xtrabackup-test/disabled

/usr/share/percona-xtrabackup-test/disabled/ib_include.sh

/usr/share/percona-xtrabackup-test/disabled/tar_compressed.sh

/usr/share/percona-xtrabackup-test/disabled/xb_lru_dump.sh

/usr/share/percona-xtrabackup-test/experimental

...............

[[email protected] ~]# innobackupex --help  #查看相关帮助

注意:
1,之前我安装的2.2.9,但是提示perl-DBI,perl-DBD-mysql的问题,一直无法解决,换成低版本的xtrabackup就可以。
2,如果提示mysql sock问题,在参数中指定sock的路径。

二、使用


备份
备份时无法指定备份名,每一个备份文件夹都是以时间来命名的,里面存放的是数据文件、日志文件,目录需存在,没有则先创建。

1,全量备份
[[email protected] ~]# innobackupex --user=root --password=redhat --host=127.0.0.1 /backup/

#--user:指定mysql用户  --password:指定用户的密码  --host:指定主机(如果是本机,可以省略此选项)   /backup:指定备份至的目录

***如果要使用一个最小权限的用户进行备份,则可基于如下命令创建此类用户:

mysql > CREATE USER ‘bkpuser‘@‘localhost‘ IDENTIFIED BY ‘redhat‘; #创建用户bkpuser备份用户,并通过IDENTIFIED BY ‘password‘设定密码。

mysql > REVOKE ALL PRIVILEGES, GRANT OPTION FROM ‘bkpuser‘; #revoke取消ALL PRIVILEGES所有授权,GRANT OPTION授权选项从bkpuser用户中。及把bkpuser所有的

操作数据库的权限取消掉

mysql>GRANT RELOAD,LOCK TABLES,REPLICATION CLIENT ON *.* TO ‘bkpuser‘@‘localhost‘;

#GRANT授权,RELOAD:重新加载的权限,LOCK TABLES:锁表的权限,REPLICATION CLIENT:

复制客户端的权限,ON *.*:对于那些数据有权限,TO:指定授权给那个用户。

mysql > FLUSH PRIVILEGES;  #刷新权限列表,使得权限生效。


1、执行一次完全备份

在备份的同时,innobackupex还会在备份目录中创建如下文件:

(1)xtrabackup_checkpoints ---该文件记录备份类型(如完全或增量)、备份状态(如是否已经为prepared状态)和LSN(日志系列号)范围信息,每个InnoDB页(通常为16K大小)都会包含一个

日志系列号,即LSN,LSN是整个数据库系统的系统版本号,每个页面相关的LSN能够表明此页面

最近是如何发生改变的。

(2)xtrabackup_binlog_info ---mysql服务器当前正在使用的二进制日志文件及至备份这一刻为止二进制日志事件的位置。

(3)xtrabackup_binlog_pos_innodb ---二进制日志文件及用于InnoDB或XtraDB表的二进制日志文件的当前positon。

(4)xtrabackup_binary  ---备份中用到的xtrabackup的可执行文件;

(5)backup-my.cnf  ---备份命令用到的配置选项信息;

在使用innobackupex进行备份时,还可以使用--no-timestamp选项来阻止命令自动创建一个以时间命名的目录;如此一来,innobackupex命令将会创建一个BACKUP-DIR目录来存储备份数据。

2、执行完全备份后的准备:

一般情况下,在完全备份后,数据尚且不能用于恢复操作,因为备份的数据中可能会包含尚未提交的事务或已经提交但尚未同步至数据文件中的事务。因此,此时数据文件仍处理不一致的状态。‘准备’的主要作用正是通过回滚未提交的事务及同步已经提交的事务至数据文件也使得数据文件处于一致性状态。

innobackupex命令的--apply-log选项可用于实现上述功能,如下面的命令;

[[email protected] ~]# innobackupex --apply-log /PATH/TO/BACKUP-DIR  #/PATH/TO/BACKUP-DIR为刚才执行完全备份所保存的目录。

如果执行正确,其 最后输出的几行信息通常如下:

xtrabackup: starting shutdown with innodb_fast_shutdown = 1

170610 17:26:33 InnoDB: Starting shutdown...

170610 17:26:46 InnoDB: Shutdown completed; log sequence number 92036620

170610 17:26:58 innobackupex: completed OK!

在实现“准备”的过程中,innobackupex通常还可以使用--use-memory选项来指定其可以使用的内存的大小,默认通常为100M。如果有足够的内存可用,可以多划分一些内存给prepare的过程,

以提高其完成的速度。

3、从一个完全备份中恢复数据

innobackupex 命令的--copy-back选项用于执行恢复操作,其通过复制所有数据文件相关的文件至mysql服务器DATADIR目录中来执行恢复过程,innobackupex通过backup-my.cnf来获取DATADIR目录的相关信息。


4,使用innobackupex进行增量备份

每个InnoDB的页面都会包含一个LSN信息,每当相关的数据发生改变,相关的页面的LSN就会自动增长,这正式InnoDB表可以进行增量备份的基础,即innobackupex通过备份上次完全备份之后发生改变的页面来实现。

要实现第一次增量备份,可以使用下面的命令进行:

# innobackupex --user=root --password=redhat --host=127.0.0.1 --incremental /backup --incremental-basedir=BASEDIR  #--user:指定用户,--password:指定密码,--host:指定需要备份的主机(如果备份本机可以省略此选项),--incremental:指定增量备份存放的目录,--incremental-basedir:指定完全备份的所在的目录。

[[email protected] ~]# innobackupex --user=root --password=redhat --

host=127.0.0.1  --incremental  /backup/ --incremental-basedir=/backup/2017-06-09_16-34-35/

***执行增量备份命令后,innobackuppex 命令会在/backup目录中创建一个新的以时间命名的目录以存放所有的增量备份数据,另外,在执行增量备份后再一次进行增量备份时,--incremental-basedir应该指向上一次的增量备份所在的目录。

需要注意的是,增量备份仅能用于InnoDB或xtraDB表,对于MyISAM表而言,执行增量备份时其实进行的是完全备份。

**准备**(prepare)增量备份与准备完全备份有着一些不同,尤其要注意的是:

(1)需要在每个备份(包括完全和各个增量备份)上,将已经提交的事务进行“重放”,“重放”之后,所有的备份数据将合并到完全备份上。

(2)基于所有的备份将未提交的事务进行“回滚”

于是,准备操作就变成了:

1、先准备完全备份的操作:

[[email protected] ~]# innobackupex --apply-log --redo-only BASE-DIR #执行完全备份的准备,

BASE-DIR:是完全备份存放的路径,--redo-only:执行事务选择redo

2、执行提交第一次增量备份的操作:

[[email protected] ~]# innobackupex -apply-log -redo-only BASE-DIR --incremental-dir=INCREMENTAL-DIR-1  #其中BASE-DIR:指的是完全备份所在的目录,而INCREMENTAL-DIR-1指的是第一次增量备份的目录

3、执行提交第二次增量备份的操作:

[[email protected] ~]# innobackupex -apply-log -redo-only BASE-DIR --incremental-dir=INCREMENTAL-DIR-2  #其中BASE-DIR:指的是完全备份所在的目录,而INCREMENTAL-DIR-2指的是第二次增量备份的目录

如果有多次增量备份,每一次备份完后都要执行如上准备操作,才可以用于后期的恢复操作。执行完整备份和多次增量备份准备工作后,所有数据都会保存在指定的完全备份BASE-DIR路径,后期恢复的时候

只要执行innobackupex --copy-back BASE-DIR  就可以把所有数据恢复回来。BASE-DIR为完全备份存放的目录。

5、导入或到处单张表:

默认情况下,InnoDB表不能通过直接复制表文件的方式再mysql服务器之间进行移植,及时使用innodb_file_per_table选项,而使用Xtrabackup工具可以实现此种功能,不过,此时需要“导出”表的mysql服务器启用了innodb_file_per_table选项(严格来说,是要“导出”的表在其创建之前,mysql服务

器就启用了innodb_file_per_table选项及每表一个表空间),并且“导入”表的服务器同时启用了innodb_file_per_table和

innodb_expand_import选项。

(1)“导出”表

导出表是在备份的prepare阶段进行的,因此,一旦完全备份完成,就可以在prepare过程中通过

--export选项将某表导出了;

[[email protected] ~]# innobackupex --apply-log --export /path/to/backup

#此命令会在每个innodb表的表空间创建一个以.exp结尾的文件,这些以.exp结尾的文件则可以用于导入至其他服务器。

(2)“导出”表

要在mysql服务器上导入来自于其他服务器的某innodb表,需要先在当前服务器上创建一个跟原来表表结构一致的表,而后才能实现将表导入:

mysql> CREATE TABLE mytable (...) ENGINE=InnoDB;

然后将此表的表空间删除;

mysql> ALTER TABLE mydatabase.mytable DISCARD TABLESPACE;

接下来,将来自于“导出”表的服务器的mytable表的mytable.ibd和mytable.exp文件复制到当前服务器的数据目录,然后使用如下命令将其“导入”;

mysql> ALTER TABLE mydatabase.mytable IMPORT TABLESPACE;

***************************************************************************************

实例:执行备份恢复过程及步骤

先执行一次完全备份操作:

[[email protected] ~]# innobackupex --user=root --password=redhat /backup #执行完全备份

InnoDB Backup Utility v1.5.1-xtrabackup; Copyright 2003, 2009 Innobase Oy

and Percona Inc 2009-2012.  All Rights Reserved.

This software is published under

..............................

170609 16:34:54  innobackupex: All tables unlocked

170609 16:34:54  innobackupex: Connection to database serve               r closed

innobackupex: Backup created in directory ‘/backup/2017-06-09_16-34-35‘

innobackupex: MySQL binlog position: filename ‘mysql-bin.000002‘, position 107

170609 16:34:54  innobackupex: completed OK!   #备份完成

[[email protected] ~]# ls /backup  #红色字体目录为刚才备份的数据目录

2017-06-09_16-34-35     incremental-2017-06-06-17-01-41.sql

full-backup-2017-06-06  master-2017-06-06.info

[[email protected] ~]#  cd /backup/2017-06-09_16-34-35/

[[email protected] 2017-06-09_16-34-35]# ls

backup-my.cnf  jiaowu  performance_schema  testdb                  xtrabackup_checkpoints

hellodb        mydb    stu                 xtrabackup_binary       xtrabackup_logfile

ibdata1        mysql   test                xtrabackup_binlog_info

[[email protected] ~]# innobackupex --apply-log --redo-only /backup/2017-06-09_16-34-35  #执行完全备份的准备,把相关事务写入到完全备份目录中。

InnoDB Backup Utility v1.5.1-xtrabackup; Copyright 2003, 2009 Innobase Oy

and Percona Inc 2009-2012.  All Rights Reserved.

This software is published under

..........................................

xtrabackup: starting shutdown with innodb_fast_shutdown = 1

170612 11:38:51  InnoDB: Starting shutdown...

170612 11:38:56  InnoDB: Shutdown completed; log sequence number 1631244

170612 11:38:56  innobackupex: completed OK!  #执行准备完成

然后把相关的二进制日志备份好,以备到时还原所用。

[[email protected] data]# cp -a mysql-bin.* /backup/  #复制二进制日志文件至备份目录 -a:复制文件时连带权限属性一起复制。

[[email protected] data]#  ls /backup/

2017-06-09_16-34-35     incremental-2017-06-06-17-01-41.sql  mysql-bin.000001  mysql-bin.000003      mysql-bin.000002    mysql-bin.index

[[email protected] data]# service mysqld stop  #停止mysqld服务

Shutting down MySQL..                                      [  OK  ]

[[email protected] data]# rm -rf ./*   #模拟mysqld数据目录丢失

[[email protected] data]# ls

[[email protected] data]# pwd

/mydata/data

[[email protected] data]# service mysqld start  #启动mysqld服务,此时由于数据丢失无法启动

Starting MySQL....The server quit without updating PID file[FAILED]a/data/lamp.pid).

[[email protected] ~]# innobackupex --copy-back /backup/2017-06-09_16-34-35/   #执行完全备份的数据恢复

(不用初始化数据库,可以直接执行数据恢复操作)

InnoDB Backup Utility v1.5.1-xtrabackup; Copyright 2003, 2009 Innobase Oy

and Percona Inc 2009-2012.  All Rights Reserved.

This software is published under

the GNU GENERAL PUBLIC LICENSE Version 2, June 1991.

IMPORTANT: Please check that the copy-back run completes successfully.

At the end of a successful copy-back run innobackupex

prints "completed OK!".

innobackupex: Starting to copy files in ‘/backup/2017-06-09_16-34-35‘

innobackupex: back to original data directory ‘/mydata/data‘

...............................................

innobackupex: in ‘/backup/2017-06-09_16-34-35‘

innobackupex: back to original InnoDB log directory ‘/mydata/data‘

innobackupex: Finished copying back files.

170612 14:46:18  innobackupex: completed OK!   #数据恢复完成

[[email protected] data]# pwd

/mydata/data

[[email protected] data]# ll  #恢复完成后数据目录的属主和属主都为root,所以需要更改数据目录的属主和属组。

total 28712

drwxr-xr-x. 2 root root     4096 Jun 12 14:46 hellodb

-rw-r-----. 1 root root 18874368 Jun 12 11:38 ibdata1

-rw-r--r--. 1 root root  5242880 Jun 12 14:46 ib_logfile0

-rw-r--r--. 1 root root  5242880 Jun 12 14:46 ib_logfile1

drwxr-xr-x. 2 root root     4096 Jun 12 14:46 jiaowu

drwxr-xr-x. 2 root root     4096 Jun 12 14:46 mydb

drwxr-xr-x. 2 root root     4096 Jun 12 14:46 mysql

drwxr-xr-x. 2 root root     4096 Jun 12 14:46 performance_schema

drwxr-xr-x. 2 root root     4096 Jun 12 14:46 stu

drwxr-xr-x. 2 root root     4096 Jun 12 14:46 test

drwxr-xr-x. 2 root root     4096 Jun 12 14:46 testdb

-rw-r--r--. 1 root root       24 Jun 12 14:46 xtrabackup_binlog_pos_innodb

-rw-r--r--. 1 root root       77 Jun 12 14:46 xtrabackup_checkpoints

[[email protected] data]# chown -R mysql:mysql /mydata/data  #修改目录的属主和属组,使得mysql用户有权限操作该目录下的所有文件,-R递归修改。

[[email protected] data]# ll

total 28712

drwxr-xr-x. 2 mysql mysql     4096 Jun 12 14:46 hellodb

-rw-r-----. 1 mysql mysql 18874368 Jun 12 11:38 ibdata1

-rw-r--r--. 1 mysql mysql  5242880 Jun 12 14:46 ib_logfile0

-rw-r--r--. 1 mysql mysql  5242880 Jun 12 14:46 ib_logfile1

drwxr-xr-x. 2 mysql mysql      4096 Jun 12 14:46 jiaowu

drwxr-xr-x. 2 mysql mysql     4096 Jun 12 14:46 mydb

drwxr-xr-x. 2 mysql mysql    4096 Jun 12 14:46 mysql

drwxr-xr-x. 2 mysql mysql     4096 Jun 12 14:46 performance_schema

drwxr-xr-x. 2 mysql mysql     4096 Jun 12 14:46 stu

drwxr-xr-x. 2 mysql mysql     4096 Jun 12 14:46 test

drwxr-xr-x. 2 mysql mysql    4096 Jun 12 14:46 testdb

-rw-r--r--. 1 mysql mysql       24 Jun 12 14:46 xtrabackup_binlog_pos_innodb

-rw-r--r--. 1 mysql mysql       77 Jun 12 14:46 xtrabackup_checkpoints

[[email protected] data]#  service mysqld start  #启动mysqld服务

Starting MySQL..                                           [  OK  ]

[[email protected] data]# mysql -uroot -p  #登录mysql客户端

Enter password:

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 2

Server version: 5.5.28-log Source distribution

Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.

mysql> SHOW DATABASES;    #完全备份的数据已经恢复。

+--------------------+

| Database           |

+--------------------+

| information_schema |

| hellodb            |

| jiaowu             |

| mydb               |

| mysql              |

| performance_schema |

| stu                |

| test               |

| testdb             |

+--------------------+

9 rows in set (0.00 sec)

mysql> SELECT * FROM tutors;  #查看表内容

+-----+--------------+--------+------+

| TID | Tname        | Gender | Age  |

+-----+--------------+--------+------+

|   1 | HongQigong   | M      |   93 |

|   2 | HuangYaoshi  | M      |   63 |

|   3 | Miejueshitai | F      |   72 |

|   4 | OuYangfeng   | M      |   76 |

|   5 | YiDeng       | M      |   90 |

|   6 | YuCanghai    | M      |   56 |

|   7 | Jinlunfawang | M      |   67 |

|   8 | HuYidao      | M      |   42 |

|   9 | NingZhongze  | F      |   49 |

+-----+--------------+--------+------+

9 rows in set (0.00 sec)

打开另一个终端连接,把二进制日志导出

[[email protected] ~]#mysqlbinlog /backup/mysql-bin.000001 > /tmp/test.sql #导出二进制日志文件至

/tmp目录下的test.sql以便实现及时点恢复

mysql> SET sql_log_bin=0;  #导入二进制日志文件时,先关闭二进制日志记录功能

Query OK, 0 rows affected (0.00 sec)

mysql> SOURCE /tmp/test.sql   #导入二进制日志文件test.sql到数据库 source相当于./

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

mysql> SELECT * FROM tutors;

+-----+--------------+--------+------+

| TID | Tname        | Gender | Age  |

+-----+--------------+--------+------+

|   1 | HongQigong   | M      |   93 |

|   2 | HuangYaoshi  | M      |   63 |

|   3 | Miejueshitai | F      |   72 |

|   4 | OuYangfeng   | M      |   76 |

|   5 | YiDeng       | M      |   90 |

|   6 | YuCanghai    | M      |   56 |

|   7 | Jinlunfawang | M      |   67 |

|   8 | HuYidao      | M      |   42 |

|   9 | NingZhongze  | F      |   49 |

+-----+--------------+--------+------+

9 rows in set (0.00 sec)

mysql> SET sql_log_bin=1;  #恢复完二进制日志后,千万别忘记把二进制日志记录功能打开。

Query OK, 0 rows affected (0.00 sec)

对于增量备份也可以通过增量备份准备把所有增量备份的数据都写入到完全备份保存的目录,到时候恢复只要直接回复完全备份的内容即可,当然下一次再次执行数据备份时,需再次做一次完全备份,然后再做增量备份。

**准备**(prepare)增量备份与准备完全备份有着一些不同,尤其要注意的是:

(1)需要在每个备份(包括完全和各个增量备份)上,将已经提交的事务进行“重放”,“重放”之后,所有的备份数据将合并到完全备份上。

(2)基于所有的备份将未提交的事务进行“回滚”

于是,准备操作就变成了:

1、先准备完全备份的操作:

[[email protected] ~]# innobackupex --apply-log --redo-only BASE-DIR #执行完全备份的准备,

BASE-DIR:是完全备份存放的路径,--redo-only:执行事务选择redo

2、执行提交第一次增量备份的操作:

[[email protected] ~]# innobackupex -apply-log -redo-only BASE-DIR --incremental-dir=INCREMENTAL-DIR-1  #其中BASE-DIR:指的是完全备份所在的目录,而INCREMENTAL-DIR-1指的是第一次增量备份的目录

3、执行提交第二次增量备份的操作:

[[email protected] ~]# innobackupex -apply-log -redo-only BASE-DIR --incremental-dir=INCREMENTAL-DIR-2  #其中BASE-DIR:指的是完全备份所在的目录,而INCREMENTAL-DIR-2指的是第二次增量备份的目录

如果有多次增量备份,每一次备份完后都要执行如上准备操作,才可以用于后期的恢复操作。执行完整备份和多次增量备份准备工作后,所有数据都会保存在指定的完全备份BASE-DIR路径,后期恢复的时候

只要执行innobackupex --copy-back BASE-DIR  就可以把所有数据恢复回来。BASE-DIR为完全备份存放的目录。

**************************************************************************************************

远程备份
压缩备份
[[email protected] ~]#  innobackupex  --user=root --password=redhat --host=127.0.0.1 --stream=tar /tmp | ssh [email protected]  "gzip - > /tmp/bak.tar.gz"
或者
[[email protected] ~]#  innobackupex  --user=root --password=redhat --host=127.0.0.1 --stream=tar /tmp | gzip | ssh [email protected]  " /tmp/bak.tar.gz"
--stream=tar:tar格式
gzip:压缩
非压缩备份
[[email protected] ~]# innobackupex  --user=root --password=redhat --host=127.0.0.1 --stream=tar /tmp | ssh [email protected]  "cat - > /tmp/bak.tar"

远程恢复
数据压缩的文件需要加上 “i”
[[email protected] ~]# tar -izxvf bak.tar.gz

percona-xtrabackup-2.0.0-417.rhel6.x86_64.rpm

下载地址:https://www.percona.com/downloads/XtraBackup/LATEST/

时间: 2024-09-29 05:50:54

Linux命令:MySQL系列之十四--MySQL备份与还原(xtrabackup工具重要章节)的相关文章

Linux命令:MySQL系列之十四--MySQL备份与还原(LVM逻辑卷)

通过LVM逻辑卷实现MySQL备份及还原(几乎热备):        前提: 1.数据文件要在逻辑卷上: 2.此逻辑卷所在卷组必须有足够的空间使用快照卷: 3.数据文件和事务日志要在同一个逻辑卷上: 步骤: 1.打开会话,施加读锁,锁定所有表: mysql> FLUSH TABLES WITH READ LOCK;  #刷新表并对表施加读锁 mysql> FLUSH LOGS;   #滚动日志               2.通过另一个终端,保存二进制日志文件及相关位置信息: [[email 

Linux命令:MySQL系列之十二--MySQL备份与还原(重要章节)

一.数据备份 备份类型:热备份.温备份和冷备份 热备份:读.写不受影响: 温备份:仅可以执行读操作: 冷备份:离线备份,读.写操作均中止: 备份方式:物理备份和逻辑备份: 物理备份:复制数据文件,速度快,保存数据库的所有数据结构,如果数据跟数据库关联性强, 导致物理备份可移植性能力不强: 逻辑备份:将数据导出至文本文件中,速度慢.丢失浮点数精度:方便使用文本处理工具 直接对其处理,可移植能力强: 备份策略:完全备份.增量备份和差异备份: 完全备份:备份全部数据: 增量备份:仅备份上次完全备份或者

Linux命令:MySQL系列之十二--MySQL备份与还原(针对单张表SELECT备份)

对于只备份单张表的备份与还原,通过SELECT命令,可以更快速的达到备份和恢复的目的: 以及通过此方法把一个数据库中表的数据,导入至另一数据库的表中去. 备份格式:SELECT * INTO OUTFILE '/PATH/TO/somefile.txt' FROM table_name [WHERE CLAUSE]; #备份table_name表中的[或者备份满足WHERE语句的数据]数据至服务器上保存. 注释:table_name:需要备份的表  WHERE:满足的条件,可选项. /PATH/

MySQL的高可用实现:MySQL系列之十四

MySQL的高可以有三种实现方式:多主模式(Multi Master MySQL),MHA(Master High Availability)和 Galera Cluster:wresp 一.MHA ? 对主节点进行监控,可实现自动故障转移至其它从节点:通过提升某一从节点为新的主节点,基于主从复制实现,还需要客户端配合实现,目前MHA主要支持一主多从的架构,要搭建MHA,要求一个复制集群中必须最少有三台数据库服务器,一主二从,即一台充当master,一台充当备用master,另外一台充当从库.

我的MYSQL学习心得(十四) 备份和恢复

原文:我的MYSQL学习心得(十四) 备份和恢复 我的MYSQL学习心得(十四) 备份和恢复 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运算符 我的MYSQL学习心得(六) 函数 我的MYSQL学习心得(七) 查询 我的MYSQL学习心得(八) 插入 更新 删除 我的MYSQL学习心得(九) 索引 我的MYSQL学习心得(十) 自定义存储过程

屌炸天实战 MySQL 系列教程(四)【秒杀七年经验 LowB工程师】 主从复制、读写分离、模拟宕机、备份恢复方案生产环境实战

第一篇:屌炸天实战 MySQL 系列教程(一) 生产标准线上环境安装配置案例及棘手问题解决 第二篇:屌炸天实战 MySQL 系列教程(二) 史上最屌.你不知道的数据库操作 第三篇:屌炸天实战 MySQL 系列教程(三)你不知道的 视图.触发器.存储过程.函数.事物.索引.语句 第四篇:屌炸天实战 MySQL 系列教程(四) 主从复制.读写分离.模拟宕机.备份恢复方案生产环境实战 去年公司有一个七年PHP开发经验的工程师,想要跳槽. 去国内某知名互联网公司面试后,被虐惨了,非要我给他讲讲什么是主从

centos mysql 优化 第二十四节课

centos mysql  优化  第二十四节课 f

Chrome浏览器扩展开发系列之十四:本地消息机制Native messagin

Chrome浏览器扩展开发系列之十四:本地消息机制Native messaging 2016-11-24 09:36 114人阅读 评论(0) 收藏 举报  分类: PPAPI(27)  通过将浏览器所在客户端的本地应用注册为Chrome浏览器扩展的"本地消息主机(native messaging host)",Chrome浏览器扩展还可以与客户端本地应用之间收发消息. 客户端的本地应用注册为Chrome浏览器扩展的"本地消息主机"之后,Chrome浏览器会在独立的

Chrome浏览器扩展开发系列之十四

Chrome浏览器扩展开发系列之十四:本地消息机制Native messaging 时间:2015-10-08 16:17:59      阅读:1361      评论:0      收藏:0      [点我收藏+] 通过将浏览器所在客户端的本地应用注册为Chrome浏览器扩展的"本地消息主机(native messaging host)",Chrome浏览器扩展还可以与客户端本地应用之间收发消息. 客户端的本地应用注册为Chrome浏览器扩展的"本地消息主机"