CUBRID Engine  latest
util_cs.c File Reference
#include "config.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <signal.h>
#include <errno.h>
#include <assert.h>
#include "utility.h"
#include "error_manager.h"
#include "message_catalog.h"
#include "system_parameter.h"
#include "environment_variable.h"
#include "databases_file.h"
#include "boot_cl.h"
#include "boot_sr.h"
#include "db.h"
#include "authenticate.h"
#include "server_interface.h"
#include "object_representation.h"
#include "transaction_cl.h"
#include "porting.h"
#include "network_interface_cl.h"
#include "connection_defs.h"
#include "log_writer.h"
#include "log_applier.h"
#include "log_lsa.hpp"
#include "schema_manager.h"
#include "locator_cl.h"
#include "dynamic_array.h"
#include "util_func.h"
#include "xasl.h"
#include "log_volids.hpp"
#include "tde.h"
#include "heartbeat.h"

Go to the source code of this file.

Macros

#define PASSBUF_SIZE   12
 
#define SPACEDB_NUM_VOL_PURPOSE   2
 
#define MAX_KILLTRAN_INDEX_LIST_NUM   64
 
#define MAX_DELVOL_ID_LIST_NUM   64
 
#define VOL_PURPOSE_STRING(VOL_PURPOSE)
 
#define SPACEDB_TO_SIZE_ARG(no, npage)   spacedb_get_size_str (size_str_##no, npage, size_unit_type)
 
#define UNIT_STR(un)   (((un) == SPACEDB_SIZE_UNIT_MBYTES) ? 'M' : ((un) == SPACEDB_SIZE_UNIT_GBYTES) ? 'G' : 'T')
 

Enumerations

enum  T_SPACEDB_SIZE_UNIT {
  SPACEDB_SIZE_UNIT_PAGE = 0, SPACEDB_SIZE_UNIT_MBYTES, SPACEDB_SIZE_UNIT_GBYTES, SPACEDB_SIZE_UNIT_TBYTES,
  SPACEDB_SIZE_UNIT_HUMAN_READABLE
}
 
enum  TRANDUMP_LEVEL { TRANDUMP_SUMMARY, TRANDUMP_QUERY_INFO, TRANDUMP_FULL_INFO }
 
enum  SORT_COLUMN_TYPE { SORT_COLUMN_TYPE_INT, SORT_COLUMN_TYPE_FLOAT, SORT_COLUMN_TYPE_STR }
 

Functions

static void intr_handler (int sig_no)
 
static void backupdb_sig_interrupt_handler (int sig_no)
 
STATIC_INLINE char * spacedb_get_size_str (char *buf, UINT64 num_pages, T_SPACEDB_SIZE_UNIT size_unit)
 
static void print_timestamp (FILE *outfp)
 
static int print_tran_entry (const ONE_TRAN_INFO *tran_info, TRANDUMP_LEVEL dump_level, bool full_sqltext)
 
static int tranlist_cmp_f (const void *p1, const void *p2)
 
static OIDutil_get_class_oids_and_index_btid (dynamic_array *darray, const char *index_name, BTID *index_btid)
 
int backupdb (UTIL_FUNCTION_ARG *arg)
 
int addvoldb (UTIL_FUNCTION_ARG *arg)
 
int checkdb (UTIL_FUNCTION_ARG *arg)
 
int spacedb (UTIL_FUNCTION_ARG *arg)
 
int acldb (UTIL_FUNCTION_ARG *arg)
 
int lockdb (UTIL_FUNCTION_ARG *arg)
 
static int isvalid_transaction (const ONE_TRAN_INFO *tran)
 
static bool doesmatch_transaction (const ONE_TRAN_INFO *tran, int *tran_index_list, int index_list_size, const char *username, const char *hostname, const char *progname, const char *sql_id)
 
static void dump_trantb (TRANS_INFO *info, TRANDUMP_LEVEL dump_level, bool full_sqltext)
 
