zoukankan      html  css  js  c++  java
  • 线上系统和冷备系统同步单个表数据

    线上数据同步冷备数据操作
    为了保障系统的稳定及安全,我们公司采用了一整套的冷备系统,即当线上系统发生故障直接切换到备份系统,避免客户的访问故障。由于是两套完全独立的系统,因此会造成数据库里的数据不完全同步,虽然我们的开发人员在导入数据时会主备系统都会导,但是还是会有一定的差别,我们是在一定范围内是可以允许有一定的误差的,但是我们需要给用户提供服务,因此必须保证已有的用户可以登陆我们的系统,因此我们会不定时的手动去同步user表及其他几个表。
    下面是我的一些具体操作步骤:
    1.查看即将同步的表有多少条数据,以便我们后期确定是否同步成功:
    select count(*) from 表明; ###最好两边都查一下
    2.备份备份系统的表数据,以防误操作可以及时恢复:
    mysqldump -uroot -p 数据库名 表名 > /data/mysqldata/表名.sql
    3.从主系统导出数据:
    select * into outfile '/tmp/outfile.txt' from 表名;
    4.同步到被系统,我这里是先同步到我自己电脑在上传到备份系统:
    sz /tmp/outfile.txt
    如果没有安装sz的话请用:
    centos系统:yum -y install lrzsz
    ubuntu系统:apt-get -y install lrzsz
    5.清空备份系统即将同步表的表数据,如果第一次同步可忽略这一步:
    truncate table 表名;
    如果失败请用:
    delete * from 表名;
    6.上传本机第4步下载到本机的数据到备份系统:
    rz
    如果报错,备份系统安装lrzsz
    7.更改已经上传到备份系统文件的属主属组及存放位置
    chown mysql.mysql outfile.txt
    更改outfile.txt存放位置到mysql数据库目录。因为mysql是由mysql用户启动的,必然会报权限拒绝。
    8.同步数据
    load data infile '/data/mysqldata/outfile.txt' into table 表名 FIELDS TERMINATED BY '|' LINES TERMINATED BY ' ';
    9.查看同步过来的表条数是否和主系统一样,如果一样即表示同步成功:
    select count(*) from 表名;

  • 相关阅读:
    经济学原理---10 外部性-- 读书笔记
    经济学原理---9应用:国际贸易--- 读书笔记
    人月神话阅读笔记之一
    小水王
    构建之法读书笔记之五
    课堂作业
    时间记录日志
    构建之法读书笔记之四
    查找水王程序
    代码阅读方法与实践阅读笔记01
  • 原文地址:https://www.cnblogs.com/yangxiaochu/p/7717949.html
Copyright © 2011-2022 走看看