Mysql ǰÁú °ü¸® - Alive üũ
ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®



joinc´Â Firefox¿Í chrome¿¡¼­ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼­´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.

¼Ò°³

QOS ¿¡´Â ¾ÖÇø®ÄÉÀÌ¼Ç Ç°ÁúÀÇ ÃøÁ¤µµ Æ÷ÇԵȴÙ. ´ëºÎºÐÀÇ ¾ÖÇø®ÄÉÀ̼ÇÀÌ Ç°ÁúÀ» °ü¸®ÇÒ ¼ö ÀÖ´Â API¸¦ Á¦°øÇϱ⠶§¹®¿¡, È£Ãâ¹æ¹ý¸¸ ¾Ë°í ÀÖ´Ù¸é ¹®Á¦ ¾øÀÌ Á¤º¸¸¦ ¾ò¾î³¾ ¼ö ÀÖ´Ù. ¿©±â¿¡¼­´Â MysqlÀÇ °ü¸®Á¤º¸¸¦ ¾ò´Â ¹æ¹ý¿¡ ´ëÇØ¼­ ¾Ë¾Æº¸µµ·Ï ÇϰڴÙ. ¿©±â¿¡¼­´Â MysqlÀÇ Alive »óŸ¦ üũÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ¼­ ¾Ë¾Æº¸µµ·Ï ÇϰڴÙ.

Alive

¼­¹ö ÇÁ·Î±×·¥À¸·Î µ¥¸ó »óÅ·Π½ÇÇàµÇ°í ÀÖ´Ù¸é, °¡Àå Áß¿äÇÑ°Ç ¼­¹ö ÇÁ·Î±×·¥ÀÌ ¶° ÀÖ´ÂÁö, Ŭ¶óÀ̾ðÆ®ÀÇ ÀÀ´äÀ» ¹Þ¾Æ´Â µéÀÌ´ÂÁö ÇÏ´Â °ÍÀÌ´Ù. ¿¬°á¼Óµµ, ÀÀ´ä¼Óµµ´Â ±× ´ÙÀ½ÀÇ ¹®Á¦´Ù. mysqlÀº mysqladminÀ̶ó´Â ÇÁ·Î±×·¥À» ÀÌ¿ëÇØ¼­ Alive üũ¸¦ ÇÒ ¼ö ÀÖ°Ô Çϰí ÀÖ´Ù.
# mysqladmin -u root -p ping 
mysqld is alive 
 

¹°·Ð C API¸¦ ÅëÇØ¼­µµ Á¢±ÙÇÒ ¼ö ÀÖ´Ù. ¿©±â¿¡¼­´Â mysql C API ¿¡¼­ Á¦°øÇÏ´Â mysql_ping À» ÅëÇØ¼­ mysql ¼­¹öµ¥¸óÀÇ Alive¸¦ üũÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ¼­ ¾Ë¾Æº¸µµ·Ï ÇϰڴÙ.

Mysql Alive Check

mysql_ping´Â ¼­¹ö°¡ »ì¾Æ ÀÖÀ» °æ¿ì 0À», ±×·¸Áö ¾ÊÀº °æ¿ì 1À» ¸®ÅÏÇÑ´Ù. ¼­¹öÀÇ Alive üũ´Â mysql ¼­¹ö¿ÍÀÇ ¿¬°áÀÌ ÀÌ·ç¾îÁø »óÅ¿¡¼­ ÇàÇØÁö°Ô µÈ´Ù. ±×·¯¹Ç·Î mysql_pingÀÌ 1À» ¸®ÅÏÇß´Ù¸é, ¿¬°áÀ» ²÷Àº ´ÙÀ½, ¿¬°áÀ» ½ÃµµÇÏ´Â °úÁ¤À» °ÅÃÄ¾ß ÇÑ´Ù.

ÀÌ ÄÚµå´Â È®À强À» °í·ÁÇÑ Agent ManagerÀÇ ¹æ½ÄÀ¸·Î ¸¸µé¾îÁú °ÍÀÌ´Ù. ¶ÇÇÑ ¼³Á¤¶óÀ̺귯¸®µµ Æ÷ÇÔÇϰí Àִµ¥, À̰ÍÀº [http]°£´ÜÇÑ ¼³Á¤ÆÄÀÏ Àбâ ÇÔ¼ö¸¦ ÀÌ¿ëÇÒ °ÍÀÌ´Ù.
// Standard C++ Library 
#include <iostream> 
#include <string> 
 
