PXC 集群搭建

 一、安装Percona数据库

1. 离线安装Percona

 进入RPM安装文件目录,执行下面的脚本

  yum localinstall *.rpm

 管理MySQL服务

  systemctl start mysqld

  systemctl stop mysqld

  systemctl restart mysqld

2. 在线安装Percona

使用yum命令安装 

  yum install http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm

  yum  install  Percona-Server-server-57

 管理MySQL服务

  service mysql start

  service mysql stop

  service mysql restart

 3. 开放防火墙端口

firewall-cmd --zone=public --add-port=3306/tcp --permanent

firewall-cmd --reload

 4. 修改MySQL配置文件

vi /etc/my.cnf

[mysqld]

character_set_server = utf8

bind-address = 0.0.0.0

#跳过DNS解析

skip-name-resolve

service mysql restart

5. 禁止开机启动MySQL

chkconfig mysqld off

6. 初始化MySQL数据库

查看MySQL初始密码

  cat /var/log/mysqld.log | grep "A temporary password"

修改MySQL密码

  mysql_secure_installation

 创建远程管理员账户


  mysql -u root -p


  CREATE USER 'admin'@'%' IDENTIFIED BY 'Abc_123456';

  GRANT all privileges ON *.* TO 'admin'@'%';

  FLUSH PRIVILEGES;


 二、创建PXC集群

 1. 删除MariaDB程序包

yum -y remove mari*

 2. 开放防火墙端口

firewall-cmd --zone=public --add-port=3306/tcp --permanent

firewall-cmd --zone=public --add-port=4444/tcp --permanent

firewall-cmd --zone=public --add-port=4567/tcp --permanent

firewall-cmd --zone=public --add-port=4568/tcp --permanent

 3. 关闭SELINUX

vi /etc/selinux/config

把SELINUX属性值设置成disabled

reboot

 4. 离线安装PXC

进入RPM文件目录,执行安装命令

  yum localinstall *.rpm

修改MySQL配置文件、创建账户等操作

5. 创建PXC集群

 停止MySQL服务

 修改每个PXC节点的/etc/my.cnf文件(在不同节点上,注意调整文件内容)

  server-id=1  #PXC集群中MySQL实例的唯一ID,不能重复,必须是数字

  wsrep_provider=/usr/lib64/galera3/libgalera_smm.so

  wsrep_cluster_name=pxc-cluster  #PXC集群的名称

  wsrep_cluster_address=gcomm://192.168.99.151,192.168.99.159,192.168.99.215

  wsrep_node_name=pxc1  #当前节点的名称

  wsrep_node_address=192.168.99.151  #当前节点的IP

  wsrep_sst_method=xtrabackup-v2  #同步方法(mysqldump、rsync、xtrabackup)

  wsrep_sst_auth= admin:Abc_123456  #同步使用的帐户

  pxc_strict_mode=ENFORCING  #同步严厉模式

  binlog_format=ROW  #基于ROW复制(安全可靠)

  default_storage_engine=InnoDB  #默认引擎

  innodb_autoinc_lock_mode=2  #主键自增长不锁表

主节点的管理命令(第一个启动的PXC节点)

  systemctl start mysql@bootstrap.service

  systemctl stop mysql@bootstrap.service

  systemctl restart mysql@bootstrap.service

 非主节点的管理命令(非第一个启动的PXC节点)

  service start mysql

  service stop mysql

  service restart mysql

 查看PXC集群状态信息

  show status like 'wsrep_cluster%' ;

* **按照上述配置方法,创建两组PXC集群**

 6. PXC节点启动与关闭

* 如果最后关闭的PXC节点是安全退出的,那么下次启动要最先启动这个节点,而且要以主节点启动

* 如果最后关闭的PXC节点不是安全退出的,那么要先修改`/var/lib/mysql/grastate.dat` 文件,把其中的`safe_to_bootstrap`属性值设置为1,再安装主节点启动

三、安装MyCat

1. JDK安装与配置

安装JDK·l

  #搜索JDK版本

  yum search jdk

  #安装JDK1.8开发版

  yum install java-1.8.0-openjdk-devel.x86_64

* 配置环境变量

  #查看JDK安装路径

  ls -lrt /etc/alternatives/java

  vi /etc/profile

  #在文件结尾加上JDK路径,例如export  JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.x86_64/

  source  /etc/profile

