现在完全致力于MySQL。

项目要求:将开发环境中的数据库修改同步到在线环境。

开发人员提供的解决方案是使用像Python这样的South框架来自动将开发环境的更改同步到生产环境。这对于DBA来说是无法忍受的(除非它是创建具有类似结果的数据库的语句)。数据库更改是在生产环境中实现的,必须事先进行评估。对业务的影响已减至最小,这旨在重新设计索引或使用在线修改工具等。本文暂不讨论,表同步解决方案如下。

以前的方法是使用导航工具一个一个地比较数据库,或者编写一个Mysqldump脚本仅转储表结构,然后使用diff一个一个地比较。对于少量数据库实例,这是可以接受的。简而言之,我个人认为它不符合运维自动化的概念。

最近尝试了一种新工具-Schema Sync,该工具基于Python语言并符合Apache许可证2.0版。开源协议。

说明信息:

1.该工具不会修改数据库,而是会收集不同数据库之间的差异并生成SQL脚本。

2.生成的SQL语句将自动在after,first和其他关键字后添加

3.对于重命名的表或字段,该工具生成首先被删除的SQL语句。

4.尚不支持MySQL的分区功能。

下载并安装:

安装条件:

1,Python 2.4、2.5或2.6

2,MySQL,版本5.0或更高版本

3,MySQLdb,版本1.2.1p2或更高版本

下载:SchemaSync-0.9.2

安装:

tar xvzf SchemaSync-0.9.2.tar.gz

cd SchemaSync-0.9.2

sudo python setup.py安装

如果要获取最新的开发版本,或在生产环境中不允许root登录,请参阅以下链接:http://schemasync.org/install.htm)

基本语法:

schemasync [选项]

源或目标的格式为:

mysql://用户:[受电子邮件保护]:端口/数据库

最终生成的文件的格式为:[_]。 YYYYMMDD。 (补丁|恢复)[_]。 SQL,有一个日志文件

补丁文件(应用于目标主机),还原文件(可以回滚,这种方法很棒,我个人同意,但是作为DBA,最好在操作之前对在线数据库进行备份)

特定选项可以通过\查看。 schemasync \ \-帮助

常用选项:

-output-directory = OUTPUT_DIRECTORY存储日志文件和生成的SQL文件的目录

–tag = TAG在文件上加上易于识别的注释

-r,–revision如果生成的结果文件中存在相同的名称,则将对其附加标记。

-a,–sync-auto-inc此选项应注意,他将同步自增值

-c \-sync-comments同步新添加字段的内容。 说明(测试后此选项无效)

测试:

192.168.1.172上的数据库同步库中有一个表:t1(id int null)

数据库同步库中的一个表位于192.168.1.175:t1(id int 不为null)

现在将172中的同步库同步到175:

schemasync \ -r–output-dir = \ quot;/root/sync/” mysql://根目录:[受电子邮件保护]:3306/sync mysql://根目录:[受电子邮件保护]:3307/sync

打印的消息:

[INFO 2012-07-13 18:21:49,784]为mysql创建的迁移脚本://192.168.1.175/sync

修补程序脚本:/root/sync/sync.20120713.patch.sql

还原脚本:/root/sync/sync.20120713.revert.sql

我们可以打开文件进行查看:

使用`sync`;

ALTER TABLE`t1` MODIFY COLUMN` id` int(11)NULL首先,引擎= InnoDB ROW_FORMAT =紧凑;

该文件已将id列的non-null属性设置为null。将此文件应用到175。

(PS:这是一个简单的测试。在构建环境中,您可以使用Shell循环同时同步多个库。对于DBA,最好在评估更改之前先检查SQL,评估对联机的影响,并考虑使用在线DDL和其他工具)

官方地址:http://schemasync.org/

