You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
111 lines
3.7 KiB
111 lines
3.7 KiB
package com.platform.service;
|
|
|
|
import java.sql.Connection;
|
|
import java.util.Date;
|
|
import java.util.List;
|
|
|
|
import org.apache.log4j.Logger;
|
|
|
|
import com.base.Custom4exception;
|
|
import com.platform.entities.AbstractOracleExtractTask;
|
|
import com.platform.entities.GatherOracleInfo;
|
|
import com.platform.entities.OracleConnectorParams;
|
|
import com.platform.oracle.OracleConnector;
|
|
import com.platform.utils.Configs;
|
|
import com.platform.utils.Constant;
|
|
import com.platform.utils.DateForm;
|
|
import com.platform.utils.FileOperateHelper;
|
|
|
|
public class OracleExtractTask extends AbstractOracleExtractTask {
|
|
|
|
public static Logger log = Logger.getLogger(OracleExtractTask.class);
|
|
|
|
private GatherOracleInfo gatherOracleInfo;
|
|
|
|
private OracleConnectorParams oc;
|
|
|
|
private IOracleExtractService OracleExtract;
|
|
|
|
public OracleExtractTask(String name, GatherOracleInfo gatherOracleInfo,
|
|
OracleConnectorParams oc, IOracleExtractService OracleExtract) {
|
|
super(name);
|
|
this.gatherOracleInfo = gatherOracleInfo;
|
|
this.oc = oc;
|
|
this.OracleExtract = OracleExtract;
|
|
}
|
|
|
|
public OracleExtractTask(GatherOracleInfo gatherOracleInfo,
|
|
OracleConnectorParams oc, IOracleExtractService OracleExtract) {
|
|
this.gatherOracleInfo = gatherOracleInfo;
|
|
this.oc = oc;
|
|
this.OracleExtract = OracleExtract;
|
|
}
|
|
|
|
private OracleExtractHelper oracleExtract = new OracleExtractHelper();
|
|
|
|
@Override
|
|
public void handler() {
|
|
// TODO Auto-generated method stub
|
|
try {
|
|
Connection conn = OracleConnector.connectionBuilder(
|
|
createConnectUrl(), gatherOracleInfo.getUser(),
|
|
gatherOracleInfo.getPassword(), oc);
|
|
if (null != conn) {
|
|
String cmd = "kubectl --server " + Configs.KUBE_MASTER_ADDRESS
|
|
+ " label --overwrite rc " + oc.getName()
|
|
+ " isExtract=1";
|
|
OracleExtract.updateDataExtractStatus(oc, 1); // 更新数据库的状态
|
|
FileOperateHelper
|
|
.fileWrite(
|
|
Configs.EXTRACT_LOG_LOCALTION + oc.getName()
|
|
+ ".log",
|
|
"["
|
|
+ DateForm
|
|
.date2StringBysecond(new Date())
|
|
+ "]>>>>>>>>>>>>>>>>开始汇总 >>>>>>>>>>>>>>>>>>\r\n");
|
|
List<String> rList = Constant.ganymedSSH
|
|
.execCmdWaitAcquiescent(cmd);
|
|
StringBuffer sb = new StringBuffer();
|
|
for (String string : rList)
|
|
sb.append(string).append("\n");
|
|
Configs.CONSOLE_LOGGER.info(sb.toString());
|
|
oracleExtract.createDBLink(conn, oc); // 创建dblink
|
|
oracleExtract.createTableSpace(conn, oc, gatherOracleInfo); // 创建表空间
|
|
oracleExtract.createUser(conn, oc, gatherOracleInfo);// 创建用户并授权
|
|
oracleExtract.extractColleDB(conn, oc, gatherOracleInfo);// 执行抽取
|
|
cmd = "kubectl --server " + Configs.KUBE_MASTER_ADDRESS
|
|
+ " label --overwrite rc " + oc.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());
|
|
FileOperateHelper
|
|
.fileWrite(
|
|
Configs.EXTRACT_LOG_LOCALTION + oc.getName()
|
|
+ ".log",
|
|
"["
|
|
+ DateForm
|
|
.date2StringBysecond(new Date())
|
|
+ "]>>>>>>>>>>>>>>>>汇总结束 >>>>>>>>>>>>>>>>>>\r\n\r\n");
|
|
OracleExtract.updateDataExtractStatus(oc, 2); // 更新数据库的状态
|
|
conn.close(); // 关闭连接
|
|
}
|
|
} catch (Exception e) {
|
|
log.error(Custom4exception.OracleSQL_Except, e);
|
|
}
|
|
}
|
|
|
|
private String createConnectUrl() {
|
|
String answer = "";
|
|
if (null != gatherOracleInfo) {
|
|
answer = "jdbc:oracle:thin:@" + gatherOracleInfo.getIp() + ":"
|
|
+ gatherOracleInfo.getPort() + ":"
|
|
+ gatherOracleInfo.getDatabaseName();
|
|
}
|
|
return answer;
|
|
}
|
|
|
|
}
|