Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- список таблиц для репликации
- */
- CREATE GENERATOR GEN_RPL_TABLES_ID;
- CREATE TABLE RPL_TABLES (
- ID INTEGER NOT NULL,
- TABLE_NAME MY_SHORTCHAR /* MY_SHORTCHAR = VARCHAR(32) */,
- RPL_ALLFIELDS MY_BOOLEAN /* MY_BOOLEAN = INTEGER DEFAULT 0 NOT NULL CHECK (value in (0, 1)) */,
- IS_DOCHEADER MY_BOOLEAN /* MY_BOOLEAN = INTEGER DEFAULT 0 NOT NULL CHECK (value in (0, 1)) */
- );
- /*
- список полей для репликации
- */
- CREATE GENERATOR GEN_RPL_FIELDS_ID;
- CREATE TABLE RPL_FIELDS (
- ID INTEGER NOT NULL,
- TABLE_ID INTEGER,
- FIELD_NAME MY_SHORTCHAR
- );
- /*
- лог запросов
- */
- CREATE GENERATOR GEN_RPL_LOG_ID;
- CREATE TABLE RPL_LOG (
- ID INTEGER NOT NULL,
- SESSION_ID INTEGER,
- RPL_SQL VARCHAR(32000)
- );
- CREATE OR ALTER TRIGGER RPL_LOG_BI FOR RPL_LOG
- ACTIVE BEFORE INSERT POSITION 0
- AS
- BEGIN
- IF (NEW.id IS NULL) THEN
- NEW.id = gen_id(gen_rpl_log_id,1);
- IF (NEW.session_id IS NULL) THEN
- NEW.session_id = gen_id(gen_rpl_sessions_id, 0);
- END
- /*
- сессии репликации; одна сессия - набор запросов между двумя сеансами репликации
- */
- CREATE GENERATOR GEN_RPL_SESSIONS_ID;
- CREATE TABLE RPL_SESSIONS (
- ID INTEGER NOT NULL,
- BEGIN_TS TIMESTAMP,
- END_TS TIMESTAMP
- );
- CREATE OR ALTER TRIGGER RPL_SESSIONS_BI FOR RPL_SESSIONS
- ACTIVE BEFORE INSERT POSITION 0
- AS
- BEGIN
- IF (NEW.id IS NULL) THEN
- NEW.id = gen_id(gen_rpl_sessions_id,1);
- IF (NEW.begin_ts IS NULL) THEN
- NEW.begin_ts = CURRENT_TIMESTAMP;
- END
- /*
- настройки баз, принимающих участие в репликации;
- пути-имена-явки-пароли нужно указать только для сервера
- */
- CREATE GENERATOR GEN_RPL_DATABASES_ID;
- CREATE TABLE RPL_DATABASES (
- ID INTEGER,
- ALIAS MY_SHORTCHAR /* MY_SHORTCHAR = VARCHAR(32) */,
- LAST_SESSION INTEGER,
- ITS_ME MY_BOOLEAN /* MY_BOOLEAN = INTEGER DEFAULT 0 NOT NULL CHECK (value in (0, 1)) */,
- ITS_SERVER MY_BOOLEAN
- DBPATH MY_LONGCHAR /* MY_LONGCHAR = VARCHAR(256) */,
- DBUSER MY_SHORTCHAR,
- DBPASS MY_SHORTCHAR,
- DBHOST MY_SHORTCHAR
- );
- /*
- что, когда и откуда получили; так, на всякий случай
- */
- CREATE GENERATOR GEN_RPL_RECEIVED_ID;
- CREATE TABLE RPL_RECEIVED (
- ID INTEGER NOT NULL,
- DB_ID INTEGER,
- BLOB_ID INTEGER,
- RECEIVED_TS TIMESTAMP,
- SESSION_ID INTEGER
- );
- /*
- скрипты, полученные от баз-клиентов
- */
- CREATE GENERATOR GEN_RPL_BLOBS_ID;
- CREATE TABLE RPL_BLOBS (
- ID INTEGER NOT NULL,
- SENDER_ID INTEGER,
- SESSION_ID INTEGER,
- RPL_BLOB BLOB SUB_TYPE 0 SEGMENT SIZE 80
- );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement