You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-07-29 08:21:15 +03:00
commit from develop, MCOL-455, MCOL-527, AND MCOL-528
This commit is contained in:
@ -29,8 +29,9 @@
|
||||
<Name>redistributeData</Name>
|
||||
<Desc1>Redistribute table data accross all dbroots to balance disk usage</Desc1>
|
||||
<Arg1>START to begin a redistribution</Arg1>
|
||||
<Arg2>STOP to stop redistribution before completion</Arg2>
|
||||
<Arg3>STATUS to to view statistics and progress</Arg3>
|
||||
<Arg2>START REMOVE n to being a redistribution where data is removed from dbroot 'n'</Arg2>
|
||||
<Arg3>STOP to stop redistribution before completion</Arg3>
|
||||
<Arg4>STATUS to to view statistics and progress</Arg4>
|
||||
</Cmd4>
|
||||
<Cmd5>
|
||||
<Name>findObjectFile</Name>
|
||||
|
@ -5987,7 +5987,7 @@ namespace oam
|
||||
}
|
||||
|
||||
//attach and format volumes
|
||||
device = "/dev/sdf";
|
||||
device = "/dev/xvdf";
|
||||
|
||||
string localInstance = getEC2LocalInstance();
|
||||
|
||||
|
@ -666,64 +666,6 @@ int main(int argc, char *argv[])
|
||||
exit(1);
|
||||
}
|
||||
|
||||
cout << "NOTE: The MariaDB ColumnStore Schema Sync feature will replicate all of the" << endl;
|
||||
cout << " schemas and InnoDB tables across the User Module nodes. This feature can be enabled" << endl;
|
||||
cout << " or disabled, for example, if you wish to configure your own replication post installation." << endl << endl;
|
||||
|
||||
try {
|
||||
MySQLRep = sysConfig->getConfig(InstallSection, "MySQLRep");
|
||||
}
|
||||
catch(...)
|
||||
{}
|
||||
|
||||
if ( MySQLRep == "y" )
|
||||
mysqlRep = true;
|
||||
|
||||
string answer = "y";
|
||||
|
||||
while(true) {
|
||||
if ( mysqlRep )
|
||||
prompt = "MariaDB ColumnStore Schema Sync feature is Enabled, do you want to leave enabled? [y,n] (y) > ";
|
||||
else
|
||||
prompt = "MariaDB ColumnStore Schema Sync feature, do you want to enable? [y,n] (y) > ";
|
||||
|
||||
pcommand = callReadline(prompt.c_str());
|
||||
if (pcommand) {
|
||||
if (strlen(pcommand) > 0) answer = pcommand;
|
||||
callFree(pcommand);
|
||||
}
|
||||
|
||||
if ( answer == "y" || answer == "n" ) {
|
||||
cout << endl;
|
||||
break;
|
||||
}
|
||||
else
|
||||
cout << "Invalid Entry, please enter 'y' for yes or 'n' for no" << endl;
|
||||
if ( noPrompting )
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if ( answer == "y" ) {
|
||||
mysqlRep = true;
|
||||
MySQLRep = "y";
|
||||
}
|
||||
else
|
||||
{
|
||||
mysqlRep = false;
|
||||
MySQLRep = "n";
|
||||
}
|
||||
|
||||
try {
|
||||
sysConfig->setConfig(InstallSection, "MySQLRep", MySQLRep);
|
||||
}
|
||||
catch(...)
|
||||
{}
|
||||
|
||||
if ( !writeConfig(sysConfig) ) {
|
||||
cout << "ERROR: Failed trying to update MariaDB ColumnStore System Configuration file" << endl;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
switch ( IserverTypeInstall ) {
|
||||
case (oam::INSTALL_COMBINE_DM_UM_PM): // combined #1 - dm/um/pm on a single server
|
||||
{
|
||||
@ -813,6 +755,75 @@ int main(int argc, char *argv[])
|
||||
break;
|
||||
}
|
||||
|
||||
// check for Schema Schema is Local Query wasnt selected
|
||||
if (!pmwithum)
|
||||
{
|
||||
cout << "NOTE: The MariaDB ColumnStore Schema Sync feature will replicate all of the" << endl;
|
||||
cout << " schemas and InnoDB tables across the User Module nodes. This feature can be enabled" << endl;
|
||||
cout << " or disabled, for example, if you wish to configure your own replication post installation." << endl << endl;
|
||||
|
||||
try {
|
||||
MySQLRep = sysConfig->getConfig(InstallSection, "MySQLRep");
|
||||
}
|
||||
catch(...)
|
||||
{}
|
||||
|
||||
if ( MySQLRep == "y" )
|
||||
mysqlRep = true;
|
||||
|
||||
string answer = "y";
|
||||
|
||||
while(true) {
|
||||
if ( mysqlRep )
|
||||
prompt = "MariaDB ColumnStore Schema Sync feature is Enabled, do you want to leave enabled? [y,n] (y) > ";
|
||||
else
|
||||
prompt = "MariaDB ColumnStore Schema Sync feature, do you want to enable? [y,n] (y) > ";
|
||||
|
||||
pcommand = callReadline(prompt.c_str());
|
||||
if (pcommand) {
|
||||
if (strlen(pcommand) > 0) answer = pcommand;
|
||||
callFree(pcommand);
|
||||
}
|
||||
|
||||
if ( answer == "y" || answer == "n" ) {
|
||||
cout << endl;
|
||||
break;
|
||||
}
|
||||
else
|
||||
cout << "Invalid Entry, please enter 'y' for yes or 'n' for no" << endl;
|
||||
|
||||
if ( noPrompting )
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if ( answer == "y" ) {
|
||||
mysqlRep = true;
|
||||
MySQLRep = "y";
|
||||
}
|
||||
else
|
||||
{
|
||||
mysqlRep = false;
|
||||
MySQLRep = "n";
|
||||
}
|
||||
|
||||
try {
|
||||
sysConfig->setConfig(InstallSection, "MySQLRep", MySQLRep);
|
||||
}
|
||||
catch(...)
|
||||
{}
|
||||
}
|
||||
else
|
||||
{ //Schema Sync is default as on when Local Query is Selected
|
||||
mysqlRep = true;
|
||||
MySQLRep = "y";
|
||||
|
||||
try {
|
||||
sysConfig->setConfig(InstallSection, "MySQLRep", MySQLRep);
|
||||
}
|
||||
catch(...)
|
||||
{}
|
||||
}
|
||||
|
||||
if ( !writeConfig(sysConfig) ) {
|
||||
cout << "ERROR: Failed trying to update MariaDB ColumnStore System Configuration file" << endl;
|
||||
exit(1);
|
||||
|
@ -5272,6 +5272,8 @@ int ProcessMonitor::runMasterDist(std::string& password, std::string& slaveModul
|
||||
string cmd = startup::StartUp::installDir() + "/bin/rsync.sh " + ipAddr + " " + password + " " + startup::StartUp::installDir() + " 1 > /tmp/master-dist_" + slaveModule + ".log";
|
||||
system(cmd.c_str());
|
||||
|
||||
log.writeLog(__LINE__, "cmd = " + cmd, LOG_TYPE_DEBUG);
|
||||
|
||||
string logFile = "/tmp/master-dist_" + slaveModule + ".log";
|
||||
if (!oam.checkLogStatus(logFile, "FAILED"))
|
||||
log.writeLog(__LINE__, "runMasterDist: Success rsync to module: " + slaveModule, LOG_TYPE_DEBUG);
|
||||
@ -5501,12 +5503,49 @@ bool ProcessMonitor::amazonVolumeCheck(int dbrootID)
|
||||
|
||||
string status = oam.getEC2VolumeStatus(volumeName);
|
||||
if ( status == "attached" ) {
|
||||
string cmd = "mount " + deviceName + " " + startup::StartUp::installDir() + "/mysql/db -t ext2 -o defaults > /dev/null";
|
||||
string cmd;
|
||||
if ( rootUser)
|
||||
cmd = "mount " + deviceName + " " + startup::StartUp::installDir() + "/mysql/db -t ext2 -o noatime,nodiratime,noauto > /tmp/um_mount.log";
|
||||
else
|
||||
cmd = "sudo mount " + deviceName + " " + startup::StartUp::installDir() + "/mysql/db -t ext2 -o noatime,nodiratime,noauto,user > /tmp/um_mount.log";
|
||||
|
||||
system(cmd.c_str());
|
||||
log.writeLog(__LINE__, "mount cmd: " + cmd, LOG_TYPE_DEBUG);
|
||||
|
||||
cmd = "chown mysql:mysql -R " + startup::StartUp::installDir() + "/mysql/db";
|
||||
if ( rootUser)
|
||||
cmd = "chown -R mysql:mysql " + startup::StartUp::installDir() + "/mysql/db";
|
||||
else
|
||||
cmd = "sudo chown -R " + USER + ":" + USER + " " + startup::StartUp::installDir() + "/mysql/db";
|
||||
|
||||
system(cmd.c_str());
|
||||
log.writeLog(__LINE__, "chown cmd: " + cmd, LOG_TYPE_DEBUG);
|
||||
|
||||
//check for setup files in mysq/db, if not, create them for a new install
|
||||
string file = startup::StartUp::installDir() + "/mysql/db/mysql";
|
||||
ifstream new_file (file.c_str());
|
||||
if (!new_file) {
|
||||
string cmd;
|
||||
cmd = startup::StartUp::installDir() + "/bin/post-mysqld-install --installdir=" + startup::StartUp::installDir() + " > /tmp/post-mysqld-install.log 2>&1";
|
||||
log.writeLog(__LINE__, "cmd: " + cmd, LOG_TYPE_DEBUG);
|
||||
|
||||
int rtnCode = system(cmd.c_str());
|
||||
if (WEXITSTATUS(rtnCode) != 0) {
|
||||
log.writeLog(__LINE__, "amazonVolumeCheck function failed, post-mysqld-install error" , LOG_TYPE_ERROR);
|
||||
return false;
|
||||
}
|
||||
else
|
||||
log.writeLog(__LINE__, "amazonVolumeCheck function, post-mysqld-install passed" , LOG_TYPE_DEBUG);
|
||||
|
||||
cmd = startup::StartUp::installDir() + "/bin/post-mysql-install --installdir=" + startup::StartUp::installDir() + " > /tmp/post-mysql-install.log";;
|
||||
log.writeLog(__LINE__, "cmd: " + cmd, LOG_TYPE_DEBUG);
|
||||
rtnCode = system(cmd.c_str());
|
||||
if (WEXITSTATUS(rtnCode) != 0) {
|
||||
log.writeLog(__LINE__, "amazonVolumeCheck function failed, post-mysql-install error" , LOG_TYPE_ERROR);
|
||||
return false;
|
||||
}
|
||||
else
|
||||
log.writeLog(__LINE__, "amazonVolumeCheck function, post-mysql-install passed" , LOG_TYPE_DEBUG);
|
||||
}
|
||||
|
||||
log.writeLog(__LINE__, "amazonVolumeCheck function successfully completed, volume attached: " + volumeName, LOG_TYPE_DEBUG);
|
||||
return true;
|
||||
@ -5531,12 +5570,49 @@ bool ProcessMonitor::amazonVolumeCheck(int dbrootID)
|
||||
{}
|
||||
|
||||
if (oam.attachEC2Volume(volumeName, deviceName, instanceName)) {
|
||||
string cmd = "mount " + deviceName + " " + startup::StartUp::installDir() + "/mysql/db -t ext2 -o defaults > /dev/null";
|
||||
string cmd;
|
||||
if ( rootUser)
|
||||
cmd = "mount " + deviceName + " " + startup::StartUp::installDir() + "/mysql/db -t ext2 -o noatime,nodiratime,noauto > /tmp/um_mount.log";
|
||||
else
|
||||
cmd = "sudo mount " + deviceName + " " + startup::StartUp::installDir() + "/mysql/db -t ext2 -o noatime,nodiratime,noauto,user > /tmp/um_mount.log";
|
||||
|
||||
system(cmd.c_str());
|
||||
log.writeLog(__LINE__, "mount cmd: " + cmd, LOG_TYPE_DEBUG);
|
||||
|
||||
cmd = "chown mysql:mysql -R " + startup::StartUp::installDir() + "/mysql/db";
|
||||
if ( rootUser)
|
||||
cmd = "chown -R mysql:mysql " + startup::StartUp::installDir() + "/mysql/db";
|
||||
else
|
||||
cmd = "sudo chown -R " + USER + ":" + USER + " " + startup::StartUp::installDir() + "/mysql/db";
|
||||
|
||||
system(cmd.c_str());
|
||||
log.writeLog(__LINE__, "chown cmd: " + cmd, LOG_TYPE_DEBUG);
|
||||
|
||||
//check for setup files in mysq/db, if not, create them for a new install
|
||||
string file = startup::StartUp::installDir() + "/mysql/db/mysql";
|
||||
ifstream new_file (file.c_str());
|
||||
if (!new_file) {
|
||||
string cmd;
|
||||
cmd = startup::StartUp::installDir() + "/bin/post-mysqld-install --installdir=" + startup::StartUp::installDir() + " > /tmp/post-mysqld-install.log 2>&1";
|
||||
log.writeLog(__LINE__, "cmd: " + cmd, LOG_TYPE_DEBUG);
|
||||
int rtnCode = system(cmd.c_str());
|
||||
if (WEXITSTATUS(rtnCode) != 0) {
|
||||
log.writeLog(__LINE__, "amazonVolumeCheck function failed, post-mysqld-install error" , LOG_TYPE_ERROR);
|
||||
return false;
|
||||
}
|
||||
else
|
||||
log.writeLog(__LINE__, "amazonVolumeCheck function, post-mysqld-install passed" , LOG_TYPE_DEBUG);
|
||||
|
||||
cmd = startup::StartUp::installDir() + "/bin/post-mysql-install --installdir=" + startup::StartUp::installDir() + " > /tmp/post-mysql-install.log";;
|
||||
log.writeLog(__LINE__, "cmd: " + cmd, LOG_TYPE_DEBUG);
|
||||
|
||||
rtnCode = system(cmd.c_str());
|
||||
if (WEXITSTATUS(rtnCode) != 0) {
|
||||
log.writeLog(__LINE__, "amazonVolumeCheck function failed, post-mysql-install error" , LOG_TYPE_ERROR);
|
||||
return false;
|
||||
}
|
||||
else
|
||||
log.writeLog(__LINE__, "amazonVolumeCheck function, post-mysql-install passed" , LOG_TYPE_DEBUG);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -5809,7 +5885,7 @@ int ProcessMonitor::checkDataMount()
|
||||
string fileName = dbroot + "/OAMdbrootCheck";
|
||||
ofstream fout(fileName.c_str());
|
||||
if (!fout) {
|
||||
log.writeLog(__LINE__, "ERROR: Failed test write to DBRoot: " + dbroot + " " + strerror(errno), LOG_TYPE_ERROR);
|
||||
log.writeLog(__LINE__, "ERROR: Failed test write to DBRoot: " + dbroot, LOG_TYPE_ERROR);
|
||||
|
||||
return API_FAILURE;
|
||||
}
|
||||
|
Reference in New Issue
Block a user