97 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			MySQL
		
	
	
	
	
	
		
		
			
		
	
	
			97 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			MySQL
		
	
	
	
	
	
| 
								 | 
							
								--
							 | 
						||
| 
								 | 
							
								-- Licensed to the Apache Software Foundation (ASF) under one or more
							 | 
						||
| 
								 | 
							
								-- contributor license agreements.  See the NOTICE file distributed with
							 | 
						||
| 
								 | 
							
								-- this work for additional information regarding copyright ownership.
							 | 
						||
| 
								 | 
							
								-- The ASF licenses this file to You under the Apache License, Version 2.0
							 | 
						||
| 
								 | 
							
								-- (the "License"); you may not use this file except in compliance with
							 | 
						||
| 
								 | 
							
								-- the License.  You may obtain a copy of the License at
							 | 
						||
| 
								 | 
							
								--
							 | 
						||
| 
								 | 
							
								--     http://www.apache.org/licenses/LICENSE-2.0
							 | 
						||
| 
								 | 
							
								--
							 | 
						||
| 
								 | 
							
								-- Unless required by applicable law or agreed to in writing, software
							 | 
						||
| 
								 | 
							
								-- distributed under the License is distributed on an "AS IS" BASIS,
							 | 
						||
| 
								 | 
							
								-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
							 | 
						||
| 
								 | 
							
								-- See the License for the specific language governing permissions and
							 | 
						||
| 
								 | 
							
								-- limitations under the License.
							 | 
						||
| 
								 | 
							
								--
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								-- -------------------------------- The script used when storeMode is 'db' --------------------------------
							 | 
						||
| 
								 | 
							
								-- the table to store GlobalSession data
							 | 
						||
| 
								 | 
							
								CREATE TABLE IF NOT EXISTS public.global_table
							 | 
						||
| 
								 | 
							
								(
							 | 
						||
| 
								 | 
							
								    xid                       VARCHAR(128) NOT NULL,
							 | 
						||
| 
								 | 
							
								    transaction_id            BIGINT,
							 | 
						||
| 
								 | 
							
								    status                    SMALLINT     NOT NULL,
							 | 
						||
| 
								 | 
							
								    application_id            VARCHAR(32),
							 | 
						||
| 
								 | 
							
								    transaction_service_group VARCHAR(32),
							 | 
						||
| 
								 | 
							
								    transaction_name          VARCHAR(128),
							 | 
						||
| 
								 | 
							
								    timeout                   INT,
							 | 
						||
| 
								 | 
							
								    begin_time                BIGINT,
							 | 
						||
| 
								 | 
							
								    application_data          VARCHAR(2000),
							 | 
						||
| 
								 | 
							
								    gmt_create                TIMESTAMP(0),
							 | 
						||
| 
								 | 
							
								    gmt_modified              TIMESTAMP(0),
							 | 
						||
| 
								 | 
							
								    CONSTRAINT pk_global_table PRIMARY KEY (xid)
							 | 
						||
| 
								 | 
							
								);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								CREATE INDEX idx_global_table_status_gmt_modified ON public.global_table (status, gmt_modified);
							 | 
						||
| 
								 | 
							
								CREATE INDEX idx_global_table_transaction_id ON public.global_table (transaction_id);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								-- the table to store BranchSession data
							 | 
						||
| 
								 | 
							
								CREATE TABLE IF NOT EXISTS public.branch_table
							 | 
						||
| 
								 | 
							
								(
							 | 
						||
| 
								 | 
							
								    branch_id         BIGINT       NOT NULL,
							 | 
						||
| 
								 | 
							
								    xid               VARCHAR(128) NOT NULL,
							 | 
						||
| 
								 | 
							
								    transaction_id    BIGINT,
							 | 
						||
| 
								 | 
							
								    resource_group_id VARCHAR(32),
							 | 
						||
| 
								 | 
							
								    resource_id       VARCHAR(256),
							 | 
						||
| 
								 | 
							
								    branch_type       VARCHAR(8),
							 | 
						||
| 
								 | 
							
								    status            SMALLINT,
							 | 
						||
| 
								 | 
							
								    client_id         VARCHAR(64),
							 | 
						||
| 
								 | 
							
								    application_data  VARCHAR(2000),
							 | 
						||
| 
								 | 
							
								    gmt_create        TIMESTAMP(6),
							 | 
						||
| 
								 | 
							
								    gmt_modified      TIMESTAMP(6),
							 | 
						||
| 
								 | 
							
								    CONSTRAINT pk_branch_table PRIMARY KEY (branch_id)
							 | 
						||
| 
								 | 
							
								);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								CREATE INDEX idx_branch_table_xid ON public.branch_table (xid);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								-- the table to store lock data
							 | 
						||
