diff --git a/WebContent/WEB-INF/config/config.properties b/WebContent/WEB-INF/config/config.properties index 86b6b49e..26e14c48 100644 --- a/WebContent/WEB-INF/config/config.properties +++ b/WebContent/WEB-INF/config/config.properties @@ -4,7 +4,7 @@ # 驱动程序 jdbc.mysql.driver=com.mysql.jdbc.Driver # 连接url -jdbc.mysql.url=jdbc:mysql://192.168.0.110:3306/ftpdata?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true +jdbc.mysql.url=jdbc:mysql://192.168.0.101:3306/test?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true # 用户名 jdbc.mysql.username=root # 密码 @@ -41,7 +41,7 @@ jdbc.minEvictableIdleTimeMillis=300000 # #============================================================================================================== table-suffix=_20152016 -extract-log-localtion=/home/log/ +extract-log-localtion=D:\\log\\ gather-tablespace-name=TS_TTSSS gather-tablespace-path=1 gather-table-user-password=1 diff --git a/WebContent/WEB-INF/lib/data_manager_backend.war b/WebContent/WEB-INF/lib/data_manager_backend.war deleted file mode 100644 index 832b83e5..00000000 Binary files a/WebContent/WEB-INF/lib/data_manager_backend.war and /dev/null differ diff --git a/src/com/platform/controller/DataModelController.java b/src/com/platform/controller/DataModelController.java index e8d2e979..0d518551 100644 --- a/src/com/platform/controller/DataModelController.java +++ b/src/com/platform/controller/DataModelController.java @@ -113,7 +113,7 @@ public class DataModelController extends BaseController{ String[] oraclesName = paramMap.get("oracleName"); if (oraclesName != null) for (String rcName : oraclesName) { - Configs.CONSOLE_LOGGER.info("连接成功\t" + rcName); + Configs.CONSOLE_LOGGER.info("执行连接\t" + rcName); new OracleStatusService().connectToOracle(rcName); } req.setStatus(200); diff --git a/src/com/platform/kubernetes/SimpleKubeClient.java b/src/com/platform/kubernetes/SimpleKubeClient.java index ab1ab367..28c0da14 100644 --- a/src/com/platform/kubernetes/SimpleKubeClient.java +++ b/src/com/platform/kubernetes/SimpleKubeClient.java @@ -4,6 +4,7 @@ import io.fabric8.kubernetes.api.model.Container; import io.fabric8.kubernetes.api.model.ContainerPort; import io.fabric8.kubernetes.api.model.Pod; import io.fabric8.kubernetes.api.model.ReplicationController; +import io.fabric8.kubernetes.client.Client; import io.fabric8.kubernetes.client.Config; import io.fabric8.kubernetes.client.ConfigBuilder; import io.fabric8.kubernetes.client.DefaultKubernetesClient; @@ -19,7 +20,7 @@ import com.platform.utils.UtilsHelper; public class SimpleKubeClient { private KubernetesClient client; - private final static String DEFAULT_NAMESPACE = "default"; + private final static String DEFAULT_NAMESPACE = "default"; public SimpleKubeClient() { this.client = new DefaultKubernetesClient(Configs.KUBE_MASTER_URL); @@ -32,18 +33,22 @@ public class SimpleKubeClient { public SimpleKubeClient(Config config) { Config cf = config; if (null == config) { - cf = new ConfigBuilder().withMasterUrl(Configs.KUBE_MASTER_URL).build(); + cf = new ConfigBuilder().withMasterUrl(Configs.KUBE_MASTER_URL) + .build(); } + this.client = new DefaultKubernetesClient(cf); } + // RollingUpdatercline + public void updateOrAddReplicasLabelById(String namespace, String resourceId, String key, String value) { KubernetesClient kubeClient = client; if (checkClientNull()) kubeClient = new DefaultKubernetesClient(Configs.KUBE_MASTER_URL); kubeClient.replicationControllers().inNamespace(namespace) - .withName(resourceId).edit().editMetadata() + .withName(resourceId).rolling().edit().editMetadata() .addToLabels(key, value).endMetadata().done(); } diff --git a/src/com/platform/oracle/OracleConnector.java b/src/com/platform/oracle/OracleConnector.java index 41978349..923d578b 100644 --- a/src/com/platform/oracle/OracleConnector.java +++ b/src/com/platform/oracle/OracleConnector.java @@ -1,112 +1,112 @@ -package com.platform.oracle; - -import java.sql.Connection; -import java.sql.DriverManager; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.sql.Statement; - -import com.base.Custom4exception; -import com.base.CustomException; -import com.platform.utils.Configs; -import com.platform.utils.FileOperateHelper; - -public class OracleConnector { - static { - try { - Class.forName("oracle.jdbc.driver.OracleDriver"); - Configs.CONSOLE_LOGGER.info("Oracle驱动加载成功"); - } catch (ClassNotFoundException e) { - // TODO Auto-generated catch block - new CustomException(Custom4exception.OracleSQL_Except, e); - e.printStackTrace(); - } - } - - - public synchronized static Connection ConnectionBuilder(String url, String user, - String password) { - Connection conn=null; - try { - conn = DriverManager.getConnection(url, user, password); - } catch (SQLException e) { - new CustomException(Custom4exception.OracleSQL_Except, e); - Configs.CONSOLE_LOGGER.info("创建oracle连接失败: [" + e.getMessage() + "]"); - } - return conn; - } - - public synchronized static boolean canConnect(String url, String user, String password) { - return (null != ConnectionBuilder(url, user, password)); - } - - public synchronized static ResultSet getSQLExecResultSet(Connection conn, String sql, String filePath) { - ResultSet resultSet = null; - try { - Statement statement = conn - .createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, - ResultSet.CONCUR_UPDATABLE); - resultSet = statement.executeQuery(sql); - FileOperateHelper - .fileWrite(filePath, sql+ "\r\n"+"OK \r\n"); - } catch (SQLException e) { - FileOperateHelper - .fileWrite(filePath, sql+ "\r\n"+e.getMessage()+"\r\n"); - new CustomException(Custom4exception.OracleSQL_Except, e); - } - - return resultSet; - } - - public synchronized static ResultSet getSQLExecResultSet(String url, String user, - String password, String sql, String filePath) { - return getSQLExecResultSet(ConnectionBuilder(url, user, password), sql, filePath); - } - - /** - * 执行对oracle数据库的增、删 - * @param conn - * @param sql - * @return true:执行的不返回集合数据的sql成功, 是否执行成功 - */ - public synchronized static boolean execOracleSQL(Connection conn, String sql, String filePath) { - boolean flag = false; - try { - Statement statement = conn.createStatement(); - statement.execute(sql); - flag = true; - FileOperateHelper - .fileWrite(filePath, sql+ "\r\n"+"OK \r\n"); - } catch (SQLException e) { - flag = false; - FileOperateHelper - .fileWrite(filePath, sql+ "\r\n"+e.getMessage()+"\r\n"); - new CustomException(Custom4exception.OracleSQL_Except, e); - } - return flag; - } - /** - * 执行对oracle数据库的增、删 - * @param conn - * @param sql - * @return true:执行结果大于1,即有数据 是否执行成功 - */ - public synchronized static boolean execUpdateOracleSQL(Connection conn, String sql, String filePath) { - boolean flag = false; - try { - Statement statement = conn.createStatement(); - if(statement.executeUpdate(sql) > 0) - { - flag = true; - FileOperateHelper - .fileWrite(filePath, sql+ "\r\n"+"OK \r\n"); - } - } catch (SQLException e) { - flag = false; - FileOperateHelper - .fileWrite(filePath, sql+ "\r\n"+e.getMessage()+"\r\n"); - new CustomException(Custom4exception.OracleSQL_Except, e, sql); - } - return flag; - } +package com.platform.oracle; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; + +import com.base.Custom4exception; +import com.base.CustomException; +import com.platform.utils.Configs; +import com.platform.utils.FileOperateHelper; + +public class OracleConnector { + static { + try { + Class.forName("oracle.jdbc.driver.OracleDriver"); + Configs.CONSOLE_LOGGER.info("Oracle驱动加载成功"); + } catch (ClassNotFoundException e) { + // TODO Auto-generated catch block + new CustomException(Custom4exception.OracleSQL_Except, e); + e.printStackTrace(); + } + } + + + public synchronized static Connection ConnectionBuilder(String url, String user, + String password) { + Connection conn=null; + try { + conn = DriverManager.getConnection(url, user, password); + } catch (SQLException e) { + new CustomException(Custom4exception.OracleSQL_Except, e); + Configs.CONSOLE_LOGGER.info("创建oracle连接失败: [" + e.getMessage() + "]"); + } + return conn; + } + + public synchronized static boolean canConnect(String url, String user, String password) { + return (null != ConnectionBuilder(url, user, password)); + } + + public synchronized static ResultSet getSQLExecResultSet(Connection conn, String sql, String filePath) { + ResultSet resultSet = null; + try { + Statement statement = conn + .createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, + ResultSet.CONCUR_UPDATABLE); + resultSet = statement.executeQuery(sql); + FileOperateHelper + .fileWrite(filePath, sql+ "\r\n"+"OK \r\n"); + } catch (SQLException e) { + FileOperateHelper + .fileWrite(filePath, sql+ "\r\n"+e.getMessage()+"\r\n"); + new CustomException(Custom4exception.OracleSQL_Except, e); + } + + return resultSet; + } + + public synchronized static ResultSet getSQLExecResultSet(String url, String user, + String password, String sql, String filePath) { + return getSQLExecResultSet(ConnectionBuilder(url, user, password), sql, filePath); + } + + /** + * 执行对oracle数据库的增、删 + * @param conn + * @param sql + * @return true:执行的不返回集合数据的sql成功, 是否执行成功 + */ + public synchronized static boolean execOracleSQL(Connection conn, String sql, String filePath) { + boolean flag = false; + try { + Statement statement = conn.createStatement(); + statement.execute(sql); + flag = true; + FileOperateHelper + .fileWrite(filePath, sql+ "\r\n"+"OK \r\n"); + } catch (SQLException e) { + flag = false; + FileOperateHelper + .fileWrite(filePath, sql+ "\r\n"+e.getMessage()+"\r\n"); + new CustomException(Custom4exception.OracleSQL_Except, e); + } + return flag; + } + /** + * 执行对oracle数据库的增、删 + * @param conn + * @param sql + * @return true:执行结果大于1,即有数据 是否执行成功 + */ + public synchronized static boolean execUpdateOracleSQL(Connection conn, String sql, String filePath) { + boolean flag = false; + try { + Statement statement = conn.createStatement(); + if(statement.executeUpdate(sql) > 0) + { + flag = true; + FileOperateHelper + .fileWrite(filePath, sql+ "\r\n"+"OK \r\n"); + } + } catch (SQLException e) { + flag = false; + FileOperateHelper + .fileWrite(filePath, sql+ "\r\n"+e.getMessage()+"\r\n"); + new CustomException(Custom4exception.OracleSQL_Except, e, sql); + } + return flag; + } } \ No newline at end of file diff --git a/src/com/platform/service/OracleExtractHelper.java b/src/com/platform/service/OracleExtractHelper.java index 1dcbdaad..d3de043f 100644 --- a/src/com/platform/service/OracleExtractHelper.java +++ b/src/com/platform/service/OracleExtractHelper.java @@ -1,187 +1,187 @@ -package com.platform.service; - -import java.sql.Connection; -import java.sql.ResultSet; -import java.sql.SQLException; - -import com.base.Custom4exception; -import com.base.CustomException; -import com.platform.entities.GatherOracleInfo; -import com.platform.entities.OracleConnectorParams; -import com.platform.oracle.OracleConnector; -import com.platform.utils.Configs; -import com.platform.utils.FileOperateHelper; - -public class OracleExtractHelper { - - /** - * 判断dblink是否已经存在 - * - * @param conn - * @param linkName - * dblink的名称 - * @return - */ - private boolean hasSameNameDBLink(Connection conn, String linkName) { - boolean flag = false; - String sql = "SELECT * FROM ALL_DB_LINKS WHERE DB_LINK='" + linkName+"'"; - ResultSet rSet = null; - try { - rSet = OracleConnector.getSQLExecResultSet(conn, sql, null); - rSet.last(); - if (rSet.getRow() > 0) - flag = true; - } catch (Exception e) { - // TODO Auto-generated catch block - e.printStackTrace(); - new CustomException(Custom4exception.threadVolume_Oracle_Except, e, rSet); - } - return flag; - } - - /** - * 创建dblink - * - * @param conn 汇总库的连接 - * @param oc 采集库 - * dblink连接参数实体 - */ - public void createDBLink(Connection conn, OracleConnectorParams oc) { - String linkName = "LINKTO" + oc.getName(); - String sql = "CREATE PUBLIC DATABASE LINK " - + linkName - + " CONNECT TO " - + oc.getUser() - + " IDENTIFIED BY " - + oc.getPassword() - + " USING \'(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = " - + oc.getIp() + ")(PORT = " + oc.getPort() - + ")))(CONNECT_DATA =(SERVICE_NAME =" + oc.getDatabaseName() - + ")))\'"; - if (null != oc) { - if (hasSameNameDBLink(conn, linkName)) { // 如果dblink已经存在,先删除dblink,在创建dblink - String deleteSql = "DROP PUBLIC DATABASE LINK " - + linkName; - FileOperateHelper - .fileWrite( - Configs.EXTRACT_LOG_LOCALTION + oc.getName(), - deleteSql+"\r\n"); - if (OracleConnector.execOracleSQL(conn, deleteSql, Configs.EXTRACT_LOG_LOCALTION + oc.getName())) { - FileOperateHelper.fileWrite(Configs.EXTRACT_LOG_LOCALTION - + oc.getName(), sql+"\r\n"); - OracleConnector.execOracleSQL(conn, sql, Configs.EXTRACT_LOG_LOCALTION + oc.getName()); - } else { - Configs.CONSOLE_LOGGER.error("删除已有的DBLink失败,无法创建新的DBLink!"); - FileOperateHelper.fileWrite(Configs.EXTRACT_LOG_LOCALTION - + oc.getName(), "删除已有的DBLink失败,无法创建新的DBLink!"+"\r\n"); - } - - } else { - // 否则,创建dblink - OracleConnector.execOracleSQL(conn, sql, Configs.EXTRACT_LOG_LOCALTION + oc.getName()); - FileOperateHelper.fileWrite( - Configs.EXTRACT_LOG_LOCALTION + oc.getName(), sql); - } - } - } - - /** - * 创建表空间 - * - * @param conn 汇总库连接 - * @param oc 汇总库信息 - * @return - */ - public boolean createTableSpace(Connection conn, GatherOracleInfo oc) { - String tmpSql = "select TABLESPACE_NAME from dba_tablespaces where TABLESPACE_NAME = '" - + oc.getTableName() + "'"; - if (OracleConnector.execUpdateOracleSQL(conn, tmpSql, Configs.EXTRACT_LOG_LOCALTION + oc.getName())) { - FileOperateHelper - .fileWrite( - Configs.EXTRACT_LOG_LOCALTION + oc.getName(), - tmpSql+"\r\n"); - return true; - } else { - String sql = "create tablespace " + oc.getTableName() - + " datafile '" + Configs.GATHER_TABLESPACE_PATH - + oc.getTableName() + ".dbf" - + "' size 512M autoextend on next 512M maxsize unlimited"; - FileOperateHelper - .fileWrite( - Configs.EXTRACT_LOG_LOCALTION + oc.getName(), - sql+"\r\n"); - return OracleConnector.execOracleSQL(conn, sql, Configs.EXTRACT_LOG_LOCALTION + oc.getName()); - } - } - - /** - * 创建用户并授权 - * - * @param conn 汇总库连接 - * @param oc 汇总库信息 - */ - public void createUser(Connection conn, OracleConnectorParams oc, GatherOracleInfo totalOracle) { - String strTUser = oc.getName() + totalOracle.getSuffix(); - String sql = "Create user " + strTUser + " default tablespace " - + totalOracle.getTableName() + " identified by " - + Configs.GATHER_TABLE_PASSWORD; - String grantSql = "grant connect, resource, dba to " + strTUser; - - OracleConnector.execOracleSQL(conn, sql, Configs.EXTRACT_LOG_LOCALTION + oc.getName()); - FileOperateHelper - .fileWrite( - Configs.EXTRACT_LOG_LOCALTION + oc.getName(), - sql+"\r\n"); - - OracleConnector.execOracleSQL(conn, grantSql, Configs.EXTRACT_LOG_LOCALTION + oc.getName()); - FileOperateHelper - .fileWrite( - Configs.EXTRACT_LOG_LOCALTION + oc.getName(), - grantSql+"\r\n"); - } - - /** - * 执行汇总操作 - * - * @param conn 汇总库连接 - * @param oc 采集库 - */ - public void extractColleDB(Connection conn, OracleConnectorParams oc) { - String strTUser = oc.getName() + Configs.TABLE_SUFFIX; - String sql = "SELECT 'create table " - + strTUser - + ".J'|| substr(t.OWNER||'_'||t.TABLE_NAME,0,29)||' as select * from '||t.OWNER||'.'||t.TABLE_NAME||" - + "'@LINKTO" - + oc.getName() - + ";' FROM dba_tables@LINKTO" - + oc.getName() - + " t WHERE t.TABLESPACE_NAME NOT IN ('SYSTEM','SYSAUX')" - + " and t.owner||t.table_name not in (select owner||table_name from dba_tables@LINKTO" - + oc.getName() + " where 'data_type'='CLOB')"; - ResultSet rsSet = OracleConnector.getSQLExecResultSet(conn, sql, Configs.EXTRACT_LOG_LOCALTION + oc.getName()); - FileOperateHelper - .fileWrite( - Configs.EXTRACT_LOG_LOCALTION + oc.getName(), - sql+"\r\n"); - try { - while (rsSet.next()) { - try { - rsSet.getRow(); - String resultSql = rsSet.getString(1); - OracleConnector.execUpdateOracleSQL(conn, resultSql, Configs.EXTRACT_LOG_LOCALTION + oc.getName()); - FileOperateHelper - .fileWrite( - Configs.EXTRACT_LOG_LOCALTION + oc.getName(), - resultSql+"\r\n"); - - } catch (SQLException e) { - new CustomException(Custom4exception.threadVolume_Oracle_Except, e, rsSet.getString(1)); - } - } - } catch (SQLException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - - } -} +package com.platform.service; + +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.SQLException; + +import com.base.Custom4exception; +import com.base.CustomException; +import com.platform.entities.GatherOracleInfo; +import com.platform.entities.OracleConnectorParams; +import com.platform.oracle.OracleConnector; +import com.platform.utils.Configs; +import com.platform.utils.FileOperateHelper; + +public class OracleExtractHelper { + + /** + * 判断dblink是否已经存在 + * + * @param conn + * @param linkName + * dblink的名称 + * @return + */ + private boolean hasSameNameDBLink(Connection conn, String linkName) { + boolean flag = false; + String sql = "SELECT * FROM ALL_DB_LINKS WHERE DB_LINK='" + linkName+"'"; + ResultSet rSet = null; + try { + rSet = OracleConnector.getSQLExecResultSet(conn, sql, null); + rSet.last(); + if (rSet.getRow() > 0) + flag = true; + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + new CustomException(Custom4exception.threadVolume_Oracle_Except, e, rSet); + } + return flag; + } + + /** + * 创建dblink + * + * @param conn 汇总库的连接 + * @param oc 采集库 + * dblink连接参数实体 + */ + public void createDBLink(Connection conn, OracleConnectorParams oc) { + String linkName = "LINKTO" + oc.getName(); + String sql = "CREATE PUBLIC DATABASE LINK " + + linkName + + " CONNECT TO " + + oc.getUser() + + " IDENTIFIED BY " + + oc.getPassword() + + " USING \'(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = " + + oc.getIp() + ")(PORT = " + oc.getPort() + + ")))(CONNECT_DATA =(SERVICE_NAME =" + oc.getDatabaseName() + + ")))\'"; + if (null != oc) { + if (hasSameNameDBLink(conn, linkName)) { // 如果dblink已经存在,先删除dblink,在创建dblink + String deleteSql = "DROP PUBLIC DATABASE LINK " + + linkName; + FileOperateHelper + .fileWrite( + Configs.EXTRACT_LOG_LOCALTION + oc.getName(), + deleteSql+"\r\n"); + if (OracleConnector.execOracleSQL(conn, deleteSql, Configs.EXTRACT_LOG_LOCALTION + oc.getName())) { + FileOperateHelper.fileWrite(Configs.EXTRACT_LOG_LOCALTION + + oc.getName(), sql+"\r\n"); + OracleConnector.execOracleSQL(conn, sql, Configs.EXTRACT_LOG_LOCALTION + oc.getName()); + } else { + Configs.CONSOLE_LOGGER.error("删除已有的DBLink失败,无法创建新的DBLink!"); + FileOperateHelper.fileWrite(Configs.EXTRACT_LOG_LOCALTION + + oc.getName(), "删除已有的DBLink失败,无法创建新的DBLink!"+"\r\n"); + } + + } else { + // 否则,创建dblink + OracleConnector.execOracleSQL(conn, sql, Configs.EXTRACT_LOG_LOCALTION + oc.getName()); + FileOperateHelper.fileWrite( + Configs.EXTRACT_LOG_LOCALTION + oc.getName(), sql); + } + } + } + + /** + * 创建表空间 + * + * @param conn 汇总库连接 + * @param oc 汇总库信息 + * @return + */ + public boolean createTableSpace(Connection conn, GatherOracleInfo oc) { + String tmpSql = "select TABLESPACE_NAME from dba_tablespaces where TABLESPACE_NAME = '" + + oc.getTableName() + "'"; + if (OracleConnector.execUpdateOracleSQL(conn, tmpSql, Configs.EXTRACT_LOG_LOCALTION + oc.getName())) { + FileOperateHelper + .fileWrite( + Configs.EXTRACT_LOG_LOCALTION + oc.getName(), + tmpSql+"\r\n"); + return true; + } else { + String sql = "create tablespace " + oc.getTableName() + + " datafile '" + Configs.GATHER_TABLESPACE_PATH + + oc.getTableName() + ".dbf" + + "' size 512M autoextend on next 512M maxsize unlimited"; + FileOperateHelper + .fileWrite( + Configs.EXTRACT_LOG_LOCALTION + oc.getName(), + sql+"\r\n"); + return OracleConnector.execOracleSQL(conn, sql, Configs.EXTRACT_LOG_LOCALTION + oc.getName()); + } + } + + /** + * 创建用户并授权 + * + * @param conn 汇总库连接 + * @param oc 汇总库信息 + */ + public void createUser(Connection conn, OracleConnectorParams oc, GatherOracleInfo totalOracle) { + String strTUser = oc.getName() + totalOracle.getSuffix(); + String sql = "Create user " + strTUser + " default tablespace " + + totalOracle.getTableName() + " identified by " + + Configs.GATHER_TABLE_PASSWORD; + String grantSql = "grant connect, resource, dba to " + strTUser; + + OracleConnector.execOracleSQL(conn, sql, Configs.EXTRACT_LOG_LOCALTION + oc.getName()); + FileOperateHelper + .fileWrite( + Configs.EXTRACT_LOG_LOCALTION + oc.getName(), + sql+"\r\n"); + + OracleConnector.execOracleSQL(conn, grantSql, Configs.EXTRACT_LOG_LOCALTION + oc.getName()); + FileOperateHelper + .fileWrite( + Configs.EXTRACT_LOG_LOCALTION + oc.getName(), + grantSql+"\r\n"); + } + + /** + * 执行汇总操作 + * + * @param conn 汇总库连接 + * @param oc 采集库 + */ + public void extractColleDB(Connection conn, OracleConnectorParams oc) { + String strTUser = oc.getName() + Configs.TABLE_SUFFIX; + String sql = "SELECT 'create table " + + strTUser + + ".J'|| substr(t.OWNER||'_'||t.TABLE_NAME,0,29)||' as select * from '||t.OWNER||'.'||t.TABLE_NAME||" + + "'@LINKTO" + + oc.getName() + + ";' FROM dba_tables@LINKTO" + + oc.getName() + + " t WHERE t.TABLESPACE_NAME NOT IN ('SYSTEM','SYSAUX')" + + " and t.owner||t.table_name not in (select owner||table_name from dba_tables@LINKTO" + + oc.getName() + " where 'data_type'='CLOB')"; + ResultSet rsSet = OracleConnector.getSQLExecResultSet(conn, sql, Configs.EXTRACT_LOG_LOCALTION + oc.getName()); + FileOperateHelper + .fileWrite( + Configs.EXTRACT_LOG_LOCALTION + oc.getName(), + sql+"\r\n"); + try { + while (rsSet.next()) { + try { + rsSet.getRow(); + String resultSql = rsSet.getString(1); + OracleConnector.execUpdateOracleSQL(conn, resultSql, Configs.EXTRACT_LOG_LOCALTION + oc.getName()); + FileOperateHelper + .fileWrite( + Configs.EXTRACT_LOG_LOCALTION + oc.getName(), + resultSql+"\r\n"); + + } catch (SQLException e) { + new CustomException(Custom4exception.threadVolume_Oracle_Except, e, rsSet.getString(1)); + } + } + } catch (SQLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + } +} diff --git a/src/com/platform/service/OracleStatusService.java b/src/com/platform/service/OracleStatusService.java index d9b006e7..c1265c90 100644 --- a/src/com/platform/service/OracleStatusService.java +++ b/src/com/platform/service/OracleStatusService.java @@ -10,10 +10,13 @@ import java.util.Map; import java.util.Timer; import java.util.TimerTask; +import org.apache.commons.lang.text.StrBuilder; + import com.platform.entities.OracleConnectorParams; import com.platform.kubernetes.SimpleKubeClient; import com.platform.oracle.OracleConnector; import com.platform.utils.Configs; +import com.platform.utils.Constant; public class OracleStatusService { private static Map alliveTask = new Hashtable(); @@ -29,16 +32,24 @@ public class OracleStatusService { OracleConnectorParams orp = new OracleConnectorParams(); Timer timer = new Timer(); alliveTask.put(replicasName, timer); - timer.schedule(new connectTask(replicasName, orp, sKubeClient), DELAY_TIME, - INTERVAL_TIME); + timer.schedule(new connectTask(replicasName, orp, sKubeClient), + DELAY_TIME, INTERVAL_TIME); } public void cancelToOracle(String replicasName, String operate) { if (operate.equals("stop")) { - SimpleKubeClient sKubeClient = new SimpleKubeClient(); - sKubeClient.updateOrAddReplicasLabelById(replicasName, "status", - "0"); + String cmd = "kubectl label --overwrite rc " + replicasName + + " status=0"; + List rList = Constant.ganymedSSH + .execCmdWaitAcquiescent(cmd); + StringBuffer sb = new StringBuffer(); + for (String str : rList) + sb.append(str).append("\n"); + Configs.CONSOLE_LOGGER.info(sb.toString()); + // SimpleKubeClient sKubeClient = new SimpleKubeClient(); + // sKubeClient.updateOrAddReplicasLabelById(replicasName, + // "status","0"); } killAlliveTask(replicasName); } @@ -85,8 +96,9 @@ public class OracleStatusService { private int count; private OracleConnectorParams ocp; private SimpleKubeClient client; - - public connectTask(String taskName, OracleConnectorParams ocp, SimpleKubeClient client){ + + public connectTask(String taskName, OracleConnectorParams ocp, + SimpleKubeClient client) { this.taskName = taskName; this.ocp = ocp; this.count = 0; @@ -102,12 +114,20 @@ public class OracleStatusService { @Override public void run() { - if (count == EXEC_TIME && alliveTask.containsKey(taskName)) { //如果任务已经执行10次,则任务oracle启动失败,并取消oracle连接 + if (count == EXEC_TIME && alliveTask.containsKey(taskName)) { // 如果任务已经执行10次,则任务oracle启动失败,并取消oracle连接 killAlliveTask(taskName); - client.updateOrAddReplicasLabelById(taskName, "status", "1"); //更新ReplicationController标签,将oracle状态标示未1(0:启动中,1:失败,2:成功) + // client.updateOrAddReplicasLabelById(taskName, "status", "1"); + // //更新ReplicationController标签,将oracle状态标示未1(0:启动中,1:失败,2:成功) + String cmd = "kubectl label --overwrite rc " + taskName + + " status=1"; + List rList = Constant.ganymedSSH + .execCmdWaitAcquiescent(cmd); + StringBuffer sb = new StringBuffer(); + for (String str : rList) + sb.append(str).append("\n"); Configs.CONSOLE_LOGGER.info("更新replicationController标签: " + taskName + "\t[标签更新为: 失败]"); - } else { //否则,执行连接oracle任务,判断oracle是否启动成功 + } else { // 否则,执行连接oracle任务,判断oracle是否启动成功 Pod pod = filterPod(); if (pod != null) { String ip = client.getPodHostIp(pod); @@ -115,15 +135,23 @@ public class OracleStatusService { if (ip != null && port != 0) { String url = "jdbc:oracle:thin:@" + ip + ":" + port + ":" + ocp.getDatabaseName(); - boolean flag = OracleConnector.canConnect(url, //连接结果返回参数,true标示连接成功,false标示连接失败 + boolean flag = OracleConnector.canConnect(url, // 连接结果返回参数,true标示连接成功,false标示连接失败 ocp.getUser(), ocp.getPassword()); Configs.CONSOLE_LOGGER.info("url:" + url + ",user:" + ocp.getUser() + ",password:" + ocp.getPassword()); String message = "失败"; if (flag && alliveTask.containsKey(taskName)) { - client.updateOrAddReplicasLabelById(taskName, - "status", "2"); + String cmd = "kubectl label --overwrite rc " + + taskName + " status=2"; + // client.updateOrAddReplicasLabelById(taskNSyame, + // "status", "2"); + List rList = Constant.ganymedSSH + .execCmdWaitAcquiescent(cmd); + StringBuffer sb = new StringBuffer(); + for (String str : rList) + sb.append(str).append("\n"); + Configs.CONSOLE_LOGGER.info(sb.toString()); message = "成功"; killAlliveTask(taskName); // 连接成功,取消连接 Configs.CONSOLE_LOGGER @@ -140,6 +168,7 @@ public class OracleStatusService { /** * 获取oracle的连接ip地址和端口号 + * * @return */ private Pod filterPod() { diff --git a/src/com/platform/service/impl/OracleExtractServiceImpl.java b/src/com/platform/service/impl/OracleExtractServiceImpl.java index 13447f0f..d7324a80 100644 --- a/src/com/platform/service/impl/OracleExtractServiceImpl.java +++ b/src/com/platform/service/impl/OracleExtractServiceImpl.java @@ -1,9 +1,7 @@ package com.platform.service.impl; import java.sql.Connection; -import java.util.ArrayList; import java.util.List; -import java.util.Map; import javax.annotation.Resource; @@ -13,14 +11,14 @@ import com.base.Custom4exception; import com.base.CustomException; import com.platform.dao.DataInfoDao; import com.platform.entities.DataInfoEntity; -import com.platform.entities.DataInfoEntityMoveTmp; import com.platform.entities.GatherOracleInfo; import com.platform.entities.OracleConnectorParams; import com.platform.kubernetes.SimpleKubeClient; import com.platform.oracle.OracleConnector; import com.platform.service.IOracleExtractService; import com.platform.service.OracleExtractHelper; -import com.platform.utils.Bean2MapUtils; +import com.platform.utils.Configs; +import com.platform.utils.Constant; @Service(value = "OracleExtract") public class OracleExtractServiceImpl implements IOracleExtractService { @@ -60,12 +58,27 @@ public class OracleExtractServiceImpl implements IOracleExtractService { data.setExtractStatus(1); dataInfoDao.updateExtract(data); collectOracle.setName("J" + collectOracle.getName().replace("-", "_")); + String cmd = "kubectl label --overwrite rc " + + collectOracle.getName() + " isExtract=1"; + List rList = Constant.ganymedSSH + .execCmdWaitAcquiescent(cmd); + StringBuffer sb = new StringBuffer(); + for (String string : rList) + sb.append(string).append("\n"); + Configs.CONSOLE_LOGGER.info(sb.toString()); // client.updateOrAddReplicasLabelById(collectOracle.getName(), "isExtract", "1"); //更新oracle汇总状态,0标示为未汇总,1标示汇总中,2标示汇总完成 oracleExtract.createDBLink(conn, collectOracle); //创建dblink oracleExtract.createTableSpace(conn, oracleModel); //创建表空间 oracleExtract.createUser(conn, collectOracle, oracleModel);//创建用户并授权 oracleExtract.extractColleDB(conn, collectOracle);//执行抽取 // client.updateOrAddReplicasLabelById(collectOracle.getName(), "isExtract", "2"); //更新oracle汇总状态,0标示为未汇总,1标示汇总中,2标示汇总完成 + cmd = "kubectl label --overwrite rc " + + collectOracle.getName() + " isExtract=2"; + rList = Constant.ganymedSSH.execCmdWaitAcquiescent(cmd); + sb = new StringBuffer(); + for (String string : rList) + sb.append(string).append("\n"); + Configs.CONSOLE_LOGGER.info(sb.toString()); data.setExtractStatus(2); dataInfoDao.updateExtract(data); } diff --git a/src/com/platform/utils/Configs.java b/src/com/platform/utils/Configs.java index c618d547..c3754d5c 100644 --- a/src/com/platform/utils/Configs.java +++ b/src/com/platform/utils/Configs.java @@ -21,7 +21,7 @@ public class Configs { public static final Logger LOGGER = Logger.getLogger(Configs.class); - public static String KUBE_MASTER_URL = "http://192.168.0.113:8080/"; // kubernetes集群的maser + public static String KUBE_MASTER_URL = "http://192.168.0.110:8080/"; // kubernetes集群的maser // URl public static int ORACLE_DEFAULT_PORT = 1521; // oracle的默认端口号 @@ -42,12 +42,11 @@ public class Configs { public static String TABLE_SUFFIX = "_20152016"; //汇总库汇总表的后缀名 - public static String EXTRACT_LOG_LOCALTION = "C:\\log"; //数据汇总日志保存位置 + public static String EXTRACT_LOG_LOCALTION = "D:\\log"; //数据汇总日志保存位置 public static String GATHER_TABLESPACE_NAME=""; //表空间名 public static String GATHER_TABLESPACE_PATH=""; //表空间路径 public static String GATHER_TABLE_PASSWORD="1"; //登入密码 - } diff --git a/test/com/platform/test/TestWriteFile.java b/test/com/platform/test/TestWriteFile.java index 546d3775..e232da75 100644 --- a/test/com/platform/test/TestWriteFile.java +++ b/test/com/platform/test/TestWriteFile.java @@ -1,16 +1,16 @@ -package com.platform.test; - -import com.platform.utils.Configs; -import com.platform.utils.FileOperateHelper; - -public class TestWriteFile { - - public static void main(String[] args) { - FileOperateHelper - .fileWrite( - Configs.EXTRACT_LOG_LOCALTION +"\\test.log", - "Hello! \r\n"); - System.out.println("Hello!"); - } - -} +package com.platform.test; + +import com.platform.utils.Configs; +import com.platform.utils.FileOperateHelper; + +public class TestWriteFile { + + public static void main(String[] args) { + FileOperateHelper + .fileWrite( + Configs.EXTRACT_LOG_LOCALTION +"\\test.log", + "Hello! \r\n"); + System.out.println("Hello!"); + } + +}