|
|
@ -1,24 +1,29 @@
|
|
|
|
package com.platform.service.impl;
|
|
|
|
package com.platform.service.impl;
|
|
|
|
|
|
|
|
|
|
|
|
import java.sql.Connection;
|
|
|
|
import java.sql.Connection;
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.Map;
|
|
|
|
|
|
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
|
|
|
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import com.base.Custom4exception;
|
|
|
|
|
|
|
|
import com.base.CustomException;
|
|
|
|
|
|
|
|
import com.platform.dao.DataInfoDao;
|
|
|
|
|
|
|
|
import com.platform.entities.DataInfoEntity;
|
|
|
|
import com.platform.entities.GatherOracleInfo;
|
|
|
|
import com.platform.entities.GatherOracleInfo;
|
|
|
|
import com.platform.entities.OracleConnectorParams;
|
|
|
|
import com.platform.entities.OracleConnectorParams;
|
|
|
|
import com.platform.kubernetes.SimpleKubeClient;
|
|
|
|
import com.platform.kubernetes.SimpleKubeClient;
|
|
|
|
import com.platform.oracle.OracleConnector;
|
|
|
|
import com.platform.oracle.OracleConnector;
|
|
|
|
import com.platform.service.IOracleExtractService;
|
|
|
|
import com.platform.service.IOracleExtractService;
|
|
|
|
import com.platform.service.OracleExtractHelper;
|
|
|
|
import com.platform.service.OracleExtractHelper;
|
|
|
|
import com.platform.utils.Bean2MapUtils;
|
|
|
|
|
|
|
|
import com.platform.utils.Configs;
|
|
|
|
|
|
|
|
import com.platform.utils.Constant;
|
|
|
|
import com.platform.utils.Constant;
|
|
|
|
|
|
|
|
|
|
|
|
@Service(value = "OracleExtract")
|
|
|
|
@Service(value = "OracleExtract")
|
|
|
|
public class OracleExtractServiceImpl implements IOracleExtractService {
|
|
|
|
public class OracleExtractServiceImpl implements IOracleExtractService {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Resource(name = "dataInfoDao")
|
|
|
|
|
|
|
|
private DataInfoDao dataInfoDao;
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* kubernetes client
|
|
|
|
* kubernetes client
|
|
|
|
*/
|
|
|
|
*/
|
|
|
@ -34,82 +39,92 @@ public class OracleExtractServiceImpl implements IOracleExtractService {
|
|
|
|
private OracleConnector connect = new OracleConnector();
|
|
|
|
private OracleConnector connect = new OracleConnector();
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public boolean extractOracle(String name, List<OracleConnectorParams> dataInfolist,
|
|
|
|
public boolean extractOracle(String name,
|
|
|
|
|
|
|
|
List<OracleConnectorParams> dataInfolist,
|
|
|
|
GatherOracleInfo oracleConnect) throws Exception {
|
|
|
|
GatherOracleInfo oracleConnect) throws Exception {
|
|
|
|
boolean isSuccess = false;
|
|
|
|
boolean isSuccess = false;
|
|
|
|
try{
|
|
|
|
try {
|
|
|
|
//map转 bean(汇总库信息-带tableName的)
|
|
|
|
// map转 bean(汇总库信息-带tableName的)
|
|
|
|
GatherOracleInfo oracleModel = oracleConnect;
|
|
|
|
GatherOracleInfo oracleModel = oracleConnect;
|
|
|
|
//采集库连接参数
|
|
|
|
// 采集库连接参数
|
|
|
|
List<OracleConnectorParams> datainfos = dataInfolist;
|
|
|
|
List<OracleConnectorParams> datainfos = dataInfolist;
|
|
|
|
|
|
|
|
Connection conn = OracleConnector.ConnectionBuilder(
|
|
|
|
Connection conn = OracleConnector.ConnectionBuilder("jdbc:oracle:thin:@" + oracleModel.getIp() + ":" + oracleModel.getPort() + ":"
|
|
|
|
"jdbc:oracle:thin:@" + oracleModel.getIp() + ":"
|
|
|
|
+ oracleModel.getDatabaseName(), oracleModel.getUser(), oracleModel.getPassword());
|
|
|
|
+ oracleModel.getPort() + ":"
|
|
|
|
|
|
|
|
+ oracleModel.getDatabaseName(),
|
|
|
|
|
|
|
|
oracleModel.getUser(), oracleModel.getPassword());
|
|
|
|
|
|
|
|
|
|
|
|
for (OracleConnectorParams collectOracle : datainfos) {
|
|
|
|
for (OracleConnectorParams collectOracle : datainfos) {
|
|
|
|
/**
|
|
|
|
String[] str = collectOracle.getName().split("-");
|
|
|
|
* 判断能不能连接汇总oracle,如果不能。将信息记录到日志信息中
|
|
|
|
if (str.length == 3) {
|
|
|
|
*/
|
|
|
|
DataInfoEntity data = new DataInfoEntity();
|
|
|
|
//client.updateOrAddReplicasLabelById(collectOracle.getName(), "isExtract", "1"); //更新oracle汇总状态,0标示为未汇总,1标示汇总中,2标示汇总完成
|
|
|
|
data.setRegionalismCode(str[0]);
|
|
|
|
String cmd = "kubectl label --overwrite rc " + collectOracle.getName() + " isExtract=1";
|
|
|
|
data.setSystemCode(Integer.valueOf(str[1]));
|
|
|
|
|
|
|
|
data.setDataVersion(Integer.valueOf(str[2]));
|
|
|
|
|
|
|
|
data.setExtractStatus(1);
|
|
|
|
|
|
|
|
dataInfoDao.updateExtract(data);
|
|
|
|
|
|
|
|
collectOracle.setName("J"
|
|
|
|
|
|
|
|
+ collectOracle.getName().replace("-", "_"));
|
|
|
|
|
|
|
|
// client.updateOrAddReplicasLabelById(collectOracle.getName(),
|
|
|
|
|
|
|
|
// "isExtract", "1"); //更新oracle汇总状态,0标示为未汇总,1标示汇总中,2标示汇总完成
|
|
|
|
|
|
|
|
String cmd = "kubectl label --overwrite rc "
|
|
|
|
|
|
|
|
+ collectOracle.getName() + " isExtract=1";
|
|
|
|
Constant.ganymedSSH.execCmdWaitAcquiescent(cmd);
|
|
|
|
Constant.ganymedSSH.execCmdWaitAcquiescent(cmd);
|
|
|
|
/**
|
|
|
|
oracleExtract.createDBLink(conn, collectOracle); // 创建dblink
|
|
|
|
* 更新数据库中标签,将data-info表中的记录extract字段改为1;
|
|
|
|
oracleExtract.createTableSpace(conn, oracleModel); // 创建表空间
|
|
|
|
*/
|
|
|
|
oracleExtract.createUser(conn, collectOracle, oracleModel);// 创建用户并授权
|
|
|
|
System.out.println("标签更新成功");
|
|
|
|
oracleExtract.extractColleDB(conn, collectOracle);// 执行抽取
|
|
|
|
collectOracle.setName(collectOracle.getName().replace("-", "_"));
|
|
|
|
// client.updateOrAddReplicasLabelById(collectOracle.getName(),
|
|
|
|
oracleExtract.createDBLink(conn, collectOracle); //创建dblink
|
|
|
|
// "isExtract", "1"); //更新oracle汇总状态,0标示为未汇总,1标示汇总中,2标示汇总完成
|
|
|
|
System.out.println("创建dblink成功");
|
|
|
|
cmd = "kubectl label --overwrite rc "
|
|
|
|
oracleExtract.createTableSpace(conn, oracleModel); //创建表空间
|
|
|
|
+ collectOracle.getName() + " isExtract=1";
|
|
|
|
System.out.println("创建表空间成功");
|
|
|
|
|
|
|
|
oracleExtract.createUser(conn, oracleModel);//创建用户并授权
|
|
|
|
|
|
|
|
System.out.println("用户授权成功");
|
|
|
|
|
|
|
|
oracleExtract.extractColleDB(conn, collectOracle);//执行抽取
|
|
|
|
|
|
|
|
System.out.println("执行抽取成功");
|
|
|
|
|
|
|
|
//client.updateOrAddReplicasLabelById(collectOracle.getName(), "isExtract", "1"); //更新oracle汇总状态,0标示为未汇总,1标示汇总中,2标示汇总完成
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cmd = "kubectl label --overwrite rc " + collectOracle.getName() + " isExtract=1";
|
|
|
|
|
|
|
|
Constant.ganymedSSH.execCmdWaitAcquiescent(cmd);
|
|
|
|
Constant.ganymedSSH.execCmdWaitAcquiescent(cmd);
|
|
|
|
/**
|
|
|
|
data.setExtractStatus(2);
|
|
|
|
* 更新数据库中标签,将data-info表中的记录extract字段改为2;
|
|
|
|
dataInfoDao.updateExtract(data);
|
|
|
|
*/
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
isSuccess = true;
|
|
|
|
isSuccess = true;
|
|
|
|
}catch(Exception e){
|
|
|
|
} catch (Exception e) {
|
|
|
|
Configs.CONSOLE_LOGGER.error(e.getMessage());
|
|
|
|
new CustomException(Custom4exception.OracleSQL_Except, e);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return false;
|
|
|
|
return isSuccess;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// @Override
|
|
|
|
// @Override
|
|
|
|
// public boolean extractOracle(String name, List<OracleConnectorParams> dataInfos, GatherOracleInfo oracleConnect) throws Exception {
|
|
|
|
// public boolean extractOracle(String name, List<OracleConnectorParams>
|
|
|
|
// boolean isSuccess = false;
|
|
|
|
// dataInfos, GatherOracleInfo oracleConnect) throws Exception {
|
|
|
|
// try{
|
|
|
|
// boolean isSuccess = false;
|
|
|
|
// //map转 bean(汇总库信息-带tableName的)
|
|
|
|
// try{
|
|
|
|
//// GatherOracleInfo oracleModel = (GatherOracleInfo) Bean2MapUtils.convertMap(GatherOracleInfo.class, oracleConnect);
|
|
|
|
// //map转 bean(汇总库信息-带tableName的)
|
|
|
|
//
|
|
|
|
// // GatherOracleInfo oracleModel = (GatherOracleInfo)
|
|
|
|
// //采集库连接参数
|
|
|
|
// Bean2MapUtils.convertMap(GatherOracleInfo.class, oracleConnect);
|
|
|
|
//// List<OracleConnectorParams> datainfos = new ArrayList<OracleConnectorParams>();
|
|
|
|
//
|
|
|
|
//// for (Map<String, String> map : dataInfoMap) {
|
|
|
|
// //采集库连接参数
|
|
|
|
//// OracleConnectorParams dataInfoEntity = (OracleConnectorParams) Bean2MapUtils.convertMap(OracleConnectorParams.class, oracleConnect);
|
|
|
|
// // List<OracleConnectorParams> datainfos = new
|
|
|
|
//// datainfos.add(dataInfoEntity);
|
|
|
|
// ArrayList<OracleConnectorParams>();
|
|
|
|
//// }
|
|
|
|
// // for (Map<String, String> map : dataInfoMap) {
|
|
|
|
//
|
|
|
|
// // OracleConnectorParams dataInfoEntity = (OracleConnectorParams)
|
|
|
|
// Connection conn = OracleConnector.ConnectionBuilder("jdbc:oracle:thin:@" + oracleConnect.getIp() + ":" + oracleConnect.getPort() + "/"
|
|
|
|
// Bean2MapUtils.convertMap(OracleConnectorParams.class, oracleConnect);
|
|
|
|
// + oracleConnect.getDatabaseName(), oracleConnect.getUser(), oracleConnect.getPassword());
|
|
|
|
// // datainfos.add(dataInfoEntity);
|
|
|
|
//
|
|
|
|
// // }
|
|
|
|
// for (OracleConnectorParams collectOracle : dataInfos) {
|
|
|
|
//
|
|
|
|
//
|
|
|
|
// Connection conn = OracleConnector.ConnectionBuilder("jdbc:oracle:thin:@"
|
|
|
|
// oracleExtract.createDBLink(conn, collectOracle);
|
|
|
|
// + oracleConnect.getIp() + ":" + oracleConnect.getPort() + "/"
|
|
|
|
// oracleExtract.createTableSpace(conn, oracleConnect);
|
|
|
|
// + oracleConnect.getDatabaseName(), oracleConnect.getUser(),
|
|
|
|
// oracleExtract.createUser(conn, oracleConnect);
|
|
|
|
// oracleConnect.getPassword());
|
|
|
|
// oracleExtract.extractColleDB(conn, collectOracle);
|
|
|
|
//
|
|
|
|
// }
|
|
|
|
// for (OracleConnectorParams collectOracle : dataInfos) {
|
|
|
|
// isSuccess = true;
|
|
|
|
//
|
|
|
|
// }catch(Exception e){
|
|
|
|
// oracleExtract.createDBLink(conn, collectOracle);
|
|
|
|
//
|
|
|
|
// oracleExtract.createTableSpace(conn, oracleConnect);
|
|
|
|
// }
|
|
|
|
// oracleExtract.createUser(conn, oracleConnect);
|
|
|
|
// return false;
|
|
|
|
// oracleExtract.extractColleDB(conn, collectOracle);
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
|
|
|
|
// isSuccess = true;
|
|
|
|
|
|
|
|
// }catch(Exception e){
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// return false;
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|