| 
								 | 
							
								CREATE TABLE IF NOT EXISTS public.lock_table
							 | 
						||
| 
								 | 
							
								(
							 | 
						||
| 
								 | 
							
								    row_key        VARCHAR(128) NOT NULL,
							 | 
						||
| 
								 | 
							
								    xid            VARCHAR(128),
							 | 
						||
| 
								 | 
							
								    transaction_id BIGINT,
							 | 
						||
| 
								 | 
							
								    branch_id      BIGINT       NOT NULL,
							 | 
						||
| 
								 | 
							
								    resource_id    VARCHAR(256),
							 | 
						||
| 
								 | 
							
								    table_name     VARCHAR(32),
							 | 
						||
| 
								 | 
							
								    pk             VARCHAR(36),
							 | 
						||
| 
								 | 
							
								    status         SMALLINT     NOT NULL DEFAULT 0,
							 | 
						||
| 
								 | 
							
								    gmt_create     TIMESTAMP(0),
							 | 
						||
| 
								 | 
							
								    gmt_modified   TIMESTAMP(0),
							 | 
						||
| 
								 | 
							
								    CONSTRAINT pk_lock_table PRIMARY KEY (row_key)
							 | 
						||
| 
								 | 
							
								);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								comment on column public.lock_table.status is '0:locked ,1:rollbacking';
							 | 
						||
| 
								 | 
							
								CREATE INDEX idx_lock_table_branch_id ON public.lock_table (branch_id);
							 | 
						||
| 
								 | 
							
								CREATE INDEX idx_lock_table_xid ON public.lock_table (xid);
							 | 
						||
| 
								 | 
							
								CREATE INDEX idx_lock_table_status ON public.lock_table (status);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								CREATE TABLE distributed_lock (
							 | 
						||
| 
								 | 
							
								    lock_key     VARCHAR(20)  NOT NULL,
							 | 
						||
| 
								 | 
							
								    lock_value        VARCHAR(20)  NOT NULL,
							 | 
						||
| 
								 | 
							
								    expire       BIGINT       NOT NULL,
							 | 
						||
| 
								 | 
							
								    CONSTRAINT pk_distributed_lock_table PRIMARY KEY (lock_key)
							 | 
						||
| 
								 | 
							
								);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								INSERT INTO distributed_lock (lock_key, lock_value, expire) VALUES ('AsyncCommitting', ' ', 0);
							 | 
						||
| 
								 | 
							
								INSERT INTO distributed_lock (lock_key, lock_value, expire) VALUES ('RetryCommitting', ' ', 0);
							 | 
						||
| 
								 | 
							
								INSERT INTO distributed_lock (lock_key, lock_value, expire) VALUES ('RetryRollbacking', ' ', 0);
							 | 
						||
| 
								 | 
							
								INSERT INTO distributed_lock (lock_key, lock_value, expire) VALUES ('TxTimeoutCheck', ' ', 0);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								CREATE TABLE IF NOT EXISTS vgroup_table
							 | 
						||
| 
								 | 
							
								(
							 | 
						||
| 
								 | 
							
								    vGroup    VARCHAR(255),
							 | 
						||
| 
								 | 
							
								    namespace VARCHAR(255),
							 | 
						||
| 
								 | 
							
								    cluster   VARCHAR(255),
							 | 
						||
| 
								 | 
							
								    PRIMARY KEY (vGroup)
							 | 
						||
| 
								 | 
							
								);
							 |