Skip to content

Commit

Permalink
fix: 修改mysql定点回档忽略检查的数据库 #6632
Browse files Browse the repository at this point in the history
fix: 修改mysql定点回档忽略检查的数据库 #6632
  • Loading branch information
zfrendo authored and iSecloud committed Sep 3, 2024
1 parent 9255953 commit c1d8430
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -112,22 +112,23 @@ def get_local_backup(instances: list, cluster: Cluster, end_time: str = None):
return None


def check_storage_database(cluster: Cluster, ip: str, port: int) -> bool:
def check_storage_database(bk_cloud_id: int, ip: str, port: int) -> bool:
"""
检查数据库是否为空实例
@param ip: 实例ip
@param port: 实例端口
@param cluster: 集群
@param bk_cloud_id: bk_cloud_id
@return:
"""
query_cmds = """select SCHEMA_NAME from information_schema.schemata where SCHEMA_NAME not in
('information_schema','db_infobase','infodba_schema','mysql','test','sys','performance_schema')"""
('information_schema','db_infobase','infodba_schema','mysql','test',
'sys','performance_schema','__cdb_recycle_bin__')"""
res = DRSApi.rpc(
{
"addresses": ["{}{}{}".format(ip, IP_PORT_DIVIDER, port)],
"cmds": [query_cmds],
"force": False,
"bk_cloud_id": cluster.bk_cloud_id,
"bk_cloud_id": bk_cloud_id,
}
)
if res[0]["error_msg"]:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -246,7 +246,9 @@ def rollback_to_cluster_flow(self):
storages = rollback_class.storageinstance_set.all()
rollback_pipeline_list = []
for rollback_storage in storages:
if not check_storage_database(rollback_class, rollback_storage.machine.ip, rollback_storage.port):
if not check_storage_database(
rollback_class.bk_cloud_id, rollback_storage.machine.ip, rollback_storage.port
):
logger.error("cluster {} check database fail".format(rollback_class.id))
raise NormalSpiderFlowException(
message=_("回档集群 {} 空闲检查不通过,请确认回档集群是否存在非系统数据库".format(rollback_class.id))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,11 @@
from backend.flow.consts import RollbackType
from backend.flow.engine.bamboo.scene.common.builder import Builder, SubBuilder
from backend.flow.engine.bamboo.scene.common.get_file_list import GetFileList
from backend.flow.engine.bamboo.scene.spider.common.exceptions import TendbGetBackupInfoFailedException
from backend.flow.engine.bamboo.scene.mysql.common.get_local_backup import check_storage_database
from backend.flow.engine.bamboo.scene.spider.common.exceptions import (
NormalSpiderFlowException,
TendbGetBackupInfoFailedException,
)
from backend.flow.engine.bamboo.scene.spider.spider_recover import remote_node_rollback, spider_recover_sub_flow
from backend.flow.plugins.components.collections.mysql.trans_flies import TransFileComponent
from backend.flow.plugins.components.collections.spider.spider_db_meta import SpiderDBMetaComponent
Expand Down Expand Up @@ -118,7 +122,11 @@ def tendb_rollback_data(self):
raise TendbGetBackupInfoFailedException(message=_("获取spider节点备份信息不存在"))
if backup_info["spider_node"] == "":
raise TendbGetBackupInfoFailedException(message=_("获取spider节点备份信息为空"))

if not check_storage_database(target_cluster.bk_cloud_id, spider_node["ip"], spider_node["port"]):
logger.error("cluster {} check database fail".format(target_cluster.id))
raise NormalSpiderFlowException(
message=_("回档集群 {} 空闲检查不通过,请确认回档集群是否存在非系统数据库".format(target_cluster.id))
)
target_spider = target_cluster.proxyinstance_set.get(
machine__ip=spider_node["ip"], port=spider_node["port"]
)
Expand Down

0 comments on commit c1d8430

Please sign in to comment.