static int kill_transactions (TRANS_INFO *info, int *tran_index_list, int list_size, const char *username, const char *hostname, const char *progname, const char *sql_id, bool verify)
 
int tranlist (UTIL_FUNCTION_ARG *arg)
 
int killtran (UTIL_FUNCTION_ARG *arg)
 
int plandump (UTIL_FUNCTION_ARG *arg)
 
int paramdump (UTIL_FUNCTION_ARG *arg)
 
int statdump (UTIL_FUNCTION_ARG *arg)
 
int changemode (UTIL_FUNCTION_ARG *arg)
 
int copylogdb (UTIL_FUNCTION_ARG *arg)
 
int applylogdb (UTIL_FUNCTION_ARG *arg)
 
int applyinfo (UTIL_FUNCTION_ARG *arg)
 
int vacuumdb (UTIL_FUNCTION_ARG *arg)
 
int tde (UTIL_FUNCTION_ARG *arg)
 

Variables

static int tranlist_Sort_column = 0
 
static bool tranlist_Sort_desc = false
 
static bool is_Sigint_caught = false
 

Macro Definition Documentation

#define MAX_DELVOL_ID_LIST_NUM   64

Definition at line 69 of file util_cs.c.

#define MAX_KILLTRAN_INDEX_LIST_NUM   64

Definition at line 68 of file util_cs.c.

Referenced by killtran().

#define PASSBUF_SIZE   12

Definition at line 66 of file util_cs.c.

#define SPACEDB_NUM_VOL_PURPOSE   2

Definition at line 67 of file util_cs.c.

