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

现在完全致力于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/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值