mysql数据库文件结构同步,[数据库的表同步mysql]MySQL表结构同步相关推荐

  1. Navicat:实现两个数据库结构同步

    Navicat版本:Navicat Premium 12 选择 工具 --> 结构同步 选择源数据库和目标数据库,选择完成后点击右下角对比按钮 要修改的对象:源数据库和目标数据库中都有的表,但是 ...

  2. linux无法同步数据库表,Linux数据库:MySQL主从同步设置和同步错误处理

    注意: 1.两台服务器数据库版本应一致,如果不一致,从服务器的版本要高于主服务器的版本. 2.MySQL进行实时数据同步,本质上是将mysql动作同步到Slave服务器,而不是对实质的数据进行同 步. ...

  3. solr mysql 分词_solr 7+tomcat 8 + mysql实现solr 7基本使用(安装、集成中文分词器、定时同步数据库数据以及项目集成)...

    基本说明 Solr是一个开源项目,基于Lucene的搜索服务器,一般用于高级的搜索功能: solr还支持各种插件(如中文分词器等),便于做多样化功能的集成: 提供页面操作,查看日志和配置信息,功能全面 ...

  4. mysql 去重 根据id_mycat数据库集群系列之mysql主从同步设置

    最近在梳理数据库集群的相关操作,现在花点时间整理一下关于mysql数据库集群的操作总结,恰好你又在看这一块,供一份参考.本次系列终结大概包括以下内容:多数据库安装.mycat部署安装.数据库之读写分离 ...

  5. php mysql主从延迟_如何解决主从数据库同步延迟问题?php连接 mysql 数据库如何添加一个公共的配置文件50...

    在上一篇文章中,小编为您详细介绍了关于<图上属标注的什么样元器件?火车购票明明显示无座为什么样乘车后却发现有很多空座>相关知识.本篇中小编将再为您讲解标题如何解决主从数据库同步延迟问题?p ...

  6. dataguard mysql,[dataguard同步数据库]Dataguard环境下数据库的备份与恢复

    在线QQ客服:1922638 专业的SQL Server.MySQL数据库同步软件 在部署完active data guard后,不但可以将只读的查询交给备库执行,还可以把日常的数据库备份工作放在备库 ...

  7. mysql master-user_【MySQL】MySQL5.6数据库基于binlog主从(Master/Slave)同步安装与配置详解...

    主从数据库同步原理 image.png 主从数据库同步工作原理(流程): 当主库的数据发生修改时,数据更改的记录将写入到主库的二进制文件中,从库此时将会调用一个IO线程读取主库的二进制文件,并与中继日 ...

  8. linux同步数据库,Linux两台服务器mysql数据库同步

    我们在做web系统部署的时候往往涉及到两台甚至多台数据库的备份,为了数据安全考虑(虽然说到底不过是一堆0 1,但是价千金啊),所以我们还是乖乖做同步把! 1.准备两台Linux服务器(主.从) 2.安 ...

  9. django mysql数据同步_[django同步数据库]Django去操作已经存在数据的数据库

    数据库,各种表结构已经创建好了,甚至连数据都有了,此时,我要用Django管理这个数据库,ORM映射怎么办??? Django是最适合所谓的green-field开发,即从头开始一个新的项目 但是呢, ...

  10. 两个mysql主从同步_如何配置两个MySQL数据库之间的主从同步功能

    匿名用户 1级 2016-02-29 回答 一. 概述 MySQL从3.23.15版本以后提供数据库复制(replication)功能,利用该功能可以实现两个数据库同步.主从模式.互相备份模式的功能. ...

最新文章

  1. 元旦去哪玩?用Python告诉你哪些景点爆满!
  2. href可以请求后台么_href怎么进行传参
  3. 云数据库MongoDB全面支持3.4版本,支持多存储引擎
  4. JZ2440学习总结5
  5. Java 多线程练习---创建两个子线程,每个线程交替输出“你好--来自线程***”...
  6. 如何测试web服务器性能,如何执行Web服务器性能基准测试?
  7. mysql.createPool(db),Node.js中JavaScript操作MySQL的常用方法整理
  8. 最全的微信小程序代码大全
  9. 自动刷新徐小明股市直播内容
  10. Windows远程桌面单/多用户同时登录
  11. 卡巴斯基提示:“手机骷髅”病毒引发新一轮安全隐患
  12. Android 数独游戏开发,强逻辑的梳理
  13. linux下通过关键字查询日志并定位
  14. android-Intent,Injector,Template,Adapter,Validation,Gesture,Game,Game Engine,Bluetooth...
  15. 翻转课堂教学感受调查
  16. 评论:雨林木风Linux 意义和目的是什么?
  17. cms织梦文件夹目录
  18. 输入框:请输入关键字 小功能
  19. 以太坊2.0迁移之际,会有哪些机会和挑战?| Sodium线上发布会
  20. Java图形用户界面设计音乐播放器

热门文章

  1. 包含的前缀数目超过了最大值。最大值为 2_「西法带你学算法」一次搞定前缀和...
  2. python解base64_python模块之base64
  3. 安卓开发 在oncreate显示对话框 hide 之后 点不动_微信小程序云开发教程微信小程序的API入门常用API...
  4. 国二mysql综合应用题答案_2017年9月全国计算机二级MySQL考试章节练习题
  5. linux命令行经典教程,linux常用命令的经典使用
  6. css四种定位及相关知识总结(附实例、图解)
  7. mongodb driver c#语法
  8. IntelliJ IDEA安装lombok
  9. 功能表单之智能选择字段类型的使用——JEPLUS软件快速开发平台
  10. 梦断代码----阅读笔记3