2. 创建数据表

 在两组PXC集群中分别创建t_user数据表

  CREATE TABLE t_user(

  id INT UNSIGNED PRIMARY KEY,

      username VARCHAR(200) NOT NULL,

      password VARCHAR(2000) NOT NULL,

      tel CHAR(11) NOT NULL,

      locked TINYINT(1) UNSIGNED NOT NULL DEFAULT 0,

      INDEX idx_username(username) USING BTREE,

      UNIQUE INDEX unq_username(username) USING BTREE

  );

 3. MyCat安装与配置

1. 下载MyCat

http://dl.mycat.io/1.6.5/Mycat-server-1.6.5-release-20180122220033-linux.tar.gz

2. 上传MyCat压缩包到虚拟机

3. 安装unzip程序包,解压缩MyCat

  yum install unzip

  unzip MyCAT压缩包名称

4. 开放防火墙8066和9066端口,关闭SELINUX

5. 修改MyCat的bin目录中所有.sh文件的权限

  chmod -R 777 ./*.sh

6. MyCat启动与关闭

  #cd MyCat的bin目录

  ./startup_nowrap.sh #启动MyCat

  ps -aux #查看系统进程

  kill -9 MyCat进程编号

7. 修改server.xml文件,设置MyCat帐户和虚拟逻辑库

  <?xml version="1.0" encoding="UTF-8"?>

  <!DOCTYPE mycat:server SYSTEM "server.dtd">

  <mycat:server xmlns:mycat="http://io.mycat/">

    <system>

    <property name="nonePasswordLogin">0</property>

    <property name="useHandshakeV10">1</property>

    <property name="useSqlStat">0</property>

    <property name="useGlobleTableCheck">0</property>

    <property name="sequnceHandlerType">2</property>

    <property name="subqueryRelationshipCheck">false</property>

    <property name="processorBufferPoolType">0</property>

    <property name="handleDistributedTransactions">0</property>

    <property name="useOffHeapForMerge">1</property>

        <property name="memoryPageSize">64k</property>

    <property name="spillsFileBufferSize">1k</property>

    <property name="useStreamOutput">0</property>

    <property name="systemReserveMemorySize">384m</property>

    <property name="useZKSwitch">false</property>

    </system>

      <!--这里是设置的admin用户和虚拟逻辑库-->

    <user name="admin" defaultAccount="true">

    <property name="password">Abc_123456</property>

    <property name="schemas">test</property>

    </user>

  </mycat:server>

8. 修改schema.xml文件,设置数据库连接和虚拟数据表

  <?xml version="1.0"?>

  <!DOCTYPE mycat:schema SYSTEM "schema.dtd">

  <mycat:schema xmlns:mycat="http://io.mycat/">

    <!--配置数据表-->

    <schema name="test" checkSQLschema="false" sqlMaxLimit="100">

    <table name="t_user" dataNode="dn1,dn2" rule="mod-long" />

    </schema>

    <!--配置分片关系-->

    <dataNode name="dn1" dataHost="cluster1" database="test" />

    <dataNode name="dn2" dataHost="cluster2" database="test" />

    <!--配置连接信息-->

    <dataHost name="cluster1" maxCon="1000" minCon="10" balance="2"

                  writeType="1" dbType="mysql" dbDriver="native" switchType="1" 

                  slaveThreshold="100">

    <heartbeat>select user()</heartbeat>

    <writeHost host="W1" url="192.168.99.151:3306" user="admin"

                        password="Abc_123456">

    <readHost host="W1R1" url="192.168.99.159:3306" user="admin"

                          password="Abc_123456" />

    <readHost host="W1R2" url="192.168.99.215:3306" user="admin"

                          password="Abc_123456" />

    </writeHost>

    <writeHost host="W2" url="192.168.99.159:3306" user="admin"

                        password="Abc_123456">

    <readHost host="W2R1" url="192.168.99.151:3306" user="admin"

                          password="Abc_123456" />

    <readHost host="W2R2" url="192.168.99.215:3306" user="admin"

                          password="Abc_123456" />

    </writeHost>

    </dataHost>

    <dataHost name="cluster2" maxCon="1000" minCon="10" balance="2"

                  writeType="1" dbType="mysql" dbDriver="native" switchType="1" 

                  slaveThreshold="100">

    <heartbeat>select user()</heartbeat>

    <writeHost host="W1" url="192.168.99.121:3306" user="admin"

      password="Abc_123456">

    <readHost host="W1R1" url="192.168.99.122:3306" user="admin"

                          password="Abc_123456" />

    <readHost host="W1R2" url="192.168.99.123:3306" user="admin"

                          password="Abc_123456" />

    </writeHost>

    <writeHost host="W2" url="192.168.99.122:3306" user="admin"

      password="Abc_123456">

    <readHost host="W2R1" url="192.168.99.121:3306" user="admin"

                          password="Abc_123456" />

    <readHost host="W2R2" url="192.168.99.123:3306" user="admin"

                          password="Abc_123456" />

    </writeHost>

    </dataHost>

  </mycat:schema>

9. 修改rule.xml文件,把mod-long的count值修改成2

  <function name="mod-long" class="io.mycat.route.function.PartitionByMod">

  <property name="count">2</property>

  </function>

10. 重启MyCat

11. 向t_user表写入数据,感受数据的切分

    USE test;

    #第一条记录被切分到第二个分片

    INSERT INTO t_user(id,username,password,tel,locked) VALUES(1,"A",HEX(AES_ENCRYPT('123456','HelloWorld')));

    #第二条记录被切分到第一个分片

    INSERT INTO t_user(id,username,password,tel,locked) VALUES(2,"B",HEX(AES_ENCRYPT('123456','HelloWorld')));

4. 配置父子表

1. 在conf目录下创建`customer-hash-int`文件,内容如下:

  101=0

  102=0

  103=0

  104=1

  105=1

  106=1

2. 在rule.xml文件中加入自定义<function>和<tableRule>

  <function name="customer-hash-int"

  class="io.mycat.route.function.PartitionByFileMap">

  <property name="mapFile">customer-hash-int.txt</property>

  </function>

  <tableRule name="sharding-customer">

  <rule>

  <columns>sharding_id</columns>

  <algorithm>customer-hash-int</algorithm>

  </rule>

  </tableRule>

3. 修改schema.xml文件,添加父子表定义

  <table name="t_customer" dataNode="dn1,dn2" rule="sharding-customer">

  <childTable name="t_orders" primaryKey="ID" joinKey="customer_id"

                  parentKey="id"/>

  </table>

4. 在MyCat上执行如下SQL:

  USE test;

  CREATE TABLE t_customer(

  id INT UNSIGNED PRIMARY KEY,

      username VARCHAR(200) NOT NULL,

      sharding_id INT NOT NULL

  );

  CREATE TABLE t_orders(

  id INT UNSIGNED PRIMARY KEY,

      customer_id INT NOT NULL,

      datetime TIMESTAMP DEFAULT CURRENT_TIMSTAMP

  );

5. 向t_customer表和t_orders表写入数据,查看字表数据跟随父表切分到同一个分片

5. 创建双机热备的MyCat集群

用两个虚拟机实例,各自部署MyCat

用一个虚拟机实例部署Haproxy

  安装Haproxy

    yum install -y haproxy

  * 编辑配置文件

    vi /etc/haproxy/haproxy.cfg


    ```

    global

        log        127.0.0.1 local2

        chroot      /var/lib/haproxy

        pidfile    /var/run/haproxy.pid

        maxconn    4000

        user        haproxy

        group      haproxy

        daemon

        # turn on stats unix socket

        stats socket /var/lib/haproxy/stats


    defaults

        mode                    http

        log                    global

        option                  httplog

        option                  dontlognull

        option http-server-close

        option forwardfor      except 127.0.0.0/8

        option                  redispatch

        retries                3

        timeout http-request    10s

        timeout queue          1m

        timeout connect        10s

        timeout client          1m

        timeout server          1m

        timeout http-keep-alive 10s

        timeout check          10s

        maxconn                3000


    listen  admin_stats 

        bind    0.0.0.0:4001

        mode  http

        stats uri      /dbs

        stats realm  Global\ statistics

        stats auth    admin:abc123456

    listen  proxy-mysql

        bind    0.0.0.0:3306 

        mode  tcp

        balance  roundrobin

        option  tcplog      #日志格式

        server  mycat_1  192.168.99.131:3306  check  port  8066  maxconn  2000 

        server  mycat_2  192.168.99.132:3306  check  port  8066  maxconn  2000 

        option  tcpka        #使用keepalive检测死链

  启动Haproxy

    service haproxy start

 访问Haproxy监控画面

    http://192.168.99.131:4001/dbs 

3. 用另外一个虚拟机同样按照上述操作安装Haproxy

4. 在某个Haproxy虚拟机实例上部署Keepalived

 开启防火墙的VRRP协议

    #开启VRRP

    firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 0 --protocol  vrrp -j ACCEPT

    #应用设置

    firewall-cmd --reload

 安装Keepalived

    yum install -y keepalived

 编辑配置文件

    vim /etc/keepalived/keepalived.conf

    ```

    ```

    vrrp_instance  VI_1 {

        state  MASTER

        interface  ens33

        virtual_router_id  51

        priority  100

        advert_int  1

        authentication {

            auth_type  PASS

            auth_pass  123456

        }

        virtual_ipaddress {

            192.168.99.133

        }

    }

 启动Keepalived

    service keepalived start

 ping 192.168.99.133

5. 在另外一个Haproxy虚拟机上,按照上述方法部署Keepalived

6. 使用MySQL客户端连接192.168.99.133,执行增删改查数据

 四、Sysbench基准测试

1. 安装Sysbench

在线安装

  curl -s https://packagecloud.io/install/

  repositories/akopytov/sysbench/script.rpm.sh | sudo bash

  yum -y install sysbench

本地安装

 下载压缩文件

https://codeload.github.com/akopytov/sysbench/zip/1.0

  安装依赖包

    yum install -y automake libtool

    yum install -y mysql-devel

  执行安装

    #cd sysbench

    ./autogen.sh

    ./configure

    make

    make install

    sysbench --version

2. 执行测试

准备测试库

  sysbench  /usr/share/sysbench/tests/include/oltp_legacy/oltp.lua --mysql-host=192.168.99.131 --mysql-port=3306 --mysql-user=admin --mysql-password=Abc_123456 --oltp-tables-count=10 --oltp-table-size=100000 prepare

执行测试

  sysbench  /usr/share/sysbench/tests/include/oltp_legacy/oltp.lua --mysql-host=192.168.99.131 --mysql-port=3306 --mysql-user=admin --mysql-password=Abc_123456 --oltp-test-mode=complex --threads=10 --time=300 --report-interval=10 run >> /home/mysysbench.log

清理数据

  sysbench /usr/share/sysbench/tests/include/oltp_legacy/oltp.lua --mysql-host=192.168.99.131 --mysql-port=3306 --mysql-user=admin --mysql-password=Abc_123456 --oltp-tables-count=10 cleanup

五、tpcc-mysql 压力测试

1. 准备工作

修改my.cnf配置文件

  vi /etc/my.cnf

  pxc_strict_mode=DISABLED

修改某个Haproxy的配置文件

  server  mysql_1  192.168.99.151:3306  check  port  3306  weight  1  maxconn  2000

  server  mysql_2  192.168.99.159:3306  check  port  3306  weight  1  maxconn  2000

  server  mysql_3  192.168.99.215:3306  check  port  3306  weight  1  maxconn  2000

 重新启动Haproxy

安装依赖程序包

  yum install -y gcc

  yum install -y mysql-devel

2. 安装tpcc-mysql

 下载压缩包

https://codeload.github.com/Percona-Lab/tpcc-mysql/zip/master

 执行安装

  #cd tpcc的src目录

  make

执行`create_table.sql`和`add_fkey_idx.sql`两个文件

执行数据初始化

  ./tpcc_load -h 192.168.99.131 -d tpcc -u admin -p Abc_123456 -w

 执行压力测试

  ./tpcc_start -h 192.168.99.131 -d tpcc -u admin -p Abc_123456 -w 1 -c 5 -r 300 -l 600 ->tpcc-output-log


 六、导入数据

1. 生成1000万条数据


import java.io.FileWriter

import java.io.BufferedWriter

class Test {

def static void main(String[] args) {

var writer=new FileWriter("D:/data.txt")

var buff=new BufferedWriter(writer)

for(i:1..10000000){

buff.write(i+",测试数据\n")

}

buff.close

writer.close

}

}

2. 执行文件切分

上传data.txt文件到linux

 执行文件切分

  split -l 1000000 -d data.txt

3. 准备数据库

每个PXC分片只开启一个节点

修改PXC节点文件,然后重启PXC服务

  innodb_flush_log_at_trx_commit = 0

  innodb_flush_method = O_DIRECT

  innodb_buffer_pool_size = 200M

创建t_test数据表

  CREATE TABLE t_test(

  id INT UNSIGNED PRIMARY KEY,

      name VARCHAR(200) NOT NULL

  );

配置MyCat

  <table name="t_test" dataNode="dn1,dn2" rule="mod-long" />

  ```

  ```xml

  <dataHost name="cluster1" maxCon="1000" minCon="10" balance="0" writeType="1"

            dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">

  <heartbeat>select user()</heartbeat>

  <writeHost host="W1" url="192.168.99.151:3306" user="admin"

                password="Abc_123456"/>

  </dataHost>

  <dataHost name="cluster2" maxCon="1000" minCon="10" balance="0" writeType="1"

            dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">

  <heartbeat>select user()</heartbeat>

  <writeHost host="W1" url="192.168.99.121:3306" user="admin"

                password="Abc_123456"/>

  </dataHost>

4. 执行Java程序,多线程导入数据

import org.eclipse.xtend.lib.annotations.Accessors

import java.io.File

import java.sql.DriverManager

class Task implements Runnable{

@Accessors

File file;

override run() {

var url="jdbc:mysql://192.168.99.131:8066/test"

var username="admin"

var password="Abc_123456"

var con=DriverManager.getConnection(url,username,password)

var sql='''

load data local intfile '/home/data/«file.name»' ignore into table t_test

character set 'utf8'

fields terminated by ',' optionally enclosed by '\"'

lines terminated by '\n' (id,name);

'''

var pst=con.prepareStatement(sql);

pst.execute

con.close

LoadData.updateNum();

}

}

import com.mysql.jdbc.Driver

import java.sql.DriverManager

import java.util.concurrent.LinkedBlockingQueue

import java.util.concurrent.ThreadPoolExecutor

import java.util.concurrent.TimeUnit

import java.io.File

class LoadData {

var static int num=0;

var static int end=0;

var static pool=new ThreadPoolExecutor(1,5,60,TimeUnit.SECONDS,new LinkedBlockingQueue(200))

def static void main(String[] args) {

DriverManager.registerDriver(new Driver)

var folder=new File("/home/data")

var files=folder.listFiles

end=files.length //线程池结束条件

files.forEach[one|

var task=new Task();

task.file=one;

pool.execute(task)

]

}

synchronized def static updateNum(){

num++;

if(num==end){

pool.shutdown();

println("执行结束")

}

}

}

七、大数据归档

1. 安装TokuDB

安装jemlloc

  yum install -y jemalloc

 编辑配置文件

  vi /etc/my.cnf

  ……

  [mysqld_safe]

  malloc-lib=/usr/lib64/libjemalloc.so.1

  ……

重启MySQL

开启Linux大页内存

  echo never > /sys/kernel/mm/transparent_hugepage/enabled

  echo never > /sys/kernel/mm/transparent_hugepage/defrag

安装TokuDB

  yum install -y Percona-Server-tokudb-57.x86_64

  ps-admin --enable -uroot -p

  service mysql restart

  ps-admin --enable -uroot -p

查看安装结果

  show engines ;

2. 配置Replication集群

在两个TokuDB数据库上创建用户

  CREATE USER 'backup'@'%' IDENTIFIED BY 'Abc_123456' ;

  GRANT super, reload, replication slave ON *.* TO 'backup'@'%' ;

  FLUSH  PRIVILEGES ;

修改两个TokuDB的配置文件,如下:

  [mysqld]

  server_id = 101

  log_bin = mysql_bin

  relay_log = relay_bin

  [mysqld]

  server_id = 102

  log_bin = mysql_bin

  relay_log = relay_bin

* 重新启动两个TokuDB节点

* 分别在两个TokuDB上执行下面4句SQL

  ```mysql

  #关闭同步服务

  stop slave;

  #设置同步的Master节点

  change master to master_host="192.168.99.155",master_port=3306,master_user="backup",

  master_password="Abc_123456";

  #启动同步服务

  start slave;

  #查看同步状态

  show slave status;

  #关闭同步服务

  stop slave;

  #设置同步的Master节点

  change master to master_host="192.168.99.102",master_port=3306,master_user="backup",

  master_password="Abc_123456";

  #启动同步服务

  start slave;

  #查看同步状态

  show slave status;

3. 创建归档表

CREATE TABLE t_purchase (

id INT UNSIGNED PRIMARY KEY,

purchase_price DECIMAL(10,2) NOT NULL,

purchase_num INT UNSIGNED NOT NULL,

purchase_sum DECIMAL (10,2) NOT NULL,

purchase_buyer INT UNSIGNED NOT NULL,

purchase_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,

company_id INT UNSIGNED NOT NULL,

goods_id INT UNSIGNED NOT NULL,

KEY idx_company_id(company_id),

KEY idx_goods_id(goods_id)

)engine=TokuDB;

4. 配置Haproxy+Keepalived双机热备

在两个节点上安装Haproxy

  yum install -y haproxy

修改配置文件

  vi /etc/haproxy/haproxy.cfg

  global

      log        127.0.0.1 local2

      chroot      /var/lib/haproxy

      pidfile    /var/run/haproxy.pid

      maxconn    4000

      user        haproxy

      group      haproxy

      daemon

      # turn on stats unix socket

      stats socket /var/lib/haproxy/stats


  defaults

      mode                    http

      log                    global

      option                  httplog

      option                  dontlognull

      option http-server-close

      option forwardfor      except 127.0.0.0/8

      option                  redispatch

      retries                3

      timeout http-request    10s

      timeout queue          1m

      timeout connect        10s

      timeout client          1m

      timeout server          1m

      timeout http-keep-alive 10s

      timeout check          10s

      maxconn                3000


  listen  admin_stats 

      bind    0.0.0.0:4001

      mode  http

      stats uri      /dbs

      stats realm  Global\ statistics

      stats auth    admin:abc123456

  listen  proxy-mysql

      bind    0.0.0.0:4002 

      mode  tcp

      balance  roundrobin

      option  tcplog      #日志格式

      server  backup_1  192.168.99.102:3306  check  port  3306  maxconn  2000 

      server  backup_2  192.168.99.155:3306  check  port  3306  maxconn  2000 

      option  tcpka        #使用keepalive检测死链

重启Haproxy

开启防火墙的VRRP协议

  firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 0 --protocol vrrp -j ACCEPT

  firewall-cmd --reload

 在两个节点上安装Keepalived

  yum install -y keepalived

 编辑Keepalived配置文件

  vim /etc/keepalived/keepalived.conf

  vrrp_instance  VI_1 {

      state  MASTER

      interface  ens33

      virtual_router_id  51

      priority  100

      advert_int  1

      authentication {

          auth_type  PASS

          auth_pass  123456

      }

      virtual_ipaddress {

          192.168.99.211

      }

  }

重启Keepalived

5. 准备归档数据

在两个PXC分片上创建进货表

  CREATE TABLE t_purchase (

  id INT UNSIGNED PRIMARY KEY,

  purchase_price DECIMAL(10,2) NOT NULL,

  purchase_num INT UNSIGNED NOT NULL,

  purchase_sum DECIMAL (10,2) NOT NULL,

  purchase_buyer INT UNSIGNED NOT NULL,

  purchase_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,

  company_id INT UNSIGNED NOT NULL,

  goods_id INT UNSIGNED NOT NULL,

  KEY idx_company_id(company_id),

  KEY idx_goods_id(goods_id)

  )

* 配置MyCat的schema.xml文件,并重启MyCat

  <table name="t_purchase" dataNode="dn1,dn2" rule="mod-long" />


 6. 执行数据归档

安装pt-archiver

  yum install percona-toolkit

  pt-archiver --version

  pt-archiver --help

* 执行数据归档

  pt-archiver --source h=192.168.99.102,P=8066,u=admin,p=Abc_123456,D=test,t=t_purchase --dest h=192.168.99.102,P=3306,u=admin,p=Abc_123456,D=test,t=t_purchase --no-check-charset --where 'purchase_date<"2018-09"' --progress 5000 --bulk-delete --bulk-insert --limit=10000 --statistics

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容

  • 一、升级 OpenSSL 查看当前OpenSSL版本> openssl version -a# 如果版本不为1.0...
    Arrows阅读 400评论 0 2
  • 思变的价值 试着站在全平台的角度去考虑问题 做产品不是在寻找真理,需要考虑实现的性价比 要先想想,是否非做不可
    這是一個帥氣的暱稱阅读 194评论 0 0
  • 昨晚航班临近12点抵达白云机场,眯缝着眼睛上了出租车,说了个地址就沉沉睡去,上一秒还想着,不能睡呀,别被卖了去。 ...
    黄點點阅读 189评论 0 1
  • 是海边的少年呢 殷红的朝霞映着艳丽的风衣 贝壳在汹涌的海浪下舞蹈 大海的歌声伴随着风的呼声 一个人的漫步变成深思 ...
    灵空僧阅读 307评论 0 0