mysql多層元資訊與查詢實踐
mysql多層元資訊與查詢實踐
--劉春雷
歡迎轉載,請註明出處,謝謝
作者:劉春雷
歡迎評論,感謝~
------------------------------------------------------
概要:
如果你想規範化管理資料庫
作者:劉春雷
歡迎評論,感謝~
------------------------------------------------------
概要:
如果你想規範化管理資料庫
如果你想方便擴充套件元資訊
如果你想明確mysql邏輯結構
如果你瞭解元資訊的重要性
如果你瞭解元資訊的重要性
如果你想有快速顯示資訊的工具,那麼此篇文章適合你~
--劉春雷
-------------------------------------------------------------------
一、元資訊重要性
1.1、什麼是mysql元資訊
mysql元資訊是指記錄mysql的基本資訊,例如伺服器資訊,IP資訊,例項資訊,叢集資訊,資料庫資訊,資料庫使用者資訊,域名資訊,域名與例項關係資訊,備份任務資訊,備份結果資訊等
1.2、mysql元資訊作用
<1>規範化
為了規範化mysql的基本資訊
<2>自動化
可以很方便被shell、python指令碼呼叫,獲取資訊方便
<3>邏輯化
可以清晰mysql各邏輯情況,例如例項,伺服器,叢集等
二、元資訊架構
1、伺服器(my_server)
功能簡述:管理伺服器資訊
2、叢集(my_cluster)
功能簡述:管理叢集資訊
3、例項(my_db)
功能簡述:管理例項資訊
4、資料庫(my_database)
功能簡述:管理資料庫資訊
5、使用者(my_database_user)
功能簡述:管理資料庫使用者資訊
6、域名(my_domain)
功能簡述:管理域名資訊
7、資料庫備份任務(my_backup_task)
功能簡述:管理備份任務
8、資料庫備份記錄(my_backup_info)
功能簡述:管理備份記錄資訊
三、建表SQL詳細
3.1、伺服器資訊表
注:因1臺機器有2個IP,所以有ip,ip2
CREATE TABLE `my_server` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`ip` char(15) NOT NULL COMMENT 'IP地址',
`ip2` char(15) NOT NULL COMMENT 'ip2',
`hostname` varchar(50) DEFAULT NULL COMMENT '主機名',
`valid` varchar(1) NOT NULL COMMENT '是否有效,1有效,0無效',
`idc` varchar(32) DEFAULT NULL COMMENT '機房資訊',
`create_time` datetime DEFAULT NULL COMMENT '機器新增時間',
`machine_type` varchar(50) DEFAULT NULL COMMENT '機器套餐',
`modify_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `ux_ip` (`ip`),
UNIQUE KEY `ux_ip2` (`ip2`),
UNIQUE KEY `ux_hostname` (`hostname`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='mysql機器資訊表'
功能:用於記錄伺服器資訊的表
3.2、IP資訊表
CREATE TABLE `my_ip` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`ip` char(15) NOT NULL COMMENT 'IP地址',
`hostname` varchar(50) DEFAULT NULL COMMENT '主機名',
`valid` varchar(1) NOT NULL COMMENT '是否有效,1有效,0無效',
`idc` varchar(32) DEFAULT NULL COMMENT '機房資訊',
`create_time` datetime DEFAULT NULL COMMENT '機器新增時間',
`machine_type` varchar(50) DEFAULT NULL COMMENT '機器套餐',
`modify_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `ux_ip` (`ip`),
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='IP資訊表'
CREATE TABLE `my_ip` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`ip` char(15) NOT NULL COMMENT 'IP地址',
`hostname` varchar(50) DEFAULT NULL COMMENT '主機名',
`valid` varchar(1) NOT NULL COMMENT '是否有效,1有效,0無效',
`idc` varchar(32) DEFAULT NULL COMMENT '機房資訊',
`create_time` datetime DEFAULT NULL COMMENT '機器新增時間',
`machine_type` varchar(50) DEFAULT NULL COMMENT '機器套餐',
`modify_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `ux_ip` (`ip`),
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='IP資訊表'
功能:用於記錄mysql相關IP的資訊,用於給my_db選擇IP
關聯關係 ip管理my_server的ip/ip2
3.3、叢集表
功能:用於記錄一個叢集的相關資訊
CREATE TABLE `my_cluster` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`cluster_name` varchar(256) NOT NULL COMMENT '叢集名',
`cluster_port` int(11) DEFAULT NULL COMMENT '叢集埠',
`business_info` varchar(256) NOT NULL COMMENT '資料庫歸屬業務',
`cluster_flag` tinyint(1) NOT NULL DEFAULT '0' COMMENT '0:online,1:develop,2:test',
`add_user_id` int(11) DEFAULT NULL COMMENT '建立者,負責此叢集的dba',
`add_time` datetime DEFAULT NULL COMMENT '新增時間',
`modify_time` datetime DEFAULT NULL COMMENT '修改時間',
`valid` varchar(1) NOT NULL DEFAULT '1' COMMENT '叢集是否有效、下線,1有效,0無效、下線',
`data_init_size` int(11) NOT NULL DEFAULT '0' COMMENT '叢集初始資料量',
`data_increase` varchar(100) NOT NULL DEFAULT '0' COMMENT '叢集增長情況',
`version` varchar(20) NOT NULL DEFAULT '5.5.27' COMMENT 'mysql版本,5.5.27,5.6.21,5.7.15',
`mha_seton` tinyint(1) NOT NULL DEFAULT '1' COMMENT '0:set off,1:set on',
`backup_flag` tinyint(1) NOT NULL DEFAULT '1' COMMENT '是否備份,1備份,0不備份',
cluster_desc varchar(500) not null default '' COMMENT '描述',
PRIMARY KEY (`id`),
UNIQUE KEY `ux_clustername` (`cluster_name`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='mysql叢集資訊表'
CREATE TABLE `my_cluster` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`cluster_name` varchar(256) NOT NULL COMMENT '叢集名',
`cluster_port` int(11) DEFAULT NULL COMMENT '叢集埠',
`business_info` varchar(256) NOT NULL COMMENT '資料庫歸屬業務',
`cluster_flag` tinyint(1) NOT NULL DEFAULT '0' COMMENT '0:online,1:develop,2:test',
`add_user_id` int(11) DEFAULT NULL COMMENT '建立者,負責此叢集的dba',
`add_time` datetime DEFAULT NULL COMMENT '新增時間',
`modify_time` datetime DEFAULT NULL COMMENT '修改時間',
`valid` varchar(1) NOT NULL DEFAULT '1' COMMENT '叢集是否有效、下線,1有效,0無效、下線',
`data_init_size` int(11) NOT NULL DEFAULT '0' COMMENT '叢集初始資料量',
`data_increase` varchar(100) NOT NULL DEFAULT '0' COMMENT '叢集增長情況',
`version` varchar(20) NOT NULL DEFAULT '5.5.27' COMMENT 'mysql版本,5.5.27,5.6.21,5.7.15',
`mha_seton` tinyint(1) NOT NULL DEFAULT '1' COMMENT '0:set off,1:set on',
`backup_flag` tinyint(1) NOT NULL DEFAULT '1' COMMENT '是否備份,1備份,0不備份',
cluster_desc varchar(500) not null default '' COMMENT '描述',
PRIMARY KEY (`id`),
UNIQUE KEY `ux_clustername` (`cluster_name`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='mysql叢集資訊表'
3.4、例項表
功能:記錄mysql的叢集例項的相關資訊
CREATE TABLE `my_db` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`cluster_id` int(11) NOT NULL COMMENT '叢集號',
`host` char(15) NOT NULL COMMENT '例項IP',
`port` varchar(8) NOT NULL COMMENT '例項埠號',
`add_user_id` int(11) DEFAULT NULL COMMENT '新增的使用者',
`add_time` datetime DEFAULT NULL COMMENT '新增的時間',
`modify_time` datetime DEFAULT NULL COMMENT '修改的時間',
`valid` tinyint(1) NOT NULL DEFAULT '1' COMMENT '例項是否有效,1有效,0無效',
`service` varchar(32) NOT NULL COMMENT '例項讀寫情況,Write&Read,Read,Bakup,Out-of-service',
`role` varchar(80) NOT NULL COMMENT 'db role',
`xtrabackup_flag` tinyint(4) NOT NULL DEFAULT '0',
`candidate_master` tinyint(4) DEFAULT '0' COMMENT '是否優先可切為master,1優先,0不優先',
`no_master` tinyint(4) DEFAULT '0',
`mha_write_into_conf` tinyint(4) DEFAULT '1' COMMENT 'mha_write_into_conf,1write;0,not write',
`binlog_dir` varchar(100) DEFAULT NULL COMMENT 'binlog_dir',
`innodb_buffer` varchar(30) NOT NULL DEFAULT '1G' COMMENT 'innodb_buffer_pool set',
`db_version` varchar(10) NOT NULL DEFAULT '' COMMENT 'db_version,5.5.27,5.7.15',
`init_db` varchar(60) DEFAULT NULL COMMENT '初始化db',
`job_status` varchar(100) NOT NULL COMMENT '例項狀態',
db_desc varchar(500) not null default '' COMMENT '描述',
PRIMARY KEY (`id`),
UNIQUE KEY `ux_hostportservicename` (`host`,`port`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='mysql例項資訊表'
關聯關係:
cluster_id與叢集表my_cluster的叢集號id對應
host與機器表my_ip的IP對應
功能:記錄mysql的叢集例項的相關資訊
CREATE TABLE `my_db` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`cluster_id` int(11) NOT NULL COMMENT '叢集號',
`host` char(15) NOT NULL COMMENT '例項IP',
`port` varchar(8) NOT NULL COMMENT '例項埠號',
`add_user_id` int(11) DEFAULT NULL COMMENT '新增的使用者',
`add_time` datetime DEFAULT NULL COMMENT '新增的時間',
`modify_time` datetime DEFAULT NULL COMMENT '修改的時間',
`valid` tinyint(1) NOT NULL DEFAULT '1' COMMENT '例項是否有效,1有效,0無效',
`service` varchar(32) NOT NULL COMMENT '例項讀寫情況,Write&Read,Read,Bakup,Out-of-service',
`role` varchar(80) NOT NULL COMMENT 'db role',
`xtrabackup_flag` tinyint(4) NOT NULL DEFAULT '0',
`candidate_master` tinyint(4) DEFAULT '0' COMMENT '是否優先可切為master,1優先,0不優先',
`no_master` tinyint(4) DEFAULT '0',
`mha_write_into_conf` tinyint(4) DEFAULT '1' COMMENT 'mha_write_into_conf,1write;0,not write',
`binlog_dir` varchar(100) DEFAULT NULL COMMENT 'binlog_dir',
`innodb_buffer` varchar(30) NOT NULL DEFAULT '1G' COMMENT 'innodb_buffer_pool set',
`db_version` varchar(10) NOT NULL DEFAULT '' COMMENT 'db_version,5.5.27,5.7.15',
`init_db` varchar(60) DEFAULT NULL COMMENT '初始化db',
`job_status` varchar(100) NOT NULL COMMENT '例項狀態',
db_desc varchar(500) not null default '' COMMENT '描述',
PRIMARY KEY (`id`),
UNIQUE KEY `ux_hostportservicename` (`host`,`port`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='mysql例項資訊表'
關聯關係:
cluster_id與叢集表my_cluster的叢集號id對應
host與機器表my_ip的IP對應
3.5、資料庫表
功能:記錄資料庫的資訊(schema)
CREATE TABLE `my_database` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`cluster_id` int(11) NOT NULL COMMENT '叢集id號',
`db_name` varchar(220) NOT NULL COMMENT 'db name',
`service_name` varchar(100) NOT NULL COMMENT 'service name',
`db_owners` varchar(128) NOT NULL DEFAULT '' COMMENT 'RD負責人',
`add_user_id` int(11) DEFAULT NULL COMMENT '新增庫的dba',
`valid` varchar(1) NOT NULL DEFAULT '1' COMMENT '庫是否有效,1有效,0無效',
`add_time` timestamp NOT NULL DEFAULT '2017-01-01 00:00:00' COMMENT '建立時間',
`modify_time` timestamp NOT NULL DEFAULT '2000-01-01 00:00:00' COMMENT '修改時間',
`db_department` varchar(32) NOT NULL DEFAULT '' COMMENT '業務部門',
db_business varchar(32) NOT NULL DEFAULT '' COMMENT '所屬組',
`job_status` varchar(100) NOT NULL COMMENT '資料庫狀態',
database_desc varchar(500) not null default '' COMMENT '描述',
PRIMARY KEY (`id`),
UNIQUE KEY `ux_clusteriddb` (`db_name`,`cluster_id`),
KEY `ix_cluster_id` (`cluster_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='資料庫schema資訊表'
關聯關係:
cluster_id與叢集表my_cluster的叢集號id對應
CREATE TABLE `my_database` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`cluster_id` int(11) NOT NULL COMMENT '叢集id號',
`db_name` varchar(220) NOT NULL COMMENT 'db name',
`service_name` varchar(100) NOT NULL COMMENT 'service name',
`db_owners` varchar(128) NOT NULL DEFAULT '' COMMENT 'RD負責人',
`add_user_id` int(11) DEFAULT NULL COMMENT '新增庫的dba',
`valid` varchar(1) NOT NULL DEFAULT '1' COMMENT '庫是否有效,1有效,0無效',
`add_time` timestamp NOT NULL DEFAULT '2017-01-01 00:00:00' COMMENT '建立時間',
`modify_time` timestamp NOT NULL DEFAULT '2000-01-01 00:00:00' COMMENT '修改時間',
`db_department` varchar(32) NOT NULL DEFAULT '' COMMENT '業務部門',
db_business varchar(32) NOT NULL DEFAULT '' COMMENT '所屬組',
`job_status` varchar(100) NOT NULL COMMENT '資料庫狀態',
database_desc varchar(500) not null default '' COMMENT '描述',
PRIMARY KEY (`id`),
UNIQUE KEY `ux_clusteriddb` (`db_name`,`cluster_id`),
KEY `ix_cluster_id` (`cluster_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='資料庫schema資訊表'
3.6、例項與域名關係表
功能:記錄資料庫例項與域名關係表
CREATE TABLE `my_db_domain` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`db_id` int(11) NOT NULL COMMENT 'my_db表的例項號',
`domain_id` int(11) NOT NULL COMMENT '域名id號',
PRIMARY KEY (`id`),
UNIQUE KEY `ux_db_id` (`db_id`,`domain_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='資料庫例項與域名id關係表'
關聯關係:
domain_id與my_domain的例項id號對應
db_id與例項表my_db的例項id對應
功能:記錄資料庫例項與域名關係表
CREATE TABLE `my_db_domain` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`db_id` int(11) NOT NULL COMMENT 'my_db表的例項號',
`domain_id` int(11) NOT NULL COMMENT '域名id號',
PRIMARY KEY (`id`),
UNIQUE KEY `ux_db_id` (`db_id`,`domain_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='資料庫例項與域名id關係表'
關聯關係:
domain_id與my_domain的例項id號對應
db_id與例項表my_db的例項id對應
3.7、域名資訊表
功能:記錄域名資訊
CREATE TABLE `my_domain` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`cluster_id` int(11) NOT NULL DEFAULT '0' COMMENT '域名所屬叢集id',
`domain_flag` int(11) NOT NULL COMMENT '域名讀寫標識,1,只讀,0,讀寫',
`domain_name` varchar(64) NOT NULL COMMENT '域名',
PRIMARY KEY (`id`),
UNIQUE KEY `ux_domain_name` (`domain_name`),
KEY `ix_clusterid` (`cluster_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='域名資訊表'
關聯關係:
cluster_id為叢集表my_cluster的id號,需要選擇
domain_flag 為了區分域名讀寫的屬性,也可以在域名起名的環節制定規則,來區分讀寫域名,例如 domainname_w 為寫域名,domainname_r為讀域名
功能:記錄域名資訊
CREATE TABLE `my_domain` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`cluster_id` int(11) NOT NULL DEFAULT '0' COMMENT '域名所屬叢集id',
`domain_flag` int(11) NOT NULL COMMENT '域名讀寫標識,1,只讀,0,讀寫',
`domain_name` varchar(64) NOT NULL COMMENT '域名',
PRIMARY KEY (`id`),
UNIQUE KEY `ux_domain_name` (`domain_name`),
KEY `ix_clusterid` (`cluster_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='域名資訊表'
關聯關係:
cluster_id為叢集表my_cluster的id號,需要選擇
domain_flag 為了區分域名讀寫的屬性,也可以在域名起名的環節制定規則,來區分讀寫域名,例如 domainname_w 為寫域名,domainname_r為讀域名
3.8、使用者表
CREATE TABLE `my_database_user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(30) NOT NULL COMMENT '使用者名稱',
`userhost` varchar(60) NOT NULL COMMENT '許可權,可來源的IP',
`userpwd` varchar(30) NOT NULL COMMENT '密碼',
`privs` varchar(2000) NOT NULL COMMENT '許可權',
`add_user_id` int(11) NOT NULL COMMENT '新增的DBA',
`add_time` datetime(6) NOT NULL COMMENT '新增時間' ,
`valid` int(11) NOT NULL COMMENT '是否有效,1有效,0無效',
`modify_time` datetime(6) NOT NULL COMMENT '修改時間' ,
`database_id` int(11) NOT NULL COMMENT '資料庫schema的id',
PRIMARY KEY (`id`),
UNIQUE KEY `un_database_user_host` (`database_id`,`username`,`userhost`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='使用者資訊表'
關聯關係:
database_id與資料庫表my_database 的id號對應
CREATE TABLE `my_database_user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(30) NOT NULL COMMENT '使用者名稱',
`userhost` varchar(60) NOT NULL COMMENT '許可權,可來源的IP',
`userpwd` varchar(30) NOT NULL COMMENT '密碼',
`privs` varchar(2000) NOT NULL COMMENT '許可權',
`add_user_id` int(11) NOT NULL COMMENT '新增的DBA',
`add_time` datetime(6) NOT NULL COMMENT '新增時間' ,
`valid` int(11) NOT NULL COMMENT '是否有效,1有效,0無效',
`modify_time` datetime(6) NOT NULL COMMENT '修改時間' ,
`database_id` int(11) NOT NULL COMMENT '資料庫schema的id',
PRIMARY KEY (`id`),
UNIQUE KEY `un_database_user_host` (`database_id`,`username`,`userhost`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='使用者資訊表'
關聯關係:
database_id與資料庫表my_database 的id號對應
3.9、備份任務表
CREATE TABLE `my_backup_task` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`db_names` varchar(20) DEFAULT NULL COMMENT '包含庫名',
`backup_type` int(11) NOT NULL default 0 COMMENT '備份型別(0,'HOTBAK'),(1,'DUMP')',
`backup_weektime` varchar(50) NOT NULL COMMENT '備份日期',
`backup_crontime` varchar(30) NOT NULL COMMENT '備份crontab時間',
`backup_dir` varchar(150) NOT NULL COMMENT '備份地址',
`expire_counts` int(11) NOT NULL COMMENT '備份保留個數',
`isvalid` int(11) NOT NULL default 1 COMMENT '是否有效,1有效0無效,預設1有效',
`modify_time` datetime(6) DEFAULT NULL COMMENT '修改時間‘,
`last_start_time` datetime(6) DEFAULT NULL COMMENT '最近備份開始時間',
`last_end_time` datetime(6) DEFAULT NULL COMMENT '最近備份結束時間',
`last_size` double DEFAULT NULL COMMENT '上次備份檔案大小(M)',
`cluster_id` int(11) NOT NULL COMMENT '叢集號',
`db_id` int(11) NOT NULL COMMENT '例項號',
`cost_time` int(11) NOT NULL COMMENT '備份耗時(分)',
`last_status` int(11) NOT NULL default 1 COMMENT '最近一次備份結果,0failed,1succeed,2succeed with warning',
PRIMARY KEY (`id`),
UNIQUE KEY `un_clusterid_backup` (`cluster_id`,`backup_type`),
) ENGINE=InnoDB AUTO_INCREMENT=4633 DEFAULT CHARSET=utf8
關聯關係:
cluster_id與叢集表my_cluster的id號對應
db_id與例項表my_db的id對應
CREATE TABLE `my_backup_task` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`db_names` varchar(20) DEFAULT NULL COMMENT '包含庫名',
`backup_type` int(11) NOT NULL default 0 COMMENT '備份型別(0,'HOTBAK'),(1,'DUMP')',
`backup_weektime` varchar(50) NOT NULL COMMENT '備份日期',
`backup_crontime` varchar(30) NOT NULL COMMENT '備份crontab時間',
`backup_dir` varchar(150) NOT NULL COMMENT '備份地址',
`expire_counts` int(11) NOT NULL COMMENT '備份保留個數',
`isvalid` int(11) NOT NULL default 1 COMMENT '是否有效,1有效0無效,預設1有效',
`modify_time` datetime(6) DEFAULT NULL COMMENT '修改時間‘,
`last_start_time` datetime(6) DEFAULT NULL COMMENT '最近備份開始時間',
`last_end_time` datetime(6) DEFAULT NULL COMMENT '最近備份結束時間',
`last_size` double DEFAULT NULL COMMENT '上次備份檔案大小(M)',
`cluster_id` int(11) NOT NULL COMMENT '叢集號',
`db_id` int(11) NOT NULL COMMENT '例項號',
`cost_time` int(11) NOT NULL COMMENT '備份耗時(分)',
`last_status` int(11) NOT NULL default 1 COMMENT '最近一次備份結果,0failed,1succeed,2succeed with warning',
PRIMARY KEY (`id`),
UNIQUE KEY `un_clusterid_backup` (`cluster_id`,`backup_type`),
) ENGINE=InnoDB AUTO_INCREMENT=4633 DEFAULT CHARSET=utf8
關聯關係:
cluster_id與叢集表my_cluster的id號對應
db_id與例項表my_db的id對應
3.10、備份資訊記錄表
CREATE TABLE `my_backup_info` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`db_names` varchar(20) DEFAULT NULL COMMENT '包含庫',
`backup_type` int(11) NOT NULL default 0 COMMENT '備份方式,0xtra,1dump',
`backup_dir` varchar(150) DEFAULT NULL COMMENT '備份最終結果',
`start_time` datetime(6) DEFAULT NULL COMMENT '備份開始時間',
`end_time` datetime(6) DEFAULT NULL COMMENT '備份結束時間',
`size` double DEFAULT NULL COMMENT '份檔案大小(M)',
`status` int(11) NOT NULL COMMENT '備份結果,0,failed,1succeed,2succeed with warning ',
`message` varchar(256) DEFAULT NULL COMMENT '備份詳細資訊',
`cluster_id` int(11) NOT NULL COMMENT '叢集號',
`db_id` int(11) NOT NULL COMMENT '例項號',
`cost_time` int(11) NOT NULL COMMENT '備份耗時(分)',
PRIMARY KEY (`id`),
KEY `ix_cluster_id` (`cluster_id`),
KEY `ix_db_id` (`db_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8
關聯關係:
cluster_id與叢集表的id號對應
db_id與例項表my_db的id對應
CREATE TABLE `my_backup_info` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`db_names` varchar(20) DEFAULT NULL COMMENT '包含庫',
`backup_type` int(11) NOT NULL default 0 COMMENT '備份方式,0xtra,1dump',
`backup_dir` varchar(150) DEFAULT NULL COMMENT '備份最終結果',
`start_time` datetime(6) DEFAULT NULL COMMENT '備份開始時間',
`end_time` datetime(6) DEFAULT NULL COMMENT '備份結束時間',
`size` double DEFAULT NULL COMMENT '份檔案大小(M)',
`status` int(11) NOT NULL COMMENT '備份結果,0,failed,1succeed,2succeed with warning ',
`message` varchar(256) DEFAULT NULL COMMENT '備份詳細資訊',
`cluster_id` int(11) NOT NULL COMMENT '叢集號',
`db_id` int(11) NOT NULL COMMENT '例項號',
`cost_time` int(11) NOT NULL COMMENT '備份耗時(分)',
PRIMARY KEY (`id`),
KEY `ix_cluster_id` (`cluster_id`),
KEY `ix_db_id` (`db_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8
關聯關係:
cluster_id與叢集表的id號對應
db_id與例項表my_db的id對應
四、元資訊最佳使用實踐
4.1、qmysql工具
4.1.1、qmysql工具功能
程式碼:python開發,用於方便DBA查詢叢集、例項的相關資訊,方便使用
原理:即利用多表元資訊關聯查詢,查詢出相關的資訊
優點:
查詢叢集拓撲情況,快速展示
快速登入例項
快速登入機器
4.1.2、qmysql功能 彙總
4.1.3、qmysql功能--按叢集號查詢叢集拓撲
4.1.4、qmysql功能--按叢集名查詢叢集拓撲
4.1.5、qmysql功能--按庫名查詢叢集拓撲
4.1.6、qmysql功能--按服務名查詢叢集拓撲
4.1.7、登入例項
mysql.例項號,即可登入指定例項
4.1.8、遠端登入機器
ssh.例項號
即可遠端登入機器
注:程式碼就不分享出來了,大家按照多表關聯查詢即可做出此工具
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28823725/viewspace-2142234/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Mysql 慢查詢優化實踐MySql優化
- mysql查詢結果多列拼接查詢MySql
- mysql查詢表基礎資訊MySql
- 層級查詢並將層級拆分成多列
- MySQL簡單實現多欄位模糊查詢MySql
- 從理論到實踐,Mysql查詢優化剖析MySql優化
- 實踐007-elasticsearch查詢之2-Request Body與DSL查詢Elasticsearch
- Access查詢實現Mysql的 limit 查詢MySqlMIT
- 關於Hibernate多層1對多關係查詢
- MySQL入門--查詢資料庫資訊MySql資料庫
- jpa 聯合查詢資料,查詢使用者資訊與部門資訊
- mysql多條件過濾查詢之mysq高階查詢MySql
- 架構師必備:多維度查詢的最佳實踐架構
- Oracle多層級查詢相容的效能問題Oracle
- java 查詢資料庫並生成多層childrenJava資料庫
- mySQL多表查詢與事務MySql
- MySQL索引與查詢優化MySql索引優化
- 聊聊mysql的多列組合查詢MySql
- HBase Meta 元資訊表修復實踐
- mysql like查詢 - 根據多個條件的模糊匹配查詢MySql
- 一種通用查詢語言的定義與實踐
- CoreData實踐(四)——查詢資料
- PB級資料實時查詢,滴滴Elasticsearch多叢集架構實踐Elasticsearch架構
- mysql多表查詢如何實現MySql
- mysql實現隨機查詢MySql隨機
- 查詢表資訊
- mysql多表多欄位查詢並去重MySql
- Oracle多列統計資訊與直方圖對有關聯多列查詢影響Oracle直方圖
- 實踐006-elasticsearch查詢之1-URI Search查詢Elasticsearch
- MySQL查詢MySql
- FFmpeg應用實踐之命令查詢
- PostgreSQL十億級模糊查詢最佳實踐SQL
- 實踐分享 - MySQL優化 - 查詢去年待流失客戶的交易額MySql優化
- Oracle層次化查詢Oracle
- Mysql加鎖與實踐MySql
- BST查詢結構與折半查詢方法的實現與實驗比較
- 美團搜尋中查詢改寫技術的探索與實踐
- mysql帶AND關鍵字的多條件查詢MySql