首页 > 数据库 > > GreatDB存储过程管理接口(6)
[root@greatdb1 ~]# greatsql -ugreatdb -pgreatdb -h192.168.0.81 -P3306 GreatDB Cluster[(none)]> SHOW PROCEDURE STATUS like 'greatdb%'; +-------+--------------------------------------------------+-----------+-----------------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+ | Db | Name | Type | Definer | Modified | Created | Security_type | Comment | character_set_client | collation_connection | Database Collation | +-------+--------------------------------------------------+-----------+-----------------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+ | mysql | greatdb_add_backup_node | PROCEDURE | greatdb.sys@localhost | 2021-02-26 09:17:11 | 2021-02-26 09:17:11 | DEFINER | | utf8mb4 | utf8mb4_0900_ai_ci | utf8mb4_unicode_ci | | mysql | greatdb_add_datanode | PROCEDURE | greatdb.sys@localhost | 2021-02-26 09:17:11 | 2021-02-26 09:17:11 | DEFINER | | utf8mb4 | utf8mb4_0900_ai_ci | utf8mb4_unicode_ci | | mysql | greatdb_add_sqlnode | PROCEDURE | greatdb.sys@localhost | 2021-02-26 09:17:11 | 2021-02-26 09:17:11 | DEFINER | | utf8mb4 | utf8mb4_0900_ai_ci | utf8mb4_unicode_ci | | mysql | greatdb_auto_migrate_tables_after_upscale | PROCEDURE | greatdb.sys@localhost | 2021-02-26 09:17:11 | 2021-02-26 09:17:11 | DEFINER | | utf8mb4 | utf8mb4_0900_ai_ci | utf8mb4_unicode_ci | | mysql | greatdb_auto_migrate_tables_before_downscale | PROCEDURE | greatdb.sys@localhost | 2021-02-26 09:17:11 | 2021-02-26 09:17:11 | DEFINER | | utf8mb4 | utf8mb4_0900_ai_ci | utf8mb4_unicode_ci | | mysql | greatdb_build_group_replication | PROCEDURE | greatdb.sys@localhost | 2021-02-26 09:17:11 | 2021-02-26 09:17:11 | DEFINER | | utf8mb4 | utf8mb4_0900_ai_ci | utf8mb4_unicode_ci | | mysql | greatdb_change_shard_primary_node | PROCEDURE | greatdb.sys@localhost | 2021-02-26 09:17:11 | 2021-02-26 09:17:11 | DEFINER | | utf8mb4 | utf8mb4_0900_ai_ci | utf8mb4_unicode_ci | | mysql | greatdb_check_upgrade | PROCEDURE | greatdb.sys@localhost | 2021-02-26 09:17:11 | 2021-02-26 09:17:11 | DEFINER | | utf8mb4 | utf8mb4_0900_ai_ci | utf8mb4_unicode_ci | | mysql | greatdb_drop_backup_node | PROCEDURE | greatdb.sys@localhost | 2021-02-26 09:17:11 | 2021-02-26 09:17:11 | DEFINER | | utf8mb4 | utf8mb4_0900_ai_ci | utf8mb4_unicode_ci | | mysql | greatdb_drop_backup_task | PROCEDURE | greatdb.sys@localhost | 2021-02-26 09:17:11 | 2021-02-26 09:17:11 | DEFINER | | utf8mb4 | utf8mb4_0900_ai_ci | utf8mb4_unicode_ci | | mysql | greatdb_drop_datanode | PROCEDURE | greatdb.sys@localhost | 2021-02-26 09:17:11 | 2021-02-26 09:17:11 | DEFINER | | utf8mb4 | utf8mb4_0900_ai_ci | utf8mb4_unicode_ci | | mysql | greatdb_drop_shard | PROCEDURE | greatdb.sys@localhost | 2021-02-26 09:17:11 | 2021-02-26 09:17:11 | DEFINER | | utf8mb4 | utf8mb4_0900_ai_ci | utf8mb4_unicode_ci | | mysql | greatdb_drop_sqlnode | PROCEDURE | greatdb.sys@localhost | 2021-02-26 09:17:11 | 2021-02-26 09:17:11 | DEFINER | | utf8mb4 | utf8mb4_0900_ai_ci | utf8mb4_unicode_ci | | mysql | greatdb_force_restart_cluster | PROCEDURE | greatdb.sys@localhost | 2021-02-26 09:17:11 | 2021-02-26 09:17:11 | DEFINER | | utf8mb4 | utf8mb4_0900_ai_ci | utf8mb4_unicode_ci | | mysql | greatdb_force_restart_shard | PROCEDURE | greatdb.sys@localhost | 2021-02-26 09:17:11 | 2021-02-26 09:17:11 | DEFINER | | utf8mb4 | utf8mb4_0900_ai_ci | utf8mb4_unicode_ci | | mysql | greatdb_init_cluster | PROCEDURE | greatdb.sys@localhost | 2021-02-26 09:17:11 | 2021-02-26 09:17:11 | DEFINER | | utf8mb4 | utf8mb4_0900_ai_ci | utf8mb4_unicode_ci | | mysql | greatdb_init_shard | PROCEDURE | greatdb.sys@localhost | 2021-02-26 09:17:11 | 2021-02-26 09:17:11 | DEFINER | | utf8mb4 | utf8mb4_0900_ai_ci | utf8mb4_unicode_ci | | mysql | greatdb_install_clone_plugin | PROCEDURE | greatdb.sys@localhost | 2021-02-26 09:17:11 | 2021-02-26 09:17:11 | DEFINER | | utf8mb4 | utf8mb4_0900_ai_ci | utf8mb4_unicode_ci | | mysql | greatdb_mgr_check | PROCEDURE | greatdb.sys@localhost | 2021-02-26 09:17:11 | 2021-02-26 09:17:11 | DEFINER | | utf8mb4 | utf8mb4_0900_ai_ci | utf8mb4_unicode_ci | | mysql | greatdb_migrate_table | PROCEDURE | greatdb.sys@localhost | 2021-02-26 09:17:11 | 2021-02-26 09:17:11 | DEFINER | | utf8mb4 | utf8mb4_0900_ai_ci | utf8mb4_unicode_ci | | mysql | greatdb_persist_variables | PROCEDURE | greatdb.sys@localhost | 2021-02-26 09:17:11 | 2021-02-26 09:17:11 | DEFINER | | utf8mb4 | utf8mb4_0900_ai_ci | utf8mb4_unicode_ci | | mysql | greatdb_plugin_check | PROCEDURE | greatdb.sys@localhost | 2021-02-26 09:17:11 | 2021-02-26 09:17:11 | DEFINER | | utf8mb4 | utf8mb4_0900_ai_ci | utf8mb4_unicode_ci | | mysql | greatdb_purge_binlog_before_seconds_for_datanode | PROCEDURE | greatdb.sys@localhost | 2021-02-26 09:17:11 | 2021-02-26 09:17:11 | DEFINER | | utf8mb4 | utf8mb4_0900_ai_ci | utf8mb4_unicode_ci | | mysql | greatdb_restart_cluster | PROCEDURE | greatdb.sys@localhost | 2021-02-26 09:17:11 | 2021-02-26 09:17:11 | DEFINER | | utf8mb4 | utf8mb4_0900_ai_ci | utf8mb4_unicode_ci | | mysql | greatdb_restart_datanode_server | PROCEDURE | greatdb.sys@localhost | 2021-02-26 09:17:11 | 2021-02-26 09:17:11 | DEFINER | | utf8mb4 | utf8mb4_0900_ai_ci | utf8mb4_unicode_ci | | mysql | greatdb_restart_sqlnode_server | PROCEDURE | greatdb.sys@localhost | 2021-02-26 09:17:11 | 2021-02-26 09:17:11 | DEFINER | | utf8mb4 | utf8mb4_0900_ai_ci | utf8mb4_unicode_ci | | mysql | greatdb_restore_shard_from_backup | PROCEDURE | greatdb.sys@localhost | 2021-02-26 09:17:11 | 2021-02-26 09:17:11 | DEFINER | | utf8mb4 | utf8mb4_0900_ai_ci | utf8mb4_unicode_ci | | mysql | greatdb_restore_sqlnode_from_backup | PROCEDURE | greatdb.sys@localhost | 2021-02-26 09:17:11 | 2021-02-26 09:17:11 | DEFINER | | utf8mb4 | utf8mb4_0900_ai_ci | utf8mb4_unicode_ci | | mysql | greatdb_set_var_for_all_sqlnodes | PROCEDURE | greatdb.sys@localhost | 2021-02-26 09:17:11 | 2021-02-26 09:17:11 | DEFINER | | utf8mb4 | utf8mb4_0900_ai_ci | utf8mb4_unicode_ci | | mysql | greatdb_set_var_for_datanode | PROCEDURE | greatdb.sys@localhost | 2021-02-26 09:17:11 | 2021-02-26 09:17:11 | DEFINER | | utf8mb4 | utf8mb4_0900_ai_ci | utf8mb4_unicode_ci | | mysql | greatdb_start_full_backup | PROCEDURE | greatdb.sys@localhost | 2021-02-26 09:17:11 | 2021-02-26 09:17:11 | DEFINER | | utf8mb4 | utf8mb4_0900_ai_ci | utf8mb4_unicode_ci | | mysql | greatdb_start_group_replication | PROCEDURE | greatdb.sys@localhost | 2021-02-26 09:17:11 | 2021-02-26 09:17:11 | DEFINER | | utf8mb4 | utf8mb4_0900_ai_ci | utf8mb4_unicode_ci | | mysql | greatdb_start_inc_backup | PROCEDURE | greatdb.sys@localhost | 2021-02-26 09:17:11 | 2021-02-26 09:17:11 | DEFINER | | utf8mb4 | utf8mb4_0900_ai_ci | utf8mb4_unicode_ci | | mysql | greatdb_stop_backup_task | PROCEDURE | greatdb.sys@localhost | 2021-02-26 09:17:11 | 2021-02-26 09:17:11 | DEFINER | | utf8mb4 | utf8mb4_0900_ai_ci | utf8mb4_unicode_ci | | mysql | greatdb_stop_datanode_server | PROCEDURE | greatdb.sys@localhost | 2021-02-26 09:17:11 | 2021-02-26 09:17:11 | DEFINER | | utf8mb4 | utf8mb4_0900_ai_ci | utf8mb4_unicode_ci | | mysql | greatdb_stop_migrate_task | PROCEDURE | greatdb.sys@localhost | 2021-02-26 09:17:11 | 2021-02-26 09:17:11 | DEFINER | | utf8mb4 | utf8mb4_0900_ai_ci | utf8mb4_unicode_ci | | mysql | greatdb_stop_sqlnode_server | PROCEDURE | greatdb.sys@localhost | 2021-02-26 09:17:11 | 2021-02-26 09:17:11 | DEFINER | | utf8mb4 | utf8mb4_0900_ai_ci | utf8mb4_unicode_ci | +-------+--------------------------------------------------+-----------+-----------------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+ 37 rows in set (0.00 sec)
CALL `mysql`.`greatdb_init_cluster`('cluster_name', 'cluster_user', 'cluster_password');
初始化集群时,还会根据初始的 SqlNode 节点的 gdb_zone_name 和 group_replication_zone_id 参数值,初始化⼀个机房信息,并设置初始机房的选举权重为最⼤值 9 。
CALL `mysql`.`greatdb_add_sqlnode`('hostname', port);
使用参考
万里GreatDB数据库的学习之路–GreatDB分布式数据库的安装部署(1) <创建集群> 章节。
万里GreatDB数据库的学习之路–GreatDB备份与恢复(4) <在 SqlNode 实例上调用接口恢复集群结构信息> 章节。
万里GreatDB数据库的学习之路–GreatDB 集群管理(5) <添加 SqlNode 计算节点> 章节。
注意:
CALL `mysql`.`greatdb_drop_sqlnode`('hostname', port);
使用参考
万里GreatDB数据库的学习之路–GreatDB 集群管理(5) <删除 SqlNode 计算节点> 章节。
注意:
在添加 SqlNode 计算节点时,针对已存储大量业务数据时,新初始化的实例需要从现有节点复制克隆存量数据后,才可执行 sqlnode 添加。
call mysql.greatdb_install_clone_plugin();
当前⽀持 NODE_MGR 和 NODE_SINGLE 两种类型,NODE_SINGLE 表⽰ shard 中只有⼀个数据节点,此时⽆法保证数据的可靠性,不推荐线上环境使⽤;NODE_MGR 类型可以包含多个数据节点,节点间使⽤ mysql group_replication 进⾏数据同步和故障切换。
CALL `mysql`.`greatdb_add_datanode`('shard_name', 'node_name', 'hostname', port, 'node_type');
使用参考
万里GreatDB数据库的学习之路–GreatDB分布式数据库的安装部署(1) <创建集群> 章节。
万里GreatDB数据库的学习之路–GreatDB备份与恢复(4) <添加其他 SqlNode 和 DataNode 实例> 章节。
万里GreatDB数据库的学习之路–GreatDB 集群管理(5) <添加 Shard 分片内的 DataNode 节点> 章节。
注意事项:
对于 NODE_MGR 类型的数据节点,操作成功后,会对 shard 组内的所有 DataNode 建⽴组复制关系,并通过 mysql 组复制的特性,保证所有节点间的数据⼀致性。
执⾏ greatdb_init_shard 命令后,仍可以添加新的 DataNode。区别在于:
CALL `mysql`.`greatdb_init_shard`('shard_name');
使用参考
万里GreatDB数据库的学习之路–GreatDB分布式数据库的安装部署(1) <创建集群> 章节。
万里GreatDB数据库的学习之路–GreatDB 集群管理(5) <添加 Shard 分片> 章节。
注意事项:
CALL `mysql`.`greatdb_drop_datanode`('node_name');
使用参考
万里GreatDB数据库的学习之路–GreatDB 集群管理(5) <删除 Shard 分片内的 DataNode 节点> 章节。
注意事项:
CALL `mysql`.`greatdb_drop_shard`('shard_name');
使用参考
万里GreatDB数据库的学习之路–GreatDB 集群管理(5) <整个 Shard 分片的删除> 章节。
注意事项:
CALL `mysql`.`greatdb_drop_shard`('shard_name');
persist:是否需要将变量修改进⾏持久化,如果设置为 true,则数据节点重启后,修改仍⽣效;否则,数据节点重启后,结果为修改前的值。
call mysql.greatdb_set_var_for_DataNode('datanode1','max_connections',2000,);
使用参考
万里GreatDB数据库的学习之路–GreatDB参数调整与系统视图(3) <GreatDB DataNode参数调整> 章节。
注意事项:
该操作仅⽀持修改部分的系统变量值,当前⽀持修改的系统变量如下:
max_connections
table_definition_cache
table_open_cache
transaction_isolation
innodb_buffer_pool_size
innodb_flush_log_at_trx_commit
innodb_change_buffering
innodb_spin_wait_delay
innodb_sync_spin_loops
innodb_thread_concurrency
max_prepared_stmt_count
sync_binlog
group_replication_consistency
group_replication_member_weigth
binlog_expire_logs_seconds
如果⽤户需要修改之外的系统变量,需要直连到后端节点进⾏操作。
注:需要特别注意的是,由于集群可以多机房部署,且机房本⾝包含权重信息。因此,设置 group_replication_member_weigth 后,实际的结果和⽤户设置的值是有出⼊的。具体的换算为 r = (m_zone_elect_weigth * 10) + v / 10 。
persist:是否需要将变量修改进⾏持久化,如果设置为 true,则数据节点重启后,修改仍⽣效;否则,数据节点重启后,结果为修改前的值。
CALL mysql.greatdb_set_var_for_all_SqlNodes('max_connections',1000,true);
使用参考
万里GreatDB数据库的学习之路–GreatDB参数调整与系统视图(3) <GreatDB SqlNode参数调整> 章节。
注意事项:
该操作仅⽀持修改部分的系统变量值,当前⽀持修改的系统变量如下:
max_connections
table_definition_cache
table_open_cache
transaction_isolation
innodb_buffer_pool_size
innodb_flush_log_at_trx_commit
innodb_change_buffering
innodb_spin_wait_delay
innodb_sync_spin_loops
innodb_thread_concurrency
max_prepared_stmt_count
sync_binlog
group_replication_consistency
注意:该存储过程会统⼀修改所有的 SqlNode 节点的变量,如果⽤户只需要设置某⼀个 SqlNode 节点, 则直连该 SqlNode 节点,使⽤ MySQL 的 SET 语句即可。
CALL mysql.greatdb_purge_binlog_before_seconds_for_datanode('datanode1',60);
使用参考
注意事项:
调⽤该存储过程前,需要⽤户确保将 binlog 清理后不会影响数据节点的复制关系。
使用参考
万里GreatDB数据库的学习之路–GreatDB数据库的管理和使用(2) <DataNode 重启方式> 章节。
注意事项:
数据节点实例需要通过守护进程的⽅式启动(greatdbd_safe)
SELECT * FROM information_schema.greatdb_sqlnodes; CALL mysql.greatdb_stop_sqlnode_server('hostname', port);
SELECT * FROM information_schema.greatdb_sqlnodes; CALL mysql.greatdb_restart_sqlnode_server('hostname', port);
使用参考
万里GreatDB数据库的学习之路–GreatDB数据库的管理和使用(2) <SqlNode 重启方式> 章节。
注意事项:
计算节点实例需要通过守护进程的⽅式启动(greatsqld_safe)
CALL `mysql`.`greatdb_restart_cluster`();
该接⼝⼀般在如下两种情况下调⽤:
使用参考
万里GreatDB数据库的学习之路–GreatDB数据库的管理和使用(2) <启动 GreatDB 集群所有节点> 章节。
说明:
如果执⾏的 SqlNode 节点的组复制处于 ERROR 状态,需要先执⾏ STOP GROUP_REPLICATION 操作
!!!注意,谨慎使⽤该命令,该命令会强制启动sqlnode集群,但不保证数据的安全 !!!
执⾏该命令前,数据库管理员需要进⾏如下确认:
CALL `mysql`.`greatdb_force_restart_cluster`();
使用参考
说明:
如果执⾏的 SqlNode 节点的组复制处于ERROR状态,需要先执⾏ STOP GROUP_REPLICATION 操作。
!!!注意,谨慎使⽤该命令,该命令会强制启动 shard 节点集群,但不保证数据的安全 !!!
执⾏该命令前,数据库管理员需要进⾏如下确认:
CALL `mysql`.`greatdb_force_restart_shard`('shard_name');
执⾏该命令,不管是否多数 DataNode 节点存活,都会强制启动 DataNode 的组复制,提供服务。
CALL `mysql`.`greatdb_migrate_table`('db_name', 'table_name', part_id, 'shard_name');
使用参考
万里GreatDB数据库的学习之路–GreatDB数据库的管理和使用(2) <手动执行数据重分布> 章节。
万里GreatDB数据库的学习之路–GreatDB 集群管理(5) <手动执行数据重分布> 章节。
注意事项:
使用参考
万里GreatDB数据库的学习之路–GreatDB 集群管理(5) <添加 Shard 分片> 章节。
注意事项:
使用参考
万里GreatDB数据库的学习之路–GreatDB 集群管理(5) <整个 Shard 分片的删除> 章节。
注意事项:
使用参考
注意事项:
CALL mysql.greatdb_add_backup_node('backup_node_1', '127.0.0.1', 3306);
使用参考
万里GreatDB数据库的学习之路–GreatDB备份与恢复(4) <添加 backup_node 节点> 章节。
注意事项:
CALL mysql.greatdb_drop_backup_node('backup_node_1');
GreatDB Cluster[(none)]> call mysql.greatdb_start_full_backup; +---------------------------------+ | current_backup_task_name | +---------------------------------+ | full_backup_20220301-032132_176 | +---------------------------------+ 1 row in set (39.90 sec) Query OK, rows affected (39.90 sec)
使用参考
万里GreatDB数据库的学习之路–GreatDB备份与恢复(4) <执行全量备份> 章节。
注意事项:
GreatDB Cluster[test]> call mysql.greatdb_start_inc_backup('full_backup_20220301-032132_176'); +--------------------------------+ | current_backup_task_name | +--------------------------------+ | inc_backup_20220301-050855_183 | +--------------------------------+ 1 row in set (0.43 sec) Query OK, rows affected (0.44 sec)
使用参考
万里GreatDB数据库的学习之路–GreatDB备份与恢复(4) <测试增量备份> 章节。
注意事项:
使用参考
注意事项:
使用参考
注意事项:
使用参考
万里GreatDB数据库的学习之路–GreatDB备份与恢复(4) <在 SqlNode 实例上调用接口恢复集群结构信息> 章节。
注意事项:
使用参考
万里GreatDB数据库的学习之路–GreatDB备份与恢复(4) <在 SqlNode 实例上调用接口恢复集群结构信息> 章节。
注意事项:
需要注意的是,机房属性将影响添加新的 SqlNode 和 DataNode。添加 SqlNode 或者 DataNode 时,需要保证待 添加节点的 gdb_zone_name 参数和 group_replication_zone_id 参数和已经添加的某个机房匹配,否则会 执⾏失败。(当然,如果添加的NODE_SINGLE的datanode节点,不需要配置group_replication_zone_id 参数。)
如果该机房中还存在任何⼀个 SqlNode 或者 DataNode 节点,将⽆法删除机房。
该存储过程接⼝提供⼀个通⽤接⼝,⽤于修改机房的不同属性值。
当前,允许修改的属性包括(区分⼤⼩写):
不允许修改的属性包括:
greatdb_build_group_replication
greatdb_start_group_replication
greatdb_persist_variables
greatdb_check_upgrade
greatdb_mgr_check
greatdb_plugin_check
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69946831/viewspace-3157209/ ,如需转载,请注明出处,否则将追究法律责任。