gh-ost封装脚本

本文介绍了一种对gh-ost工具进行封装的脚本,涵盖了gh-ost的三种核心应用场景,旨在简化数据库迁移过程。
摘要由CSDN通过智能技术生成

针对gh-ost封装了一个使用脚本,支持gh-ost的三种使用场景

#!/bin/env python
# -*- encoding: utf-8 -*-
# ----------------------------------------------
# Purpose:         gh-ost
# Created:         2018-06-16
# Modified:        hao.chen@woqutech.com
# Modified date:   2022-01-06
# ----------------------------------------------

import MySQLdb
import re
import sys
import time
import subprocess
import os
from optparse import OptionParser


def calc_time(func):
    def _deco(*args, **kwargs):
        begin_time = time.time()
        func(*args, **kwargs)
        cost_time = time.time() - begin_time
        print
        'cost time: %ss' % round(cost_time, 2)

    return _deco


def get_table_count(conn, dbname, tbname):
    query = ''' SELECT count(*) FROM %s.%s ''' % (dbname, tbname)
    cursor = conn.cursor()
    cursor.execute(query)
    row_nums = cursor.fetchone()
    cursor.close()
    conn.close()
    return row_nums


def online_ddl(conn, ddl_cmd):
    cursor = conn.cursor()
    cursor.execute(ddl_cmd)
    conn.commit()
    cursor.close()
    conn.close()


# @calc_time
def run_cmd(cmd):
    p = subprocess.Popen(cmd, shell=True)
    return p, p.pid


def drop_ghost_table(conn, ghost_name_list):
    try:
        cursor = conn.cursor()
        query = ''' DROP TABLE IF EXISTS %s; ''' % (ghost_name_list)
        cursor.execute(query)
        conn.commit()
        cursor.close()
        conn.close()
    except Exception, e:
        print
        e


def getGHCMD(mode):
    if mode == <
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值