NdbRestarter.hpp
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:3k
- /* Copyright (C) 2003 MySQL AB
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
- #ifndef NDBT_RESTARTER_HPP
- #define NDBT_RESTARTER_HPP
- #include <mgmapi.h>
- #include <Vector.hpp>
- #include <BaseString.hpp>
- class NdbRestarter {
- public:
- NdbRestarter(const char* _addr = 0);
- ~NdbRestarter();
- int getDbNodeId(int _i);
- int restartOneDbNode(int _nodeId,
- bool initial = false,
- bool nostart = false,
- bool abort = false);
- int restartAll(bool initial = false,
- bool nostart = false,
- bool abort = false);
-
- int startAll();
- int startNodes(int * _nodes, int _num_nodes);
- int waitClusterStarted(unsigned int _timeout = 120);
- int waitClusterSingleUser(unsigned int _timeout = 120);
- int waitClusterStartPhase(int _startphase, unsigned int _timeout = 120);
- int waitClusterNoStart(unsigned int _timeout = 120);
- int waitNodesStarted(int * _nodes, int _num_nodes,
- unsigned int _timeout = 120);
- int waitNodesStartPhase(int * _nodes, int _num_nodes,
- int _startphase, unsigned int _timeout = 120);
- int waitNodesNoStart(int * _nodes, int _num_nodes,
- unsigned int _timeout = 120);
- int getNumDbNodes();
- int insertErrorInNode(int _nodeId, int error);
- int insertErrorInAllNodes(int error);
- int enterSingleUserMode(int _nodeId);
- int exitSingleUserMode();
- int dumpStateOneNode(int _nodeId, int * _args, int _num_args);
- int dumpStateAllNodes(int * _args, int _num_args);
- int getMasterNodeId();
- int getRandomNodeOtherNodeGroup(int nodeId, int randomNumber);
- int getRandomNotMasterNodeId(int randomNumber);
-
- protected:
- int waitClusterState(ndb_mgm_node_status _status,
- unsigned int _timeout,
- int _startphase = -1);
- int waitNodesState(int * _nodes, int _num_nodes,
- ndb_mgm_node_status _status,
- unsigned int _timeout,
- int _startphase = -1);
- bool isConnected();
- int connect();
- void disconnect();
- int getStatus();
-
- Vector<ndb_mgm_node_state> ndbNodes;
- Vector<ndb_mgm_node_state> mgmNodes;
- Vector<ndb_mgm_node_state> apiNodes;
-
- bool connected;
- BaseString addr;
- NdbMgmHandle handle;
- ndb_mgm_configuration * m_config;
- protected:
- ndb_mgm_configuration * getConfig();
- };
- #endif