MariaDB Cloud Stored Procedures

change_external_primary

Executes the CHANGE MASTER TO statement to configure inbound replication from an external primary server based on binary log file and position.

CALL sky.change_external_primary(
   host VARCHAR(255),
   port INT,
   logfile TEXT,
   logpos LONG ,
   use_ssl_encryption BOOLEAN
);

-- Run_this_grant_on_your_external_primary                                                                      |
GRANT REPLICATION SLAVE ON *.* TO 'skysql_replication'@'%' IDENTIFIED BY '<password_hash>';                  |

change_connect_retry

Sets the connection retry interval for the external replication master.

CALL change_connect_retry(connect_retry INT);

If the value is NULL, a default retry interval of 60 seconds will be used.

change_external_primary_gtid

Executes the CHANGE MASTER TO statement to configure inbound replication from an external primary server based on the provided GTID.

CALL sky.change_external_primary_gtid(
   host VARCHAR(255),
   port INT,
   gtid VARCHAR(60),
   use_ssl_encryption BOOLEAN
);
-- Run_this_grant_on_your_external_primary
GRANT REPLICATION SLAVE ON *.* TO 'skysql_replication'@'%' IDENTIFIED BY '<password_hash>';

change_heartbeat_period

Sets the heartbeat period for the external replication master.

CALL change_heartbeat_period(heartbeat_period DECIMAL(10,3));

If the value is NULL, a default heartbeat period of 5 seconds will be used.

change_replica_delay

Sets the replication delay for the external replication master.

CALL change_replica_delay(replica_delay INT);

If the value is NULL, a default delay of 1 second will be used.

change_use_ssl_encryption

Toggles the SSL encryption setting for the external replication master.

CALL change_use_ssl_encryption(use_ssl_encryption BOOLEAN);

If the value is NULL, SSL encryption will be enabled by default.

gtid_status

Provides a list of GTID-related system variables.

CALL sky.gtid_status();
+-------------------+---------------------------+
| Variable_name     | Value                     |
+-------------------+---------------------------+
| gtid_binlog_pos   | 435700-435700-122         |
| gtid_binlog_state | 435700-435700-122         |
| gtid_current_pos  | 0-100-1,435700-435700-122 |
| gtid_slave_pos    | 0-100-1                   |
+-------------------+---------------------------+

kill_session

Kills any non-root or non-MariaDB Cloud threads, similar to the KILL statement.

CALL sky.kill_session(IN thread BIGINT);

replication_grants

Provides a GRANT statement to run on an external primary server when configuring inbound replication.

CALL sky.replication_grants();
-- Run_this_grant_on_your_external_primary
GRANT REPLICATION SLAVE ON *.* TO 'skysql_replication'@'%' IDENTIFIED BY '<password_hash>';

replication_status

Executes the SHOW REPLICA STATUS statement to obtain the status of inbound replication.

CALL sky.replication_status()\G
```
*************************** 1. row ***************************
                Slave_IO_State: Waiting for master to send event
                   Master_Host: mariadb1.example.com
                   Master_User: skysql_replication
                   Master_Port: 3306
                 Connect_Retry: 60
               Master_Log_File: mariadb-bin.000001
           Read_Master_Log_Pos: 558
                Relay_Log_File: mariadb-relay-bin.000002
                 Relay_Log_Pos: 674
         Relay_Master_Log_File: mariadb-bin.000001
              Slave_IO_Running: Yes
             Slave_SQL_Running: Yes
               Replicate_Do_DB:
           Replicate_Ignore_DB:
            Replicate_Do_Table:
        Replicate_Ignore_Table:
       Replicate_Wild_Do_Table:
   Replicate_Wild_Ignore_Table:
                    Last_Errno: 0
                    Last_Error:
                  Skip_Counter: 0
           Exec_Master_Log_Pos: 558
               Relay_Log_Space: 985
               Until_Condition: None
                Until_Log_File:
                 Until_Log_Pos: 0
            Master_SSL_Allowed: No
            Master_SSL_CA_File:
            Master_SSL_CA_Path:
               Master_SSL_Cert:
             Master_SSL_Cipher:
                Master_SSL_Key:
         Seconds_Behind_Master: 0
 Master_SSL_Verify_Server_Cert: No
                 Last_IO_Errno: 0
                 Last_IO_Error:
                Last_SQL_Errno: 0
                Last_SQL_Error:
   Replicate_Ignore_Server_Ids:
              Master_Server_Id: 100
                Master_SSL_Crl:
            Master_SSL_Crlpath:
                    Using_Gtid: Slave_Pos
                   Gtid_IO_Pos: 0-100-1
       Replicate_Do_Domain_Ids:
   Replicate_Ignore_Domain_Ids:
                 Parallel_Mode: conservative
                     SQL_Delay: 0
           SQL_Remaining_Delay: NULL
       Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
              Slave_DDL_Groups: 0
Slave_Non_Transactional_Groups: 0
    Slave_Transactional_Groups: 0

```

reset_replication

Executes the RESET REPLICA statement to clear inbound replication configuration.

CALL sky.reset_replication();
+------------------------+
| Message                |
+------------------------+
| Replica has been reset |
+------------------------+

set_master_ssl

Toggles the MASTER_SSL replication option using the CHANGE MASTER TO statement.

CALL sky.set_master_ssl();

skip_repl_error

This stored procedure can be used to ignore a transaction that is causing a replication error.

Executes the STOP REPLICA statement, then sets the sql_slave_skip_counter system variable, and then executes the START REPLICA statement to skip a single transaction. Does not currently work with GTID.

CALL sky.skip_repl_error();

start_replication

Executes the START REPLICA statement to start inbound replication from an external primary.

CALL sky.start_replication();
+----------------------------------------+
| Message                                |
+----------------------------------------+
| External replication running normally. |
+----------------------------------------+

start_replication_until

Start the external replication until a specified relay log file and position. It checks if the replication threads are running and starts the replication if they are not. It also provides feedback on the replication status.

CALL start_replication_until(relay_log_file TEXT, relay_log_pos LONG);

start_replication_until_gtid

Starts the external replication until the specified GTID position. It checks if the replication threads are running and starts the replication if they are not. It also provides feedback on the replication status.

CALL start_replication_until_gtid(master_gtid_pos TEXT);

stop_replication

Executes the STOP REPLICA statement to stop inbound replication from an external primary.

CALL sky.stop_replication();
+---------------------------------+
| Message                         |
+---------------------------------+
| Replication is down or disabled |
+---------------------------------+

Last updated

Was this helpful?