patch 421 dbms scheduler to master
This commit is contained in:
@ -1517,7 +1517,7 @@ int ObInnerTableSchema::dba_scheduler_windows_schema(ObTableSchema &table_schema
|
||||
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
|
||||
|
||||
if (OB_SUCC(ret)) {
|
||||
if (OB_FAIL(table_schema.set_view_definition(R"__(SELECT CAST(T.POWNER AS CHAR(128)) AS OWNER, CAST(T.JOB_NAME AS CHAR(128)) AS WINDOW_NAME, CAST(NULL AS CHAR(128)) AS RESOURCE_PLAN, CAST(NULL AS CHAR(4000)) AS SCHEDULE_OWNER, CAST(NULL AS CHAR(4000)) AS SCHEDULE_NAME, CAST(NULL AS CHAR(8)) AS SCHEDULE_TYPE, CAST(T.START_DATE AS DATETIME(6)) AS START_DATE, CAST(T.REPEAT_INTERVAL AS CHAR(4000)) AS REPEAT_INTERVAL, CAST(T.END_DATE AS DATETIME(6)) AS END_DATE, CAST(T.MAX_RUN_DURATION AS SIGNED) AS DURATION, CAST(NULL AS CHAR(4)) AS WINDOW_PRIORITY, CAST(T.NEXT_DATE AS DATETIME(6)) AS NEXT_RUN_DATE, CAST(T.LAST_DATE AS DATETIME(6)) AS LAST_START_DATE, CAST(T.ENABLED AS CHAR(5)) AS ENABLED, CAST(NULL AS CHAR(5)) AS ACTIVE, CAST(NULL AS DATETIME(6)) AS MANUAL_OPEN_TIME, CAST(NULL AS SIGNED) AS MANUAL_DURATION, CAST(T.COMMENTS AS CHAR(4000)) AS COMMENTS FROM oceanbase.__all_tenant_scheduler_job T WHERE T.JOB_NAME in ('MONDAY_WINDOW', 'TUESDAY_WINDOW', 'WEDNESDAY_WINDOW', 'THURSDAY_WINDOW', 'FRIDAY_WINDOW', 'SATURDAY_WINDOW', 'SUNDAY_WINDOW') )__"))) {
|
||||
if (OB_FAIL(table_schema.set_view_definition(R"__(SELECT CAST(T.POWNER AS CHAR(128)) AS OWNER, CAST(T.JOB_NAME AS CHAR(128)) AS WINDOW_NAME, CAST(NULL AS CHAR(128)) AS RESOURCE_PLAN, CAST(NULL AS CHAR(4000)) AS SCHEDULE_OWNER, CAST(NULL AS CHAR(4000)) AS SCHEDULE_NAME, CAST(NULL AS CHAR(8)) AS SCHEDULE_TYPE, CAST(T.START_DATE AS DATETIME(6)) AS START_DATE, CAST(T.REPEAT_INTERVAL AS CHAR(4000)) AS REPEAT_INTERVAL, CAST(T.END_DATE AS DATETIME(6)) AS END_DATE, CAST(T.MAX_RUN_DURATION AS SIGNED) AS DURATION, CAST(NULL AS CHAR(4)) AS WINDOW_PRIORITY, CAST(T.NEXT_DATE AS DATETIME(6)) AS NEXT_RUN_DATE, CAST(T.LAST_DATE AS DATETIME(6)) AS LAST_START_DATE, CAST(T.ENABLED AS CHAR(5)) AS ENABLED, CAST(NULL AS CHAR(5)) AS ACTIVE, CAST(NULL AS DATETIME(6)) AS MANUAL_OPEN_TIME, CAST(NULL AS SIGNED) AS MANUAL_DURATION, CAST(T.COMMENTS AS CHAR(4000)) AS COMMENTS FROM oceanbase.__all_tenant_scheduler_job T WHERE T.JOB > 0 and T.JOB_NAME in ('MONDAY_WINDOW', 'TUESDAY_WINDOW', 'WEDNESDAY_WINDOW', 'THURSDAY_WINDOW', 'FRIDAY_WINDOW', 'SATURDAY_WINDOW', 'SUNDAY_WINDOW') )__"))) {
|
||||
LOG_ERROR("fail to set view_definition", K(ret));
|
||||
}
|
||||
}
|
||||
|
||||
@ -26512,7 +26512,7 @@ def_table_schema(
|
||||
CAST(NULL AS DATETIME(6)) AS MANUAL_OPEN_TIME,
|
||||
CAST(NULL AS SIGNED) AS MANUAL_DURATION,
|
||||
CAST(T.COMMENTS AS CHAR(4000)) AS COMMENTS
|
||||
FROM oceanbase.__all_tenant_scheduler_job T WHERE T.JOB_NAME in ('MONDAY_WINDOW',
|
||||
FROM oceanbase.__all_tenant_scheduler_job T WHERE T.JOB > 0 and T.JOB_NAME in ('MONDAY_WINDOW',
|
||||
'TUESDAY_WINDOW', 'WEDNESDAY_WINDOW', 'THURSDAY_WINDOW', 'FRIDAY_WINDOW', 'SATURDAY_WINDOW', 'SUNDAY_WINDOW')
|
||||
""".replace("\n", " ")
|
||||
)
|
||||
|
||||
@ -1147,6 +1147,44 @@ int ObUpgradeFor4200Processor::post_upgrade_for_heartbeat_and_server_zone_op_ser
|
||||
|
||||
/* =========== 4200 upgrade processor end ============= */
|
||||
|
||||
int ObUpgradeFor4211Processor::post_upgrade()
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
if (OB_FAIL(check_inner_stat())) {
|
||||
LOG_WARN("fail to check inner stat", KR(ret));
|
||||
} else if (OB_FAIL(post_upgrade_for_dbms_scheduler())) {
|
||||
LOG_WARN("post for upgrade dbms scheduler failed", K(ret));
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
int ObUpgradeFor4211Processor::post_upgrade_for_dbms_scheduler()
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
ObSqlString sql;
|
||||
int64_t affected_rows = 0;
|
||||
bool is_tenant_standby = false;
|
||||
if (sql_proxy_ == NULL) {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
LOG_WARN("sql_proxy is null", K(ret), K(tenant_id_));
|
||||
} else if (OB_FAIL(ObAllTenantInfoProxy::is_standby_tenant(sql_proxy_, tenant_id_, is_tenant_standby))) {
|
||||
LOG_WARN("check is standby tenant failed", K(ret), K(tenant_id_));
|
||||
} else if (is_tenant_standby) {
|
||||
LOG_INFO("tenant is standby, ignore", K(tenant_id_));
|
||||
} else {
|
||||
OZ (sql.append_fmt(
|
||||
"insert ignore into %s "
|
||||
"(tenant_id,job_name,job,lowner,powner,cowner,next_date,`interval#`,flag) "
|
||||
"select tenant_id, job_name,0,lowner,powner,cowner,next_date,`interval#`,flag from %s where job != 0",
|
||||
OB_ALL_TENANT_SCHEDULER_JOB_TNAME,
|
||||
OB_ALL_TENANT_SCHEDULER_JOB_TNAME)); // if has new colomn, use default value
|
||||
OZ (sql_proxy_->write(tenant_id_, sql.ptr(), affected_rows));
|
||||
LOG_INFO("insert job_id=0 rows finished for dbms_scheduler old jobs", K(ret), K(tenant_id_), K(affected_rows));
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
/* =========== 4211 upgrade processor end ============= */
|
||||
|
||||
/* =========== special upgrade processor end ============= */
|
||||
} // end share
|
||||
|
||||
@ -210,7 +210,17 @@ private:
|
||||
};
|
||||
|
||||
DEF_SIMPLE_UPGRARD_PROCESSER(4, 2, 1, 0)
|
||||
DEF_SIMPLE_UPGRARD_PROCESSER(4, 2, 1, 1)
|
||||
class ObUpgradeFor4211Processor : public ObBaseUpgradeProcessor
|
||||
{
|
||||
public:
|
||||
ObUpgradeFor4211Processor() : ObBaseUpgradeProcessor() {}
|
||||
virtual ~ObUpgradeFor4211Processor() {}
|
||||
virtual int pre_upgrade() override { return common::OB_SUCCESS; }
|
||||
virtual int post_upgrade() override;
|
||||
private:
|
||||
int post_upgrade_for_dbms_scheduler();
|
||||
|
||||
};
|
||||
DEF_SIMPLE_UPGRARD_PROCESSER(4, 2, 1, 2)
|
||||
DEF_SIMPLE_UPGRARD_PROCESSER(4, 2, 2, 0)
|
||||
DEF_SIMPLE_UPGRARD_PROCESSER(4, 3, 0, 0)
|
||||
|
||||
@ -1394,7 +1394,7 @@ DEF_INT(connection_control_max_connection_delay, OB_TENANT_PARAMETER, "214748364
|
||||
DEF_BOOL(ob_proxy_readonly_transaction_routing_policy, OB_TENANT_PARAMETER, "false",
|
||||
"Proxy route policy for readonly sql: whether regard begining read only stmts as in transaction",
|
||||
ObParameterAttr(Section::OBSERVER, Source::DEFAULT, EditLevel::DYNAMIC_EFFECTIVE));
|
||||
DEF_INT(job_queue_processes, OB_TENANT_PARAMETER, "1000", "[0,1000]",
|
||||
DEF_INT(job_queue_processes, OB_TENANT_PARAMETER, "1000", "[0,16384]",
|
||||
"specifies the maximum number of job slaves per instance that can be created "
|
||||
"for the execution of DBMS_JOB jobs and Oracle Scheduler (DBMS_SCHEDULER) jobs.",
|
||||
ObParameterAttr(Section::OBSERVER, Source::DEFAULT, EditLevel::DYNAMIC_EFFECTIVE));
|
||||
|
||||
@ -100,21 +100,39 @@ int ObDbmsStatsMaintenanceWindow::get_stats_maintenance_window_jobs_sql(const Ob
|
||||
} else if (OB_UNLIKELY(start_usec == -1 || job_action.empty())) {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
LOG_WARN("get unexpected error", K(ret), K(start_usec), K(job_action));
|
||||
} else if (OB_FAIL(get_stat_window_job_sql(is_oracle_mode,
|
||||
tenant_id,
|
||||
job_id++,
|
||||
windows_name[i],
|
||||
exec_env,
|
||||
start_usec,
|
||||
job_action,
|
||||
tmp_sql))) {
|
||||
LOG_WARN("failed to get stat window job sql", K(ret));
|
||||
} else if (OB_FAIL(raw_sql.append_fmt("%s(%s)", (i == 0 ? "" : ","), tmp_sql.ptr()))) {
|
||||
LOG_WARN("failed to append sql", K(ret));
|
||||
} else {
|
||||
++ expected_affected_rows;
|
||||
tmp_sql.reset();
|
||||
job_action.reset();
|
||||
if (OB_FAIL(get_stat_window_job_sql(is_oracle_mode,
|
||||
tenant_id,
|
||||
job_id++,
|
||||
windows_name[i],
|
||||
exec_env,
|
||||
start_usec,
|
||||
job_action,
|
||||
tmp_sql))) {
|
||||
LOG_WARN("failed to get stat window job sql", K(ret));
|
||||
} else if (OB_FAIL(raw_sql.append_fmt("%s(%s)", (i == 0 ? "" : ","), tmp_sql.ptr()))) {
|
||||
LOG_WARN("failed to append sql", K(ret));
|
||||
} else {
|
||||
++ expected_affected_rows;
|
||||
tmp_sql.reset();
|
||||
job_action.reset();
|
||||
if (OB_FAIL(get_stat_window_job_sql(is_oracle_mode,
|
||||
tenant_id,
|
||||
0,
|
||||
windows_name[i],
|
||||
exec_env,
|
||||
start_usec,
|
||||
job_action,
|
||||
tmp_sql))) {
|
||||
LOG_WARN("failed to get stat window job sql", K(ret));
|
||||
} else if (OB_FAIL(raw_sql.append_fmt("%s(%s)", ",", tmp_sql.ptr()))) {
|
||||
LOG_WARN("failed to append sql", K(ret));
|
||||
} else {
|
||||
++ expected_affected_rows;
|
||||
tmp_sql.reset();
|
||||
job_action.reset();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (OB_SUCC(ret)) {
|
||||
@ -127,7 +145,17 @@ int ObDbmsStatsMaintenanceWindow::get_stats_maintenance_window_jobs_sql(const Ob
|
||||
} else {
|
||||
++ expected_affected_rows;
|
||||
tmp_sql.reset();
|
||||
if (OB_FAIL(get_stats_history_manager_job_sql(is_oracle_mode, tenant_id,
|
||||
0, exec_env, tmp_sql))) {
|
||||
LOG_WARN("failed to get stats history manager job sql", K(ret));
|
||||
} else if (OB_FAIL(raw_sql.append_fmt(", (%s)", tmp_sql.ptr()))) {
|
||||
LOG_WARN("failed to append sql", K(ret));
|
||||
} else {
|
||||
++ expected_affected_rows;
|
||||
tmp_sql.reset();
|
||||
}
|
||||
}
|
||||
|
||||
//set dummy guard job
|
||||
if (OB_FAIL(ret)) {
|
||||
} else if (OB_FAIL(get_dummy_guard_job_sql(tenant_id, job_id, tmp_sql))) {
|
||||
|
||||
Reference in New Issue
Block a user