centeros mysql定时执行sql语句_mysql 数据库Event定时任务使用详解(Navicat 及直接SQL语句创建)...

/*-- ----------------------------

-- 先删除  alert_msg 数据库表数据

-- 再同步 alert_msg 更新相关数据

-- ----------------------------*/

DELETE FROM monitor_screen.alarm_msg;

INSERT INTO monitor_screen.alarm_msg(id, alarm_id, resource_type, alarm_type, created_time, content, `level`)

SELECT UUID() AS id,

id AS alarm_id,

"2" AS resource_type,

CASE alarm_type

WHEN "state" THEN "状态告警"

END AS "alarm_type",

created_time,

description AS content,

CASE `level`

WHEN "general" THEN "1"

WHEN "serious" THEN "2"

WHEN "general" THEN "3"

END AS "level"

FROM alarm;

/*-- ----------------------------

-- 先删除 overall_statistic 数据库表数据

-- 再同步 overall_statistic 更新相关数据

-- ----------------------------*/

DELETE FROM monitor_screen.overall_statistic;

INSERT INTO monitor_screen.overall_statistic(id, user_num_online, user_num_all, tenant_num, business_num, vm_num)

select a.id, b.user_num_online, c.user_num_all, d.tenant_num, e.business_num, f.vm_num FROM

(SELECT UUID() AS id) AS a join

(SELECT COUNT(id) AS user_num_online from `user` WHERE login_state=0 AND deleted=0) AS b join

(SELECT COUNT(id) AS user_num_all from `user` WHERE deleted=0) AS c join

(SELECT COUNT(id) AS tenant_num FROM `tenant`  WHERE deleted=0 ) AS d join

(SELECT COUNT(id) AS business_num FROM `business`  WHERE deleted=0 ) AS e join

(SELECT COUNT(id) AS vm_num FROM `instance`  WHERE deleted=0 ) AS f ;

/*-- ----------------------------

-- 先删除 tenant_res_spnd_t5 数据库表数据

-- 再同步 tenant_res_spnd_t5 更新相关数据

-- ----------------------------*/

DELETE FROM monitor_screen.tenant_res_spnd_t5;

INSERT INTO monitor_screen.tenant_res_spnd_t5

SELECT UUID() AS id,tenant.`name` AS tenant_name, vm_num

FROM (

(SELECT tenant_id, COUNT(id) AS vm_num FROM instance WHERE instance.deleted != 1 GROUP BY tenant_id) AS a

LEFT JOIN

tenant

ON a.tenant_id=tenant.id AND tenant.deleted != 1

);

/*-- ----------------------------

-- 先删除 resource_spending 数据库表数据

-- 再同步 resource_spending 更新相关数据

-- ----------------------------*/

DELETE FROM monitor_screen.resource_spending;

INSERT INTO monitor_screen.resource_spending(id, created_time, `hour`, cpu_use_ratio, memory_use_ratio)

SELECT   UUID() AS id,

created_time,

date_format(created_time, '%H') AS `hour`,

AVG(cpu_rate) AS cpu_use_ratio,

AVG(memory_rate) AS memory_use_ratio

FROM instance

GROUP BY date_format(created_time, '%Y-%m-%d %H');

/*-- ----------------------------

-- 先删除 cloud_tenant 数据库表数据

-- 再同步 cloud_tenant 更新相关数据

-- ----------------------------*/

DELETE FROM monitor_screen.cloud_tenant;

INSERT INTO monitor_screen.cloud_tenant

SELECT

UUID() AS id,

tenant.`id` AS tenant_id,

tenant.`name` AS tenant_name,

NULL AS lon,

NULL AS lat,

COUNT(DISTINCT CASE WHEN `user`.login_state = 0 AND `user`.deleted != 1 THEN `user`.id END) AS online_user_num,

COUNT(DISTINCT CASE WHEN instance.`status` = 'active' AND instance.deleted != 1 THEN instance.id END) AS online_vm_num,

COUNT(DISTINCT CASE WHEN `user`.deleted != 1 THEN `user`.id END) AS user_num,

COUNT(DISTINCT CASE WHEN `business`.deleted != 1 THEN business.id END) AS business_num,

COUNT(DISTINCT CASE WHEN instance.deleted != 1 THEN instance.id END) AS vm_num,

COUNT(DISTINCT CASE WHEN alarm.`status` != 'fix' THEN alarm.id END) AS sec_alarm_num,

AVG( instance.cpu_rate) AS vcpu_use_ratio,

AVG( instance.memory_rate) AS memory_use_ratio

FROM  tenant LEFT JOIN tenant_user ON tenant_user.tenant_id = tenant.id

LEFT JOIN `user` ON tenant_user.user_id = `user`.id

LEFT JOIN business ON  business.tenant_id = tenant.id

LEFT JOIN alarm ON alarm.tenant_uuid = tenant.uuid

LEFT JOIN instance ON instance.tenant_id = tenant.id

GROUP BY tenant.id;

/*-- ----------------------------

-- 先删除 data_center 数据库表数据

-- 再同步 data_center 更新相关数据

-- ----------------------------*/

DELETE FROM monitor_screen.data_center;

INSERT INTO monitor_screen.data_center

SELECT

UUID() AS id,

provider.id AS provider_id,

provider.`name` AS provider_name,

NULL AS lon,

NULL AS lat,

COUNT(DISTINCT virtual_server.id) AS computing_server_num,

COUNT(DISTINCT storage_device.id) AS storage_server_num,

COUNT(DISTINCT network_device.id) AS net_server_num,

COUNT(DISTINCT instance.id) AS visual_machine_num,

SUM(flavor.vcpus) AS visual_cpu_num,

SUM(flavor.memory_mb) AS visual_memory_capacity,

SUM(flavor.disk) AS visual_disc_capacity

FROM  provider LEFT JOIN virtual_server ON provider.id  = virtual_server.provider_id

LEFT JOIN storage_device ON provider.id  = storage_device.provider_id

LEFT JOIN network_device ON provider.id  = network_device.provider_id

LEFT JOIN instance ON provider.id  = instance.provider_id

LEFT JOIN flavor ON instance.flavor_uuid  = flavor.uuid

LEFT JOIN physical_resource ON provider.id  = physical_resource.provider_id

GROUP BY provider.id;

/*-- ----------------------------

-- 先删除 link 数据库表数据

-- 再同步 link 更新相关数据

-- ----------------------------*/

DELETE FROM monitor_screen.link;

INSERT INTO monitor_screen.link

SELECT

UUID() AS id,

tenant_id,

provider_id

FROM tenant_provider;

/*-- ----------------------------

-- 先删除 vm_resource_statistic 数据库表数据

-- 再同步 vm_resource_statistic 更新相关数据

-- ----------------------------*/

DELETE FROM monitor_screen.vm_resource_statistic;

INSERT INTO monitor_screen.vm_resource_statistic

SELECT

UUID() AS id,

SUM(vcpu_used) AS `assigned_vcpu_num`,

SUM(memory_used) AS `assigned_vmemory_capacity`,

SUM(storage_used) AS `assigned_vdisc_capacity`,

SUM(memory) AS `vmemory_capacity`,

SUM(`storage`) AS `vdisk_capacity`

FROM physical_resource;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值