// Standard C Library 
#include <stdlib.h> 
#include <mysql.h> 
#include <stdio.h> 
 
// Agent Library 
#include <cinterface.h> 
#include <common.h> 
#include <qosconfig.h> 
 
using namespace std; 
/* 
 * Global Variable 
 */ 
MYSQL *connection = NULL, conn; 
MYSQL_RES *sql_result; 
MYSQL_ROW *sql_row; 
 
struct QosFile myFile; 
 
char *SndData = NULL; 
 
// ÃʱâÈ­ ÇÔ¼ö 
int Init() 
{ 
  int rtv = 0; 
  char *rootDir; 
  rootDir = getenv("QOS_HOME"); 
  if (rootDir == NULL) 
    return rtv; 
  sprintf(myFile.rootDir, "%s", rootDir); 
  sprintf(myFile.logDir,  "%s/log", rootDir); 
  sprintf(myFile.tmpDir,  "%s/tmp", rootDir); 
  sprintf(myFile.binDir,  "%s/bin", rootDir); 
  sprintf(myFile.cfgDir,  "%s/cfg", rootDir); 
 
  Config *moduleCfg; 
  string uname; 
  string passwd; 
  string host; 
  const char *mysqlinfo; 
  int port; 
 
  char sqlValue[5][10]; 
  moduleCfg = new Config(); 
 
  // ¼³Á¤°ªÀ» Àоî¿Â´Ù. 
  rtv = moduleCfg->openCfg("config.cfg"); 
  host = moduleCfg->getValue("MSA", "host"); 
  uname = moduleCfg->getValue("MSA", "user"); 
  passwd = moduleCfg->getValue("MSA", "password"); 
  port = atoi(moduleCfg->getValue("MSA", "port")); 
 
  mysql_init(&conn); 
  connection = mysql_real_connect(&conn, host.c_str(), 
                                uname.c_str(), passwd.c_str(), 
                                "mysql", port, 
                                NULL, 0); 
  if (connection == NULL) 
  { 
    printf("Mysql connection error : %s\n", mysql_error(&conn)); 
    return 0; 
  } 
 
  if (SndData == NULL) 
    SndData = (char *)malloc(256); 
  return 1; 
} 
 
// Àç½Ãµµ ÇÔ¼ö, 
int Retry() 
{ 
  if (connection != NULL) 
  { 
    mysql_close(connection); 
    connection = NULL; 
  } 
  printf("INIT Start\n"); 
  mysql_init(&conn); 
  printf("INIT End\n"); 
  connection = mysql_real_connect(&conn, "localhost", 
                                "root", "rnffjrksek", 
                                "mysql", 3306, 
                                NULL, 0); 
  if (connection == NULL) 
  { 
    printf("Mysql connection error : %s\n", mysql_error(&conn)); 
    return 0; 
  } 
  return 1; 
} 
 
// Alive µ¥ÀÌÅÍ ¿äûÇÔ¼ö 
char *Read() 
{ 
  int rtv; 
  rtv = 0; 
  if (connection != NULL) 
    rtv =  mysql_ping(connection); 
  if (rtv != 0) 
  { 
    Retry(); 
  } 
  sprintf(SndData, "MSA=%d", rtv); 
  return SndData; 
} 
 
int Clean() 
{ 
  if (connection != NULL) 
  { 
    mysql_close(connection); 
    connection = NULL; 
  } 
  if (SndData != NULL) 
  { 
    free(SndData); 
    SndData = NULL; 
  } 
  return 1; 
} 
 
°£´ÜÇÑ Å×½ºÆ®¸¦ À§Çؼ­ ´ÙÀ½°ú °°Àº main ÇÔ¼ö¸¦ °¡Áö´Â ÇÁ·Î±×·¥À» ¸¸µé¾ú´Ù.
int main(int argc, char *argv[]) 
{ 
    int rtv; 
    char *rdata; 
    rtv = Init(); 
    if (rtv == 0) 
    { 
        printf("Init Error"); 
        return 0; 
    } 
 
    while(1) 
    { 
        rdata = Read(); 
        printf("PING : %s\n", rdata); 
        sleep(1); 
    } 
    Clean(); 
 
} 
 

MySqlÀÌ ¼³Ä¡µÇ¾î ÀÖ´Ù¸é, Alive »óȲÀ» Á¦´ë·Î Ã¼Å©ÇØ ³»´ÂÁö Å×½ºÆ®Çغ¸±â ¹Ù¶õ´Ù.

Âü°í¹®Çå

EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.