利用脚本实现mysql主库到备库数据同步(每五分钟同步一次增量)

  1. 目标: 将主库数据(IP1)每五分钟一次同步到备库(IP2) 服务器备库上,只同步增加量
  2. 思路:
  3. 利用crontab 每五分钟一次定时执行脚本进行数据同步
  4. 在脚本中编译实现查询五分钟内的数据增加量,并将增加量导入到备库
  5. 实现过程及代码(以record 表为例):
  6. bash脚本中内容

    vi transaction.sh----建立transaction脚本实现同步

    #!/bin/bash

source.bash_profile

(由于定时执行的功能使用crontab实现,需要在bash中添加使环境变量生效)

exportID=`mysql -N -utest -ptest\[email protected]#$ -Dtest -e "select

max(transaction_id)from record"`

(使用替代变量ID定义备库中现在最大transaction_id的值)

mysql-N -hIP2 -uslaveroot -p7Pyw#7AHh7 -Dtest -e "use

test;select* from record where transaction_id > $ID;"> backup.sql

(在主库中查找大于transaction_id 的值即在这五分钟内record中数据增长量,并将其导入

到backup.sql文件中)

sed-i ‘s#NULL#\\N#g‘ backup.sql

(由于字符集问题"NULL" 在导入中会出现错误,利用sed指令将NULL替代成为\N)

mysql -N -utest -ptest\[email protected]#$ -Dtest -e "use test;load datainfile

‘/home/mysql/backup.sql‘ into table record;"

(导入生成的backup.sql文件)

crontab脚本编写

crontab-e (编辑定时脚本)

5,10,15,20,25,30,35,40,45,50,55* * * * /home/mysql/transaction.sh

(每五分钟执行一次transaction.sh)

  1. 执行结果验

时间: 2024-10-25 23:38:12

利用脚本实现mysql主库到备库数据同步(每五分钟同步一次增量)的相关文章

MySQL · 答疑解惑 · 备库Seconds_Behind_Master计算

背景 在mysql主备环境下,主备同步过程如下,主库更新产生binlog, 备库io线程拉取主库binlog生成relay log.备库sql线程执行relay log从而保持和主库同步. 理论上主库有更新时,备库都存在延迟,且延迟时间为备库执行时间+网络传输时间即t4-t2. 那么mysql是怎么来计算备库延迟的? 先来看show slave status中的一些信息,io线程拉取主库binlog的位置: Master_Log_File: mysql-bin.000001 Read_Maste

DG之主库、备库切换(物理备库)

DG之主库.备库切换 一.开库与关库顺序 开库顺序 先启备库,再启主库(启动监听.打开告警日志) 关库顺序 先关主库,再关备库 二.主备库切换 1.操作过程一览 步骤1:启动备库.监听.告警: 步骤2:启动主库.监听.告警: 步骤3:主库(bj)查询信息 SQL>selectname,dbid,database_role,protection_mode from v$database; 步骤4:备库(sh)上做recover SQL>recovermanaged standby databas

Oracle GoldenGate环境中主库和备库 网络突然中断后,主端的dp进程无法启动的问题

view report dpfull, 现象是 /gg/ggs/dirdat/aa000053 (no surch file or directory) 实际上,此文件在目的端存在的. 处理方法: 1. 目的端ps -ef | grep ggs ,找到server进程,假设server进程的pid是12345 2. 目的端 kill -9 12345 3. 目的端 stop mgr 4. 目的端 start mgr 5. 源端 start dp 6.dp状态ok,问题处理完毕. Oracle G

主库、备库的初始化参数文件

主库初始化参数文件-initowner.ora owner.__db_cache_size=1862270976 owner.__java_pool_size=33554432 owner.__large_pool_size=50331648 owner.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment owner.__pga_aggregate_target=838860800 owner.__sga_target

oracle11g dataguard 备库数据同步的检查方法

概述: 一.环境 主库: ip地址:192.168.122.203 oracle根目录:/data/db/oracle SID:qyq 数据文件路径/data/db/oracle/oradata/qyq 归档文件路径:/data/db/oracle/archive' 备库: ip地址:192.168.122.204 oracle根目录:/data/app/oracle SID:qyq 数据文件路径/data/app/oracle/oradata/qyq 归档文件路径:/data/app/orac

ADG 备库数据文件损坏处理

一.描述单实例ADG数据库,备库system01.dbf文件损坏,需要重新恢复数据文件,保证主库库数据一致. 二.处理过程 1.数据库启动到mount状态Recovery Manager: Release 11.2.0.4.0 - Production on Thu Dec 12 20:42:35 2019 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. connected to targe

利用PHP脚本辅助MySQL数据库管理4-两个库表结构差异比较

<?php define('DATABASE1', 'coffeetest'); $dbi1 = new DbMysql; $dbi1->dbh = 'mysql://root:[email protected]/'.DATABASE1; define('DATABASE2', 'sinatest'); $dbi2 = new DbMysql; $dbi2->dbh = 'mysql://root:[email protected]/'.DATABASE2; // db1 $db1 =

heartheartbeat+drbd+mysql主库热备

一 环境准备 1 环境 主机名 网卡 磁盘 master eth0 桥接模式 eth0(192.168.1.10) 自定义模式(VMnet2)(192.168.2.10)VIP 192.168.1.200/210 系统盘+20G外接磁盘 slave eth0 桥接模式(192.168.1.20) eth1 自定义模式(VMnet2)(192.168.2.20)VIP 192.168.1.200/210 系统盘+20G外接磁盘 server3 eth0 桥接模式 (192.168.1.30) 系统

利用PHP脚本辅助MySQL数据库管理5-检查异常数据

<?php $dbi = new DbMysql; $dbi->dbh = 'mysql://root:[email protected]/coffeetest'; $map = array(); $dbi->fetchMap("SHOW TABLES", $map); $tables = array_keys($map); // 找出含有cid字段的表 $cid_tables = array(); for($j=0; $j<count($tables); $j