modify upgrade checker

This commit is contained in:
obdev
2023-05-24 12:17:13 +00:00
committed by ob-robot
parent d33ce0d08c
commit b3b42a8de6
4 changed files with 79 additions and 4 deletions

View File

@ -29,7 +29,7 @@
- 4.1.0.1 - 4.1.0.1
require_from_binary: require_from_binary:
value: True value: True
when_come_from: [4.0.0.0, 4.1.0.0] when_come_from: [4.0.0.0]
- version: 4.1.0.1 - version: 4.1.0.1
can_be_upgraded_to: can_be_upgraded_to:

View File

@ -398,7 +398,7 @@ def check_rebalance_task(query_cur):
# 4. 检查集群状态 # 4. 检查集群状态
def check_cluster_status(query_cur): def check_cluster_status(query_cur):
# 4.1 检查是否非合并状态 # 4.1 检查是否非合并状态
(desc, results) = query_cur.exec_query("""select count(1) from CDB_OB_MAJOR_COMPACTION where STATUS != 'IDLE'""") (desc, results) = query_cur.exec_query("""select count(1) from CDB_OB_MAJOR_COMPACTION where (GLOBAL_BROADCAST_SCN > LAST_SCN or STATUS != 'IDLE')""")
if results[0][0] > 0 : if results[0][0] > 0 :
fail_list.append('{0} tenant is merging, please check'.format(results[0][0])) fail_list.append('{0} tenant is merging, please check'.format(results[0][0]))
logging.info('check cluster status success') logging.info('check cluster status success')
@ -555,6 +555,28 @@ def check_backup_dest_exist(query_cur):
else: else:
logging.info('check backup destination success') logging.info('check backup destination success')
def check_server_version(query_cur):
sql = """select distinct(substring_index(build_version, '_', 1)) from __all_server""";
(desc, results) = query_cur.exec_query(sql);
if len(results) != 1:
fail_list.append("servers build_version not match")
else:
logging.info("check server version success")
# 14. 检查server是否可服务
def check_observer_status(query_cur):
(desc, results) = query_cur.exec_query("""select count(*) from oceanbase.__all_server where (start_service_time <= 0 or status != "active")""")
if results[0][0] > 0 :
fail_list.append('{0} observer not available , please check'.format(results[0][0]))
logging.info('check observer status success')
# 15 检查schema是否刷新成功
def check_schema_status(query_cur):
(desc, results) = query_cur.exec_query("""select if (a.cnt = b.cnt, 1, 0) as passed from (select count(*) as cnt from oceanbase.__all_virtual_server_schema_info where refreshed_schema_version > 1 and refreshed_schema_version % 8 = 0) as a join (select count(*) as cnt from oceanbase.__all_server join oceanbase.__all_tenant) as b""")
if results[0][0] != 1 :
fail_list.append('{0} schema not available, please check'.format(results[0][0]))
logging.info('check schema status success')
# last check of do_check, make sure no function execute after check_fail_list # last check of do_check, make sure no function execute after check_fail_list
def check_fail_list(): def check_fail_list():
if len(fail_list) != 0 : if len(fail_list) != 0 :
@ -593,6 +615,9 @@ def do_check(my_host, my_port, my_user, my_passwd, timeout, upgrade_params):
check_archive_job_exist(query_cur) check_archive_job_exist(query_cur)
check_archive_dest_exist(query_cur) check_archive_dest_exist(query_cur)
check_backup_dest_exist(query_cur) check_backup_dest_exist(query_cur)
check_observer_status(query_cur)
check_schema_status(query_cur)
check_server_version(query_cur)
# all check func should execute before check_fail_list # all check func should execute before check_fail_list
check_fail_list() check_fail_list()
modify_server_permanent_offline_time(cur) modify_server_permanent_offline_time(cur)

View File

