clawsql 0.2.0 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +25 -5
- package/dist/bin/clawsql.d.ts +1 -0
- package/dist/bin/clawsql.d.ts.map +1 -1
- package/dist/bin/clawsql.js +18 -2
- package/dist/bin/clawsql.js.map +1 -1
- package/dist/cli/agent/handler.d.ts +13 -31
- package/dist/cli/agent/handler.d.ts.map +1 -1
- package/dist/cli/agent/handler.js +107 -149
- package/dist/cli/agent/handler.js.map +1 -1
- package/dist/cli/agent/index.d.ts +2 -1
- package/dist/cli/agent/index.d.ts.map +1 -1
- package/dist/cli/agent/index.js +7 -1
- package/dist/cli/agent/index.js.map +1 -1
- package/dist/cli/agent/openclaw-integration.d.ts +83 -25
- package/dist/cli/agent/openclaw-integration.d.ts.map +1 -1
- package/dist/cli/agent/openclaw-integration.js +305 -194
- package/dist/cli/agent/openclaw-integration.js.map +1 -1
- package/dist/cli/commands/cleanup.d.ts.map +1 -1
- package/dist/cli/commands/cleanup.js +26 -15
- package/dist/cli/commands/cleanup.js.map +1 -1
- package/dist/cli/commands/doctor.d.ts +0 -4
- package/dist/cli/commands/doctor.d.ts.map +1 -1
- package/dist/cli/commands/doctor.js +330 -469
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/install.d.ts +13 -0
- package/dist/cli/commands/install.d.ts.map +1 -0
- package/dist/cli/commands/install.js +286 -0
- package/dist/cli/commands/install.js.map +1 -0
- package/dist/cli/commands/openclaw.d.ts +9 -0
- package/dist/cli/commands/openclaw.d.ts.map +1 -0
- package/dist/cli/commands/openclaw.js +236 -0
- package/dist/cli/commands/openclaw.js.map +1 -0
- package/dist/cli/commands/start.d.ts.map +1 -1
- package/dist/cli/commands/start.js +342 -16
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +71 -25
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +4 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/repl.js +1 -1
- package/dist/cli/repl.js.map +1 -1
- package/dist/cli/utils/ai-config.d.ts +32 -0
- package/dist/cli/utils/ai-config.d.ts.map +1 -0
- package/dist/cli/utils/ai-config.js +78 -0
- package/dist/cli/utils/ai-config.js.map +1 -0
- package/dist/cli/utils/command-executor.d.ts.map +1 -1
- package/dist/cli/utils/command-executor.js +60 -23
- package/dist/cli/utils/command-executor.js.map +1 -1
- package/dist/cli/utils/docker-files.d.ts.map +1 -1
- package/dist/cli/utils/docker-files.js +2 -0
- package/dist/cli/utils/docker-files.js.map +1 -1
- package/dist/cli/utils/docker-prereq.d.ts +23 -0
- package/dist/cli/utils/docker-prereq.d.ts.map +1 -1
- package/dist/cli/utils/docker-prereq.js +70 -1
- package/dist/cli/utils/docker-prereq.js.map +1 -1
- package/docker/openclaw/entrypoint.sh +102 -0
- package/docker/openclaw/openclaw.json +4 -1
- package/docker/orchestrator/orchestrator-schema.sql +837 -0
- package/docker-compose.yml +22 -14
- package/init/metadata.sql +14 -2
- package/package.json +1 -1
|
@@ -0,0 +1,837 @@
|
|
|
1
|
+
-- Orchestrator Complete Schema for MySQL 8.0
|
|
2
|
+
-- This file pre-creates all Orchestrator tables with the complete schema
|
|
3
|
+
-- (base tables + all patches merged) to avoid MySQL 8.0 compatibility issues
|
|
4
|
+
-- with the AFTER clause in ALTER TABLE statements.
|
|
5
|
+
--
|
|
6
|
+
-- Based on Orchestrator v3.2.x schema from:
|
|
7
|
+
-- - base.go: Base CREATE TABLE statements
|
|
8
|
+
-- - patches.go: ALTER TABLE patches (merged into CREATE TABLE)
|
|
9
|
+
--
|
|
10
|
+
-- Key changes for MySQL 8.0 compatibility:
|
|
11
|
+
-- 1. Removed AFTER clauses that cause circular dependencies
|
|
12
|
+
-- 2. Consolidated all columns in single CREATE TABLE statements
|
|
13
|
+
-- 3. Added all indexes at the end to avoid order issues
|
|
14
|
+
|
|
15
|
+
-- =============================================================================
|
|
16
|
+
-- database_instance - Main topology table (extensive patches merged)
|
|
17
|
+
-- =============================================================================
|
|
18
|
+
CREATE TABLE IF NOT EXISTS database_instance (
|
|
19
|
+
hostname varchar(128) CHARACTER SET ascii NOT NULL,
|
|
20
|
+
port smallint(5) unsigned NOT NULL,
|
|
21
|
+
last_checked timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
22
|
+
last_attempted_check TIMESTAMP NOT NULL DEFAULT '1971-01-01 00:00:00',
|
|
23
|
+
last_check_partial_success tinyint unsigned NOT NULL,
|
|
24
|
+
last_seen timestamp NULL DEFAULT NULL,
|
|
25
|
+
uptime INT UNSIGNED NOT NULL,
|
|
26
|
+
server_id int(10) unsigned NOT NULL,
|
|
27
|
+
server_uuid varchar(64) CHARACTER SET ascii NOT NULL,
|
|
28
|
+
version varchar(128) CHARACTER SET ascii NOT NULL,
|
|
29
|
+
version_comment varchar(128) NOT NULL DEFAULT '',
|
|
30
|
+
major_version varchar(16) CHARACTER SET ascii NOT NULL,
|
|
31
|
+
binlog_format varchar(16) CHARACTER SET ascii NOT NULL,
|
|
32
|
+
binlog_row_image varchar(16) CHARACTER SET ascii NOT NULL,
|
|
33
|
+
binlog_server TINYINT UNSIGNED NOT NULL,
|
|
34
|
+
log_bin tinyint(3) unsigned NOT NULL,
|
|
35
|
+
log_slave_updates tinyint(3) unsigned NOT NULL,
|
|
36
|
+
binary_log_file varchar(128) CHARACTER SET ascii NOT NULL,
|
|
37
|
+
binary_log_pos bigint(20) unsigned NOT NULL,
|
|
38
|
+
master_host varchar(128) CHARACTER SET ascii NOT NULL,
|
|
39
|
+
master_port smallint(5) unsigned NOT NULL,
|
|
40
|
+
slave_sql_running tinyint(3) unsigned NOT NULL,
|
|
41
|
+
slave_io_running tinyint(3) unsigned NOT NULL,
|
|
42
|
+
has_replication_filters TINYINT UNSIGNED NOT NULL,
|
|
43
|
+
replication_sql_thread_state tinyint signed not null default 0,
|
|
44
|
+
replication_io_thread_state tinyint signed not null default 0,
|
|
45
|
+
oracle_gtid TINYINT UNSIGNED NOT NULL,
|
|
46
|
+
supports_oracle_gtid TINYINT UNSIGNED NOT NULL,
|
|
47
|
+
executed_gtid_set text CHARACTER SET ascii NOT NULL,
|
|
48
|
+
master_uuid varchar(64) CHARACTER SET ascii NOT NULL,
|
|
49
|
+
ancestry_uuid text CHARACTER SET ascii NOT NULL,
|
|
50
|
+
gtid_purged text CHARACTER SET ascii NOT NULL,
|
|
51
|
+
gtid_errant text CHARACTER SET ascii NOT NULL,
|
|
52
|
+
mariadb_gtid TINYINT UNSIGNED NOT NULL,
|
|
53
|
+
pseudo_gtid TINYINT UNSIGNED NOT NULL,
|
|
54
|
+
gtid_mode varchar(32) CHARACTER SET ascii NOT NULL,
|
|
55
|
+
replication_group_name VARCHAR(64) CHARACTER SET ascii NOT NULL DEFAULT '',
|
|
56
|
+
replication_group_is_single_primary_mode TINYINT UNSIGNED NOT NULL DEFAULT 1,
|
|
57
|
+
replication_group_member_state VARCHAR(16) CHARACTER SET ascii NOT NULL DEFAULT '',
|
|
58
|
+
replication_group_member_role VARCHAR(16) CHARACTER SET ascii NOT NULL DEFAULT '',
|
|
59
|
+
replication_group_members text CHARACTER SET ascii NOT NULL,
|
|
60
|
+
replication_group_primary_host varchar(128) CHARACTER SET ascii NOT NULL DEFAULT '',
|
|
61
|
+
replication_group_primary_port smallint(5) unsigned NOT NULL DEFAULT 0,
|
|
62
|
+
master_log_file varchar(128) CHARACTER SET ascii NOT NULL,
|
|
63
|
+
read_master_log_pos bigint(20) unsigned NOT NULL,
|
|
64
|
+
relay_master_log_file varchar(128) CHARACTER SET ascii NOT NULL,
|
|
65
|
+
exec_master_log_pos bigint(20) unsigned NOT NULL,
|
|
66
|
+
relay_log_file varchar(128) CHARACTER SET ascii NOT NULL,
|
|
67
|
+
relay_log_pos bigint unsigned NOT NULL,
|
|
68
|
+
last_sql_error TEXT NOT NULL,
|
|
69
|
+
last_io_error TEXT NOT NULL,
|
|
70
|
+
seconds_behind_master bigint(20) unsigned DEFAULT NULL,
|
|
71
|
+
slave_lag_seconds bigint(20) unsigned DEFAULT NULL,
|
|
72
|
+
sql_delay INT UNSIGNED NOT NULL,
|
|
73
|
+
allow_tls TINYINT UNSIGNED NOT NULL,
|
|
74
|
+
num_slave_hosts int(10) unsigned NOT NULL,
|
|
75
|
+
slave_hosts text CHARACTER SET ascii NOT NULL,
|
|
76
|
+
cluster_name varchar(128) CHARACTER SET ascii NOT NULL,
|
|
77
|
+
suggested_cluster_alias varchar(128) CHARACTER SET ascii NOT NULL,
|
|
78
|
+
data_center varchar(32) CHARACTER SET ascii NOT NULL,
|
|
79
|
+
region varchar(32) CHARACTER SET ascii NOT NULL,
|
|
80
|
+
physical_environment varchar(32) CHARACTER SET ascii NOT NULL,
|
|
81
|
+
instance_alias varchar(128) CHARACTER SET ascii NOT NULL,
|
|
82
|
+
semi_sync_enforced TINYINT UNSIGNED NOT NULL,
|
|
83
|
+
semi_sync_available TINYINT UNSIGNED NOT NULL DEFAULT 0,
|
|
84
|
+
semi_sync_master_enabled TINYINT UNSIGNED NOT NULL,
|
|
85
|
+
semi_sync_master_timeout BIGINT UNSIGNED NOT NULL DEFAULT 0,
|
|
86
|
+
semi_sync_master_wait_for_slave_count INT UNSIGNED NOT NULL DEFAULT 0,
|
|
87
|
+
semi_sync_master_status TINYINT UNSIGNED NOT NULL DEFAULT 0,
|
|
88
|
+
semi_sync_master_clients INT UNSIGNED NOT NULL DEFAULT 0,
|
|
89
|
+
semi_sync_replica_enabled TINYINT UNSIGNED NOT NULL,
|
|
90
|
+
semi_sync_replica_status TINYINT UNSIGNED NOT NULL DEFAULT 0,
|
|
91
|
+
replication_depth TINYINT UNSIGNED NOT NULL,
|
|
92
|
+
is_co_master TINYINT UNSIGNED NOT NULL,
|
|
93
|
+
replication_credentials_available TINYINT UNSIGNED NOT NULL,
|
|
94
|
+
has_replication_credentials TINYINT UNSIGNED NOT NULL,
|
|
95
|
+
read_only TINYINT UNSIGNED NOT NULL,
|
|
96
|
+
last_discovery_latency bigint not null,
|
|
97
|
+
PRIMARY KEY (hostname,port)
|
|
98
|
+
) ENGINE=InnoDB DEFAULT CHARSET=ascii;
|
|
99
|
+
|
|
100
|
+
-- database_instance indexes
|
|
101
|
+
CREATE INDEX cluster_name_idx_database_instance ON database_instance(cluster_name);
|
|
102
|
+
CREATE INDEX last_checked_idx_database_instance ON database_instance(last_checked);
|
|
103
|
+
CREATE INDEX last_seen_idx_database_instance ON database_instance(last_seen);
|
|
104
|
+
CREATE INDEX master_host_port_idx_database_instance ON database_instance(master_host, master_port);
|
|
105
|
+
CREATE INDEX suggested_cluster_alias_idx_database_instance ON database_instance(suggested_cluster_alias);
|
|
106
|
+
|
|
107
|
+
-- =============================================================================
|
|
108
|
+
-- database_instance_maintenance
|
|
109
|
+
-- =============================================================================
|
|
110
|
+
CREATE TABLE IF NOT EXISTS database_instance_maintenance (
|
|
111
|
+
database_instance_maintenance_id int(10) unsigned NOT NULL AUTO_INCREMENT,
|
|
112
|
+
hostname varchar(128) NOT NULL,
|
|
113
|
+
port smallint(5) unsigned NOT NULL,
|
|
114
|
+
maintenance_active tinyint(4) DEFAULT NULL,
|
|
115
|
+
begin_timestamp timestamp NULL DEFAULT NULL,
|
|
116
|
+
end_timestamp timestamp NULL DEFAULT NULL,
|
|
117
|
+
owner varchar(128) CHARACTER SET utf8 NOT NULL,
|
|
118
|
+
reason text CHARACTER SET utf8 NOT NULL,
|
|
119
|
+
processing_node_hostname varchar(128) CHARACTER SET ascii NOT NULL,
|
|
120
|
+
processing_node_token varchar(128) NOT NULL,
|
|
121
|
+
explicitly_bounded TINYINT UNSIGNED NOT NULL,
|
|
122
|
+
PRIMARY KEY (database_instance_maintenance_id)
|
|
123
|
+
) ENGINE=InnoDB DEFAULT CHARSET=ascii;
|
|
124
|
+
|
|
125
|
+
-- database_instance_maintenance indexes
|
|
126
|
+
CREATE UNIQUE INDEX maintenance_uidx_database_instance_maintenance ON database_instance_maintenance (maintenance_active, hostname, port);
|
|
127
|
+
CREATE INDEX active_timestamp_idx_database_instance_maintenance ON database_instance_maintenance (maintenance_active, begin_timestamp);
|
|
128
|
+
CREATE INDEX active_end_timestamp_idx_database_instance_maintenance ON database_instance_maintenance (maintenance_active, end_timestamp);
|
|
129
|
+
|
|
130
|
+
-- =============================================================================
|
|
131
|
+
-- database_instance_long_running_queries
|
|
132
|
+
-- =============================================================================
|
|
133
|
+
CREATE TABLE IF NOT EXISTS database_instance_long_running_queries (
|
|
134
|
+
hostname varchar(128) NOT NULL,
|
|
135
|
+
port smallint(5) unsigned NOT NULL,
|
|
136
|
+
process_id bigint(20) NOT NULL,
|
|
137
|
+
process_started_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
138
|
+
process_user varchar(16) CHARACTER SET utf8 NOT NULL,
|
|
139
|
+
process_host varchar(128) CHARACTER SET utf8 NOT NULL,
|
|
140
|
+
process_db varchar(128) CHARACTER SET utf8 NOT NULL,
|
|
141
|
+
process_command varchar(16) CHARACTER SET utf8 NOT NULL,
|
|
142
|
+
process_time_seconds int(11) NOT NULL,
|
|
143
|
+
process_state varchar(128) CHARACTER SET utf8 NOT NULL,
|
|
144
|
+
process_info varchar(1024) CHARACTER SET utf8 NOT NULL,
|
|
145
|
+
PRIMARY KEY (hostname,port,process_id)
|
|
146
|
+
) ENGINE=InnoDB DEFAULT CHARSET=ascii;
|
|
147
|
+
|
|
148
|
+
CREATE INDEX process_started_at_idx_database_instance_long_running_queries ON database_instance_long_running_queries (process_started_at);
|
|
149
|
+
|
|
150
|
+
-- =============================================================================
|
|
151
|
+
-- audit - with cluster_name patch
|
|
152
|
+
-- =============================================================================
|
|
153
|
+
CREATE TABLE IF NOT EXISTS audit (
|
|
154
|
+
audit_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
|
|
155
|
+
audit_timestamp timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
156
|
+
audit_type varchar(128) CHARACTER SET ascii NOT NULL,
|
|
157
|
+
hostname varchar(128) CHARACTER SET ascii NOT NULL DEFAULT '',
|
|
158
|
+
port smallint(5) unsigned NOT NULL,
|
|
159
|
+
cluster_name varchar(128) CHARACTER SET ascii NOT NULL DEFAULT '',
|
|
160
|
+
message text CHARACTER SET utf8 NOT NULL,
|
|
161
|
+
PRIMARY KEY (audit_id)
|
|
162
|
+
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
|
163
|
+
|
|
164
|
+
-- audit indexes
|
|
165
|
+
CREATE INDEX audit_timestamp_idx_audit ON audit (audit_timestamp);
|
|
166
|
+
CREATE INDEX host_port_idx_audit ON audit (hostname, port, audit_timestamp);
|
|
167
|
+
|
|
168
|
+
-- =============================================================================
|
|
169
|
+
-- host_agent
|
|
170
|
+
-- =============================================================================
|
|
171
|
+
CREATE TABLE IF NOT EXISTS host_agent (
|
|
172
|
+
hostname varchar(128) NOT NULL,
|
|
173
|
+
port smallint(5) unsigned NOT NULL,
|
|
174
|
+
token varchar(128) NOT NULL,
|
|
175
|
+
last_submitted timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
176
|
+
last_checked timestamp NULL DEFAULT NULL,
|
|
177
|
+
last_seen timestamp NULL DEFAULT NULL,
|
|
178
|
+
mysql_port smallint(5) unsigned DEFAULT NULL,
|
|
179
|
+
count_mysql_snapshots smallint(5) unsigned NOT NULL,
|
|
180
|
+
PRIMARY KEY (hostname)
|
|
181
|
+
) ENGINE=InnoDB DEFAULT CHARSET=ascii;
|
|
182
|
+
|
|
183
|
+
-- host_agent indexes
|
|
184
|
+
CREATE INDEX token_idx_host_agent ON host_agent (token);
|
|
185
|
+
CREATE INDEX last_submitted_idx_host_agent ON host_agent (last_submitted);
|
|
186
|
+
CREATE INDEX last_checked_idx_host_agent ON host_agent (last_checked);
|
|
187
|
+
CREATE INDEX last_seen_idx_host_agent ON host_agent (last_seen);
|
|
188
|
+
|
|
189
|
+
-- =============================================================================
|
|
190
|
+
-- agent_seed
|
|
191
|
+
-- =============================================================================
|
|
192
|
+
CREATE TABLE IF NOT EXISTS agent_seed (
|
|
193
|
+
agent_seed_id int(10) unsigned NOT NULL AUTO_INCREMENT,
|
|
194
|
+
target_hostname varchar(128) NOT NULL,
|
|
195
|
+
source_hostname varchar(128) NOT NULL,
|
|
196
|
+
start_timestamp timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
197
|
+
end_timestamp timestamp NOT NULL DEFAULT '1971-01-01 00:00:00',
|
|
198
|
+
is_complete tinyint(3) unsigned NOT NULL DEFAULT '0',
|
|
199
|
+
is_successful tinyint(3) unsigned NOT NULL DEFAULT '0',
|
|
200
|
+
PRIMARY KEY (agent_seed_id)
|
|
201
|
+
) ENGINE=InnoDB DEFAULT CHARSET=ascii;
|
|
202
|
+
|
|
203
|
+
-- agent_seed indexes
|
|
204
|
+
CREATE INDEX target_hostname_idx_agent_seed ON agent_seed (target_hostname,is_complete);
|
|
205
|
+
CREATE INDEX source_hostname_idx_agent_seed ON agent_seed (source_hostname,is_complete);
|
|
206
|
+
CREATE INDEX start_timestamp_idx_agent_seed ON agent_seed (start_timestamp);
|
|
207
|
+
CREATE INDEX is_complete_idx_agent_seed ON agent_seed (is_complete,start_timestamp);
|
|
208
|
+
CREATE INDEX is_successful_idx_agent_seed ON agent_seed (is_successful, start_timestamp);
|
|
209
|
+
|
|
210
|
+
-- =============================================================================
|
|
211
|
+
-- agent_seed_state
|
|
212
|
+
-- =============================================================================
|
|
213
|
+
CREATE TABLE IF NOT EXISTS agent_seed_state (
|
|
214
|
+
agent_seed_state_id int(10) unsigned NOT NULL AUTO_INCREMENT,
|
|
215
|
+
agent_seed_id int(10) unsigned NOT NULL,
|
|
216
|
+
state_timestamp timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
217
|
+
state_action varchar(127) NOT NULL,
|
|
218
|
+
error_message varchar(255) NOT NULL,
|
|
219
|
+
PRIMARY KEY (agent_seed_state_id)
|
|
220
|
+
) ENGINE=InnoDB DEFAULT CHARSET=ascii;
|
|
221
|
+
|
|
222
|
+
CREATE INDEX agent_seed_idx_agent_seed_state ON agent_seed_state (agent_seed_id, state_timestamp);
|
|
223
|
+
|
|
224
|
+
-- =============================================================================
|
|
225
|
+
-- host_attributes
|
|
226
|
+
-- =============================================================================
|
|
227
|
+
CREATE TABLE IF NOT EXISTS host_attributes (
|
|
228
|
+
hostname varchar(128) NOT NULL,
|
|
229
|
+
attribute_name varchar(128) NOT NULL,
|
|
230
|
+
attribute_value varchar(128) NOT NULL,
|
|
231
|
+
submit_timestamp timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
232
|
+
expire_timestamp timestamp NULL DEFAULT NULL,
|
|
233
|
+
PRIMARY KEY (hostname,attribute_name)
|
|
234
|
+
) ENGINE=InnoDB DEFAULT CHARSET=ascii;
|
|
235
|
+
|
|
236
|
+
-- host_attributes indexes
|
|
237
|
+
CREATE INDEX attribute_name_idx_host_attributes ON host_attributes (attribute_name);
|
|
238
|
+
CREATE INDEX attribute_value_idx_host_attributes ON host_attributes (attribute_value);
|
|
239
|
+
CREATE INDEX submit_timestamp_idx_host_attributes ON host_attributes (submit_timestamp);
|
|
240
|
+
CREATE INDEX expire_timestamp_idx_host_attributes ON host_attributes (expire_timestamp);
|
|
241
|
+
|
|
242
|
+
-- =============================================================================
|
|
243
|
+
-- hostname_resolve
|
|
244
|
+
-- =============================================================================
|
|
245
|
+
CREATE TABLE IF NOT EXISTS hostname_resolve (
|
|
246
|
+
hostname varchar(128) NOT NULL,
|
|
247
|
+
resolved_hostname varchar(128) NOT NULL,
|
|
248
|
+
resolved_timestamp timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
249
|
+
PRIMARY KEY (hostname)
|
|
250
|
+
) ENGINE=InnoDB DEFAULT CHARSET=ascii;
|
|
251
|
+
|
|
252
|
+
CREATE INDEX resolved_timestamp_idx_hostname_resolve ON hostname_resolve (resolved_timestamp);
|
|
253
|
+
|
|
254
|
+
-- =============================================================================
|
|
255
|
+
-- cluster_alias - with last_registered patch
|
|
256
|
+
-- =============================================================================
|
|
257
|
+
CREATE TABLE IF NOT EXISTS cluster_alias (
|
|
258
|
+
cluster_name varchar(128) CHARACTER SET ascii NOT NULL,
|
|
259
|
+
alias varchar(128) NOT NULL,
|
|
260
|
+
last_registered TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
261
|
+
PRIMARY KEY (cluster_name)
|
|
262
|
+
) ENGINE=InnoDB DEFAULT CHARSET=ascii;
|
|
263
|
+
|
|
264
|
+
-- cluster_alias indexes
|
|
265
|
+
CREATE UNIQUE INDEX alias_uidx_cluster_alias ON cluster_alias (alias);
|
|
266
|
+
CREATE INDEX last_registered_idx_cluster_alias ON cluster_alias (last_registered);
|
|
267
|
+
|
|
268
|
+
-- =============================================================================
|
|
269
|
+
-- active_node - with first_seen_active patch
|
|
270
|
+
-- =============================================================================
|
|
271
|
+
CREATE TABLE IF NOT EXISTS active_node (
|
|
272
|
+
anchor tinyint unsigned NOT NULL,
|
|
273
|
+
hostname varchar(128) CHARACTER SET ascii NOT NULL,
|
|
274
|
+
token varchar(128) NOT NULL,
|
|
275
|
+
last_seen_active timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
276
|
+
first_seen_active timestamp NOT NULL DEFAULT '1971-01-01 00:00:00',
|
|
277
|
+
PRIMARY KEY (anchor)
|
|
278
|
+
) ENGINE=InnoDB DEFAULT CHARSET=ascii;
|
|
279
|
+
|
|
280
|
+
INSERT IGNORE INTO active_node (anchor, hostname, token, last_seen_active, first_seen_active)
|
|
281
|
+
VALUES (1, '', '', NOW(), NOW());
|
|
282
|
+
|
|
283
|
+
-- =============================================================================
|
|
284
|
+
-- node_health - with all patches merged
|
|
285
|
+
-- =============================================================================
|
|
286
|
+
CREATE TABLE IF NOT EXISTS node_health (
|
|
287
|
+
hostname varchar(128) CHARACTER SET ascii NOT NULL,
|
|
288
|
+
token varchar(128) NOT NULL,
|
|
289
|
+
last_seen_active timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
290
|
+
first_seen_active timestamp NOT NULL DEFAULT '1971-01-01 00:00:00',
|
|
291
|
+
extra_info varchar(128) CHARACTER SET utf8 NOT NULL,
|
|
292
|
+
command varchar(128) CHARACTER SET utf8 NOT NULL,
|
|
293
|
+
app_version varchar(64) CHARACTER SET ascii NOT NULL DEFAULT '',
|
|
294
|
+
db_backend varchar(255) CHARACTER SET ascii NOT NULL DEFAULT '',
|
|
295
|
+
incrementing_indicator bigint not null default 0,
|
|
296
|
+
PRIMARY KEY (hostname, token)
|
|
297
|
+
) ENGINE=InnoDB DEFAULT CHARSET=ascii;
|
|
298
|
+
|
|
299
|
+
-- node_health indexes
|
|
300
|
+
CREATE INDEX last_seen_active_idx_node_health ON node_health (last_seen_active);
|
|
301
|
+
|
|
302
|
+
-- =============================================================================
|
|
303
|
+
-- topology_recovery - with all patches merged
|
|
304
|
+
-- =============================================================================
|
|
305
|
+
CREATE TABLE IF NOT EXISTS topology_recovery (
|
|
306
|
+
recovery_id bigint unsigned not null auto_increment,
|
|
307
|
+
hostname varchar(128) NOT NULL,
|
|
308
|
+
port smallint unsigned NOT NULL,
|
|
309
|
+
in_active_period tinyint unsigned NOT NULL DEFAULT 0,
|
|
310
|
+
start_active_period timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
311
|
+
end_active_period_unixtime int unsigned,
|
|
312
|
+
end_recovery timestamp NULL DEFAULT NULL,
|
|
313
|
+
processing_node_hostname varchar(128) CHARACTER SET ascii NOT NULL,
|
|
314
|
+
processcing_node_token varchar(128) NOT NULL,
|
|
315
|
+
successor_hostname varchar(128) DEFAULT NULL,
|
|
316
|
+
successor_port smallint unsigned DEFAULT NULL,
|
|
317
|
+
successor_alias varchar(128) DEFAULT NULL,
|
|
318
|
+
is_successful TINYINT UNSIGNED NOT NULL DEFAULT 0,
|
|
319
|
+
analysis varchar(128) CHARACTER SET ascii NOT NULL,
|
|
320
|
+
cluster_name varchar(128) CHARACTER SET ascii NOT NULL,
|
|
321
|
+
cluster_alias varchar(128) CHARACTER SET ascii NOT NULL,
|
|
322
|
+
count_affected_slaves int unsigned NOT NULL,
|
|
323
|
+
slave_hosts text CHARACTER SET ascii NOT NULL,
|
|
324
|
+
participating_instances text CHARACTER SET ascii NOT NULL,
|
|
325
|
+
lost_slaves text CHARACTER SET ascii NOT NULL,
|
|
326
|
+
all_errors text CHARACTER SET ascii NOT NULL,
|
|
327
|
+
acknowledged TINYINT UNSIGNED NOT NULL DEFAULT 0,
|
|
328
|
+
acknowledged_at TIMESTAMP NULL,
|
|
329
|
+
acknowledged_by varchar(128) CHARACTER SET utf8 NOT NULL,
|
|
330
|
+
acknowledge_comment text CHARACTER SET utf8 NOT NULL,
|
|
331
|
+
last_detection_id bigint unsigned NOT NULL,
|
|
332
|
+
uid varchar(128) CHARACTER SET ascii NOT NULL,
|
|
333
|
+
PRIMARY KEY (recovery_id)
|
|
334
|
+
) ENGINE=InnoDB DEFAULT CHARSET=ascii;
|
|
335
|
+
|
|
336
|
+
-- topology_recovery indexes
|
|
337
|
+
CREATE INDEX in_active_start_period_idx_topology_recovery ON topology_recovery (in_active_period, start_active_period);
|
|
338
|
+
CREATE INDEX start_active_period_idx_topology_recovery ON topology_recovery (start_active_period);
|
|
339
|
+
CREATE UNIQUE INDEX hostname_port_active_period_uidx_topology_recovery ON topology_recovery (hostname, port, in_active_period, end_active_period_unixtime);
|
|
340
|
+
CREATE INDEX cluster_name_in_active_idx_topology_recovery ON topology_recovery (cluster_name, in_active_period);
|
|
341
|
+
CREATE INDEX end_recovery_idx_topology_recovery ON topology_recovery (end_recovery);
|
|
342
|
+
CREATE INDEX acknowledged_idx_topology_recovery ON topology_recovery (acknowledged, acknowledged_at);
|
|
343
|
+
CREATE INDEX last_detection_idx_topology_recovery ON topology_recovery (last_detection_id);
|
|
344
|
+
CREATE INDEX uid_idx_topology_recovery ON topology_recovery(uid);
|
|
345
|
+
|
|
346
|
+
-- =============================================================================
|
|
347
|
+
-- hostname_unresolve - with last_registered patch
|
|
348
|
+
-- =============================================================================
|
|
349
|
+
CREATE TABLE IF NOT EXISTS hostname_unresolve (
|
|
350
|
+
hostname varchar(128) NOT NULL,
|
|
351
|
+
unresolved_hostname varchar(128) NOT NULL,
|
|
352
|
+
last_registered TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
353
|
+
PRIMARY KEY (hostname)
|
|
354
|
+
) ENGINE=InnoDB DEFAULT CHARSET=ascii;
|
|
355
|
+
|
|
356
|
+
-- hostname_unresolve indexes
|
|
357
|
+
CREATE INDEX unresolved_hostname_idx_hostname_unresolve ON hostname_unresolve (unresolved_hostname);
|
|
358
|
+
CREATE INDEX last_registered_idx_hostname_unresolve ON hostname_unresolve (last_registered);
|
|
359
|
+
|
|
360
|
+
-- =============================================================================
|
|
361
|
+
-- database_instance_pool - with registered_at patch
|
|
362
|
+
-- =============================================================================
|
|
363
|
+
CREATE TABLE IF NOT EXISTS database_instance_pool (
|
|
364
|
+
hostname varchar(128) CHARACTER SET ascii NOT NULL,
|
|
365
|
+
port smallint(5) unsigned NOT NULL,
|
|
366
|
+
pool varchar(128) NOT NULL,
|
|
367
|
+
registered_at timestamp NOT NULL DEFAULT '1971-01-01 00:00:00',
|
|
368
|
+
PRIMARY KEY (hostname, port, pool)
|
|
369
|
+
) ENGINE=InnoDB DEFAULT CHARSET=ascii;
|
|
370
|
+
|
|
371
|
+
CREATE INDEX pool_idx_database_instance_pool ON database_instance_pool (pool);
|
|
372
|
+
|
|
373
|
+
-- =============================================================================
|
|
374
|
+
-- database_instance_topology_history - with version patch
|
|
375
|
+
-- =============================================================================
|
|
376
|
+
CREATE TABLE IF NOT EXISTS database_instance_topology_history (
|
|
377
|
+
snapshot_unix_timestamp INT UNSIGNED NOT NULL,
|
|
378
|
+
hostname varchar(128) CHARACTER SET ascii NOT NULL,
|
|
379
|
+
port smallint(5) unsigned NOT NULL,
|
|
380
|
+
master_host varchar(128) CHARACTER SET ascii NOT NULL,
|
|
381
|
+
master_port smallint(5) unsigned NOT NULL,
|
|
382
|
+
cluster_name tinytext CHARACTER SET ascii NOT NULL,
|
|
383
|
+
version varchar(128) CHARACTER SET ascii NOT NULL,
|
|
384
|
+
PRIMARY KEY (snapshot_unix_timestamp, hostname, port)
|
|
385
|
+
) ENGINE=InnoDB DEFAULT CHARSET=ascii;
|
|
386
|
+
|
|
387
|
+
CREATE INDEX cluster_name_idx_database_instance_topology_history ON database_instance_topology_history (snapshot_unix_timestamp, cluster_name(128));
|
|
388
|
+
|
|
389
|
+
-- =============================================================================
|
|
390
|
+
-- candidate_database_instance - with priority and promotion_rule patches
|
|
391
|
+
-- =============================================================================
|
|
392
|
+
CREATE TABLE IF NOT EXISTS candidate_database_instance (
|
|
393
|
+
hostname varchar(128) CHARACTER SET ascii NOT NULL,
|
|
394
|
+
port smallint(5) unsigned NOT NULL,
|
|
395
|
+
last_suggested TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
396
|
+
priority TINYINT SIGNED NOT NULL DEFAULT 1 COMMENT 'positive promote, negative unpromotes',
|
|
397
|
+
promotion_rule enum('must', 'prefer', 'neutral', 'prefer_not', 'must_not') NOT NULL DEFAULT 'neutral',
|
|
398
|
+
PRIMARY KEY (hostname, port)
|
|
399
|
+
) ENGINE=InnoDB DEFAULT CHARSET=ascii;
|
|
400
|
+
|
|
401
|
+
CREATE INDEX last_suggested_idx_candidate_database_instance ON candidate_database_instance (last_suggested);
|
|
402
|
+
|
|
403
|
+
-- =============================================================================
|
|
404
|
+
-- database_instance_downtime
|
|
405
|
+
-- =============================================================================
|
|
406
|
+
CREATE TABLE IF NOT EXISTS database_instance_downtime (
|
|
407
|
+
hostname varchar(128) NOT NULL,
|
|
408
|
+
port smallint(5) unsigned NOT NULL,
|
|
409
|
+
downtime_active tinyint(4) DEFAULT NULL,
|
|
410
|
+
begin_timestamp timestamp DEFAULT CURRENT_TIMESTAMP,
|
|
411
|
+
end_timestamp timestamp NULL DEFAULT NULL,
|
|
412
|
+
owner varchar(128) CHARACTER SET utf8 NOT NULL,
|
|
413
|
+
reason text CHARACTER SET utf8 NOT NULL,
|
|
414
|
+
PRIMARY KEY (hostname, port)
|
|
415
|
+
) ENGINE=InnoDB DEFAULT CHARSET=ascii;
|
|
416
|
+
|
|
417
|
+
CREATE INDEX end_timestamp_idx_database_instance_downtime ON database_instance_downtime(end_timestamp);
|
|
418
|
+
|
|
419
|
+
-- =============================================================================
|
|
420
|
+
-- topology_failure_detection - with is_actionable patch
|
|
421
|
+
-- =============================================================================
|
|
422
|
+
CREATE TABLE IF NOT EXISTS topology_failure_detection (
|
|
423
|
+
detection_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
|
|
424
|
+
hostname varchar(128) NOT NULL,
|
|
425
|
+
port smallint unsigned NOT NULL,
|
|
426
|
+
in_active_period tinyint unsigned NOT NULL DEFAULT '0',
|
|
427
|
+
start_active_period timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
428
|
+
end_active_period_unixtime int unsigned NOT NULL,
|
|
429
|
+
processing_node_hostname varchar(128) NOT NULL,
|
|
430
|
+
processcing_node_token varchar(128) NOT NULL,
|
|
431
|
+
analysis varchar(128) NOT NULL,
|
|
432
|
+
cluster_name varchar(128) NOT NULL,
|
|
433
|
+
cluster_alias varchar(128) NOT NULL,
|
|
434
|
+
count_affected_slaves int unsigned NOT NULL,
|
|
435
|
+
slave_hosts text NOT NULL,
|
|
436
|
+
is_actionable tinyint not null default 0,
|
|
437
|
+
PRIMARY KEY (detection_id)
|
|
438
|
+
) ENGINE=InnoDB DEFAULT CHARSET=ascii;
|
|
439
|
+
|
|
440
|
+
-- topology_failure_detection indexes
|
|
441
|
+
CREATE INDEX in_active_start_period_idx_topology_failure_detection ON topology_failure_detection (in_active_period, start_active_period);
|
|
442
|
+
CREATE UNIQUE INDEX host_port_active_recoverable_uidx_topology_failure_detection ON topology_failure_detection (hostname, port, in_active_period, end_active_period_unixtime, is_actionable);
|
|
443
|
+
|
|
444
|
+
-- =============================================================================
|
|
445
|
+
-- hostname_resolve_history
|
|
446
|
+
-- =============================================================================
|
|
447
|
+
CREATE TABLE IF NOT EXISTS hostname_resolve_history (
|
|
448
|
+
resolved_hostname varchar(128) NOT NULL,
|
|
449
|
+
hostname varchar(128) NOT NULL,
|
|
450
|
+
resolved_timestamp timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
451
|
+
PRIMARY KEY (resolved_hostname)
|
|
452
|
+
) ENGINE=InnoDB DEFAULT CHARSET=ascii;
|
|
453
|
+
|
|
454
|
+
-- hostname_resolve_history indexes
|
|
455
|
+
CREATE INDEX hostname_idx_hostname_resolve_history ON hostname_resolve_history (hostname);
|
|
456
|
+
CREATE INDEX resolved_timestamp_idx_hostname_resolve_history ON hostname_resolve_history (resolved_timestamp);
|
|
457
|
+
|
|
458
|
+
-- =============================================================================
|
|
459
|
+
-- hostname_unresolve_history
|
|
460
|
+
-- =============================================================================
|
|
461
|
+
CREATE TABLE IF NOT EXISTS hostname_unresolve_history (
|
|
462
|
+
unresolved_hostname varchar(128) NOT NULL,
|
|
463
|
+
hostname varchar(128) NOT NULL,
|
|
464
|
+
last_registered TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
465
|
+
PRIMARY KEY (unresolved_hostname)
|
|
466
|
+
) ENGINE=InnoDB DEFAULT CHARSET=ascii;
|
|
467
|
+
|
|
468
|
+
-- hostname_unresolve_history indexes
|
|
469
|
+
CREATE INDEX hostname_idx_hostname_unresolve_history ON hostname_unresolve_history (hostname);
|
|
470
|
+
CREATE INDEX last_registered_idx_hostname_unresolve_history ON hostname_unresolve_history (last_registered);
|
|
471
|
+
|
|
472
|
+
-- =============================================================================
|
|
473
|
+
-- cluster_domain_name - with last_registered patch
|
|
474
|
+
-- =============================================================================
|
|
475
|
+
CREATE TABLE IF NOT EXISTS cluster_domain_name (
|
|
476
|
+
cluster_name varchar(128) CHARACTER SET ascii NOT NULL,
|
|
477
|
+
domain_name varchar(128) NOT NULL,
|
|
478
|
+
last_registered TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
479
|
+
PRIMARY KEY (cluster_name)
|
|
480
|
+
) ENGINE=InnoDB DEFAULT CHARSET=ascii;
|
|
481
|
+
|
|
482
|
+
-- cluster_domain_name indexes
|
|
483
|
+
CREATE INDEX domain_name_idx_cluster_domain_name ON cluster_domain_name (domain_name(32));
|
|
484
|
+
CREATE INDEX last_registered_idx_cluster_domain_name ON cluster_domain_name (last_registered);
|
|
485
|
+
|
|
486
|
+
-- =============================================================================
|
|
487
|
+
-- master_position_equivalence
|
|
488
|
+
-- =============================================================================
|
|
489
|
+
CREATE TABLE IF NOT EXISTS master_position_equivalence (
|
|
490
|
+
equivalence_id bigint unsigned not null auto_increment,
|
|
491
|
+
master1_hostname varchar(128) CHARACTER SET ascii NOT NULL,
|
|
492
|
+
master1_port smallint(5) unsigned NOT NULL,
|
|
493
|
+
master1_binary_log_file varchar(128) CHARACTER SET ascii NOT NULL,
|
|
494
|
+
master1_binary_log_pos bigint(20) unsigned NOT NULL,
|
|
495
|
+
master2_hostname varchar(128) CHARACTER SET ascii NOT NULL,
|
|
496
|
+
master2_port smallint(5) unsigned NOT NULL,
|
|
497
|
+
master2_binary_log_file varchar(128) CHARACTER SET ascii NOT NULL,
|
|
498
|
+
master2_binary_log_pos bigint(20) unsigned NOT NULL,
|
|
499
|
+
last_suggested TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
500
|
+
PRIMARY KEY (equivalence_id)
|
|
501
|
+
) ENGINE=InnoDB DEFAULT CHARSET=ascii;
|
|
502
|
+
|
|
503
|
+
-- master_position_equivalence indexes
|
|
504
|
+
CREATE UNIQUE INDEX equivalence_uidx_master_position_equivalence ON master_position_equivalence (master1_hostname, master1_port, master1_binary_log_file, master1_binary_log_pos, master2_hostname, master2_port);
|
|
505
|
+
CREATE INDEX master2_idx_master_position_equivalence ON master_position_equivalence (master2_hostname, master2_port, master2_binary_log_file, master2_binary_log_pos);
|
|
506
|
+
CREATE INDEX last_suggested_idx_master_position_equivalence ON master_position_equivalence (last_suggested);
|
|
507
|
+
|
|
508
|
+
-- =============================================================================
|
|
509
|
+
-- async_request
|
|
510
|
+
-- =============================================================================
|
|
511
|
+
CREATE TABLE IF NOT EXISTS async_request (
|
|
512
|
+
request_id bigint unsigned NOT NULL AUTO_INCREMENT,
|
|
513
|
+
command varchar(128) charset ascii not null,
|
|
514
|
+
hostname varchar(128) NOT NULL,
|
|
515
|
+
port smallint(5) unsigned NOT NULL,
|
|
516
|
+
destination_hostname varchar(128) NOT NULL,
|
|
517
|
+
destination_port smallint(5) unsigned NOT NULL,
|
|
518
|
+
pattern text CHARACTER SET utf8 NOT NULL,
|
|
519
|
+
gtid_hint varchar(32) charset ascii not null,
|
|
520
|
+
begin_timestamp timestamp NULL DEFAULT NULL,
|
|
521
|
+
end_timestamp timestamp NULL DEFAULT NULL,
|
|
522
|
+
story text CHARACTER SET utf8 NOT NULL,
|
|
523
|
+
PRIMARY KEY (request_id)
|
|
524
|
+
) ENGINE=InnoDB DEFAULT CHARSET=ascii;
|
|
525
|
+
|
|
526
|
+
-- async_request indexes
|
|
527
|
+
CREATE INDEX begin_timestamp_idx_async_request ON async_request (begin_timestamp);
|
|
528
|
+
CREATE INDEX end_timestamp_idx_async_request ON async_request (end_timestamp);
|
|
529
|
+
|
|
530
|
+
-- =============================================================================
|
|
531
|
+
-- blocked_topology_recovery
|
|
532
|
+
-- =============================================================================
|
|
533
|
+
CREATE TABLE IF NOT EXISTS blocked_topology_recovery (
|
|
534
|
+
hostname varchar(128) NOT NULL,
|
|
535
|
+
port smallint(5) unsigned NOT NULL,
|
|
536
|
+
cluster_name varchar(128) NOT NULL,
|
|
537
|
+
analysis varchar(128) NOT NULL,
|
|
538
|
+
last_blocked_timestamp timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
539
|
+
blocking_recovery_id bigint unsigned,
|
|
540
|
+
PRIMARY KEY (hostname, port)
|
|
541
|
+
) ENGINE=InnoDB DEFAULT CHARSET=ascii;
|
|
542
|
+
|
|
543
|
+
-- blocked_topology_recovery indexes
|
|
544
|
+
CREATE INDEX cluster_blocked_idx_blocked_topology_recovery ON blocked_topology_recovery (cluster_name, last_blocked_timestamp);
|
|
545
|
+
CREATE INDEX last_blocked_idx_blocked_topology_recovery ON blocked_topology_recovery (last_blocked_timestamp);
|
|
546
|
+
|
|
547
|
+
-- =============================================================================
|
|
548
|
+
-- database_instance_last_analysis
|
|
549
|
+
-- =============================================================================
|
|
550
|
+
CREATE TABLE IF NOT EXISTS database_instance_last_analysis (
|
|
551
|
+
hostname varchar(128) NOT NULL,
|
|
552
|
+
port smallint(5) unsigned NOT NULL,
|
|
553
|
+
analysis_timestamp timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
554
|
+
analysis varchar(128) NOT NULL,
|
|
555
|
+
PRIMARY KEY (hostname, port)
|
|
556
|
+
) ENGINE=InnoDB DEFAULT CHARSET=ascii;
|
|
557
|
+
|
|
558
|
+
CREATE INDEX analysis_timestamp_idx_database_instance_last_analysis ON database_instance_last_analysis (analysis_timestamp);
|
|
559
|
+
|
|
560
|
+
-- =============================================================================
|
|
561
|
+
-- database_instance_analysis_changelog
|
|
562
|
+
-- =============================================================================
|
|
563
|
+
CREATE TABLE IF NOT EXISTS database_instance_analysis_changelog (
|
|
564
|
+
changelog_id bigint unsigned not null auto_increment,
|
|
565
|
+
hostname varchar(128) NOT NULL,
|
|
566
|
+
port smallint(5) unsigned NOT NULL,
|
|
567
|
+
analysis_timestamp timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
568
|
+
analysis varchar(128) NOT NULL,
|
|
569
|
+
PRIMARY KEY (changelog_id)
|
|
570
|
+
) ENGINE=InnoDB DEFAULT CHARSET=ascii;
|
|
571
|
+
|
|
572
|
+
-- database_instance_analysis_changelog indexes
|
|
573
|
+
CREATE INDEX analysis_timestamp_idx_database_instance_analysis_changelog ON database_instance_analysis_changelog (analysis_timestamp);
|
|
574
|
+
CREATE INDEX instance_timestamp_idx_database_instance_analysis_changelog ON database_instance_analysis_changelog (hostname, port, analysis_timestamp);
|
|
575
|
+
|
|
576
|
+
-- =============================================================================
|
|
577
|
+
-- node_health_history - with command and app_version patches
|
|
578
|
+
-- =============================================================================
|
|
579
|
+
CREATE TABLE IF NOT EXISTS node_health_history (
|
|
580
|
+
history_id bigint unsigned not null auto_increment,
|
|
581
|
+
hostname varchar(128) CHARACTER SET ascii NOT NULL,
|
|
582
|
+
token varchar(128) NOT NULL,
|
|
583
|
+
first_seen_active timestamp NOT NULL,
|
|
584
|
+
extra_info varchar(128) CHARACTER SET utf8 NOT NULL,
|
|
585
|
+
command varchar(128) CHARACTER SET utf8 NOT NULL,
|
|
586
|
+
app_version varchar(64) CHARACTER SET ascii NOT NULL DEFAULT '',
|
|
587
|
+
PRIMARY KEY (history_id)
|
|
588
|
+
) ENGINE=InnoDB DEFAULT CHARSET=ascii;
|
|
589
|
+
|
|
590
|
+
-- node_health_history indexes
|
|
591
|
+
CREATE INDEX first_seen_active_idx_node_health_history ON node_health_history (first_seen_active);
|
|
592
|
+
CREATE UNIQUE INDEX hostname_token_idx_node_health_history ON node_health_history (hostname, token);
|
|
593
|
+
|
|
594
|
+
-- =============================================================================
|
|
595
|
+
-- database_instance_coordinates_history - with last_seen patch
|
|
596
|
+
-- =============================================================================
|
|
597
|
+
CREATE TABLE IF NOT EXISTS database_instance_coordinates_history (
|
|
598
|
+
history_id bigint unsigned not null auto_increment,
|
|
599
|
+
hostname varchar(128) NOT NULL,
|
|
600
|
+
port smallint(5) unsigned NOT NULL,
|
|
601
|
+
recorded_timestamp timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
602
|
+
last_seen timestamp NOT NULL DEFAULT '1971-01-01 00:00:00',
|
|
603
|
+
binary_log_file varchar(128) NOT NULL,
|
|
604
|
+
binary_log_pos bigint(20) unsigned NOT NULL,
|
|
605
|
+
relay_log_file varchar(128) NOT NULL,
|
|
606
|
+
relay_log_pos bigint(20) unsigned NOT NULL,
|
|
607
|
+
PRIMARY KEY (history_id)
|
|
608
|
+
) ENGINE=InnoDB DEFAULT CHARSET=ascii;
|
|
609
|
+
|
|
610
|
+
-- database_instance_coordinates_history indexes
|
|
611
|
+
CREATE INDEX hostname_port_recorded_idx_database_instance_coordinates_history ON database_instance_coordinates_history (hostname, port, recorded_timestamp);
|
|
612
|
+
CREATE INDEX recorded_timestmp_idx_database_instance_coordinates_history ON database_instance_coordinates_history (recorded_timestamp);
|
|
613
|
+
|
|
614
|
+
-- =============================================================================
|
|
615
|
+
-- database_instance_binlog_files_history
|
|
616
|
+
-- =============================================================================
|
|
617
|
+
CREATE TABLE IF NOT EXISTS database_instance_binlog_files_history (
|
|
618
|
+
history_id bigint unsigned not null auto_increment,
|
|
619
|
+
hostname varchar(128) NOT NULL,
|
|
620
|
+
port smallint(5) unsigned NOT NULL,
|
|
621
|
+
binary_log_file varchar(128) NOT NULL,
|
|
622
|
+
binary_log_pos bigint(20) unsigned NOT NULL,
|
|
623
|
+
first_seen timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
624
|
+
last_seen timestamp NOT NULL DEFAULT '1971-01-01 00:00:00',
|
|
625
|
+
PRIMARY KEY (history_id)
|
|
626
|
+
) ENGINE=InnoDB DEFAULT CHARSET=ascii;
|
|
627
|
+
|
|
628
|
+
-- database_instance_binlog_files_history indexes
|
|
629
|
+
CREATE UNIQUE INDEX hostname_port_file_idx_database_instance_binlog_files_history ON database_instance_binlog_files_history (hostname, port, binary_log_file);
|
|
630
|
+
CREATE INDEX last_seen_idx_database_instance_binlog_files_history ON database_instance_binlog_files_history (last_seen);
|
|
631
|
+
|
|
632
|
+
-- =============================================================================
|
|
633
|
+
-- access_token - with is_reentrant and acquired_at patches
|
|
634
|
+
-- =============================================================================
|
|
635
|
+
CREATE TABLE IF NOT EXISTS access_token (
|
|
636
|
+
access_token_id bigint unsigned not null auto_increment,
|
|
637
|
+
public_token varchar(128) NOT NULL,
|
|
638
|
+
secret_token varchar(128) NOT NULL,
|
|
639
|
+
generated_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
640
|
+
generated_by varchar(128) CHARACTER SET utf8 NOT NULL,
|
|
641
|
+
is_acquired tinyint unsigned NOT NULL DEFAULT '0',
|
|
642
|
+
is_reentrant TINYINT UNSIGNED NOT NULL DEFAULT 0,
|
|
643
|
+
acquired_at timestamp NOT NULL DEFAULT '1971-01-01 00:00:00',
|
|
644
|
+
PRIMARY KEY (access_token_id)
|
|
645
|
+
) ENGINE=InnoDB DEFAULT CHARSET=ascii;
|
|
646
|
+
|
|
647
|
+
-- access_token indexes
|
|
648
|
+
CREATE UNIQUE INDEX public_token_uidx_access_token ON access_token (public_token);
|
|
649
|
+
CREATE INDEX generated_at_idx_access_token ON access_token (generated_at);
|
|
650
|
+
|
|
651
|
+
-- =============================================================================
|
|
652
|
+
-- database_instance_recent_relaylog_history
|
|
653
|
+
-- =============================================================================
|
|
654
|
+
CREATE TABLE IF NOT EXISTS database_instance_recent_relaylog_history (
|
|
655
|
+
hostname varchar(128) NOT NULL,
|
|
656
|
+
port smallint(5) unsigned NOT NULL,
|
|
657
|
+
current_relay_log_file varchar(128) NOT NULL,
|
|
658
|
+
current_relay_log_pos bigint(20) unsigned NOT NULL,
|
|
659
|
+
current_seen timestamp NOT NULL DEFAULT '1971-01-01 00:00:00',
|
|
660
|
+
prev_relay_log_file varchar(128) NOT NULL,
|
|
661
|
+
prev_relay_log_pos bigint(20) unsigned NOT NULL,
|
|
662
|
+
prev_seen timestamp NOT NULL DEFAULT '1971-01-01 00:00:00',
|
|
663
|
+
PRIMARY KEY (hostname, port)
|
|
664
|
+
) ENGINE=InnoDB DEFAULT CHARSET=ascii;
|
|
665
|
+
|
|
666
|
+
CREATE INDEX current_seen_idx_database_instance_recent_relaylog_history ON database_instance_recent_relaylog_history (current_seen);
|
|
667
|
+
|
|
668
|
+
-- =============================================================================
|
|
669
|
+
-- orchestrator_metadata
|
|
670
|
+
-- =============================================================================
|
|
671
|
+
CREATE TABLE IF NOT EXISTS orchestrator_metadata (
|
|
672
|
+
anchor tinyint unsigned NOT NULL,
|
|
673
|
+
last_deployed_version varchar(128) CHARACTER SET ascii NOT NULL,
|
|
674
|
+
last_deployed_timestamp timestamp NOT NULL,
|
|
675
|
+
PRIMARY KEY (anchor)
|
|
676
|
+
) ENGINE=InnoDB DEFAULT CHARSET=ascii;
|
|
677
|
+
|
|
678
|
+
-- =============================================================================
|
|
679
|
+
-- orchestrator_db_deployments
|
|
680
|
+
-- =============================================================================
|
|
681
|
+
CREATE TABLE IF NOT EXISTS orchestrator_db_deployments (
|
|
682
|
+
deployed_version varchar(128) CHARACTER SET ascii NOT NULL,
|
|
683
|
+
deployed_timestamp timestamp NOT NULL,
|
|
684
|
+
PRIMARY KEY (deployed_version)
|
|
685
|
+
) ENGINE=InnoDB DEFAULT CHARSET=ascii;
|
|
686
|
+
|
|
687
|
+
-- =============================================================================
|
|
688
|
+
-- global_recovery_disable
|
|
689
|
+
-- =============================================================================
|
|
690
|
+
CREATE TABLE IF NOT EXISTS global_recovery_disable (
|
|
691
|
+
disable_recovery tinyint unsigned NOT NULL COMMENT 'Insert 1 to disable recovery globally',
|
|
692
|
+
PRIMARY KEY (disable_recovery)
|
|
693
|
+
) ENGINE=InnoDB DEFAULT CHARSET=ascii;
|
|
694
|
+
|
|
695
|
+
-- =============================================================================
|
|
696
|
+
-- cluster_alias_override
|
|
697
|
+
-- =============================================================================
|
|
698
|
+
CREATE TABLE IF NOT EXISTS cluster_alias_override (
|
|
699
|
+
cluster_name varchar(128) CHARACTER SET ascii NOT NULL,
|
|
700
|
+
alias varchar(128) NOT NULL,
|
|
701
|
+
PRIMARY KEY (cluster_name)
|
|
702
|
+
) ENGINE=InnoDB DEFAULT CHARSET=ascii;
|
|
703
|
+
|
|
704
|
+
-- =============================================================================
|
|
705
|
+
-- topology_recovery_steps
|
|
706
|
+
-- =============================================================================
|
|
707
|
+
CREATE TABLE IF NOT EXISTS topology_recovery_steps (
|
|
708
|
+
recovery_step_id bigint unsigned not null auto_increment,
|
|
709
|
+
recovery_uid varchar(128) CHARACTER SET ascii NOT NULL,
|
|
710
|
+
audit_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
711
|
+
message text CHARACTER SET utf8 NOT NULL,
|
|
712
|
+
PRIMARY KEY (recovery_step_id)
|
|
713
|
+
) ENGINE=InnoDB DEFAULT CHARSET=ascii;
|
|
714
|
+
|
|
715
|
+
CREATE INDEX recovery_uid_idx_topology_recovery_steps ON topology_recovery_steps(recovery_uid);
|
|
716
|
+
|
|
717
|
+
-- =============================================================================
|
|
718
|
+
-- raft_store
|
|
719
|
+
-- =============================================================================
|
|
720
|
+
CREATE TABLE IF NOT EXISTS raft_store (
|
|
721
|
+
store_id bigint unsigned not null auto_increment,
|
|
722
|
+
store_key varbinary(512) not null,
|
|
723
|
+
store_value blob not null,
|
|
724
|
+
PRIMARY KEY (store_id)
|
|
725
|
+
) ENGINE=InnoDB DEFAULT CHARSET=ascii;
|
|
726
|
+
|
|
727
|
+
CREATE INDEX store_key_idx_raft_store ON raft_store (store_key);
|
|
728
|
+
|
|
729
|
+
-- =============================================================================
|
|
730
|
+
-- raft_log
|
|
731
|
+
-- =============================================================================
|
|
732
|
+
CREATE TABLE IF NOT EXISTS raft_log (
|
|
733
|
+
log_index bigint unsigned not null auto_increment,
|
|
734
|
+
term bigint not null,
|
|
735
|
+
log_type int not null,
|
|
736
|
+
data blob not null,
|
|
737
|
+
PRIMARY KEY (log_index)
|
|
738
|
+
) ENGINE=InnoDB DEFAULT CHARSET=ascii;
|
|
739
|
+
|
|
740
|
+
-- =============================================================================
|
|
741
|
+
-- raft_snapshot - with created_at patch
|
|
742
|
+
-- =============================================================================
|
|
743
|
+
CREATE TABLE IF NOT EXISTS raft_snapshot (
|
|
744
|
+
snapshot_id bigint unsigned not null auto_increment,
|
|
745
|
+
snapshot_name varchar(128) CHARACTER SET utf8 NOT NULL,
|
|
746
|
+
snapshot_meta varchar(4096) CHARACTER SET utf8 NOT NULL,
|
|
747
|
+
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
748
|
+
PRIMARY KEY (snapshot_id)
|
|
749
|
+
) ENGINE=InnoDB DEFAULT CHARSET=ascii;
|
|
750
|
+
|
|
751
|
+
CREATE UNIQUE INDEX snapshot_name_uidx_raft_snapshot ON raft_snapshot (snapshot_name);
|
|
752
|
+
|
|
753
|
+
-- =============================================================================
|
|
754
|
+
-- database_instance_peer_analysis
|
|
755
|
+
-- =============================================================================
|
|
756
|
+
CREATE TABLE IF NOT EXISTS database_instance_peer_analysis (
|
|
757
|
+
peer varchar(128) NOT NULL,
|
|
758
|
+
hostname varchar(128) NOT NULL,
|
|
759
|
+
port smallint(5) unsigned NOT NULL,
|
|
760
|
+
analysis_timestamp timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
761
|
+
analysis varchar(128) NOT NULL,
|
|
762
|
+
PRIMARY KEY (peer, hostname, port)
|
|
763
|
+
) ENGINE=InnoDB DEFAULT CHARSET=ascii;
|
|
764
|
+
|
|
765
|
+
-- =============================================================================
|
|
766
|
+
-- database_instance_tls
|
|
767
|
+
-- =============================================================================
|
|
768
|
+
CREATE TABLE IF NOT EXISTS database_instance_tls (
|
|
769
|
+
hostname varchar(128) CHARACTER SET ascii NOT NULL,
|
|
770
|
+
port smallint(5) unsigned NOT NULL,
|
|
771
|
+
required tinyint unsigned NOT NULL DEFAULT 0,
|
|
772
|
+
PRIMARY KEY (hostname,port)
|
|
773
|
+
) ENGINE=InnoDB DEFAULT CHARSET=ascii;
|
|
774
|
+
|
|
775
|
+
-- =============================================================================
|
|
776
|
+
-- kv_store
|
|
777
|
+
-- =============================================================================
|
|
778
|
+
CREATE TABLE IF NOT EXISTS kv_store (
|
|
779
|
+
store_key varchar(255) CHARACTER SET ascii NOT NULL,
|
|
780
|
+
store_value text CHARACTER SET utf8 not null,
|
|
781
|
+
last_updated timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
782
|
+
PRIMARY KEY (store_key)
|
|
783
|
+
) ENGINE=InnoDB DEFAULT CHARSET=ascii;
|
|
784
|
+
|
|
785
|
+
-- =============================================================================
|
|
786
|
+
-- cluster_injected_pseudo_gtid
|
|
787
|
+
-- =============================================================================
|
|
788
|
+
CREATE TABLE IF NOT EXISTS cluster_injected_pseudo_gtid (
|
|
789
|
+
cluster_name varchar(128) NOT NULL,
|
|
790
|
+
time_injected timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
791
|
+
PRIMARY KEY (cluster_name)
|
|
792
|
+
) ENGINE=InnoDB DEFAULT CHARSET=ascii;
|
|
793
|
+
|
|
794
|
+
-- =============================================================================
|
|
795
|
+
-- hostname_ips
|
|
796
|
+
-- =============================================================================
|
|
797
|
+
CREATE TABLE IF NOT EXISTS hostname_ips (
|
|
798
|
+
hostname varchar(128) CHARACTER SET ascii NOT NULL,
|
|
799
|
+
ipv4 varchar(128) CHARACTER SET ascii NOT NULL,
|
|
800
|
+
ipv6 varchar(128) CHARACTER SET ascii NOT NULL,
|
|
801
|
+
last_updated timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
802
|
+
PRIMARY KEY (hostname)
|
|
803
|
+
) ENGINE=InnoDB DEFAULT CHARSET=ascii;
|
|
804
|
+
|
|
805
|
+
-- =============================================================================
|
|
806
|
+
-- database_instance_tags
|
|
807
|
+
-- =============================================================================
|
|
808
|
+
CREATE TABLE IF NOT EXISTS database_instance_tags (
|
|
809
|
+
hostname varchar(128) CHARACTER SET ascii NOT NULL,
|
|
810
|
+
port smallint(5) unsigned NOT NULL,
|
|
811
|
+
tag_name varchar(128) CHARACTER SET utf8 NOT NULL,
|
|
812
|
+
tag_value varchar(128) CHARACTER SET utf8 NOT NULL,
|
|
813
|
+
last_updated timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
814
|
+
PRIMARY KEY (hostname, port, tag_name)
|
|
815
|
+
) ENGINE=InnoDB DEFAULT CHARSET=ascii;
|
|
816
|
+
|
|
817
|
+
CREATE INDEX tag_name_idx_database_instance_tags ON database_instance_tags (tag_name);
|
|
818
|
+
|
|
819
|
+
-- =============================================================================
|
|
820
|
+
-- database_instance_stale_binlog_coordinates
|
|
821
|
+
-- =============================================================================
|
|
822
|
+
CREATE TABLE IF NOT EXISTS database_instance_stale_binlog_coordinates (
|
|
823
|
+
hostname varchar(128) CHARACTER SET ascii NOT NULL,
|
|
824
|
+
port smallint(5) unsigned NOT NULL,
|
|
825
|
+
binary_log_file varchar(128) NOT NULL,
|
|
826
|
+
binary_log_pos bigint(20) unsigned NOT NULL,
|
|
827
|
+
first_seen timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
828
|
+
PRIMARY KEY (hostname, port)
|
|
829
|
+
) ENGINE=InnoDB DEFAULT CHARSET=ascii;
|
|
830
|
+
|
|
831
|
+
CREATE INDEX first_seen_idx_database_instance_stale_binlog_coordinates ON database_instance_stale_binlog_coordinates (first_seen);
|
|
832
|
+
|
|
833
|
+
-- =============================================================================
|
|
834
|
+
-- Mark schema as deployed (prevent Orchestrator from running broken patches)
|
|
835
|
+
-- =============================================================================
|
|
836
|
+
INSERT IGNORE INTO orchestrator_db_deployments (deployed_version, deployed_timestamp)
|
|
837
|
+
VALUES ('3.2.0', NOW());
|