mysql的在线模式更改
onlineschemachange的Python项目详细描述
onlineschemachange是一个为mysql表进行模式更改的工具 以非阻塞方式
示例
OSC必须与mysql服务器在同一主机上运行。
copy模式
< P>数据库下面有一个现有的表名为{TT3}$ test:CREATETABLE`my_table`(`id`int(11)NOTNULL,PRIMARYKEY(`id`))ENGINE=InnoDBDEFAULTCHARSET=latin1
如果我们想逃跑 ALTER TABLE ``my_table添加列datavarchar(10);``针对 它。我们不需要将ALTER TABLE语句提供给osc,只需要 将表示所需架构的CREATE TABLE语句放入 文件/tmp/foo.sql如下:
CREATETABLE`my_table`(`id`int(11)NOTNULL,`data`varchar(10)DEFAULTNULL,PRIMARYKEY(`id`))ENGINE=InnoDBDEFAULTCHARSET=latin1
然后运行以下命令:
osc_cli copy --ddl-file-list=foo.sql --socket=/tmp/mysql.socket --database=test
cleanup模式
清理上次运行OSC留下的表
osc_cli cleanup --socket=/tmp/mysql.socket --database=test
终止某些mysql上当前运行的OSC进程 实例:
osc_cli cleanup
direct模式
此模式是为将mysql的本地联机ddl用于模式而保留的。 更改,并帮助dba管理所有与模式相关的操作 一个工具。现在,如果您计划对所有架构使用OSC。 管理,此模式用于创建空的新表。 下面的命令将在数据库中创建一个空表test
osc_cli direct --ddl-file-list=foo.sql --socket=/tmp/mysql.socket --database=test
要求
OnlineSchemaChange需要
系统包
对于python2
sudo apt-get install python-dev libmysqlclient-dev # Debian / Ubuntu sudo yum install python-devel mysql-devel # Red Hat / CentOS
对于Python3
sudo apt-get install python3-dev # debian / Ubuntu sudo yum install python3-devel # Red Hat / CentOS
安装Online SchemaChange
运行以下命令安装依赖项
python setup.py install --install-scripts=/usr/local/bin
如果您的环境中有多个可用的python版本,或者 您不想弄乱系统的默认python,可以使用 pyenv和virtualenv
联机SchemaChange的工作原理
查看wiki页面了解更多详细信息和一些高级用法。
如何贡献
检查这个wiki page 如果你想为这个项目做贡献。
许可证
OnlineSchemaChange已获得BSD许可。我们还提供了一项附加专利 格兰特。