zoukankan      html  css  js  c++  java
  • mysql 在线修改表结构工具 gh-ost

    gh-ost使用测试:

    gh-ost -host='192.168.65.136' -user=root -password='' -database='haha' -chunk-size=100000  -allow-on-master -execute  -initially-drop-ghost-table -exact-rowcount --initially-drop-old-table  -alter='modify AreaID varchar(10)' -table='t_policyarea'

      -allow-master-master
            显式的允许在主主集群中运行
            
      -allow-on-master
            允许直接运行在主机上,如果没有集群使用这个选项,推荐用在从机上
            
      -alter string
            (必须参数)alter 语句 例如  add column_name type  ,  change column_name column_name type, modify column_name type; 等等 无需加alter table 字符串
     
      -assume-rbr
            设置 'true' 当你确定使用 'ROW' binlog_format.
      
      -chunk-size int
            每一次迭代处理的行数,默认是1000 ,允许范围(100-100000-concurrent-rowcount
            (with --exact-rowcount), when true: count rows after row-copy begins, concurrently, and adjust row estimate later on; defaults false: first count rows, then start row copy
      
      -conf string
            配置文件
      
      -critical-load --max-load
            最大负载,设置一个阈值,超过这个阈值应用程序会自动退出, --max-load 同意义
      
      -database string
            数据库名称 必须字段
      
      -debug
            debug模式
      
      -default-retries int
            在各种各样的意外之前的重试次数 (default 60)
      
      -exact-rowcount
            copy前对row的数目进行精确的估计,以方便对执行进度精确判断
             注释:这个没什么太大必要,精确统计对大表来说也是很耗时的
      -execute
            实际执行变更,如果不加这个选项默认都是测试然后退出,实际上并没有改变原表结构
      
      -host string
            mysql主机名称,最好是从机而不是主机 (default "127.0.0.1")
      
      -initially-drop-ghost-table
            如果运行了多次对同一个表修改,就会存在ghost表,使用这个选项来删除存在的ghost表
      
      -initially-drop-old-table
            效果同上,默认是中断停止
            
      -initially-drop-socket-file
            强行删除现有的socket文件。小心:这可能会删除运行迁移的套接字文件!  
            
    
      -max-load string
            命令格式 e.g: 'Threads_running=100,Threads_connected=500'.当服务器达到这个负载那么就会减少修改使用资源
      
      -migrate-on-replica
            Have the migration run on a replica, not on the master. This will do the full migration on the replica including cut-over (as opposed to --test-on-replica)
      
      -nice-ratio float
            force being 'nice', imply sleep time per chunk time; range: [0.0..100.0]. Example values: 0 is aggressive. 1: for every 1ms spent copying rows, sleep additional 1ms (effectively doubling runtime); 0.7: for every 10ms spend in a rowcopy chunk, spend 7ms sleeping immediately after
      
      -ok-to-drop-table
            结束后删除旧表,由于删除会有一个很长时间的锁,在线操作不建议,默认是false
            
      -panic-flag-file string
            when this file is created, gh-ost will immediately terminate, without cleanup
      
      -password string
            MYSQL服务器密码
      
      -port int
            mysql服务器端口,均建议在从机上操作
      
    
      -stack
            在错误时添加堆栈跟踪  
            
      -switch-to-rbr
            let this tool automatically switch binary log format to 'ROW' on the replica, if needed. The format will NOT be switched back. I‘m too scared to do that, and wish to protect you if you happen to execute another migration while this one is running
      
      -table string
            必须参数,表名称
      
    
      -throttle-query string
            每秒检测一次,确保是轻量级的查询,不对服务器产生大的影响
      -tungsten
            explicitly let gh-ost know that you are running on a tungsten-replication based topology (you are likely to also provide --assume-master-host)
      
      -user string
            mysql用户
      
      -verbose
            冗余输出详细信息
      
      -version
            版本号
        
    
       -test-on-replica
            Have the migration run on a replica, not on the master. At the end of migration replication is stopped, and tables are swapped and immediately swap-revert. Replication remains stopped and you can compare the two tables for building trust
      
      -test-on-replica-skip-replica-stop
            When --test-on-replica is enabled, do not issue commands stop replication (requires --test-on-replica)
      
      -throttle-additional-flag-file string
            operation pauses when this file exists; hint: keep default, use for throttling multiple gh-ost operations (default "/tmp/gh-ost.throttle")
      
      -throttle-control-replicas string
            List of replicas on which to check for lag; comma delimited. Example: myhost1.com:3306,myhost2.com,myhost3.com:3307
      
      -throttle-flag-file string
            operation pauses when this file exists; hint: use a file that is specific to the table being altered
          
       -postpone-cut-over-flag-file string
            while this file exists, migration will postpone the final stage of swapping tables, and will keep on syncing the ghost table. Cut-over/swapping would be ready to perform the moment the file is deleted.
      
      -quiet
            quiet
      
      -replication-lag-query string
            Query that detects replication lag in seconds. Result can be a floating point (by default gh-ost issues SHOW SLAVE STATUS and reads Seconds_behind_master). If you're using pt-heartbeat, query would be something like: SELECT ROUND(UNIX_TIMESTAMP() - MAX(UNIX_TIMESTAMP(ts))) AS delay FROM my_schema.heartbeat
      
      -serve-socket-file string
            Unix socket file to serve on. Default: auto-determined and advertised upon startup
      
      -serve-tcp-port int
            TCP port to serve on. Default: disabled
      
      -skip-renamed-columns ALTER
            in case your ALTER statement renames columns, gh-ost will note that and offer its interpretation of the rename. By default gh-ost does not proceed to execute. This flag tells gh-ost to skip the renamed columns, i.e. to treat what gh-ost thinks are renamed columns as unrelated columns. NOTE: you may lose column data
      
        
      -approve-renamed-columns ALTER
            in case your ALTER statement renames columns, gh-ost will note that and offer its interpretation of the rename. By default gh-ost does not proceed to execute. This flag approves that gh-ost's interpretation si correct
      
      -assume-master-host string
            (optional) explicitly tell gh-ost the identity of the master. Format: some.host.com[:port] This is useful in master-master setups where you wish to pick an explicit master, or in a tungsten-replicator where gh-ost is unabel to determine the master
      
       -cut-over string
            choose cut-over type (default|atomic, two-step) (default "atomic")
      
      -cut-over-lock-timeout-seconds int
            Max number of seconds to hold locks on tables while attempting to cut-over (retry attempted when lock exceeds timeout) (default 3)
      
       -heartbeat-interval-millis int
            how frequently would gh-ost inject a heartbeat value (default 500)
      
      -hooks-hint string
            arbitrary message to be injected to hooks via GH_OST_HOOKS_HINT, for your convenience
      
      -hooks-path string
            directory where hook files are found (default: empty, ie. hooks disabled). Hook files found on this path, and conforming to hook naming conventions will be executed
      
      -max-lag-millis int
            replication lag at which to throttle operation (default 1500)
          
  • 相关阅读:
    Spring集成MyBatis
    UpdatePanel的简单用法(转)
    updatePanel导致JS失效的解决办法(转)
    sql面试题(学生表_课程表_成绩表_教师表)
    javascript深入理解js闭包
    T-SQL利用Case When Then多条件判断
    T-SQL排名函数
    DataTable字符串类型的数字,按照数字类型排序
    Sql 行转列问题总结
    行转列:SQL SERVER PIVOT与用法解释
  • 原文地址:https://www.cnblogs.com/jiangwenju/p/5846743.html
Copyright © 2011-2022 走看看