oracle.sql 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. -- -------------------------------- The script used when storeMode is 'db' --------------------------------
  2. -- the table to store GlobalSession data
  3. CREATE TABLE global_table
  4. (
  5. xid VARCHAR2(128) NOT NULL,
  6. transaction_id NUMBER(19),
  7. status NUMBER(3) NOT NULL,
  8. application_id VARCHAR2(32),
  9. transaction_service_group VARCHAR2(32),
  10. transaction_name VARCHAR2(128),
  11. timeout NUMBER(10),
  12. begin_time NUMBER(19),
  13. application_data VARCHAR2(2000),
  14. gmt_create TIMESTAMP(0),
  15. gmt_modified TIMESTAMP(0),
  16. PRIMARY KEY (xid)
  17. );
  18. CREATE INDEX idx_status_gmt_modified ON global_table (status, gmt_modified);
  19. CREATE INDEX idx_transaction_id ON global_table (transaction_id);
  20. -- the table to store BranchSession data
  21. CREATE TABLE branch_table
  22. (
  23. branch_id NUMBER(19) NOT NULL,
  24. xid VARCHAR2(128) NOT NULL,
  25. transaction_id NUMBER(19),
  26. resource_group_id VARCHAR2(32),
  27. resource_id VARCHAR2(256),
  28. branch_type VARCHAR2(8),
  29. status NUMBER(3),
  30. client_id VARCHAR2(64),
  31. application_data VARCHAR2(2000),
  32. gmt_create TIMESTAMP(6),
  33. gmt_modified TIMESTAMP(6),
  34. PRIMARY KEY (branch_id)
  35. );
  36. CREATE INDEX idx_xid ON branch_table (xid);
  37. -- the table to store lock data
  38. CREATE TABLE lock_table
  39. (
  40. row_key VARCHAR2(128) NOT NULL,
  41. xid VARCHAR2(128),
  42. transaction_id NUMBER(19),
  43. branch_id NUMBER(19) NOT NULL,
  44. resource_id VARCHAR2(256),
  45. table_name VARCHAR2(32),
  46. pk VARCHAR2(36),
  47. status NUMBER(3) NOT NULL DEFAULT 0,
  48. gmt_create TIMESTAMP(0),
  49. gmt_modified TIMESTAMP(0),
  50. PRIMARY KEY (row_key)
  51. );
  52. comment on column lock_table.status is '0:locked ,1:rollbacking';
  53. CREATE INDEX idx_branch_id ON lock_table (branch_id);
  54. CREATE INDEX idx_xid ON lock_table (xid);
  55. CREATE INDEX idx_status ON lock_table (status);
  56. CREATE TABLE distributed_lock (
  57. lock_key VARCHAR2(20) NOT NULL,
  58. lock_value VARCHAR2(20) NOT NULL,
  59. expire DECIMAL(18) NOT NULL,
  60. PRIMARY KEY (lock_key)
  61. );
  62. INSERT INTO distributed_lock (lock_key, lock_value, expire) VALUES ('AsyncCommitting', ' ', 0);
  63. INSERT INTO distributed_lock (lock_key, lock_value, expire) VALUES ('RetryCommitting', ' ', 0);
  64. INSERT INTO distributed_lock (lock_key, lock_value, expire) VALUES ('RetryRollbacking', ' ', 0);
  65. INSERT INTO distributed_lock (lock_key, lock_value, expire) VALUES ('TxTimeoutCheck', ' ', 0);