#define SPACEDB_TO_SIZE_ARG (   no,
  npage 
)    spacedb_get_size_str (size_str_##no, npage, size_unit_type)

Referenced by spacedb().

#define UNIT_STR (   un)    (((un) == SPACEDB_SIZE_UNIT_MBYTES) ? 'M' : ((un) == SPACEDB_SIZE_UNIT_GBYTES) ? 'G' : 'T')

Referenced by spacedb_get_size_str().

#define VOL_PURPOSE_STRING (   VOL_PURPOSE)
Value:
((VOL_PURPOSE == DB_PERMANENT_DATA_PURPOSE) ? "PERMANENT DATA" \
: (VOL_PURPOSE == DB_TEMPORARY_DATA_PURPOSE) ? "TEMPORARY DATA" \
: "UNKNOWN")

Definition at line 71 of file util_cs.c.

Enumeration Type Documentation

Enumerator
SORT_COLUMN_TYPE_INT 
SORT_COLUMN_TYPE_FLOAT 
SORT_COLUMN_TYPE_STR 

Definition at line 92 of file util_cs.c.

Enumerator
SPACEDB_SIZE_UNIT_PAGE 
SPACEDB_SIZE_UNIT_MBYTES 
SPACEDB_SIZE_UNIT_GBYTES 
SPACEDB_SIZE_UNIT_TBYTES 
SPACEDB_SIZE_UNIT_HUMAN_READABLE 

Definition at line 76 of file util_cs.c.

Enumerator
TRANDUMP_SUMMARY 
TRANDUMP_QUERY_INFO 
TRANDUMP_FULL_INFO 

Definition at line 85 of file util_cs.c.

Function Documentation

int applyinfo ( UTIL_FUNCTION_ARG arg)
int applylogdb ( UTIL_FUNCTION_ARG arg)

Definition at line 2862 of file util_cs.c.

References APPLYLOG_LOG_PATH_S, APPLYLOG_MAX_MEM_SIZE_S, APPLYLOGDB_MSG_HA_NOT_SUPPORT, APPLYLOGDB_MSG_NOT_HA_MODE, APPLYLOGDB_MSG_NOT_IN_STANDALONE, APPLYLOGDB_MSG_USAGE, ARG_FILE_LINE, UTIL_FUNCTION_ARG::arg_map, UTIL_FUNCTION_ARG::argv, UTIL_FUNCTION_ARG::argv0, AU_DISABLE_PASSWORDS, basename(), check_database_name(), UTIL_FUNCTION_ARG::command_name, database_name, DB_CLIENT_TYPE_LOG_APPLIER, db_disable_trigger(), db_error_string(), db_login(), db_restart(), db_set_client_type(), db_set_lock_timeout(), db_shutdown(), envvar_bindir_file(), ER_BO_CONNECT_FAILED, er_errid(), ER_FAILED, er_init(), ER_LC_PARTIALLY_FAILED_TO_FLUSH, er_log_debug, ER_NET_CANT_CONNECT_SERVER, ER_NET_SERVER_COMM_ERROR, ER_NET_SERVER_CRASHED, ER_NEVER_EXIT, ERR_CSS_TCP_CANNOT_CONNECT_TO_MASTER, error(), executable_path, HA_DISABLED, HA_GET_MODE, HA_MODE_REPLICA, hb_Proc_shutdown, hb_process_init(), HB_PTYPE_APPLYLOGDB, hb_set_argv(), hb_set_exec_path(), la_apply_log_file(), la_force_shutdown(), MSGCAT_CATALOG_UTILS, msgcat_message(), MSGCAT_UTIL_GENERIC_INVALID_ARGUMENT, MSGCAT_UTIL_GENERIC_INVALID_PARAMETER, MSGCAT_UTIL_GENERIC_SERVICE_PROPERTY_FAIL, MSGCAT_UTIL_SET_APPLYLOGDB, MSGCAT_UTIL_SET_GENERIC, NO_ERROR, NULL, OPTION_STRING_TABLE, PRINT_AND_LOG_ERR_MSG, prm_get_name(), prm_get_string_value(), PRM_ID_HA_REPLICA_TIME_BOUND, strdup(), SYSPRM_LOAD_ALL, sysprm_load_and_init(), TRUE, util_log_write_errid(), util_log_write_errstr(), util_redirect_stdout_to_null(), util_str_to_time_since_epoch(), utility_get_option_int_value(), utility_get_option_string_table_size(), and utility_get_option_string_value().

int backupdb ( UTIL_FUNCTION_ARG arg)

Definition at line 121 of file util_cs.c.

References ARG_FILE_LINE, UTIL_FUNCTION_ARG::arg_map, UTIL_FUNCTION_ARG::argv0, assert, AU_DISABLE_PASSWORDS, BACKUP_COMPRESS_S, BACKUP_DESTINATION_PATH_S, BACKUP_LEVEL_S, BACKUP_NO_CHECK_S, BACKUP_OUTPUT_FILE_S, BACKUP_REMOVE_ARCHIVE_S, BACKUP_SA_MODE_S, BACKUP_SEPARATE_KEYS_S, BACKUP_SLEEP_MSECS_S, BACKUP_THREAD_COUNT_S, BACKUPDB_FIFO_KEYS_NOT_SUPPORTED, BACKUPDB_INVALID_PATH, BACKUPDB_INVALID_THREAD_NUM_OPT, BACKUPDB_MSG_USAGE, BACKUPDB_NOT_USING_SEPARATE_KEYS, backupdb_sig_interrupt_handler(), BACKUPDB_USING_SEPARATE_KEYS, basename(), boot_backup(), boot_check_db_consistency(), check_database_name(), CHECKDB_BTREE_CHECK_ALL_BTREES, CHECKDB_CT_CHECK_CAT_CONSISTENCY, CHECKDB_FILE_TRACKER_CHECK, CHECKDB_HEAP_CHECK_ALLHEAPS, CHECKDB_LC_CHECK_CLASSNAMES, CHECKDB_MSG_INCONSISTENT, UTIL_FUNCTION_ARG::command_name, database_name, DB_CLIENT_TYPE_ADMIN_UTILITY, db_commit_transaction(), db_error_string(), db_login(), db_restart(), db_set_client_type(), db_set_isolation(), db_shutdown(), dirname(), ER_ERROR_SEVERITY, ER_GENERIC_ERROR, er_get_msglog_filename(), er_init(), ER_NEVER_EXIT, er_set(), FILEIO_BACKUP_FULL_LEVEL, FILEIO_BACKUP_NUM_THREADS_AUTO, FILEIO_BACKUP_SLEEP_MSECS_AUTO, FILEIO_BACKUP_UNDEFINED_LEVEL, FILEIO_ZIP_LZ4_DEFAULT_LEVEL, FILEIO_ZIP_LZ4_METHOD, FILEIO_ZIP_NONE_LEVEL, FILEIO_ZIP_NONE_METHOD, MSGCAT_CATALOG_UTILS, msgcat_message(), MSGCAT_UTIL_GENERIC_INVALID_ARGUMENT, MSGCAT_UTIL_SET_BACKUPDB, MSGCAT_UTIL_SET_CHECKDB, NO_ERROR, NULL, OPTION_STRING_TABLE, os_set_signal_handler(), PRINT_AND_LOG_ERR_MSG, prm_get_name(), PRM_ID_JAVA_STORED_PROCEDURE, sysprm_set_force(), TRAN_READ_COMMITTED, TRUE, util_log_write_errid(), util_log_write_warnstr(), utility_get_option_bool_value(), utility_get_option_int_value(), utility_get_option_string_table_size(), and utility_get_option_string_value().

static void backupdb_sig_interrupt_handler ( int  sig_no)
static

Definition at line 3075 of file util_cs.c.

References db_set_interrupt(), and STATIC_INLINE.

Referenced by backupdb().

Here is the caller graph for this function:

int checkdb ( UTIL_FUNCTION_ARG arg)

Definition at line 621 of file util_cs.c.

References UTIL_FUNCTION_ARG::arg_map, UTIL_FUNCTION_ARG::argv0, AU_DISABLE_PASSWORDS, basename(), boot_check_db_consistency(), BTID_SET_NULL, CHECK_BTREE_ALL_BTREES_S, CHECK_CAT_CONSISTENCY_S, CHECK_CHECK_PREV_LINK_S, check_database_name(), CHECK_FILE_TRACKER_S, CHECK_HEAP_ALLHEAPS_S, CHECK_INDEXNAME_S, CHECK_INPUT_FILE_S, CHECK_LC_ALLENTRIES_OF_ALLBTREES_S, CHECK_LC_CLASSNAMES_S, CHECK_REPAIR_PREV_LINK_S, CHECK_REPAIR_S, CHECKDB_ALL_CHECK_EXCEPT_PREV_LINK, CHECKDB_BTREE_CHECK_ALL_BTREES, CHECKDB_CHECK_PREV_LINK, CHECKDB_CT_CHECK_CAT_CONSISTENCY, CHECKDB_FILE_TRACKER_CHECK, CHECKDB_HEAP_CHECK_ALLHEAPS, CHECKDB_LC_CHECK_ALLENTRIES_OF_ALLBTREES, CHECKDB_LC_CHECK_CLASSNAMES, CHECKDB_MSG_INCONSISTENT, CHECKDB_MSG_USAGE, CHECKDB_REPAIR, CHECKDB_REPAIR_PREV_LINK, UTIL_FUNCTION_ARG::command_name, da_add(), da_create(), da_destroy(), da_size(), database_name, DB_CLIENT_TYPE_ADMIN_UTILITY, db_commit_transaction(), db_error_string(), db_login(), db_restart(), db_set_client_type(), db_set_isolation(), db_shutdown(), er_get_msglog_filename(), er_init(), ER_NEVER_EXIT, i, MSGCAT_CATALOG_UTILS, msgcat_message(), MSGCAT_UTIL_GENERIC_INVALID_ARGUMENT, MSGCAT_UTIL_GENERIC_NO_MEM, MSGCAT_UTIL_SET_CHECKDB, NO_ERROR, NULL, OPTION_STRING_TABLE, p, PRINT_AND_LOG_ERR_MSG, prm_get_name(), PRM_ID_JAVA_STORED_PROCEDURE, SM_MAX_IDENTIFIER_LENGTH, strncpy_bufsize, sysprm_set_force(), TRAN_READ_COMMITTED, TRUE, util_get_class_oids_and_index_btid(), util_get_table_list_from_file(), util_log_write_errid(), util_log_write_errstr(), utility_get_option_bool_value(), utility_get_option_string_table_size(), and utility_get_option_string_value().

int copylogdb ( UTIL_FUNCTION_ARG arg)

Definition at line 2633 of file util_cs.c.

References ARG_FILE_LINE, UTIL_FUNCTION_ARG::arg_map, UTIL_FUNCTION_ARG::argv, UTIL_FUNCTION_ARG::argv0, AU_DISABLE_PASSWORDS, basename(), check_database_name(), UTIL_FUNCTION_ARG::command_name, COPYLOG_LOG_PATH_S, COPYLOG_MODE_S, COPYLOG_START_PAGEID_S, copylogdb_keyword(), COPYLOGDB_MSG_BAD_MODE, COPYLOGDB_MSG_HA_NOT_SUPPORT, COPYLOGDB_MSG_NOT_IN_STANDALONE, COPYLOGDB_MSG_USAGE, database_name, DB_CLIENT_TYPE_LOG_COPIER, db_error_string(), db_login(), db_restart(), db_set_client_type(), db_shutdown(), envvar_bindir_file(), ER_BO_CONNECT_FAILED, er_errid(), ER_FAILED, er_init(), er_log_debug, ER_NET_CANT_CONNECT_SERVER, ER_NET_SERVER_CRASHED, ER_NEVER_EXIT, ERR_CSS_TCP_CANNOT_CONNECT_TO_MASTER, ERR_CSS_TCP_CONNECT_TIMEDOUT, error(), executable_path, HA_DISABLED, hb_Proc_shutdown, hb_process_init(), HB_PTYPE_COPYLOGDB, hb_set_argv(), hb_set_exec_path(), logwr_copy_log_file(), logwr_force_shutdown(), LOGWR_MODE_ASYNC, LOGWR_MODE_SEMISYNC, LOGWR_MODE_SYNC, mode, MSGCAT_CATALOG_UTILS, msgcat_message(), MSGCAT_UTIL_GENERIC_INVALID_ARGUMENT, MSGCAT_UTIL_SET_COPYLOGDB, NO_ERROR, NULL, NULL_PAGEID, OPTION_STRING_TABLE, PRINT_AND_LOG_ERR_MSG, prm_get_name(), PRM_ID_ER_LOG_FILE, PRM_ID_LOG_BACKGROUND_ARCHIVING, SYSPRM_LOAD_ALL, sysprm_load_and_init(), sysprm_set_force(), sysprm_set_to_default(), TRUE, util_log_write_errid(), util_log_write_errstr(), util_redirect_stdout_to_null(), utility_get_option_bigint_value(), utility_get_option_string_table_size(), and utility_get_option_string_value().

static bool doesmatch_transaction ( const ONE_TRAN_INFO tran,
int *  tran_index_list,
int  index_list_size,
const char *  username,
const char *  hostname,
const char *  progname,
const char *  sql_id 
)
static
static void intr_handler ( int  sig_no)
static

Definition at line 3415 of file util_cs.c.

References FALSE, is_Sigint_caught, and TRUE.

Referenced by applyinfo(), and statdump().

Here is the caller graph for this function:

static int isvalid_transaction ( const ONE_TRAN_INFO tran)
static

Definition at line 1295 of file util_cs.c.

References NULL, tm_Tran_index, and one_tran_info::tran_index.

Referenced by doesmatch_transaction(), and dump_trantb().

Here is the caller graph for this function:

static void print_timestamp ( FILE *  outfp)
static

Definition at line 2306 of file util_cs.c.

References NULL, and utility_localtime().

Referenced by statdump().

Here is the caller graph for this function:

int spacedb ( UTIL_FUNCTION_ARG arg)

Definition at line 844 of file util_cs.c.

References UTIL_FUNCTION_ARG::arg_map, UTIL_FUNCTION_ARG::argv0, ASSERT_ERROR, AU_DISABLE_PASSWORDS, basename(), boot_get_lob_path(), check_database_name(), UTIL_FUNCTION_ARG::command_name, database_name, DB_CLIENT_TYPE_ADMIN_UTILITY, db_error_string(), db_login(), DB_PERMANENT_DATA_PURPOSE, DB_PERMANENT_VOLTYPE, db_restart(), db_set_client_type(), db_shutdown(), er_init(), ER_NEVER_EXIT, ER_WARNING_SEVERITY, free_and_init, i, IO_PAGESIZE, LOG_PAGESIZE, MSGCAT_CATALOG_UTILS, msgcat_message(), MSGCAT_UTIL_GENERIC_INVALID_ARGUMENT, MSGCAT_UTIL_SET_SPACEDB, netcl_spacedb(), NO_ERROR, NULL, spacedb_all::nvols, OPTION_STRING_TABLE, output_file, PRINT_AND_LOG_ERR_MSG, prm_get_name(), PRM_ID_JAVA_STORED_PROCEDURE, PRM_ID_PB_NBUFFERS, SPACE_OUTPUT_FILE_S, SPACE_PURPOSE_S, SPACE_SIZE_UNIT_S, SPACE_SUMMARIZE_S, SPACEDB_ALL_COUNT, SPACEDB_FILE_COUNT, SPACEDB_MSG_ALL_HEADER_PAGES, SPACEDB_MSG_ALL_HEADER_SIZE, SPACEDB_MSG_BAD_OUTPUT, SPACEDB_MSG_FILES_FORMAT, SPACEDB_MSG_FILES_HEADER_PAGES, SPACEDB_MSG_FILES_HEADER_SIZE, SPACEDB_MSG_FILES_TITLE, SPACEDB_MSG_PERM_PERM_FORMAT, SPACEDB_MSG_USAGE, SPACEDB_MSG_VOLS_HEADER_PAGES, SPACEDB_MSG_VOLS_HEADER_SIZE, SPACEDB_MSG_VOLS_PERM_PERM_FORMAT, SPACEDB_MSG_VOLS_PERM_TEMP_FORMAT, SPACEDB_MSG_VOLS_TEMP_TEMP_FORMAT, SPACEDB_MSG_VOLS_TITLE, SPACEDB_OUTPUT_TITLE, SPACEDB_OUTPUT_TITLE_LOB, SPACEDB_SIZE_UNIT_GBYTES, SPACEDB_SIZE_UNIT_HUMAN_READABLE, SPACEDB_SIZE_UNIT_MBYTES, SPACEDB_SIZE_UNIT_PAGE, SPACEDB_SIZE_UNIT_TBYTES, SPACEDB_TO_SIZE_ARG, SPACEDB_TOTAL_ALL, sysprm_set_force(), TRUE, util_byte_to_size_string(), util_log_write_errid(), utility_get_option_bool_value(), utility_get_option_string_table_size(), and utility_get_option_string_value().

Referenced by file_tracker_item_spacedb().

Here is the caller graph for this function:

STATIC_INLINE char * spacedb_get_size_str ( char *  buf,
UINT64  num_pages,
T_SPACEDB_SIZE_UNIT  size_unit 
)

Variable Documentation

bool is_Sigint_caught = false
static

Definition at line 102 of file util_cs.c.

Referenced by applyinfo(), intr_handler(), and statdump().

int tranlist_Sort_column = 0
static

Definition at line 99 of file util_cs.c.

Referenced by tranlist(), and tranlist_cmp_f().

bool tranlist_Sort_desc = false
static

Definition at line 100 of file util_cs.c.

Referenced by tranlist(), and tranlist_cmp_f().