int NdbBackup::execRestore(bool _restore_data, bool _restore_meta, int _node_id, unsigned _backup_id){ const int buf_len = 1000; char buf[buf_len]; ndbout << "getBackupDataDir "<< _node_id <<endl; const char* path = getBackupDataDirForNode(_node_id); if (path == NULL) return -1; ndbout << "getHostName "<< _node_id <<endl; const char *host; if (!getHostName(_node_id, &host)){ return -1; } /* * Copy backup files to local dir */ BaseString::snprintf(buf, buf_len, "scp %s:%s/BACKUP/BACKUP-%d/BACKUP-%d*.%d.* .", host, path, _backup_id, _backup_id, _node_id); ndbout << "buf: "<< buf <<endl; int res = system(buf); ndbout << "scp res: " << res << endl; BaseString::snprintf(buf, 255, "%sndb_restore -c \"%s:%d\" -n %d -b %d %s %s .", #if 1 "", #else "valgrind --leak-check=yes -v " #endif ndb_mgm_get_connected_host(handle), ndb_mgm_get_connected_port(handle), _node_id, _backup_id, _restore_data?"-r":"", _restore_meta?"-m":""); ndbout << "buf: "<< buf <<endl; res = system(buf); ndbout << "ndb_restore res: " << res << endl; return res; }
ndb_mgm_configuration* fetch_configuration() { ndb_mgm_configuration* conf = 0; NdbMgmHandle mgm = ndb_mgm_create_handle(); if(mgm == NULL) { fprintf(stderr, "Cannot create handle to management server.\n"); return 0; } ndb_mgm_set_error_stream(mgm, stderr); if (ndb_mgm_set_connectstring(mgm, opt_connect_str)) { fprintf(stderr, "* %5d: %s\n", ndb_mgm_get_latest_error(mgm), ndb_mgm_get_latest_error_msg(mgm)); fprintf(stderr, "* %s", ndb_mgm_get_latest_error_desc(mgm)); goto noconnect; } if(ndb_mgm_connect(mgm, try_reconnect-1, 5, 1)) { fprintf(stderr, "Connect failed"); fprintf(stderr, " code: %d, msg: %s\n", ndb_mgm_get_latest_error(mgm), ndb_mgm_get_latest_error_msg(mgm)); goto noconnect; } else if(g_verbose) { fprintf(stderr, "Connected to %s:%d\n", ndb_mgm_get_connected_host(mgm), ndb_mgm_get_connected_port(mgm)); } conf = ndb_mgm_get_configuration(mgm, 0); if(conf == 0) { fprintf(stderr, "Could not get configuration"); fprintf(stderr, "code: %d, msg: %s\n", ndb_mgm_get_latest_error(mgm), ndb_mgm_get_latest_error_msg(mgm)); } else if(g_verbose) { fprintf(stderr, "Fetched configuration\n"); } ndb_mgm_disconnect(mgm); noconnect: ndb_mgm_destroy_handle(&mgm); return conf; }
const char *ConfigRetriever::get_mgmd_host() const { return ndb_mgm_get_connected_host(m_handle); }