@ -1902,7 +1902,7 @@
## 4. 检查集群状态 ## 4. 检查集群状态
#def check_cluster_status(query_cur): #def check_cluster_status(query_cur):
# # 4.1 检查是否非合并状态 # # 4.1 检查是否非合并状态
# (desc, results) = query_cur.exec_query("""select count(1) from CDB_OB_MAJOR_COMPACTION where STATUS != 'IDLE'""") # (desc, results) = query_cur.exec_query("""select count(1) from CDB_OB_MAJOR_COMPACTION where (GLOBAL_BROADCAST_SCN > LAST_SCN or STATUS != 'IDLE')""")
# if results[0][0] > 0 : # if results[0][0] > 0 :
# fail_list.append('{0} tenant is merging, please check'.format(results[0][0])) # fail_list.append('{0} tenant is merging, please check'.format(results[0][0]))
# logging.info('check cluster status success') # logging.info('check cluster status success')
@ -2059,6 +2059,28 @@
# else: # else:
# logging.info('check backup destination success') # logging.info('check backup destination success')
# #
#def check_server_version(query_cur):
# sql = """select distinct(substring_index(build_version, '_', 1)) from __all_server""";
# (desc, results) = query_cur.exec_query(sql);
# if len(results) != 1:
# fail_list.append("servers build_version not match")
# else:
# logging.info("check server version success")
#
## 14. 检查server是否可服务
#def check_observer_status(query_cur):
# (desc, results) = query_cur.exec_query("""select count(*) from oceanbase.__all_server where (start_service_time <= 0 or status != "active")""")
# if results[0][0] > 0 :
# fail_list.append('{0} observer not available , please check'.format(results[0][0]))
# logging.info('check observer status success')
#
## 15 检查schema是否刷新成功
#def check_schema_status(query_cur):
# (desc, results) = query_cur.exec_query("""select if (a.cnt = b.cnt, 1, 0) as passed from (select count(*) as cnt from oceanbase.__all_virtual_server_schema_info where refreshed_schema_version > 1 and refreshed_schema_version % 8 = 0) as a join (select count(*) as cnt from oceanbase.__all_server join oceanbase.__all_tenant) as b""")
# if results[0][0] != 1 :
# fail_list.append('{0} schema not available, please check'.format(results[0][0]))
# logging.info('check schema status success')
#
## last check of do_check, make sure no function execute after check_fail_list ## last check of do_check, make sure no function execute after check_fail_list
#def check_fail_list(): #def check_fail_list():
# if len(fail_list) != 0 : # if len(fail_list) != 0 :
@ -2097,6 +2119,9 @@
# check_archive_job_exist(query_cur) # check_archive_job_exist(query_cur)
# check_archive_dest_exist(query_cur) # check_archive_dest_exist(query_cur)
# check_backup_dest_exist(query_cur) # check_backup_dest_exist(query_cur)
# check_observer_status(query_cur)
# check_schema_status(query_cur)
# check_server_version(query_cur)
# # all check func should execute before check_fail_list # # all check func should execute before check_fail_list
# check_fail_list() # check_fail_list()
# modify_server_permanent_offline_time(cur) # modify_server_permanent_offline_time(cur)

View File

@ -1902,7 +1902,7 @@
## 4. 检查集群状态 ## 4. 检查集群状态
#def check_cluster_status(query_cur): #def check_cluster_status(query_cur):
# # 4.1 检查是否非合并状态 # # 4.1 检查是否非合并状态
# (desc, results) = query_cur.exec_query("""select count(1) from CDB_OB_MAJOR_COMPACTION where STATUS != 'IDLE'""") # (desc, results) = query_cur.exec_query("""select count(1) from CDB_OB_MAJOR_COMPACTION where (GLOBAL_BROADCAST_SCN > LAST_SCN or STATUS != 'IDLE')""")
# if results[0][0] > 0 : # if results[0][0] > 0 :
# fail_list.append('{0} tenant is merging, please check'.format(results[0][0])) # fail_list.append('{0} tenant is merging, please check'.format(results[0][0]))
# logging.info('check cluster status success') # logging.info('check cluster status success')
@ -2059,6 +2059,28 @@
# else: # else:
# logging.info('check backup destination success') # logging.info('check backup destination success')
# #
#def check_server_version(query_cur):
# sql = """select distinct(substring_index(build_version, '_', 1)) from __all_server""";
# (desc, results) = query_cur.exec_query(sql);
# if len(results) != 1:
# fail_list.append("servers build_version not match")
# else:
# logging.info("check server version success")
#
## 14. 检查server是否可服务
#def check_observer_status(query_cur):
# (desc, results) = query_cur.exec_query("""select count(*) from oceanbase.__all_server where (start_service_time <= 0 or status != "active")""")
# if results[0][0] > 0 :
# fail_list.append('{0} observer not available , please check'.format(results[0][0]))
# logging.info('check observer status success')
#
## 15 检查schema是否刷新成功
#def check_schema_status(query_cur):
# (desc, results) = query_cur.exec_query("""select if (a.cnt = b.cnt, 1, 0) as passed from (select count(*) as cnt from oceanbase.__all_virtual_server_schema_info where refreshed_schema_version > 1 and refreshed_schema_version % 8 = 0) as a join (select count(*) as cnt from oceanbase.__all_server join oceanbase.__all_tenant) as b""")
# if results[0][0] != 1 :
# fail_list.append('{0} schema not available, please check'.format(results[0][0]))
# logging.info('check schema status success')
#
## last check of do_check, make sure no function execute after check_fail_list ## last check of do_check, make sure no function execute after check_fail_list
#def check_fail_list(): #def check_fail_list():
# if len(fail_list) != 0 : # if len(fail_list) != 0 :
@ -2097,6 +2119,9 @@
# check_archive_job_exist(query_cur) # check_archive_job_exist(query_cur)
# check_archive_dest_exist(query_cur) # check_archive_dest_exist(query_cur)
# check_backup_dest_exist(query_cur) # check_backup_dest_exist(query_cur)
# check_observer_status(query_cur)
# check_schema_status(query_cur)
# check_server_version(query_cur)
# # all check func should execute before check_fail_list # # all check func should execute before check_fail_list
# check_fail_list() # check_fail_list()
# modify_server_permanent_offline_time(cur) # modify_server_permanent_offline_time(cur)