ndoutils2.2.0(ndo2db)中文乱码问题解决
来源:互联网 发布:mac 桌面快捷方式 编辑:程序博客网 时间:2024/06/18 06:26
当产生数据库乱码时请用下面两个文件:
适用版本:ndoutils-2.0.0
数据库初始化mysql.sql:
-- phpMyAdmin SQL Dump-- version 2.11.8.1-- http://www.phpmyadmin.net-- Host: localhost-- Generation Time: Jan 03, 2009 at 09:24 AM-- Server version: 5.0.45-- PHP Version: 5.2.6SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";---- Database: `nagios`---- ------------------------------------------------------------ Table structure for table `monitor_acknowledgements`--CREATE TABLE IF NOT EXISTS `monitor_acknowledgements` ( `acknowledgement_id` int(11) NOT NULL auto_increment, `instance_id` smallint(6) NOT NULL default '0', `entry_time` datetime NOT NULL default '0000-00-00 00:00:00', `entry_time_usec` int(11) NOT NULL default '0', `acknowledgement_type` smallint(6) NOT NULL default '0', `object_id` int(11) NOT NULL default '0', `state` smallint(6) NOT NULL default '0', `author_name` varchar(64) NOT NULL default '', `comment_data` varchar(255) NOT NULL default '', `is_sticky` smallint(6) NOT NULL default '0', `persistent_comment` smallint(6) NOT NULL default '0', `notify_contacts` smallint(6) NOT NULL default '0', PRIMARY KEY (`acknowledgement_id`), UNIQUE KEY `instance_id` (`instance_id`, `entry_time`, `entry_time_usec`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Current and historical host and service acknowledgements';-- ------------------------------------------------------------ Table structure for table `monitor_commands`--CREATE TABLE IF NOT EXISTS `monitor_commands` ( `command_id` int(11) NOT NULL auto_increment, `instance_id` smallint(6) NOT NULL default '0', `config_type` smallint(6) NOT NULL default '0', `object_id` int(11) NOT NULL default '0', `command_line` varchar(255) NOT NULL default '', PRIMARY KEY (`command_id`), UNIQUE KEY `instance_id` (`instance_id`,`object_id`,`config_type`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Command definitions';-- ------------------------------------------------------------ Table structure for table `monitor_commenthistory`--CREATE TABLE IF NOT EXISTS `monitor_commenthistory` ( `commenthistory_id` int(11) NOT NULL auto_increment, `instance_id` smallint(6) NOT NULL default '0', `entry_time` datetime NOT NULL default '0000-00-00 00:00:00', `entry_time_usec` int(11) NOT NULL default '0', `comment_type` smallint(6) NOT NULL default '0', `entry_type` smallint(6) NOT NULL default '0', `object_id` int(11) NOT NULL default '0', `comment_time` datetime NOT NULL default '0000-00-00 00:00:00', `internal_comment_id` int(11) NOT NULL default '0', `author_name` varchar(64) NOT NULL default '', `comment_data` varchar(255) NOT NULL default '', `is_persistent` smallint(6) NOT NULL default '0', `comment_source` smallint(6) NOT NULL default '0', `expires` smallint(6) NOT NULL default '0', `expiration_time` datetime NOT NULL default '0000-00-00 00:00:00', `deletion_time` datetime NOT NULL default '0000-00-00 00:00:00', `deletion_time_usec` int(11) NOT NULL default '0', PRIMARY KEY (`commenthistory_id`), UNIQUE KEY `instance_id` (`instance_id`,`comment_time`,`internal_comment_id`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Historical host and service comments';-- ------------------------------------------------------------ Table structure for table `monitor_comments`--CREATE TABLE IF NOT EXISTS `monitor_comments` ( `comment_id` int(11) NOT NULL auto_increment, `instance_id` smallint(6) NOT NULL default '0', `entry_time` datetime NOT NULL default '0000-00-00 00:00:00', `entry_time_usec` int(11) NOT NULL default '0', `comment_type` smallint(6) NOT NULL default '0', `entry_type` smallint(6) NOT NULL default '0', `object_id` int(11) NOT NULL default '0', `comment_time` datetime NOT NULL default '0000-00-00 00:00:00', `internal_comment_id` int(11) NOT NULL default '0', `author_name` varchar(64) NOT NULL default '', `comment_data` varchar(255) NOT NULL default '', `is_persistent` smallint(6) NOT NULL default '0', `comment_source` smallint(6) NOT NULL default '0', `expires` smallint(6) NOT NULL default '0', `expiration_time` datetime NOT NULL default '0000-00-00 00:00:00', PRIMARY KEY (`comment_id`), UNIQUE KEY `instance_id` (`instance_id`,`comment_time`,`internal_comment_id`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ;-- ------------------------------------------------------------ Table structure for table `monitor_configfiles`--CREATE TABLE IF NOT EXISTS `monitor_configfiles` ( `configfile_id` int(11) NOT NULL auto_increment, `instance_id` smallint(6) NOT NULL default '0', `configfile_type` smallint(6) NOT NULL default '0', `configfile_path` varchar(255) NOT NULL default '', PRIMARY KEY (`configfile_id`), UNIQUE KEY `instance_id` (`instance_id`,`configfile_type`,`configfile_path`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Configuration files';-- ------------------------------------------------------------ Table structure for table `monitor_configfilevariables`--CREATE TABLE IF NOT EXISTS `monitor_configfilevariables` ( `configfilevariable_id` int(11) NOT NULL auto_increment, `instance_id` smallint(6) NOT NULL default '0', `configfile_id` int(11) NOT NULL default '0', `varname` varchar(64) NOT NULL default '', `varvalue` varchar(255) NOT NULL default '', PRIMARY KEY (`configfilevariable_id`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Configuration file variables';-- ------------------------------------------------------------ Table structure for table `monitor_conninfo`--CREATE TABLE IF NOT EXISTS `monitor_conninfo` ( `conninfo_id` int(11) NOT NULL auto_increment, `instance_id` smallint(6) NOT NULL default '0', `agent_name` varchar(32) NOT NULL default '', `agent_version` varchar(8) NOT NULL default '', `disposition` varchar(16) NOT NULL default '', `connect_source` varchar(16) NOT NULL default '', `connect_type` varchar(16) NOT NULL default '', `connect_time` datetime NOT NULL default '0000-00-00 00:00:00', `disconnect_time` datetime NOT NULL default '0000-00-00 00:00:00', `last_checkin_time` datetime NOT NULL default '0000-00-00 00:00:00', `data_start_time` datetime NOT NULL default '0000-00-00 00:00:00', `data_end_time` datetime NOT NULL default '0000-00-00 00:00:00', `bytes_processed` int(11) NOT NULL default '0', `lines_processed` int(11) NOT NULL default '0', `entries_processed` int(11) NOT NULL default '0', PRIMARY KEY (`conninfo_id`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='NDO2DB daemon connection information';-- ------------------------------------------------------------ Table structure for table `monitor_contactgroups`--CREATE TABLE IF NOT EXISTS `monitor_contactgroups` ( `contactgroup_id` int(11) NOT NULL auto_increment, `instance_id` smallint(6) NOT NULL default '0', `config_type` smallint(6) NOT NULL default '0', `contactgroup_object_id` int(11) NOT NULL default '0', `alias` varchar(255) NOT NULL default '', PRIMARY KEY (`contactgroup_id`), UNIQUE KEY `instance_id` (`instance_id`,`config_type`,`contactgroup_object_id`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Contactgroup definitions';-- ------------------------------------------------------------ Table structure for table `monitor_contactgroup_members`--CREATE TABLE IF NOT EXISTS `monitor_contactgroup_members` ( `contactgroup_member_id` int(11) NOT NULL auto_increment, `instance_id` smallint(6) NOT NULL default '0', `contactgroup_id` int(11) NOT NULL default '0', `contact_object_id` int(11) NOT NULL default '0', PRIMARY KEY (`contactgroup_member_id`), UNIQUE KEY `instance_id` (`contactgroup_id`,`contact_object_id`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Contactgroup members';-- ------------------------------------------------------------ Table structure for table `monitor_contactnotificationmethods`--CREATE TABLE IF NOT EXISTS `monitor_contactnotificationmethods` ( `contactnotificationmethod_id` int(11) NOT NULL auto_increment, `instance_id` smallint(6) NOT NULL default '0', `contactnotification_id` int(11) NOT NULL default '0', `start_time` datetime NOT NULL default '0000-00-00 00:00:00', `start_time_usec` int(11) NOT NULL default '0', `end_time` datetime NOT NULL default '0000-00-00 00:00:00', `end_time_usec` int(11) NOT NULL default '0', `command_object_id` int(11) NOT NULL default '0', `command_args` varchar(255) NOT NULL default '', PRIMARY KEY (`contactnotificationmethod_id`), UNIQUE KEY `instance_id` (`instance_id`,`contactnotification_id`,`start_time`,`start_time_usec`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Historical record of contact notification methods';-- ------------------------------------------------------------ Table structure for table `monitor_contactnotifications`--CREATE TABLE IF NOT EXISTS `monitor_contactnotifications` ( `contactnotification_id` int(11) NOT NULL auto_increment, `instance_id` smallint(6) NOT NULL default '0', `notification_id` int(11) NOT NULL default '0', `contact_object_id` int(11) NOT NULL default '0', `start_time` datetime NOT NULL default '0000-00-00 00:00:00', `start_time_usec` int(11) NOT NULL default '0', `end_time` datetime NOT NULL default '0000-00-00 00:00:00', `end_time_usec` int(11) NOT NULL default '0', PRIMARY KEY (`contactnotification_id`), UNIQUE KEY `instance_id` (`instance_id`,`contact_object_id`,`start_time`,`start_time_usec`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Historical record of contact notifications';-- ------------------------------------------------------------ Table structure for table `monitor_contacts`--CREATE TABLE IF NOT EXISTS `monitor_contacts` ( `contact_id` int(11) NOT NULL auto_increment, `instance_id` smallint(6) NOT NULL default '0', `config_type` smallint(6) NOT NULL default '0', `contact_object_id` int(11) NOT NULL default '0', `alias` varchar(64) NOT NULL default '', `email_address` varchar(255) NOT NULL default '', `pager_address` varchar(64) NOT NULL default '', `minimum_importance` int(11) NOT NULL default '0', `host_timeperiod_object_id` int(11) NOT NULL default '0', `service_timeperiod_object_id` int(11) NOT NULL default '0', `host_notifications_enabled` smallint(6) NOT NULL default '0', `service_notifications_enabled` smallint(6) NOT NULL default '0', `can_submit_commands` smallint(6) NOT NULL default '0', `notify_service_recovery` smallint(6) NOT NULL default '0', `notify_service_warning` smallint(6) NOT NULL default '0', `notify_service_unknown` smallint(6) NOT NULL default '0', `notify_service_critical` smallint(6) NOT NULL default '0', `notify_service_flapping` smallint(6) NOT NULL default '0', `notify_service_downtime` smallint(6) NOT NULL default '0', `notify_host_recovery` smallint(6) NOT NULL default '0', `notify_host_down` smallint(6) NOT NULL default '0', `notify_host_unreachable` smallint(6) NOT NULL default '0', `notify_host_flapping` smallint(6) NOT NULL default '0', `notify_host_downtime` smallint(6) NOT NULL default '0', PRIMARY KEY (`contact_id`), UNIQUE KEY `instance_id` (`instance_id`,`config_type`,`contact_object_id`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Contact definitions';-- ------------------------------------------------------------ Table structure for table `monitor_contactstatus`--CREATE TABLE IF NOT EXISTS `monitor_contactstatus` ( `contactstatus_id` int(11) NOT NULL auto_increment, `instance_id` smallint(6) NOT NULL default '0', `contact_object_id` int(11) NOT NULL default '0', `status_update_time` datetime NOT NULL default '0000-00-00 00:00:00', `host_notifications_enabled` smallint(6) NOT NULL default '0', `service_notifications_enabled` smallint(6) NOT NULL default '0', `last_host_notification` datetime NOT NULL default '0000-00-00 00:00:00', `last_service_notification` datetime NOT NULL default '0000-00-00 00:00:00', `modified_attributes` int(11) NOT NULL default '0', `modified_host_attributes` int(11) NOT NULL default '0', `modified_service_attributes` int(11) NOT NULL default '0', PRIMARY KEY (`contactstatus_id`), UNIQUE KEY `contact_object_id` (`contact_object_id`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Contact status';-- ------------------------------------------------------------ Table structure for table `monitor_contact_addresses`--CREATE TABLE IF NOT EXISTS `monitor_contact_addresses` ( `contact_address_id` int(11) NOT NULL auto_increment, `instance_id` smallint(6) NOT NULL default '0', `contact_id` int(11) NOT NULL default '0', `address_number` smallint(6) NOT NULL default '0', `address` varchar(255) NOT NULL default '', PRIMARY KEY (`contact_address_id`), UNIQUE KEY `contact_id` (`contact_id`,`address_number`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Contact addresses';-- ------------------------------------------------------------ Table structure for table `monitor_contact_notificationcommands`--CREATE TABLE IF NOT EXISTS `monitor_contact_notificationcommands` ( `contact_notificationcommand_id` int(11) NOT NULL auto_increment, `instance_id` smallint(6) NOT NULL default '0', `contact_id` int(11) NOT NULL default '0', `notification_type` smallint(6) NOT NULL default '0', `command_object_id` int(11) NOT NULL default '0', `command_args` varchar(255) NOT NULL default '', PRIMARY KEY (`contact_notificationcommand_id`), UNIQUE KEY `contact_id` (`contact_id`,`notification_type`,`command_object_id`,`command_args`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Contact host and service notification commands';-- ------------------------------------------------------------ Table structure for table `monitor_customvariables`--CREATE TABLE IF NOT EXISTS `monitor_customvariables` ( `customvariable_id` int(11) NOT NULL auto_increment, `instance_id` smallint(6) NOT NULL default '0', `object_id` int(11) NOT NULL default '0', `config_type` smallint(6) NOT NULL default '0', `has_been_modified` smallint(6) NOT NULL default '0', `varname` varchar(255) NOT NULL default '', `varvalue` varchar(255) NOT NULL default '', PRIMARY KEY (`customvariable_id`), UNIQUE KEY `object_id_2` (`object_id`,`config_type`,`varname`), KEY `varname` (`varname`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Custom variables';-- ------------------------------------------------------------ Table structure for table `monitor_customvariablestatus`--CREATE TABLE IF NOT EXISTS `monitor_customvariablestatus` ( `customvariablestatus_id` int(11) NOT NULL auto_increment, `instance_id` smallint(6) NOT NULL default '0', `object_id` int(11) NOT NULL default '0', `status_update_time` datetime NOT NULL default '0000-00-00 00:00:00', `has_been_modified` smallint(6) NOT NULL default '0', `varname` varchar(255) NOT NULL default '', `varvalue` varchar(255) NOT NULL default '', PRIMARY KEY (`customvariablestatus_id`), UNIQUE KEY `object_id_2` (`object_id`,`varname`), KEY `varname` (`varname`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Custom variable status information';-- ------------------------------------------------------------ Table structure for table `monitor_dbversion`--CREATE TABLE IF NOT EXISTS `monitor_dbversion` ( `name` varchar(10) NOT NULL default '', `version` varchar(10) NOT NULL default '') ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;-- ------------------------------------------------------------ Table structure for table `monitor_downtimehistory`--CREATE TABLE IF NOT EXISTS `monitor_downtimehistory` ( `downtimehistory_id` int(11) NOT NULL auto_increment, `instance_id` smallint(6) NOT NULL default '0', `downtime_type` smallint(6) NOT NULL default '0', `object_id` int(11) NOT NULL default '0', `entry_time` datetime NOT NULL default '0000-00-00 00:00:00', `author_name` varchar(64) NOT NULL default '', `comment_data` varchar(255) NOT NULL default '', `internal_downtime_id` int(11) NOT NULL default '0', `triggered_by_id` int(11) NOT NULL default '0', `is_fixed` smallint(6) NOT NULL default '0', `duration` smallint(6) NOT NULL default '0', `scheduled_start_time` datetime NOT NULL default '0000-00-00 00:00:00', `scheduled_end_time` datetime NOT NULL default '0000-00-00 00:00:00', `was_started` smallint(6) NOT NULL default '0', `actual_start_time` datetime NOT NULL default '0000-00-00 00:00:00', `actual_start_time_usec` int(11) NOT NULL default '0', `actual_end_time` datetime NOT NULL default '0000-00-00 00:00:00', `actual_end_time_usec` int(11) NOT NULL default '0', `was_cancelled` smallint(6) NOT NULL default '0', PRIMARY KEY (`downtimehistory_id`), UNIQUE KEY `instance_id` (`instance_id`,`object_id`,`entry_time`,`internal_downtime_id`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Historical scheduled host and service downtime';-- ------------------------------------------------------------ Table structure for table `monitor_eventhandlers`--CREATE TABLE IF NOT EXISTS `monitor_eventhandlers` ( `eventhandler_id` int(11) NOT NULL auto_increment, `instance_id` smallint(6) NOT NULL default '0', `eventhandler_type` smallint(6) NOT NULL default '0', `object_id` int(11) NOT NULL default '0', `state` smallint(6) NOT NULL default '0', `state_type` smallint(6) NOT NULL default '0', `start_time` datetime NOT NULL default '0000-00-00 00:00:00', `start_time_usec` int(11) NOT NULL default '0', `end_time` datetime NOT NULL default '0000-00-00 00:00:00', `end_time_usec` int(11) NOT NULL default '0', `command_object_id` int(11) NOT NULL default '0', `command_args` varchar(255) NOT NULL default '', `command_line` varchar(255) NOT NULL default '', `timeout` smallint(6) NOT NULL default '0', `early_timeout` smallint(6) NOT NULL default '0', `execution_time` double NOT NULL default '0', `return_code` smallint(6) NOT NULL default '0', `output` varchar(255) NOT NULL default '', `long_output` TEXT NOT NULL default '', PRIMARY KEY (`eventhandler_id`), UNIQUE KEY `instance_id` (`instance_id`,`object_id`,`start_time`,`start_time_usec`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Historical host and service event handlers';-- ------------------------------------------------------------ Table structure for table `monitor_externalcommands`--CREATE TABLE IF NOT EXISTS `monitor_externalcommands` ( `externalcommand_id` int(11) NOT NULL auto_increment, `instance_id` smallint(6) NOT NULL default '0', `entry_time` datetime NOT NULL default '0000-00-00 00:00:00', `command_type` smallint(6) NOT NULL default '0', `command_name` varchar(128) NOT NULL default '', `command_args` varchar(255) NOT NULL default '', PRIMARY KEY (`externalcommand_id`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Historical record of processed external commands';-- ------------------------------------------------------------ Table structure for table `monitor_flappinghistory`--CREATE TABLE IF NOT EXISTS `monitor_flappinghistory` ( `flappinghistory_id` int(11) NOT NULL auto_increment, `instance_id` smallint(6) NOT NULL default '0', `event_time` datetime NOT NULL default '0000-00-00 00:00:00', `event_time_usec` int(11) NOT NULL default '0', `event_type` smallint(6) NOT NULL default '0', `reason_type` smallint(6) NOT NULL default '0', `flapping_type` smallint(6) NOT NULL default '0', `object_id` int(11) NOT NULL default '0', `percent_state_change` double NOT NULL default '0', `low_threshold` double NOT NULL default '0', `high_threshold` double NOT NULL default '0', `comment_time` datetime NOT NULL default '0000-00-00 00:00:00', `internal_comment_id` int(11) NOT NULL default '0', PRIMARY KEY (`flappinghistory_id`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Current and historical record of host and service flapping';-- ------------------------------------------------------------ Table structure for table `monitor_hostchecks`--CREATE TABLE IF NOT EXISTS `monitor_hostchecks` ( `hostcheck_id` int(11) NOT NULL auto_increment, `instance_id` smallint(6) NOT NULL default '0', `host_object_id` int(11) NOT NULL default '0', `check_type` smallint(6) NOT NULL default '0', `is_raw_check` smallint(6) NOT NULL default '0', `current_check_attempt` smallint(6) NOT NULL default '0', `max_check_attempts` smallint(6) NOT NULL default '0', `state` smallint(6) NOT NULL default '0', `state_type` smallint(6) NOT NULL default '0', `start_time` datetime NOT NULL default '0000-00-00 00:00:00', `start_time_usec` int(11) NOT NULL default '0', `end_time` datetime NOT NULL default '0000-00-00 00:00:00', `end_time_usec` int(11) NOT NULL default '0', `command_object_id` int(11) NOT NULL default '0', `command_args` varchar(255) NOT NULL default '', `command_line` varchar(255) NOT NULL default '', `timeout` smallint(6) NOT NULL default '0', `early_timeout` smallint(6) NOT NULL default '0', `execution_time` double NOT NULL default '0', `latency` double NOT NULL default '0', `return_code` smallint(6) NOT NULL default '0', `output` varchar(255) NOT NULL default '', `long_output` TEXT NOT NULL default '', `perfdata` TEXT NOT NULL default '', PRIMARY KEY (`hostcheck_id`), UNIQUE KEY `instance_id` (`instance_id`,`host_object_id`,`start_time`,`start_time_usec`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Historical host checks';-- ------------------------------------------------------------ Table structure for table `monitor_hostdependencies`--CREATE TABLE IF NOT EXISTS `monitor_hostdependencies` ( `hostdependency_id` int(11) NOT NULL auto_increment, `instance_id` smallint(6) NOT NULL default '0', `config_type` smallint(6) NOT NULL default '0', `host_object_id` int(11) NOT NULL default '0', `dependent_host_object_id` int(11) NOT NULL default '0', `dependency_type` smallint(6) NOT NULL default '0', `inherits_parent` smallint(6) NOT NULL default '0', `timeperiod_object_id` int(11) NOT NULL default '0', `fail_on_up` smallint(6) NOT NULL default '0', `fail_on_down` smallint(6) NOT NULL default '0', `fail_on_unreachable` smallint(6) NOT NULL default '0', PRIMARY KEY (`hostdependency_id`), UNIQUE KEY `instance_id` (`instance_id`,`config_type`,`host_object_id`,`dependent_host_object_id`,`dependency_type`,`inherits_parent`,`fail_on_up`,`fail_on_down`,`fail_on_unreachable`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Host dependency definitions';-- ------------------------------------------------------------ Table structure for table `monitor_hostescalations`--CREATE TABLE IF NOT EXISTS `monitor_hostescalations` ( `hostescalation_id` int(11) NOT NULL auto_increment, `instance_id` smallint(6) NOT NULL default '0', `config_type` smallint(6) NOT NULL default '0', `host_object_id` int(11) NOT NULL default '0', `timeperiod_object_id` int(11) NOT NULL default '0', `first_notification` smallint(6) NOT NULL default '0', `last_notification` smallint(6) NOT NULL default '0', `notification_interval` double NOT NULL default '0', `escalate_on_recovery` smallint(6) NOT NULL default '0', `escalate_on_down` smallint(6) NOT NULL default '0', `escalate_on_unreachable` smallint(6) NOT NULL default '0', PRIMARY KEY (`hostescalation_id`), UNIQUE KEY `instance_id` (`instance_id`,`config_type`,`host_object_id`,`timeperiod_object_id`,`first_notification`,`last_notification`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Host escalation definitions';-- ------------------------------------------------------------ Table structure for table `monitor_hostescalation_contactgroups`--CREATE TABLE IF NOT EXISTS `monitor_hostescalation_contactgroups` ( `hostescalation_contactgroup_id` int(11) NOT NULL auto_increment, `instance_id` smallint(6) NOT NULL default '0', `hostescalation_id` int(11) NOT NULL default '0', `contactgroup_object_id` int(11) NOT NULL default '0', PRIMARY KEY (`hostescalation_contactgroup_id`), UNIQUE KEY `instance_id` (`hostescalation_id`,`contactgroup_object_id`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Host escalation contact groups';-- ------------------------------------------------------------ Table structure for table `monitor_hostescalation_contacts`--CREATE TABLE IF NOT EXISTS `monitor_hostescalation_contacts` ( `hostescalation_contact_id` int(11) NOT NULL auto_increment, `instance_id` smallint(6) NOT NULL default '0', `hostescalation_id` int(11) NOT NULL default '0', `contact_object_id` int(11) NOT NULL default '0', PRIMARY KEY (`hostescalation_contact_id`), UNIQUE KEY `instance_id` (`instance_id`,`hostescalation_id`,`contact_object_id`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ;-- ------------------------------------------------------------ Table structure for table `monitor_hostgroups`--CREATE TABLE IF NOT EXISTS `monitor_hostgroups` ( `hostgroup_id` int(11) NOT NULL auto_increment, `instance_id` smallint(6) NOT NULL default '0', `config_type` smallint(6) NOT NULL default '0', `hostgroup_object_id` int(11) NOT NULL default '0', `alias` varchar(255) NOT NULL default '', PRIMARY KEY (`hostgroup_id`), UNIQUE KEY `instance_id` (`instance_id`,`hostgroup_object_id`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Hostgroup definitions';-- ------------------------------------------------------------ Table structure for table `monitor_hostgroup_members`--CREATE TABLE IF NOT EXISTS `monitor_hostgroup_members` ( `hostgroup_member_id` int(11) NOT NULL auto_increment, `instance_id` smallint(6) NOT NULL default '0', `hostgroup_id` int(11) NOT NULL default '0', `host_object_id` int(11) NOT NULL default '0', PRIMARY KEY (`hostgroup_member_id`), UNIQUE KEY `instance_id` (`hostgroup_id`,`host_object_id`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Hostgroup members';-- ------------------------------------------------------------ Table structure for table `monitor_hosts`--CREATE TABLE IF NOT EXISTS `monitor_hosts` ( `host_id` int(11) NOT NULL auto_increment, `instance_id` smallint(6) NOT NULL default '0', `config_type` smallint(6) NOT NULL default '0', `host_object_id` int(11) NOT NULL default '0', `alias` varchar(64) NOT NULL default '', `display_name` varchar(64) NOT NULL default '', `address` varchar(128) NOT NULL default '', `importance` int(11) NOT NULL default '0', `check_command_object_id` int(11) NOT NULL default '0', `check_command_args` varchar(255) NOT NULL default '', `eventhandler_command_object_id` int(11) NOT NULL default '0', `eventhandler_command_args` varchar(255) NOT NULL default '', `notification_timeperiod_object_id` int(11) NOT NULL default '0', `check_timeperiod_object_id` int(11) NOT NULL default '0', `failure_prediction_options` varchar(64) NOT NULL default '', `check_interval` double NOT NULL default '0', `retry_interval` double NOT NULL default '0', `max_check_attempts` smallint(6) NOT NULL default '0', `first_notification_delay` double NOT NULL default '0', `notification_interval` double NOT NULL default '0', `notify_on_down` smallint(6) NOT NULL default '0', `notify_on_unreachable` smallint(6) NOT NULL default '0', `notify_on_recovery` smallint(6) NOT NULL default '0', `notify_on_flapping` smallint(6) NOT NULL default '0', `notify_on_downtime` smallint(6) NOT NULL default '0', `stalk_on_up` smallint(6) NOT NULL default '0', `stalk_on_down` smallint(6) NOT NULL default '0', `stalk_on_unreachable` smallint(6) NOT NULL default '0', `flap_detection_enabled` smallint(6) NOT NULL default '0', `flap_detection_on_up` smallint(6) NOT NULL default '0', `flap_detection_on_down` smallint(6) NOT NULL default '0', `flap_detection_on_unreachable` smallint(6) NOT NULL default '0', `low_flap_threshold` double NOT NULL default '0', `high_flap_threshold` double NOT NULL default '0', `process_performance_data` smallint(6) NOT NULL default '0', `freshness_checks_enabled` smallint(6) NOT NULL default '0', `freshness_threshold` smallint(6) NOT NULL default '0', `passive_checks_enabled` smallint(6) NOT NULL default '0', `event_handler_enabled` smallint(6) NOT NULL default '0', `active_checks_enabled` smallint(6) NOT NULL default '0', `retain_status_information` smallint(6) NOT NULL default '0', `retain_nonstatus_information` smallint(6) NOT NULL default '0', `notifications_enabled` smallint(6) NOT NULL default '0', `obsess_over_host` smallint(6) NOT NULL default '0', `failure_prediction_enabled` smallint(6) NOT NULL default '0', `notes` varchar(255) NOT NULL default '', `notes_url` varchar(255) NOT NULL default '', `action_url` varchar(255) NOT NULL default '', `icon_image` varchar(255) NOT NULL default '', `icon_image_alt` varchar(255) NOT NULL default '', `vrml_image` varchar(255) NOT NULL default '', `statusmap_image` varchar(255) NOT NULL default '', `have_2d_coords` smallint(6) NOT NULL default '0', `x_2d` smallint(6) NOT NULL default '0', `y_2d` smallint(6) NOT NULL default '0', `have_3d_coords` smallint(6) NOT NULL default '0', `x_3d` double NOT NULL default '0', `y_3d` double NOT NULL default '0', `z_3d` double NOT NULL default '0', PRIMARY KEY (`host_id`), UNIQUE KEY `instance_id` (`instance_id`,`config_type`,`host_object_id`), KEY `host_object_id` (`host_object_id`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Host definitions';-- ------------------------------------------------------------ Table structure for table `monitor_hoststatus`--CREATE TABLE IF NOT EXISTS `monitor_hoststatus` ( `hoststatus_id` int(11) NOT NULL auto_increment, `instance_id` smallint(6) NOT NULL default '0', `host_object_id` int(11) NOT NULL default '0', `status_update_time` datetime NOT NULL default '0000-00-00 00:00:00', `output` varchar(255) NOT NULL default '', `long_output` TEXT NOT NULL default '', `perfdata` TEXT NOT NULL default '', `current_state` smallint(6) NOT NULL default '0', `has_been_checked` smallint(6) NOT NULL default '0', `should_be_scheduled` smallint(6) NOT NULL default '0', `current_check_attempt` smallint(6) NOT NULL default '0', `max_check_attempts` smallint(6) NOT NULL default '0', `last_check` datetime NOT NULL default '0000-00-00 00:00:00', `next_check` datetime NOT NULL default '0000-00-00 00:00:00', `check_type` smallint(6) NOT NULL default '0', `last_state_change` datetime NOT NULL default '0000-00-00 00:00:00', `last_hard_state_change` datetime NOT NULL default '0000-00-00 00:00:00', `last_hard_state` smallint(6) NOT NULL default '0', `last_time_up` datetime NOT NULL default '0000-00-00 00:00:00', `last_time_down` datetime NOT NULL default '0000-00-00 00:00:00', `last_time_unreachable` datetime NOT NULL default '0000-00-00 00:00:00', `state_type` smallint(6) NOT NULL default '0', `last_notification` datetime NOT NULL default '0000-00-00 00:00:00', `next_notification` datetime NOT NULL default '0000-00-00 00:00:00', `no_more_notifications` smallint(6) NOT NULL default '0', `notifications_enabled` smallint(6) NOT NULL default '0', `problem_has_been_acknowledged` smallint(6) NOT NULL default '0', `acknowledgement_type` smallint(6) NOT NULL default '0', `current_notification_number` smallint(6) NOT NULL default '0', `passive_checks_enabled` smallint(6) NOT NULL default '0', `active_checks_enabled` smallint(6) NOT NULL default '0', `event_handler_enabled` smallint(6) NOT NULL default '0', `flap_detection_enabled` smallint(6) NOT NULL default '0', `is_flapping` smallint(6) NOT NULL default '0', `percent_state_change` double NOT NULL default '0', `latency` double NOT NULL default '0', `execution_time` double NOT NULL default '0', `scheduled_downtime_depth` smallint(6) NOT NULL default '0', `failure_prediction_enabled` smallint(6) NOT NULL default '0', `process_performance_data` smallint(6) NOT NULL default '0', `obsess_over_host` smallint(6) NOT NULL default '0', `modified_host_attributes` int(11) NOT NULL default '0', `event_handler` varchar(255) NOT NULL default '', `check_command` varchar(255) NOT NULL default '', `normal_check_interval` double NOT NULL default '0', `retry_check_interval` double NOT NULL default '0', `check_timeperiod_object_id` int(11) NOT NULL default '0', PRIMARY KEY (`hoststatus_id`), UNIQUE KEY `object_id` (`host_object_id`), KEY `instance_id` (`instance_id`), KEY `status_update_time` (`status_update_time`), KEY `current_state` (`current_state`), KEY `check_type` (`check_type`), KEY `state_type` (`state_type`), KEY `last_state_change` (`last_state_change`), KEY `notifications_enabled` (`notifications_enabled`), KEY `problem_has_been_acknowledged` (`problem_has_been_acknowledged`), KEY `active_checks_enabled` (`active_checks_enabled`), KEY `passive_checks_enabled` (`passive_checks_enabled`), KEY `event_handler_enabled` (`event_handler_enabled`), KEY `flap_detection_enabled` (`flap_detection_enabled`), KEY `is_flapping` (`is_flapping`), KEY `percent_state_change` (`percent_state_change`), KEY `latency` (`latency`), KEY `execution_time` (`execution_time`), KEY `scheduled_downtime_depth` (`scheduled_downtime_depth`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Current host status information';-- ------------------------------------------------------------ Table structure for table `monitor_host_contactgroups`--CREATE TABLE IF NOT EXISTS `monitor_host_contactgroups` ( `host_contactgroup_id` int(11) NOT NULL auto_increment, `instance_id` smallint(6) NOT NULL default '0', `host_id` int(11) NOT NULL default '0', `contactgroup_object_id` int(11) NOT NULL default '0', PRIMARY KEY (`host_contactgroup_id`), UNIQUE KEY `instance_id` (`host_id`,`contactgroup_object_id`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Host contact groups';-- ------------------------------------------------------------ Table structure for table `monitor_host_contacts`--CREATE TABLE IF NOT EXISTS `monitor_host_contacts` ( `host_contact_id` int(11) NOT NULL auto_increment, `instance_id` smallint(6) NOT NULL default '0', `host_id` int(11) NOT NULL default '0', `contact_object_id` int(11) NOT NULL default '0', PRIMARY KEY (`host_contact_id`), UNIQUE KEY `instance_id` (`instance_id`,`host_id`,`contact_object_id`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ;-- ------------------------------------------------------------ Table structure for table `monitor_host_parenthosts`--CREATE TABLE IF NOT EXISTS `monitor_host_parenthosts` ( `host_parenthost_id` int(11) NOT NULL auto_increment, `instance_id` smallint(6) NOT NULL default '0', `host_id` int(11) NOT NULL default '0', `parent_host_object_id` int(11) NOT NULL default '0', PRIMARY KEY (`host_parenthost_id`), UNIQUE KEY `instance_id` (`host_id`,`parent_host_object_id`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Parent hosts';-- ------------------------------------------------------------ Table structure for table `monitor_instances`--CREATE TABLE IF NOT EXISTS `monitor_instances` ( `instance_id` smallint(6) NOT NULL auto_increment, `instance_name` varchar(64) NOT NULL default '', `instance_description` varchar(128) NOT NULL default '', PRIMARY KEY (`instance_id`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Location names of various Nagios installations';-- ------------------------------------------------------------ Table structure for table `monitor_logentries`--CREATE TABLE IF NOT EXISTS `monitor_logentries` ( `logentry_id` int(11) NOT NULL auto_increment, `instance_id` int(11) NOT NULL default '0', `logentry_time` datetime NOT NULL default '0000-00-00 00:00:00', `entry_time` datetime NOT NULL default '0000-00-00 00:00:00', `entry_time_usec` int(11) NOT NULL default '0', `logentry_type` int(11) NOT NULL default '0', `logentry_data` varchar(255) NOT NULL default '', `realtime_data` smallint(6) NOT NULL default '0', `inferred_data_extracted` smallint(6) NOT NULL default '0', PRIMARY KEY (`logentry_id`), UNIQUE KEY `instance_id` (`instance_id`, `logentry_time`,`entry_time`,`entry_time_usec`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Historical record of log entries';-- ------------------------------------------------------------ Table structure for table `monitor_notifications`--CREATE TABLE IF NOT EXISTS `monitor_notifications` ( `notification_id` int(11) NOT NULL auto_increment, `instance_id` smallint(6) NOT NULL default '0', `notification_type` smallint(6) NOT NULL default '0', `notification_reason` smallint(6) NOT NULL default '0', `object_id` int(11) NOT NULL default '0', `start_time` datetime NOT NULL default '0000-00-00 00:00:00', `start_time_usec` int(11) NOT NULL default '0', `end_time` datetime NOT NULL default '0000-00-00 00:00:00', `end_time_usec` int(11) NOT NULL default '0', `state` smallint(6) NOT NULL default '0', `output` varchar(255) NOT NULL default '', `long_output` TEXT NOT NULL default '', `escalated` smallint(6) NOT NULL default '0', `contacts_notified` smallint(6) NOT NULL default '0', PRIMARY KEY (`notification_id`), UNIQUE KEY `instance_id` (`instance_id`,`object_id`,`start_time`,`start_time_usec`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Historical record of host and service notifications';-- ------------------------------------------------------------ Table structure for table `monitor_objects`--CREATE TABLE IF NOT EXISTS `monitor_objects` ( `object_id` int(11) NOT NULL auto_increment, `instance_id` smallint(6) NOT NULL default '0', `objecttype_id` smallint(6) NOT NULL default '0', `name1` varchar(128) NOT NULL default '', `name2` varchar(128) default NULL, `is_active` smallint(6) NOT NULL default '0', PRIMARY KEY (`object_id`), KEY `objecttype_id` (`objecttype_id`,`name1`,`name2`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Current and historical objects of all kinds';-- ------------------------------------------------------------ Table structure for table `monitor_processevents`--CREATE TABLE IF NOT EXISTS `monitor_processevents` ( `processevent_id` int(11) NOT NULL auto_increment, `instance_id` smallint(6) NOT NULL default '0', `event_type` smallint(6) NOT NULL default '0', `event_time` datetime NOT NULL default '0000-00-00 00:00:00', `event_time_usec` int(11) NOT NULL default '0', `process_id` int(11) NOT NULL default '0', `program_name` varchar(16) NOT NULL default '', `program_version` varchar(20) NOT NULL default '', `program_date` varchar(10) NOT NULL default '', PRIMARY KEY (`processevent_id`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Historical Nagios process events';-- ------------------------------------------------------------ Table structure for table `monitor_programstatus`--CREATE TABLE IF NOT EXISTS `monitor_programstatus` ( `programstatus_id` int(11) NOT NULL auto_increment, `instance_id` smallint(6) NOT NULL default '0', `status_update_time` datetime NOT NULL default '0000-00-00 00:00:00', `program_start_time` datetime NOT NULL default '0000-00-00 00:00:00', `program_end_time` datetime NOT NULL default '0000-00-00 00:00:00', `is_currently_running` smallint(6) NOT NULL default '0', `process_id` int(11) NOT NULL default '0', `daemon_mode` smallint(6) NOT NULL default '0', `last_command_check` datetime NOT NULL default '0000-00-00 00:00:00', `last_log_rotation` datetime NOT NULL default '0000-00-00 00:00:00', `notifications_enabled` smallint(6) NOT NULL default '0', `active_service_checks_enabled` smallint(6) NOT NULL default '0', `passive_service_checks_enabled` smallint(6) NOT NULL default '0', `active_host_checks_enabled` smallint(6) NOT NULL default '0', `passive_host_checks_enabled` smallint(6) NOT NULL default '0', `event_handlers_enabled` smallint(6) NOT NULL default '0', `flap_detection_enabled` smallint(6) NOT NULL default '0', `failure_prediction_enabled` smallint(6) NOT NULL default '0', `process_performance_data` smallint(6) NOT NULL default '0', `obsess_over_hosts` smallint(6) NOT NULL default '0', `obsess_over_services` smallint(6) NOT NULL default '0', `modified_host_attributes` int(11) NOT NULL default '0', `modified_service_attributes` int(11) NOT NULL default '0', `global_host_event_handler` varchar(255) NOT NULL default '', `global_service_event_handler` varchar(255) NOT NULL default '', PRIMARY KEY (`programstatus_id`), UNIQUE KEY `instance_id` (`instance_id`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Current program status information';-- ------------------------------------------------------------ Table structure for table `monitor_runtimevariables`--CREATE TABLE IF NOT EXISTS `monitor_runtimevariables` ( `runtimevariable_id` int(11) NOT NULL auto_increment, `instance_id` smallint(6) NOT NULL default '0', `varname` varchar(64) NOT NULL default '', `varvalue` varchar(255) NOT NULL default '', PRIMARY KEY (`runtimevariable_id`), UNIQUE KEY `instance_id` (`instance_id`,`varname`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Runtime variables from the Nagios daemon';-- ------------------------------------------------------------ Table structure for table `monitor_scheduleddowntime`--CREATE TABLE IF NOT EXISTS `monitor_scheduleddowntime` ( `scheduleddowntime_id` int(11) NOT NULL auto_increment, `instance_id` smallint(6) NOT NULL default '0', `downtime_type` smallint(6) NOT NULL default '0', `object_id` int(11) NOT NULL default '0', `entry_time` datetime NOT NULL default '0000-00-00 00:00:00', `author_name` varchar(64) NOT NULL default '', `comment_data` varchar(255) NOT NULL default '', `internal_downtime_id` int(11) NOT NULL default '0', `triggered_by_id` int(11) NOT NULL default '0', `is_fixed` smallint(6) NOT NULL default '0', `duration` smallint(6) NOT NULL default '0', `scheduled_start_time` datetime NOT NULL default '0000-00-00 00:00:00', `scheduled_end_time` datetime NOT NULL default '0000-00-00 00:00:00', `was_started` smallint(6) NOT NULL default '0', `actual_start_time` datetime NOT NULL default '0000-00-00 00:00:00', `actual_start_time_usec` int(11) NOT NULL default '0', PRIMARY KEY (`scheduleddowntime_id`), UNIQUE KEY `instance_id` (`instance_id`,`object_id`,`entry_time`,`internal_downtime_id`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Current scheduled host and service downtime';-- ------------------------------------------------------------ Table structure for table `monitor_servicechecks`--CREATE TABLE IF NOT EXISTS `monitor_servicechecks` ( `servicecheck_id` int(11) NOT NULL auto_increment, `instance_id` smallint(6) NOT NULL default '0', `service_object_id` int(11) NOT NULL default '0', `check_type` smallint(6) NOT NULL default '0', `current_check_attempt` smallint(6) NOT NULL default '0', `max_check_attempts` smallint(6) NOT NULL default '0', `state` smallint(6) NOT NULL default '0', `state_type` smallint(6) NOT NULL default '0', `start_time` datetime NOT NULL default '0000-00-00 00:00:00', `start_time_usec` int(11) NOT NULL default '0', `end_time` datetime NOT NULL default '0000-00-00 00:00:00', `end_time_usec` int(11) NOT NULL default '0', `command_object_id` int(11) NOT NULL default '0', `command_args` varchar(255) NOT NULL default '', `command_line` varchar(255) NOT NULL default '', `timeout` smallint(6) NOT NULL default '0', `early_timeout` smallint(6) NOT NULL default '0', `execution_time` double NOT NULL default '0', `latency` double NOT NULL default '0', `return_code` smallint(6) NOT NULL default '0', `output` varchar(255) NOT NULL default '', `long_output` TEXT NOT NULL default '', `perfdata` TEXT NOT NULL default '', PRIMARY KEY (`servicecheck_id`), KEY `instance_id` (`instance_id`), KEY `service_object_id` (`service_object_id`), KEY `start_time` (`start_time`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Historical service checks';-- ------------------------------------------------------------ Table structure for table `monitor_servicedependencies`--CREATE TABLE IF NOT EXISTS `monitor_servicedependencies` ( `servicedependency_id` int(11) NOT NULL auto_increment, `instance_id` smallint(6) NOT NULL default '0', `config_type` smallint(6) NOT NULL default '0', `service_object_id` int(11) NOT NULL default '0', `dependent_service_object_id` int(11) NOT NULL default '0', `dependency_type` smallint(6) NOT NULL default '0', `inherits_parent` smallint(6) NOT NULL default '0', `timeperiod_object_id` int(11) NOT NULL default '0', `fail_on_ok` smallint(6) NOT NULL default '0', `fail_on_warning` smallint(6) NOT NULL default '0', `fail_on_unknown` smallint(6) NOT NULL default '0', `fail_on_critical` smallint(6) NOT NULL default '0', PRIMARY KEY (`servicedependency_id`), UNIQUE KEY `instance_id` (`instance_id`,`config_type`,`service_object_id`,`dependent_service_object_id`,`dependency_type`,`inherits_parent`,`fail_on_ok`,`fail_on_warning`,`fail_on_unknown`,`fail_on_critical`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Service dependency definitions';-- ------------------------------------------------------------ Table structure for table `monitor_serviceescalations`--CREATE TABLE IF NOT EXISTS `monitor_serviceescalations` ( `serviceescalation_id` int(11) NOT NULL auto_increment, `instance_id` smallint(6) NOT NULL default '0', `config_type` smallint(6) NOT NULL default '0', `service_object_id` int(11) NOT NULL default '0', `timeperiod_object_id` int(11) NOT NULL default '0', `first_notification` smallint(6) NOT NULL default '0', `last_notification` smallint(6) NOT NULL default '0', `notification_interval` double NOT NULL default '0', `escalate_on_recovery` smallint(6) NOT NULL default '0', `escalate_on_warning` smallint(6) NOT NULL default '0', `escalate_on_unknown` smallint(6) NOT NULL default '0', `escalate_on_critical` smallint(6) NOT NULL default '0', PRIMARY KEY (`serviceescalation_id`), UNIQUE KEY `instance_id` (`instance_id`,`config_type`,`service_object_id`,`timeperiod_object_id`,`first_notification`,`last_notification`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Service escalation definitions';-- ------------------------------------------------------------ Table structure for table `monitor_serviceescalation_contactgroups`--CREATE TABLE IF NOT EXISTS `monitor_serviceescalation_contactgroups` ( `serviceescalation_contactgroup_id` int(11) NOT NULL auto_increment, `instance_id` smallint(6) NOT NULL default '0', `serviceescalation_id` int(11) NOT NULL default '0', `contactgroup_object_id` int(11) NOT NULL default '0', PRIMARY KEY (`serviceescalation_contactgroup_id`), UNIQUE KEY `instance_id` (`serviceescalation_id`,`contactgroup_object_id`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Service escalation contact groups';-- ------------------------------------------------------------ Table structure for table `monitor_serviceescalation_contacts`--CREATE TABLE IF NOT EXISTS `monitor_serviceescalation_contacts` ( `serviceescalation_contact_id` int(11) NOT NULL auto_increment, `instance_id` smallint(6) NOT NULL default '0', `serviceescalation_id` int(11) NOT NULL default '0', `contact_object_id` int(11) NOT NULL default '0', PRIMARY KEY (`serviceescalation_contact_id`), UNIQUE KEY `instance_id` (`instance_id`,`serviceescalation_id`,`contact_object_id`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ;-- ------------------------------------------------------------ Table structure for table `monitor_servicegroups`--CREATE TABLE IF NOT EXISTS `monitor_servicegroups` ( `servicegroup_id` int(11) NOT NULL auto_increment, `instance_id` smallint(6) NOT NULL default '0', `config_type` smallint(6) NOT NULL default '0', `servicegroup_object_id` int(11) NOT NULL default '0', `alias` varchar(255) NOT NULL default '', PRIMARY KEY (`servicegroup_id`), UNIQUE KEY `instance_id` (`instance_id`,`config_type`,`servicegroup_object_id`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Servicegroup definitions';-- ------------------------------------------------------------ Table structure for table `monitor_servicegroup_members`--CREATE TABLE IF NOT EXISTS `monitor_servicegroup_members` ( `servicegroup_member_id` int(11) NOT NULL auto_increment, `instance_id` smallint(6) NOT NULL default '0', `servicegroup_id` int(11) NOT NULL default '0', `service_object_id` int(11) NOT NULL default '0', PRIMARY KEY (`servicegroup_member_id`), UNIQUE KEY `instance_id` (`servicegroup_id`,`service_object_id`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Servicegroup members';-- ------------------------------------------------------------ Table structure for table `monitor_services`--CREATE TABLE IF NOT EXISTS `monitor_services` ( `service_id` int(11) NOT NULL auto_increment, `instance_id` smallint(6) NOT NULL default '0', `config_type` smallint(6) NOT NULL default '0', `host_object_id` int(11) NOT NULL default '0', `service_object_id` int(11) NOT NULL default '0', `display_name` varchar(64) NOT NULL default '', `importance` int(11) NOT NULL default '0', `check_command_object_id` int(11) NOT NULL default '0', `check_command_args` varchar(255) NOT NULL default '', `eventhandler_command_object_id` int(11) NOT NULL default '0', `eventhandler_command_args` varchar(255) NOT NULL default '', `notification_timeperiod_object_id` int(11) NOT NULL default '0', `check_timeperiod_object_id` int(11) NOT NULL default '0', `failure_prediction_options` varchar(64) NOT NULL default '', `check_interval` double NOT NULL default '0', `retry_interval` double NOT NULL default '0', `max_check_attempts` smallint(6) NOT NULL default '0', `first_notification_delay` double NOT NULL default '0', `notification_interval` double NOT NULL default '0', `notify_on_warning` smallint(6) NOT NULL default '0', `notify_on_unknown` smallint(6) NOT NULL default '0', `notify_on_critical` smallint(6) NOT NULL default '0', `notify_on_recovery` smallint(6) NOT NULL default '0', `notify_on_flapping` smallint(6) NOT NULL default '0', `notify_on_downtime` smallint(6) NOT NULL default '0', `stalk_on_ok` smallint(6) NOT NULL default '0', `stalk_on_warning` smallint(6) NOT NULL default '0', `stalk_on_unknown` smallint(6) NOT NULL default '0', `stalk_on_critical` smallint(6) NOT NULL default '0', `is_volatile` smallint(6) NOT NULL default '0', `flap_detection_enabled` smallint(6) NOT NULL default '0', `flap_detection_on_ok` smallint(6) NOT NULL default '0', `flap_detection_on_warning` smallint(6) NOT NULL default '0', `flap_detection_on_unknown` smallint(6) NOT NULL default '0', `flap_detection_on_critical` smallint(6) NOT NULL default '0', `low_flap_threshold` double NOT NULL default '0', `high_flap_threshold` double NOT NULL default '0', `process_performance_data` smallint(6) NOT NULL default '0', `freshness_checks_enabled` smallint(6) NOT NULL default '0', `freshness_threshold` smallint(6) NOT NULL default '0', `passive_checks_enabled` smallint(6) NOT NULL default '0', `event_handler_enabled` smallint(6) NOT NULL default '0', `active_checks_enabled` smallint(6) NOT NULL default '0', `retain_status_information` smallint(6) NOT NULL default '0', `retain_nonstatus_information` smallint(6) NOT NULL default '0', `notifications_enabled` smallint(6) NOT NULL default '0', `obsess_over_service` smallint(6) NOT NULL default '0', `failure_prediction_enabled` smallint(6) NOT NULL default '0', `notes` varchar(255) NOT NULL default '', `notes_url` varchar(255) NOT NULL default '', `action_url` varchar(255) NOT NULL default '', `icon_image` varchar(255) NOT NULL default '', `icon_image_alt` varchar(255) NOT NULL default '', PRIMARY KEY (`service_id`), UNIQUE KEY `instance_id` (`instance_id`,`config_type`,`service_object_id`), KEY `service_object_id` (`service_object_id`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Service definitions';-- ------------------------------------------------------------ Table structure for table `monitor_servicestatus`--CREATE TABLE IF NOT EXISTS `monitor_servicestatus` ( `servicestatus_id` int(11) NOT NULL auto_increment, `instance_id` smallint(6) NOT NULL default '0', `service_object_id` int(11) NOT NULL default '0', `status_update_time` datetime NOT NULL default '0000-00-00 00:00:00', `output` varchar(255) NOT NULL default '', `long_output` TEXT NOT NULL default '', `perfdata` TEXT NOT NULL default '', `current_state` smallint(6) NOT NULL default '0', `has_been_checked` smallint(6) NOT NULL default '0', `should_be_scheduled` smallint(6) NOT NULL default '0', `current_check_attempt` smallint(6) NOT NULL default '0', `max_check_attempts` smallint(6) NOT NULL default '0', `last_check` datetime NOT NULL default '0000-00-00 00:00:00', `next_check` datetime NOT NULL default '0000-00-00 00:00:00', `check_type` smallint(6) NOT NULL default '0', `last_state_change` datetime NOT NULL default '0000-00-00 00:00:00', `last_hard_state_change` datetime NOT NULL default '0000-00-00 00:00:00', `last_hard_state` smallint(6) NOT NULL default '0', `last_time_ok` datetime NOT NULL default '0000-00-00 00:00:00', `last_time_warning` datetime NOT NULL default '0000-00-00 00:00:00', `last_time_unknown` datetime NOT NULL default '0000-00-00 00:00:00', `last_time_critical` datetime NOT NULL default '0000-00-00 00:00:00', `state_type` smallint(6) NOT NULL default '0', `last_notification` datetime NOT NULL default '0000-00-00 00:00:00', `next_notification` datetime NOT NULL default '0000-00-00 00:00:00', `no_more_notifications` smallint(6) NOT NULL default '0', `notifications_enabled` smallint(6) NOT NULL default '0', `problem_has_been_acknowledged` smallint(6) NOT NULL default '0', `acknowledgement_type` smallint(6) NOT NULL default '0', `current_notification_number` smallint(6) NOT NULL default '0', `passive_checks_enabled` smallint(6) NOT NULL default '0', `active_checks_enabled` smallint(6) NOT NULL default '0', `event_handler_enabled` smallint(6) NOT NULL default '0', `flap_detection_enabled` smallint(6) NOT NULL default '0', `is_flapping` smallint(6) NOT NULL default '0', `percent_state_change` double NOT NULL default '0', `latency` double NOT NULL default '0', `execution_time` double NOT NULL default '0', `scheduled_downtime_depth` smallint(6) NOT NULL default '0', `failure_prediction_enabled` smallint(6) NOT NULL default '0', `process_performance_data` smallint(6) NOT NULL default '0', `obsess_over_service` smallint(6) NOT NULL default '0', `modified_service_attributes` int(11) NOT NULL default '0', `event_handler` varchar(255) NOT NULL default '', `check_command` varchar(255) NOT NULL default '', `normal_check_interval` double NOT NULL default '0', `retry_check_interval` double NOT NULL default '0', `check_timeperiod_object_id` int(11) NOT NULL default '0', PRIMARY KEY (`servicestatus_id`), UNIQUE KEY `object_id` (`service_object_id`), KEY `instance_id` (`instance_id`), KEY `status_update_time` (`status_update_time`), KEY `current_state` (`current_state`), KEY `check_type` (`check_type`), KEY `state_type` (`state_type`), KEY `last_state_change` (`last_state_change`), KEY `notifications_enabled` (`notifications_enabled`), KEY `problem_has_been_acknowledged` (`problem_has_been_acknowledged`), KEY `active_checks_enabled` (`active_checks_enabled`), KEY `passive_checks_enabled` (`passive_checks_enabled`), KEY `event_handler_enabled` (`event_handler_enabled`), KEY `flap_detection_enabled` (`flap_detection_enabled`), KEY `is_flapping` (`is_flapping`), KEY `percent_state_change` (`percent_state_change`), KEY `latency` (`latency`), KEY `execution_time` (`execution_time`), KEY `scheduled_downtime_depth` (`scheduled_downtime_depth`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Current service status information';-- ------------------------------------------------------------ Table structure for table `monitor_service_contactgroups`--CREATE TABLE IF NOT EXISTS `monitor_service_contactgroups` ( `service_contactgroup_id` int(11) NOT NULL auto_increment, `instance_id` smallint(6) NOT NULL default '0', `service_id` int(11) NOT NULL default '0', `contactgroup_object_id` int(11) NOT NULL default '0', PRIMARY KEY (`service_contactgroup_id`), UNIQUE KEY `instance_id` (`service_id`,`contactgroup_object_id`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Service contact groups';-- ------------------------------------------------------------ Table structure for table `monitor_service_contacts`--CREATE TABLE IF NOT EXISTS `monitor_service_contacts` ( `service_contact_id` int(11) NOT NULL auto_increment, `instance_id` smallint(6) NOT NULL default '0', `service_id` int(11) NOT NULL default '0', `contact_object_id` int(11) NOT NULL default '0', PRIMARY KEY (`service_contact_id`), UNIQUE KEY `instance_id` (`instance_id`,`service_id`,`contact_object_id`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ;-- ------------------------------------------------------------ Table structure for table `monitor_service_parentservices`--CREATE TABLE IF NOT EXISTS `monitor_service_parentservices` ( `service_parentservice_id` int(11) NOT NULL auto_increment, `instance_id` smallint(6) NOT NULL default '0', `service_id` int(11) NOT NULL default '0', `parent_service_object_id` int(11) NOT NULL default '0', PRIMARY KEY (`service_parentservice_id`), UNIQUE KEY `instance_id` (`service_id`,`parent_service_object_id`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Parent services';-- ------------------------------------------------------------ Table structure for table `monitor_statehistory`--CREATE TABLE IF NOT EXISTS `monitor_statehistory` ( `statehistory_id` int(11) NOT NULL auto_increment, `instance_id` smallint(6) NOT NULL default '0', `state_time` datetime NOT NULL default '0000-00-00 00:00:00', `state_time_usec` int(11) NOT NULL default '0', `object_id` int(11) NOT NULL default '0', `state_change` smallint(6) NOT NULL default '0', `state` smallint(6) NOT NULL default '0', `state_type` smallint(6) NOT NULL default '0', `current_check_attempt` smallint(6) NOT NULL default '0', `max_check_attempts` smallint(6) NOT NULL default '0', `last_state` smallint(6) NOT NULL default '-1', `last_hard_state` smallint(6) NOT NULL default '-1', `output` varchar(255) NOT NULL default '', `long_output` TEXT NOT NULL default '', PRIMARY KEY (`statehistory_id`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Historical host and service state changes';-- ------------------------------------------------------------ Table structure for table `monitor_systemcommands`--CREATE TABLE IF NOT EXISTS `monitor_systemcommands` ( `systemcommand_id` int(11) NOT NULL auto_increment, `instance_id` smallint(6) NOT NULL default '0', `start_time` datetime NOT NULL default '0000-00-00 00:00:00', `start_time_usec` int(11) NOT NULL default '0', `end_time` datetime NOT NULL default '0000-00-00 00:00:00', `end_time_usec` int(11) NOT NULL default '0', `command_line` varchar(255) NOT NULL default '', `timeout` smallint(6) NOT NULL default '0', `early_timeout` smallint(6) NOT NULL default '0', `execution_time` double NOT NULL default '0', `return_code` smallint(6) NOT NULL default '0', `output` varchar(255) NOT NULL default '', `long_output` TEXT NOT NULL default '', PRIMARY KEY (`systemcommand_id`), KEY `instance_id` (`instance_id`), KEY `start_time` (`start_time`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Historical system commands that are executed';-- ------------------------------------------------------------ Table structure for table `monitor_timedeventqueue`--CREATE TABLE IF NOT EXISTS `monitor_timedeventqueue` ( `timedeventqueue_id` int(11) NOT NULL auto_increment, `instance_id` smallint(6) NOT NULL default '0', `event_type` smallint(6) NOT NULL default '0', `queued_time` datetime NOT NULL default '0000-00-00 00:00:00', `queued_time_usec` int(11) NOT NULL default '0', `scheduled_time` datetime NOT NULL default '0000-00-00 00:00:00', `recurring_event` smallint(6) NOT NULL default '0', `object_id` int(11) NOT NULL default '0', PRIMARY KEY (`timedeventqueue_id`), KEY `instance_id` (`instance_id`), KEY `event_type` (`event_type`), KEY `scheduled_time` (`scheduled_time`), KEY `object_id` (`object_id`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Current Nagios event queue';-- ------------------------------------------------------------ Table structure for table `monitor_timedevents`--CREATE TABLE IF NOT EXISTS `monitor_timedevents` ( `timedevent_id` int(11) NOT NULL auto_increment, `instance_id` smallint(6) NOT NULL default '0', `event_type` smallint(6) NOT NULL default '0', `queued_time` datetime NOT NULL default '0000-00-00 00:00:00', `queued_time_usec` int(11) NOT NULL default '0', `event_time` datetime NOT NULL default '0000-00-00 00:00:00', `event_time_usec` int(11) NOT NULL default '0', `scheduled_time` datetime NOT NULL default '0000-00-00 00:00:00', `recurring_event` smallint(6) NOT NULL default '0', `object_id` int(11) NOT NULL default '0', `deletion_time` datetime NOT NULL default '0000-00-00 00:00:00', `deletion_time_usec` int(11) NOT NULL default '0', PRIMARY KEY (`timedevent_id`), KEY `instance_id` (`instance_id`), KEY `event_type` (`event_type`), KEY `scheduled_time` (`scheduled_time`), KEY `object_id` (`object_id`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Historical events from the Nagios event queue';-- ------------------------------------------------------------ Table structure for table `monitor_timeperiods`--CREATE TABLE IF NOT EXISTS `monitor_timeperiods` ( `timeperiod_id` int(11) NOT NULL auto_increment, `instance_id` smallint(6) NOT NULL default '0', `config_type` smallint(6) NOT NULL default '0', `timeperiod_object_id` int(11) NOT NULL default '0', `alias` varchar(255) NOT NULL default '', PRIMARY KEY (`timeperiod_id`), UNIQUE KEY `instance_id` (`instance_id`,`config_type`,`timeperiod_object_id`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Timeperiod definitions';-- ------------------------------------------------------------ Table structure for table `monitor_timeperiod_timeranges`--CREATE TABLE IF NOT EXISTS `monitor_timeperiod_timeranges` ( `timeperiod_timerange_id` int(11) NOT NULL auto_increment, `instance_id` smallint(6) NOT NULL default '0', `timeperiod_id` int(11) NOT NULL default '0', `day` smallint(6) NOT NULL default '0', `start_sec` int(11) NOT NULL default '0', `end_sec` int(11) NOT NULL default '0', PRIMARY KEY (`timeperiod_timerange_id`), UNIQUE KEY `instance_id` (`timeperiod_id`,`day`,`start_sec`,`end_sec`)) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Timeperiod definitions';
ndoutils-2.0.0/src目录中的db.c
/*************************************************************** * DB.C - Datatabase routines for NDO2DB daemon * * Copyright (c) 2009 Nagios Core Development Team and Community Contributors * Copyright (c) 2005-2009 Ethan Galstad * * Last Modified: 07-11-2009 * **************************************************************//* include our project's header files */#include "../include/config.h"#include "../include/common.h"#include "../include/io.h"#include "../include/utils.h"#include "../include/protoapi.h"#include "../include/ndo2db.h"#include "../include/dbhandlers.h"#include "../include/db.h"extern int errno;extern ndo2db_dbconfig ndo2db_db_settings;extern time_t ndo2db_db_last_checkin_time;char *ndo2db_db_rawtablenames[NDO2DB_MAX_DBTABLES]={"instances","conninfo","objects","objecttypes","logentries","systemcommands","eventhandlers","servicechecks","hostchecks","programstatus","externalcommands","servicestatus","hoststatus","processevents","timedevents","timedeventqueue","flappinghistory","commenthistory","comments","notifications","contactnotifications","contactnotificationmethods","acknowledgements","statehistory","downtimehistory","scheduleddowntime","configfiles","configfilevariables","runtimevariables","contactstatus","customvariablestatus","","","","","","","","","","commands","timeperiods","timeperiod_timeranges","contactgroups","contactgroup_members","hostgroups","hostgroup_members","servicegroups","servicegroup_members","hostescalations","hostescalation_contacts","serviceescalations","serviceescalation_contacts","hostdependencies","servicedependencies","contacts","contact_addresses","contact_notificationcommands","hosts","host_parenthosts","host_contacts","services","service_contacts","customvariables","host_contactgroups","service_contactgroups","hostescalation_contactgroups","serviceescalation_contactgroups","service_parentservices", };char *ndo2db_db_tablenames[NDO2DB_MAX_DBTABLES];/*#define DEBUG_NDO2DB_QUERIES 1*//****************************************************************************//* CONNECTION FUNCTIONS *//****************************************************************************//* initialize database structures */int ndo2db_db_init(ndo2db_idi *idi){register int x;if(idi==NULL)return NDO_ERROR;/* initialize db server type */idi->dbinfo.server_type=ndo2db_db_settings.server_type;/* initialize table names */for(x=0;x<NDO2DB_MAX_DBTABLES;x++){if((ndo2db_db_tablenames[x]=(char *)malloc(strlen(ndo2db_db_rawtablenames[x])+((ndo2db_db_settings.dbprefix==NULL)?0:strlen(ndo2db_db_settings.dbprefix))+1))==NULL)return NDO_ERROR;sprintf(ndo2db_db_tablenames[x],"%s%s",(ndo2db_db_settings.dbprefix==NULL)?"":ndo2db_db_settings.dbprefix,ndo2db_db_rawtablenames[x]); }/* initialize other variables */idi->dbinfo.connected=NDO_FALSE;idi->dbinfo.error=NDO_FALSE;idi->dbinfo.instance_id=0L;idi->dbinfo.conninfo_id=0L;idi->dbinfo.latest_program_status_time=(time_t)0L;idi->dbinfo.latest_host_status_time=(time_t)0L;idi->dbinfo.latest_service_status_time=(time_t)0L;idi->dbinfo.latest_queued_event_time=(time_t)0L;idi->dbinfo.latest_realtime_data_time=(time_t)0L;idi->dbinfo.latest_comment_time=(time_t)0L;idi->dbinfo.clean_event_queue=NDO_FALSE;idi->dbinfo.last_notification_id=0L;idi->dbinfo.last_contact_notification_id=0L;idi->dbinfo.max_timedevents_age=ndo2db_db_settings.max_timedevents_age;idi->dbinfo.max_systemcommands_age=ndo2db_db_settings.max_systemcommands_age;idi->dbinfo.max_servicechecks_age=ndo2db_db_settings.max_servicechecks_age;idi->dbinfo.max_hostchecks_age=ndo2db_db_settings.max_hostchecks_age;idi->dbinfo.max_eventhandlers_age=ndo2db_db_settings.max_eventhandlers_age;idi->dbinfo.max_externalcommands_age=ndo2db_db_settings.max_externalcommands_age;idi->dbinfo.max_notifications_age=ndo2db_db_settings.max_notifications_age;idi->dbinfo.max_contactnotifications_age=ndo2db_db_settings.max_contactnotifications_age;idi->dbinfo.max_contactnotificationmethods_age=ndo2db_db_settings.max_contactnotificationmethods_age;idi->dbinfo.max_logentries_age=ndo2db_db_settings.max_logentries_age;idi->dbinfo.max_acknowledgements_age=ndo2db_db_settings.max_acknowledgements_age;idi->dbinfo.last_table_trim_time=(time_t)0L;idi->dbinfo.last_logentry_time=(time_t)0L;idi->dbinfo.last_logentry_data=NULL;idi->dbinfo.object_hashlist=NULL;/* initialize db structures, etc. */switch(idi->dbinfo.server_type){case NDO2DB_DBSERVER_MYSQL:#ifdef USE_MYSQLif(!mysql_init(&idi->dbinfo.mysql_conn)){syslog(LOG_USER|LOG_INFO,"Error: mysql_init() failed\n");return NDO_ERROR; }#endifbreak;case NDO2DB_DBSERVER_PGSQL:#ifdef USE_PGSQLidi->dbinfo.pgsql_conn=NULL;idi->dbinfo.pgsql_result=NULL;#endifbreak;default:break; }return NDO_OK; }/* clean up database structures */int ndo2db_db_deinit(ndo2db_idi *idi){register int x;if(idi==NULL)return NDO_ERROR;/* free table names */for(x=0;x<NDO2DB_MAX_DBTABLES;x++){if(ndo2db_db_tablenames[x])free(ndo2db_db_tablenames[x]);ndo2db_db_tablenames[x]=NULL; }/* free cached object ids */ndo2db_free_cached_object_ids(idi);return NDO_OK; }/* connects to the database server */int ndo2db_db_connect(ndo2db_idi *idi){int result=NDO_OK;if(idi==NULL)return NDO_ERROR;/* we're already connected... */if(idi->dbinfo.connected==NDO_TRUE)return NDO_OK;switch(idi->dbinfo.server_type){case NDO2DB_DBSERVER_MYSQL:#ifdef USE_MYSQLif(!mysql_real_connect(&idi->dbinfo.mysql_conn,ndo2db_db_settings.host,ndo2db_db_settings.username,ndo2db_db_settings.password,ndo2db_db_settings.dbname,ndo2db_db_settings.port,NULL,0)){mysql_close(&idi->dbinfo.mysql_conn);syslog(LOG_USER|LOG_INFO,"Error: Could not connect to MySQL database: %s",mysql_error(&idi->dbinfo.mysql_conn));result=NDO_ERROR;idi->disconnect_client=NDO_TRUE; }else{/*rubydrew@qq.com*/mysql_set_character_set(&idi->dbinfo.mysql_conn, "utf8");idi->dbinfo.connected=NDO_TRUE;syslog(LOG_USER|LOG_DEBUG,"Successfully connected to MySQL database"); }#endifbreak;case NDO2DB_DBSERVER_PGSQL:#ifdef USE_PGSQLsnprintf(connect_string,sizeof(connect_string)-1,"host='%s' port=%d dbname='%s' user='%s' password='%s'",ndo2db_db_settings.host,ndo2db_db_settings.port,ndo2db_db_settings.dbname,ndo2db_db_settings.username,ndo2db_db_settings.password);connect_string[sizeof(connect_string)-1]='\x0';idi->dbinfo.pgsql_conn=PQconnectdb(connect_string);if(PQstatus(idi->dbinfo.pgsql_conn)==CONNECTION_BAD){PQfinish(idi->dbinfo.pgsql_conn);syslog(LOG_USER|LOG_INFO,"Error: Could not connect to PostgreSQL database: %s",PQerrorMessage(idi->dbinfo.pgsql_conn));result=NDO_ERROR;idi->disconnect_client=NDO_TRUE; }else{idi->dbinfo.connected=NDO_TRUE;syslog(LOG_USER|LOG_DEBUG,"Successfully connected to PostgreSQL database"); }#endifbreak;default:break; }return result; }/* disconnects from the database server */int ndo2db_db_disconnect(ndo2db_idi *idi){if(idi==NULL)return NDO_ERROR;/* we're not connected... */if(idi->dbinfo.connected==NDO_FALSE)return NDO_OK;switch(idi->dbinfo.server_type){case NDO2DB_DBSERVER_MYSQL:#ifdef USE_MYSQL/* close the connection to the database server */mysql_close(&idi->dbinfo.mysql_conn);idi->dbinfo.connected=NDO_FALSE;syslog(LOG_USER|LOG_DEBUG,"Successfully disconnected from MySQL database");#endifbreak;case NDO2DB_DBSERVER_PGSQL:#ifdef USE_PGSQL/* close database connection and cleanup */if(PQstatus(idi->dbinfo.pgsql_conn)!=CONNECTION_BAD)PQfinish(idi->dbinfo.pgsql_conn);idi->dbinfo.connected=NDO_FALSE;syslog(LOG_USER|LOG_DEBUG,"Successfully disconnected from PostgreSQL database");#endifbreak;default:break; }return NDO_OK; }/* post-connect routines */int ndo2db_db_hello(ndo2db_idi *idi){char *buf=NULL;char *ts=NULL;int result=NDO_OK;int have_instance=NDO_FALSE;time_t current_time;/* make sure we have an instance name */if(idi->instance_name==NULL)idi->instance_name=strdup("default");/* get existing instance */if(asprintf(&buf,"SELECT instance_id FROM %s WHERE instance_name='%s'",ndo2db_db_tablenames[NDO2DB_DBTABLE_INSTANCES],idi->instance_name)==-1)buf=NULL;if((result=ndo2db_db_query(idi,buf))==NDO_OK){switch(idi->dbinfo.server_type){case NDO2DB_DBSERVER_MYSQL:#ifdef USE_MYSQLidi->dbinfo.mysql_result=mysql_store_result(&idi->dbinfo.mysql_conn);if((idi->dbinfo.mysql_row=mysql_fetch_row(idi->dbinfo.mysql_result))!=NULL){ndo2db_convert_string_to_unsignedlong(idi->dbinfo.mysql_row[0],&idi->dbinfo.instance_id);have_instance=NDO_TRUE; }mysql_free_result(idi->dbinfo.mysql_result);idi->dbinfo.mysql_result=NULL;#endifbreak;default:break; } }free(buf);/* insert new instance if necessary */if(have_instance==NDO_FALSE){if(asprintf(&buf,"INSERT INTO %s SET instance_name='%s'",ndo2db_db_tablenames[NDO2DB_DBTABLE_INSTANCES],idi->instance_name)==-1)buf=NULL;if((result=ndo2db_db_query(idi,buf))==NDO_OK){switch(idi->dbinfo.server_type){case NDO2DB_DBSERVER_MYSQL:#ifdef USE_MYSQLidi->dbinfo.instance_id=mysql_insert_id(&idi->dbinfo.mysql_conn);#endifbreak;default:break; } }free(buf); }ts=ndo2db_db_timet_to_sql(idi,idi->data_start_time);/* record initial connection information */if(asprintf(&buf,"INSERT INTO %s SET instance_id='%lu', connect_time=NOW(), last_checkin_time=NOW(), bytes_processed='0', lines_processed='0', entries_processed='0', agent_name='%s', agent_version='%s', disposition='%s', connect_source='%s', connect_type='%s', data_start_time=%s" ,ndo2db_db_tablenames[NDO2DB_DBTABLE_CONNINFO] ,idi->dbinfo.instance_id ,idi->agent_name ,idi->agent_version ,idi->disposition ,idi->connect_source ,idi->connect_type ,ts )==-1)buf=NULL;if((result=ndo2db_db_query(idi,buf))==NDO_OK){switch(idi->dbinfo.server_type){case NDO2DB_DBSERVER_MYSQL:#ifdef USE_MYSQLidi->dbinfo.conninfo_id=mysql_insert_id(&idi->dbinfo.mysql_conn);#endifbreak;default:break; } }free(buf);free(ts);/* get cached object ids... */ndo2db_get_cached_object_ids(idi);/* get latest times from various tables... */ndo2db_db_get_latest_data_time(idi,ndo2db_db_tablenames[NDO2DB_DBTABLE_PROGRAMSTATUS],"status_update_time",(unsigned long *)&idi->dbinfo.latest_program_status_time);ndo2db_db_get_latest_data_time(idi,ndo2db_db_tablenames[NDO2DB_DBTABLE_HOSTSTATUS],"status_update_time",(unsigned long *)&idi->dbinfo.latest_host_status_time);ndo2db_db_get_latest_data_time(idi,ndo2db_db_tablenames[NDO2DB_DBTABLE_SERVICESTATUS],"status_update_time",(unsigned long *)&idi->dbinfo.latest_service_status_time);ndo2db_db_get_latest_data_time(idi,ndo2db_db_tablenames[NDO2DB_DBTABLE_CONTACTSTATUS],"status_update_time",(unsigned long *)&idi->dbinfo.latest_contact_status_time);ndo2db_db_get_latest_data_time(idi,ndo2db_db_tablenames[NDO2DB_DBTABLE_TIMEDEVENTQUEUE],"queued_time",(unsigned long *)&idi->dbinfo.latest_queued_event_time);ndo2db_db_get_latest_data_time(idi,ndo2db_db_tablenames[NDO2DB_DBTABLE_COMMENTS],"entry_time",(unsigned long *)&idi->dbinfo.latest_comment_time);/* calculate time of latest realtime data */idi->dbinfo.latest_realtime_data_time=(time_t)0L;if(idi->dbinfo.latest_program_status_time>idi->dbinfo.latest_realtime_data_time)idi->dbinfo.latest_realtime_data_time=idi->dbinfo.latest_program_status_time;if(idi->dbinfo.latest_host_status_time>idi->dbinfo.latest_realtime_data_time)idi->dbinfo.latest_realtime_data_time=idi->dbinfo.latest_host_status_time;if(idi->dbinfo.latest_service_status_time>idi->dbinfo.latest_realtime_data_time)idi->dbinfo.latest_realtime_data_time=idi->dbinfo.latest_service_status_time;if(idi->dbinfo.latest_contact_status_time>idi->dbinfo.latest_realtime_data_time)idi->dbinfo.latest_realtime_data_time=idi->dbinfo.latest_contact_status_time;if(idi->dbinfo.latest_queued_event_time>idi->dbinfo.latest_realtime_data_time)idi->dbinfo.latest_realtime_data_time=idi->dbinfo.latest_queued_event_time;/* get current time *//* make sure latest time stamp isn't in the future - this will cause problems if a backwards system time change occurs */time(¤t_time);if(idi->dbinfo.latest_realtime_data_time>current_time)idi->dbinfo.latest_realtime_data_time=current_time;/* set flags to clean event queue, etc. */idi->dbinfo.clean_event_queue=NDO_TRUE;/* set misc data */idi->dbinfo.last_notification_id=0L;idi->dbinfo.last_contact_notification_id=0L;return result; }/* pre-disconnect routines */int ndo2db_db_goodbye(ndo2db_idi *idi){int result=NDO_OK;char *buf=NULL;char *ts=NULL;ts=ndo2db_db_timet_to_sql(idi,idi->data_end_time);/* record last connection information */if(asprintf(&buf,"UPDATE %s SET disconnect_time=NOW(), last_checkin_time=NOW(), data_end_time=%s, bytes_processed='%lu', lines_processed='%lu', entries_processed='%lu' WHERE conninfo_id='%lu'" ,ndo2db_db_tablenames[NDO2DB_DBTABLE_CONNINFO] ,ts ,idi->bytes_processed ,idi->lines_processed ,idi->entries_processed ,idi->dbinfo.conninfo_id )==-1)buf=NULL;result=ndo2db_db_query(idi,buf);free(buf);free(ts);return result; }/* checking routines */int ndo2db_db_checkin(ndo2db_idi *idi){int result=NDO_OK;char *buf=NULL;/* record last connection information */if(asprintf(&buf,"UPDATE %s SET last_checkin_time=NOW(), bytes_processed='%lu', lines_processed='%lu', entries_processed='%lu' WHERE conninfo_id='%lu'" ,ndo2db_db_tablenames[NDO2DB_DBTABLE_CONNINFO] ,idi->bytes_processed ,idi->lines_processed ,idi->entries_processed ,idi->dbinfo.conninfo_id )==-1)buf=NULL;result=ndo2db_db_query(idi,buf);free(buf);time(&ndo2db_db_last_checkin_time);return result; }/****************************************************************************//* MISC FUNCTIONS *//****************************************************************************//* escape a string for a SQL statement */char *ndo2db_db_escape_string(ndo2db_idi *idi, char *buf){register int x,y,z;char *newbuf=NULL;if(idi==NULL || buf==NULL)return NULL;z=strlen(buf);/* allocate space for the new string */if((newbuf=(char *)malloc((z*2)+1))==NULL)return NULL;/* escape characters */for(x=0,y=0;x<z;x++){if(idi->dbinfo.server_type==NDO2DB_DBSERVER_MYSQL){if(buf[x]=='\'' || buf[x]=='\"' || buf[x]=='*' || buf[x]=='\\' || buf[x]=='$' || buf[x]=='?' || buf[x]=='.' || buf[x]=='^' || buf[x]=='+' || buf[x]=='[' || buf[x]==']' || buf[x]=='(' || buf[x]==')')newbuf[y++]='\\'; }else if(idi->dbinfo.server_type==NDO2DB_DBSERVER_PGSQL){if(! (isspace(buf[x]) || isalnum(buf[x]) || (buf[x]=='_')) )newbuf[y++]='\\'; }newbuf[y++]=buf[x]; }/* terminate escape string */newbuf [y]='\0';return newbuf; }/* SQL query conversion of time_t format to date/time format */char *ndo2db_db_timet_to_sql(ndo2db_idi *idi, time_t t){char *buf=NULL;switch(idi->dbinfo.server_type){case NDO2DB_DBSERVER_MYSQL:#ifdef USE_MYSQLasprintf(&buf,"FROM_UNIXTIME(%lu)",(unsigned long)t);#endifbreak;case NDO2DB_DBSERVER_PGSQL:#ifdef USE_PGSQLasprintf(&buf,"FROM_UNIXTIME(%lu)",(unsigned long)t);#endifbreak;default:break; }return buf; }/* SQL query conversion of date/time format to time_t format */char *ndo2db_db_sql_to_timet(ndo2db_idi *idi, char *field){char *buf=NULL;switch(idi->dbinfo.server_type){case NDO2DB_DBSERVER_MYSQL:#ifdef USE_MYSQLasprintf(&buf,"UNIX_TIMESTAMP(%s)",(field==NULL)?"":field);#endifbreak;case NDO2DB_DBSERVER_PGSQL:#ifdef USE_PGSQLasprintf(&buf,"UNIX_TIMESTAMP(%s",(field==NULL)?"":field);#endifbreak;default:break; }return buf; }/* executes a SQL statement */int ndo2db_db_query(ndo2db_idi *idi, char *buf){int result=NDO_OK;int query_result=0;if(idi==NULL || buf==NULL)return NDO_ERROR;/* if we're not connected, try and reconnect... */if(idi->dbinfo.connected==NDO_FALSE){if(ndo2db_db_connect(idi)==NDO_ERROR)return NDO_ERROR;ndo2db_db_hello(idi); }#ifdef DEBUG_NDO2DB_QUERIESprintf("%s\n\n",buf);#endifndo2db_log_debug_info(NDO2DB_DEBUGL_SQL,0,"%s\n",buf);switch(idi->dbinfo.server_type){case NDO2DB_DBSERVER_MYSQL:#ifdef USE_MYSQLif((query_result=mysql_query(&idi->dbinfo.mysql_conn,buf))){syslog(LOG_USER|LOG_INFO,"Error: mysql_query() failed for '%s'\n",buf);syslog(LOG_USER|LOG_INFO,"mysql_error: '%s'\n", mysql_error(&idi->dbinfo.mysql_conn));result=NDO_ERROR; }#endifbreak;case NDO2DB_DBSERVER_PGSQL:#ifdef USE_PGSQLidi->dbinfo.pgsql_result==PQexec(idi->dbinfo.pgsql_conn,buf);if((query_result=PQresultStatus(idi->dbinfo.pgsql_result))!=PGRES_COMMAND_OK){syslog(LOG_USER|LOG_INFO,"Error: PQexec() failed for '%s'\n",buf);PQclear(idi->dbinfo.pgsql_result);result=NDO_ERROR; }#endifbreak;default:break; }/* handle errors */if(result==NDO_ERROR)ndo2db_handle_db_error(idi,query_result);return result; }/* frees memory associated with a query */int ndo2db_db_free_query(ndo2db_idi *idi){if(idi==NULL)return NDO_ERROR;switch(idi->dbinfo.server_type){case NDO2DB_DBSERVER_MYSQL:#ifdef USE_MYSQL#endifbreak;case NDO2DB_DBSERVER_PGSQL:#ifdef USE_PGSQLPQclear(idi->dbinfo.pgsql_result);#endifbreak;default:break; }return NDO_OK; }/* handles SQL query errors */int ndo2db_handle_db_error(ndo2db_idi *idi, int query_result){int result=0;if(idi==NULL)return NDO_ERROR;/* we're not currently connected... */if(idi->dbinfo.connected==NDO_FALSE)return NDO_OK;switch(idi->dbinfo.server_type){case NDO2DB_DBSERVER_MYSQL:#ifdef USE_MYSQLresult=mysql_errno(&idi->dbinfo.mysql_conn);if(result==CR_SERVER_LOST || result==CR_SERVER_GONE_ERROR){syslog(LOG_USER|LOG_INFO,"Error: Connection to MySQL database has been lost!\n");ndo2db_db_disconnect(idi);idi->disconnect_client=NDO_TRUE; }#endifbreak;case NDO2DB_DBSERVER_PGSQL:#ifdef USE_PGSQLresult=PQstatus(idi->dbinfo.pgsql_conn);if(result!=CONNECTION_OK){syslog(LOG_USER|LOG_INFO,"Error: Connection to PostgreSQL database has been lost!\n");ndo2db_db_disconnect(idi);idi->disconnect_client=NDO_TRUE; }#endifbreak;default:break; }return NDO_OK; }/* clears data from a given table (current instance only) */int ndo2db_db_clear_table(ndo2db_idi *idi, char *table_name){char *buf=NULL;int result=NDO_OK;if(idi==NULL || table_name==NULL)return NDO_ERROR;if(asprintf(&buf,"DELETE FROM %s WHERE instance_id='%lu'" ,table_name ,idi->dbinfo.instance_id )==-1)buf=NULL;result=ndo2db_db_query(idi,buf);free(buf);return result; }/* gets latest data time value from a given table */int ndo2db_db_get_latest_data_time(ndo2db_idi *idi, char *table_name, char *field_name, unsigned long *t){char *buf=NULL;char *ts[1];int result=NDO_OK;if(idi==NULL || table_name==NULL || field_name==NULL || t==NULL)return NDO_ERROR;*t=(time_t)0L;ts[0]=ndo2db_db_sql_to_timet(idi,field_name);if(asprintf(&buf,"SELECT %s AS latest_time FROM %s WHERE instance_id='%lu' ORDER BY %s DESC LIMIT 0,1" ,ts[0] ,table_name ,idi->dbinfo.instance_id ,field_name )==-1)buf=NULL;if((result=ndo2db_db_query(idi,buf))==NDO_OK){switch(idi->dbinfo.server_type){case NDO2DB_DBSERVER_MYSQL:#ifdef USE_MYSQLidi->dbinfo.mysql_result=mysql_store_result(&idi->dbinfo.mysql_conn);if((idi->dbinfo.mysql_row=mysql_fetch_row(idi->dbinfo.mysql_result))!=NULL){ndo2db_convert_string_to_unsignedlong(idi->dbinfo.mysql_row[0],t); }mysql_free_result(idi->dbinfo.mysql_result);idi->dbinfo.mysql_result=NULL;#endifbreak;default:break; } }free(buf);free(ts[0]);return result; }/* trim/delete old data from a given table */int ndo2db_db_trim_data_table(ndo2db_idi *idi, char *table_name, char *field_name, unsigned long t){char *buf=NULL;char *ts[1];int result=NDO_OK;if(idi==NULL || table_name==NULL || field_name==NULL)return NDO_ERROR;ts[0]=ndo2db_db_timet_to_sql(idi,(time_t)t);if(asprintf(&buf,"DELETE FROM %s WHERE instance_id='%lu' AND %s<%s" ,table_name ,idi->dbinfo.instance_id ,field_name ,ts[0] )==-1)buf=NULL;result=ndo2db_db_query(idi,buf);free(buf);free(ts[0]);return result; }/* performs some periodic table maintenance... */int ndo2db_db_perform_maintenance(ndo2db_idi *idi){time_t current_time;/* get the current time */time(¤t_time);/* trim tables */if(((unsigned long)current_time-60)>(unsigned long)idi->dbinfo.last_table_trim_time){if(idi->dbinfo.max_timedevents_age>0L)ndo2db_db_trim_data_table(idi,ndo2db_db_tablenames[NDO2DB_DBTABLE_TIMEDEVENTS],"scheduled_time",(time_t)((unsigned long)current_time-idi->dbinfo.max_timedevents_age));if(idi->dbinfo.max_systemcommands_age>0L)ndo2db_db_trim_data_table(idi,ndo2db_db_tablenames[NDO2DB_DBTABLE_SYSTEMCOMMANDS],"start_time",(time_t)((unsigned long)current_time-idi->dbinfo.max_systemcommands_age));if(idi->dbinfo.max_servicechecks_age>0L)ndo2db_db_trim_data_table(idi,ndo2db_db_tablenames[NDO2DB_DBTABLE_SERVICECHECKS],"start_time",(time_t)((unsigned long)current_time-idi->dbinfo.max_servicechecks_age));if(idi->dbinfo.max_hostchecks_age>0L)ndo2db_db_trim_data_table(idi,ndo2db_db_tablenames[NDO2DB_DBTABLE_HOSTCHECKS],"start_time",(time_t)((unsigned long)current_time-idi->dbinfo.max_hostchecks_age));if(idi->dbinfo.max_eventhandlers_age>0L)ndo2db_db_trim_data_table(idi,ndo2db_db_tablenames[NDO2DB_DBTABLE_EVENTHANDLERS],"start_time",(time_t)((unsigned long)current_time-idi->dbinfo.max_eventhandlers_age));if(idi->dbinfo.max_externalcommands_age>0L)ndo2db_db_trim_data_table(idi,ndo2db_db_tablenames[NDO2DB_DBTABLE_EXTERNALCOMMANDS],"entry_time",(time_t)((unsigned long)current_time-idi->dbinfo.max_externalcommands_age));if(idi->dbinfo.max_notifications_age>0L)ndo2db_db_trim_data_table(idi,ndo2db_db_tablenames[NDO2DB_DBTABLE_NOTIFICATIONS],"entry_time",(time_t)((unsigned long)current_time-idi->dbinfo.max_notifications_age));if(idi->dbinfo.max_contactnotifications_age>0L)ndo2db_db_trim_data_table(idi,ndo2db_db_tablenames[NDO2DB_DBTABLE_CONTACTNOTIFICATIONS],"entry_time",(time_t)((unsigned long)current_time-idi->dbinfo.max_contactnotifications_age));if(idi->dbinfo.max_contactnotificationmethods_age>0L)ndo2db_db_trim_data_table(idi,ndo2db_db_tablenames[NDO2DB_DBTABLE_CONTACTNOTIFICATIONMETHODS],"entry_time",(time_t)((unsigned long)current_time-idi->dbinfo.max_contactnotificationmethods_age));if(idi->dbinfo.max_logentries_age>0L)ndo2db_db_trim_data_table(idi,ndo2db_db_tablenames[NDO2DB_DBTABLE_LOGENTRIES],"entry_time",(time_t)((unsigned long)current_time-idi->dbinfo.max_logentries_age));if(idi->dbinfo.max_acknowledgements_age>0L)ndo2db_db_trim_data_table(idi,ndo2db_db_tablenames[NDO2DB_DBTABLE_ACKNOWLEDGEMENTS],"entry_time",(time_t)((unsigned long)current_time-idi->dbinfo.max_acknowledgements_age));idi->dbinfo.last_table_trim_time=current_time; }return NDO_OK; }
ndoutils-2.0.1-utf8(完美解决中文乱码问题)
软件下载地址:http://download.csdn.net/detail/drew27/8475389
参考资料:http://blog.sina.com.cn/s/blog_620f4cf70100pvlv.html
0 0
- ndoutils2.2.0(ndo2db)中文乱码问题解决
- Struts中文乱码问题解决
- struts中文乱码问题解决
- struts中文乱码问题解决
- struts中文乱码问题解决
- struts中文乱码问题解决
- 中文乱码问题解决方案
- Struts2 中文乱码问题解决
- struts中文乱码问题解决
- 中文乱码问题解决
- putty 中文乱码问题解决
- Rhythmbox中文乱码问题解决
- struts1中文乱码问题解决
- 常见中文乱码问题解决
- 中文乱码问题解决
- MySql中文乱码问题解决
- dataGrid中文乱码问题解决
- mysql中文乱码问题解决
- UISearchBar基本用法及searchBar常用代理方法
- ZOJ Problem Set - 2812 Quicksum
- Android碎片化 UI fragment
- DES加密解密算法
- 一些获得外链的小技巧
- ndoutils2.2.0(ndo2db)中文乱码问题解决
- Android 判断当前设备是手机还是平板
- U-Boot命令大全(功能参数及用法)
- Appium 已支持中文输入(Appium 1.3.3以上)
- 小说“三层”
- js中parseInt()与parseFloat(),Number(),Boolean(),String()转换
- Github上推荐的12款DevOps开发工具
- android下保存用户账号密码和读取账号密码
- 库(libraries)和框架(framew)的区别