web_backend_develope
wu ming 9 years ago
parent cd70315dc7
commit 0a5b380ee7

@ -113,7 +113,7 @@ public class DataModelController extends BaseController{
String[] oraclesName = paramMap.get("oracleName"); String[] oraclesName = paramMap.get("oracleName");
if (oraclesName != null) if (oraclesName != null)
for (String rcName : oraclesName) { for (String rcName : oraclesName) {
Configs.CONSOLE_LOGGER.info("连接成功\t" + rcName); Configs.CONSOLE_LOGGER.info("执行连接\t" + rcName);
new OracleStatusService().connectToOracle(rcName); new OracleStatusService().connectToOracle(rcName);
} }
req.setStatus(200); req.setStatus(200);
@ -128,7 +128,7 @@ public class DataModelController extends BaseController{
String operate = paramMap.get("operation")[0]; String operate = paramMap.get("operation")[0];
if (null != oraclesName) { if (null != oraclesName) {
for (String rcName : oraclesName) { for (String rcName : oraclesName) {
Configs.CONSOLE_LOGGER.info("取消连接:\t" + rcName); Configs.CONSOLE_LOGGER.info("取消连接:\t" + rcName);
new OracleStatusService().cancelToOracle(rcName, operate); new OracleStatusService().cancelToOracle(rcName, operate);
} }
} }
@ -138,10 +138,9 @@ public class DataModelController extends BaseController{
@RequestMapping(value="/oracle/{name}/extract", method= RequestMethod.POST) @RequestMapping(value="/oracle/{name}/extract", method= RequestMethod.POST)
public void oracleExtract(HttpServletRequest res, public void oracleExtract(HttpServletRequest res,
HttpServletResponse req,@RequestBody oracleForm form) throws Exception { HttpServletResponse req,@RequestBody oracleForm form) throws Exception {
res.setCharacterEncoding("UTF-8"); res.setCharacterEncoding("UTF-8");
if (null != form.getCollOracle() && form.getCollOracle().size() > 0) { if (null != form.getInneed() && form.getInneed().size() > 0) {
OracleExtract.extractOracle(form.getName(), form.getInneed(), form.getTarget());
OracleExtract.extractOracle(form.getTotalOracleName(), form.getCollOracle(), form.getTotalOracle());
} }
req.setStatus(200); req.setStatus(200);
} }

@ -4,52 +4,34 @@ import java.util.List;
public class oracleForm { public class oracleForm {
private GatherOracleInfo totalOracle; private GatherOracleInfo target;
private List<OracleConnectorParams> collOracle; private List<OracleConnectorParams> inneed;
private String totalOracleName; private String name;
/** public GatherOracleInfo getTarget() {
* @return the totalOracle return target;
*/
public GatherOracleInfo getTotalOracle() {
return totalOracle;
} }
/** public void setTarget(GatherOracleInfo target) {
* @param totalOracle the totalOracle to set this.target = target;
*/
public void setTotalOracle(GatherOracleInfo totalOracle) {
this.totalOracle = totalOracle;
} }
/** public List<OracleConnectorParams> getInneed() {
* @return the collOracle return inneed;
*/
public List<OracleConnectorParams> getCollOracle() {
return collOracle;
} }
/** public void setInneed(List<OracleConnectorParams> inneed) {
* @param collOracle the collOracle to set this.inneed = inneed;
*/
public void setCollOracle(List<OracleConnectorParams> collOracle) {
this.collOracle = collOracle;
} }
/** public String getName() {
* @return the totalOracleName return name;
*/
public String getTotalOracleName() {
return totalOracleName;
} }
/** public void setName(String name) {
* @param totalOracleName the totalOracleName to set this.name = name;
*/ }
public void setTotalOracleName(String totalOracleName) {
this.totalOracleName = totalOracleName;
}
} }

@ -4,6 +4,7 @@ import io.fabric8.kubernetes.api.model.Container;
import io.fabric8.kubernetes.api.model.ContainerPort; import io.fabric8.kubernetes.api.model.ContainerPort;
import io.fabric8.kubernetes.api.model.Pod; import io.fabric8.kubernetes.api.model.Pod;
import io.fabric8.kubernetes.api.model.ReplicationController; import io.fabric8.kubernetes.api.model.ReplicationController;
import io.fabric8.kubernetes.client.Client;
import io.fabric8.kubernetes.client.Config; import io.fabric8.kubernetes.client.Config;
import io.fabric8.kubernetes.client.ConfigBuilder; import io.fabric8.kubernetes.client.ConfigBuilder;
import io.fabric8.kubernetes.client.DefaultKubernetesClient; import io.fabric8.kubernetes.client.DefaultKubernetesClient;
@ -19,7 +20,7 @@ import com.platform.utils.UtilsHelper;
public class SimpleKubeClient { public class SimpleKubeClient {
private KubernetesClient client; private KubernetesClient client;
private final static String DEFAULT_NAMESPACE = "default"; private final static String DEFAULT_NAMESPACE = "default";
public SimpleKubeClient() { public SimpleKubeClient() {
this.client = new DefaultKubernetesClient(Configs.KUBE_MASTER_URL); this.client = new DefaultKubernetesClient(Configs.KUBE_MASTER_URL);
@ -32,18 +33,22 @@ public class SimpleKubeClient {
public SimpleKubeClient(Config config) { public SimpleKubeClient(Config config) {
Config cf = config; Config cf = config;
if (null == 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); this.client = new DefaultKubernetesClient(cf);
} }
// RollingUpdatercline
public void updateOrAddReplicasLabelById(String namespace, public void updateOrAddReplicasLabelById(String namespace,
String resourceId, String key, String value) { String resourceId, String key, String value) {
KubernetesClient kubeClient = client; KubernetesClient kubeClient = client;
if (checkClientNull()) if (checkClientNull())
kubeClient = new DefaultKubernetesClient(Configs.KUBE_MASTER_URL); kubeClient = new DefaultKubernetesClient(Configs.KUBE_MASTER_URL);
kubeClient.replicationControllers().inNamespace(namespace) kubeClient.replicationControllers().inNamespace(namespace)
.withName(resourceId).edit().editMetadata() .withName(resourceId).rolling().edit().editMetadata()
.addToLabels(key, value).endMetadata().done(); .addToLabels(key, value).endMetadata().done();
} }

@ -8,25 +8,25 @@ import java.sql.Statement;
import com.platform.utils.Configs; import com.platform.utils.Configs;
public class OracleConnector { public class OracleConnector {
static { static {
try { try {
Class.forName("oracle.jdbc.driver.OracleDriver"); Class.forName("oracle.jdbc.driver.OracleDriver");
Configs.CONSOLE_LOGGER.info("Oracle驱动加载成功"); Configs.CONSOLE_LOGGER.info("Oracle驱动加载成功");
} catch (ClassNotFoundException e) { } catch (ClassNotFoundException e) {
// TODO Auto-generated catch block // TODO Auto-generated catch block
e.printStackTrace(); Configs.CONSOLE_LOGGER.error(e.getMessage());
} }
} }
public static Connection ConnectionBuilder(String url, String user, public static Connection ConnectionBuilder(String url, String user,
String password) { String password) {
Connection conn=null; Connection conn = null;
try { try {
conn = DriverManager.getConnection(url, user, password); conn = DriverManager.getConnection(url, user, password);
} catch (SQLException e) { } catch (SQLException e) {
Configs.CONSOLE_LOGGER.info("创建oracle连接失败: [" + e.getMessage() + "]"); Configs.CONSOLE_LOGGER.info("创建oracle连接失败: [" + e.getMessage()
+ "]");
} }
return conn; return conn;
} }
@ -35,7 +35,7 @@ public class OracleConnector {
return (null != ConnectionBuilder(url, user, password)); return (null != ConnectionBuilder(url, user, password));
} }
public ResultSet getSQLExecResultSet(Connection conn, String sql) { public static ResultSet getSQLExecResultSet(Connection conn, String sql) {
ResultSet resultSet = null; ResultSet resultSet = null;
try { try {
Statement statement = conn Statement statement = conn
@ -43,34 +43,48 @@ public class OracleConnector {
ResultSet.CONCUR_UPDATABLE); ResultSet.CONCUR_UPDATABLE);
resultSet = statement.executeQuery(sql); resultSet = statement.executeQuery(sql);
} catch (SQLException e) { } catch (SQLException e) {
// TODO Auto-generated catch block Configs.CONSOLE_LOGGER.error(e.getMessage());
e.printStackTrace();
} }
return resultSet; return resultSet;
} }
public ResultSet getSQLExecResultSet(String url, String user, public static ResultSet getSQLExecResultSet(String url, String user,
String password, String sql) { String password, String sql) {
return getSQLExecResultSet(ConnectionBuilder(url, user, password), sql); return getSQLExecResultSet(ConnectionBuilder(url, user, password), sql);
} }
/** /**
* oracle * oracle
*
* @param conn * @param conn
* @param sql * @param sql
* @return * @return
*/ */
public boolean execOracleSQL(Connection conn, String sql) { public static boolean execOracleSQL(Connection conn, String sql) {
boolean flag = false; boolean flag = false;
try { try {
Statement statement = conn.createStatement(); Statement statement = conn.createStatement();
if (statement.executeUpdate(sql) > 0) //ResultSet set = statement.execute(sql);
flag = true; flag = true;
} catch (SQLException e) { } catch (SQLException e) {
// TODO Auto-generated catch block // TODO Auto-generated catch block
e.printStackTrace(); Configs.CONSOLE_LOGGER.error(e.getMessage());
flag = false;
} }
return flag; return flag;
} }
public static boolean execUpdateOracleSQL(Connection conn, String sql) {
boolean flag = false;
try {
Statement statement = conn.createStatement();
statement.execute(sql);
flag = true;
} catch (SQLException e) {
// TODO Auto-generated catch block
Configs.CONSOLE_LOGGER.error(e.getMessage());
flag = false;
}
return flag;
}
} }

@ -13,9 +13,6 @@ import com.platform.utils.Configs;
import com.platform.utils.FileOperateHelper; import com.platform.utils.FileOperateHelper;
public class OracleExtractHelper { public class OracleExtractHelper {
private OracleConnector oConnector;
/** /**
* dblink * dblink
* *
@ -26,15 +23,15 @@ public class OracleExtractHelper {
*/ */
private boolean hasSameNameDBLink(Connection conn, String linkName) { private boolean hasSameNameDBLink(Connection conn, String linkName) {
boolean flag = false; boolean flag = false;
String sql = "SELECT * FROM ALL_DB_LINKS WHERE DB_LINK=" + linkName; String sql = "SELECT * FROM ALL_DB_LINKS WHERE DB_LINK='" + linkName +"'";
ResultSet rSet = oConnector.getSQLExecResultSet(conn, sql); ResultSet rSet = OracleConnector.getSQLExecResultSet(conn, sql);
try { try {
rSet.last(); rSet.last();
if (rSet.getRow() > 0) if (rSet.getRow() > 0)
flag = true; flag = true;
} catch (Exception e) { } catch (Exception e) {
// TODO Auto-generated catch block // TODO Auto-generated catch block
e.printStackTrace(); Configs.CONSOLE_LOGGER.info(e.getMessage());
} }
return flag; return flag;
} }
@ -54,22 +51,22 @@ public class OracleExtractHelper {
+ oc.getUser() + oc.getUser()
+ " IDENTIFIED BY " + " IDENTIFIED BY "
+ oc.getPassword() + oc.getPassword()
+ " USING '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = " + " USING \'(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = "
+ oc.getIp() + ")(PORT = " + oc.getPort() + oc.getIp() + ")(PORT = " + oc.getPort()
+ ")))(CONNECT_DATA =(SERVICE_NAME =" + oc.getDatabaseName() + ")))(CONNECT_DATA =(SERVICE_NAME =" + oc.getDatabaseName()
+ ")))';"; + ")))\'";
if (null != oc) { if (null != oc) {
if (hasSameNameDBLink(conn, linkName)) { // 如果dblink已经存在,先删除dblink在创建dblink if (hasSameNameDBLink(conn, linkName)) { // 如果dblink已经存在,先删除dblink在创建dblink
String deleteSql = "DROP PUBLIC DATABASE LINK LinkTo" String deleteSql = "DROP PUBLIC DATABASE LINK "
+ linkName; + linkName;
FileOperateHelper FileOperateHelper
.fileWrite( .fileWrite(
Configs.EXTRACT_LOG_LOCALTION + oc.getName(), Configs.EXTRACT_LOG_LOCALTION + oc.getName(),
deleteSql+"\r\n"); deleteSql+"\r\n");
if (oConnector.execOracleSQL(conn, deleteSql)) { if (OracleConnector.execOracleSQL(conn, deleteSql)) {
FileOperateHelper.fileWrite(Configs.EXTRACT_LOG_LOCALTION FileOperateHelper.fileWrite(Configs.EXTRACT_LOG_LOCALTION
+ oc.getName(), sql+"\r\n"); + oc.getName(), sql+"\r\n");
oConnector.execOracleSQL(conn, sql); OracleConnector.execOracleSQL(conn, sql);
} else { } else {
Configs.CONSOLE_LOGGER.error("删除已有的DBLink失败,无法创建新的DBLink!"); Configs.CONSOLE_LOGGER.error("删除已有的DBLink失败,无法创建新的DBLink!");
FileOperateHelper.fileWrite(Configs.EXTRACT_LOG_LOCALTION FileOperateHelper.fileWrite(Configs.EXTRACT_LOG_LOCALTION
@ -78,7 +75,9 @@ public class OracleExtractHelper {
} else { } else {
// 否则创建dblink // 否则创建dblink
oConnector.execOracleSQL(conn, sql); System.out.println("dblin不存在");
OracleConnector.execOracleSQL(conn, sql);
Configs.CONSOLE_LOGGER.error("创建DBLink!");
FileOperateHelper.fileWrite( FileOperateHelper.fileWrite(
Configs.EXTRACT_LOG_LOCALTION + oc.getName(), sql); Configs.EXTRACT_LOG_LOCALTION + oc.getName(), sql);
} }
@ -95,7 +94,7 @@ public class OracleExtractHelper {
public boolean createTableSpace(Connection conn, GatherOracleInfo oc) { public boolean createTableSpace(Connection conn, GatherOracleInfo oc) {
String tmpSql = "select TABLESPACE_NAME from dba_tablespaces where TABLESPACE_NAME = '" String tmpSql = "select TABLESPACE_NAME from dba_tablespaces where TABLESPACE_NAME = '"
+ Configs.GATHER_TABLESPACE_NAME + "'"; + Configs.GATHER_TABLESPACE_NAME + "'";
if (oConnector.execOracleSQL(conn, tmpSql)) { if (OracleConnector.execOracleSQL(conn, tmpSql)) {
FileOperateHelper FileOperateHelper
.fileWrite( .fileWrite(
Configs.EXTRACT_LOG_LOCALTION + oc.getName(), Configs.EXTRACT_LOG_LOCALTION + oc.getName(),
@ -110,7 +109,7 @@ public class OracleExtractHelper {
.fileWrite( .fileWrite(
Configs.EXTRACT_LOG_LOCALTION + oc.getName(), Configs.EXTRACT_LOG_LOCALTION + oc.getName(),
sql+"\r\n"); sql+"\r\n");
return oConnector.execOracleSQL(conn, sql); return OracleConnector.execOracleSQL(conn, sql);
} }
} }
@ -127,13 +126,13 @@ public class OracleExtractHelper {
+ Configs.GATHER_TABLE_PASSWORD; + Configs.GATHER_TABLE_PASSWORD;
String grantSql = "grant connect, resource, dba to " + strTUser; String grantSql = "grant connect, resource, dba to " + strTUser;
oConnector.execOracleSQL(conn, sql); OracleConnector.execOracleSQL(conn, sql);
FileOperateHelper FileOperateHelper
.fileWrite( .fileWrite(
Configs.EXTRACT_LOG_LOCALTION + oc.getName(), Configs.EXTRACT_LOG_LOCALTION + oc.getName(),
sql+"\r\n"); sql+"\r\n");
oConnector.execOracleSQL(conn, grantSql); OracleConnector.execOracleSQL(conn, grantSql);
FileOperateHelper FileOperateHelper
.fileWrite( .fileWrite(
Configs.EXTRACT_LOG_LOCALTION + oc.getName(), Configs.EXTRACT_LOG_LOCALTION + oc.getName(),
@ -158,7 +157,7 @@ public class OracleExtractHelper {
+ " t WHERE t.TABLESPACE_NAME NOT IN ('SYSTEM','SYSAUX')" + " 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" + " and t.owner||t.table_name not in (select owner||table_name from dba_tables@linkTo"
+ oc.getName() + " where 'data_type'='CLOB')"; + oc.getName() + " where 'data_type'='CLOB')";
ResultSet rsSet = oConnector.getSQLExecResultSet(conn, sql); ResultSet rsSet = OracleConnector.getSQLExecResultSet(conn, sql);
FileOperateHelper FileOperateHelper
.fileWrite( .fileWrite(
Configs.EXTRACT_LOG_LOCALTION + oc.getName(), Configs.EXTRACT_LOG_LOCALTION + oc.getName(),
@ -166,7 +165,7 @@ public class OracleExtractHelper {
try { try {
while (rsSet.next()) { while (rsSet.next()) {
String resultSql = rsSet.getString(0); String resultSql = rsSet.getString(0);
oConnector.execOracleSQL(conn, resultSql); OracleConnector.execOracleSQL(conn, resultSql);
FileOperateHelper FileOperateHelper
.fileWrite( .fileWrite(
Configs.EXTRACT_LOG_LOCALTION + oc.getName(), Configs.EXTRACT_LOG_LOCALTION + oc.getName(),

@ -10,10 +10,13 @@ import java.util.Map;
import java.util.Timer; import java.util.Timer;
import java.util.TimerTask; import java.util.TimerTask;
import org.apache.commons.lang.text.StrBuilder;
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.utils.Configs; import com.platform.utils.Configs;
import com.platform.utils.Constant;
public class OracleStatusService { public class OracleStatusService {
private static Map<String, Timer> alliveTask = new Hashtable<String, Timer>(); private static Map<String, Timer> alliveTask = new Hashtable<String, Timer>();
@ -29,16 +32,24 @@ public class OracleStatusService {
OracleConnectorParams orp = new OracleConnectorParams(); OracleConnectorParams orp = new OracleConnectorParams();
Timer timer = new Timer(); Timer timer = new Timer();
alliveTask.put(replicasName, timer); alliveTask.put(replicasName, timer);
timer.schedule(new connectTask(replicasName, orp, sKubeClient), DELAY_TIME, timer.schedule(new connectTask(replicasName, orp, sKubeClient),
INTERVAL_TIME); DELAY_TIME, INTERVAL_TIME);
} }
public void cancelToOracle(String replicasName, String operate) { public void cancelToOracle(String replicasName, String operate) {
if (operate.equals("stop")) { if (operate.equals("stop")) {
SimpleKubeClient sKubeClient = new SimpleKubeClient(); String cmd = "kubectl label --overwrite rc " + replicasName
sKubeClient.updateOrAddReplicasLabelById(replicasName, "status", + " status=0";
"0"); List<String> 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); killAlliveTask(replicasName);
} }
@ -85,8 +96,9 @@ public class OracleStatusService {
private int count; private int count;
private OracleConnectorParams ocp; private OracleConnectorParams ocp;
private SimpleKubeClient client; private SimpleKubeClient client;
public connectTask(String taskName, OracleConnectorParams ocp, SimpleKubeClient client){ public connectTask(String taskName, OracleConnectorParams ocp,
SimpleKubeClient client) {
this.taskName = taskName; this.taskName = taskName;
this.ocp = ocp; this.ocp = ocp;
this.count = 0; this.count = 0;
@ -102,12 +114,20 @@ public class OracleStatusService {
@Override @Override
public void run() { 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); 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<String> rList = Constant.ganymedSSH
.execCmdWaitAcquiescent(cmd);
StringBuffer sb = new StringBuffer();
for (String str : rList)
sb.append(str).append("\n");
Configs.CONSOLE_LOGGER.info("更新replicationController标签 " Configs.CONSOLE_LOGGER.info("更新replicationController标签 "
+ taskName + "\t[标签更新为: 失败]"); + taskName + "\t[标签更新为: 失败]");
} else { //否则执行连接oracle任务判断oracle是否启动成功 } else { // 否则执行连接oracle任务判断oracle是否启动成功
Pod pod = filterPod(); Pod pod = filterPod();
if (pod != null) { if (pod != null) {
String ip = client.getPodHostIp(pod); String ip = client.getPodHostIp(pod);
@ -115,15 +135,23 @@ public class OracleStatusService {
if (ip != null && port != 0) { if (ip != null && port != 0) {
String url = "jdbc:oracle:thin:@" + ip + ":" + port String url = "jdbc:oracle:thin:@" + ip + ":" + port
+ ":" + ocp.getDatabaseName(); + ":" + ocp.getDatabaseName();
boolean flag = OracleConnector.canConnect(url, //连接结果返回参数true标示连接成功false标示连接失败 boolean flag = OracleConnector.canConnect(url, // 连接结果返回参数true标示连接成功false标示连接失败
ocp.getUser(), ocp.getPassword()); ocp.getUser(), ocp.getPassword());
Configs.CONSOLE_LOGGER.info("url:" + url + ",user:" Configs.CONSOLE_LOGGER.info("url:" + url + ",user:"
+ ocp.getUser() + ",password:" + ocp.getUser() + ",password:"
+ ocp.getPassword()); + ocp.getPassword());
String message = "失败"; String message = "失败";
if (flag && alliveTask.containsKey(taskName)) { if (flag && alliveTask.containsKey(taskName)) {
client.updateOrAddReplicasLabelById(taskName, String cmd = "kubectl label --overwrite rc "
"status", "2"); + taskName + " status=2";
// client.updateOrAddReplicasLabelById(taskNSyame,
// "status", "2");
List<String> 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 = "成功"; message = "成功";
killAlliveTask(taskName); // 连接成功,取消连接 killAlliveTask(taskName); // 连接成功,取消连接
Configs.CONSOLE_LOGGER Configs.CONSOLE_LOGGER
@ -140,6 +168,7 @@ public class OracleStatusService {
/** /**
* oracleip * oracleip
*
* @return * @return
*/ */
private Pod filterPod() { private Pod filterPod() {

@ -14,6 +14,8 @@ 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.Bean2MapUtils;
import com.platform.utils.Configs;
import com.platform.utils.Constant;
@Service(value = "OracleExtract") @Service(value = "OracleExtract")
public class OracleExtractServiceImpl implements IOracleExtractService { public class OracleExtractServiceImpl implements IOracleExtractService {
@ -41,19 +43,40 @@ public class OracleExtractServiceImpl implements IOracleExtractService {
//采集库连接参数 //采集库连接参数
List<OracleConnectorParams> datainfos = dataInfolist; List<OracleConnectorParams> datainfos = dataInfolist;
Connection conn = OracleConnector.ConnectionBuilder("jdbc:oracle:thin:@" + oracleModel.getIp() + ":" + oracleModel.getPort() + "/" Connection conn = OracleConnector.ConnectionBuilder("jdbc:oracle:thin:@" + oracleModel.getIp() + ":" + oracleModel.getPort() + ":"
+ oracleModel.getDatabaseName(), oracleModel.getUser(), oracleModel.getPassword()); + oracleModel.getDatabaseName(), oracleModel.getUser(), oracleModel.getPassword());
for (OracleConnectorParams collectOracle : datainfos) { for (OracleConnectorParams collectOracle : datainfos) {
client.updateOrAddReplicasLabelById(collectOracle.getName(), "isExtract", "1"); //更新oracle汇总状态0标示为未汇总1标示汇总中2标示汇总完成 /**
* oracle
*/
//client.updateOrAddReplicasLabelById(collectOracle.getName(), "isExtract", "1"); //更新oracle汇总状态0标示为未汇总1标示汇总中2标示汇总完成
String cmd = "kubectl label --overwrite rc " + collectOracle.getName() + " isExtract=1";
Constant.ganymedSSH.execCmdWaitAcquiescent(cmd);
/**
* data-infoextract1;
*/
System.out.println("标签更新成功");
collectOracle.setName(collectOracle.getName().replace("-", "_"));
oracleExtract.createDBLink(conn, collectOracle); //创建dblink oracleExtract.createDBLink(conn, collectOracle); //创建dblink
System.out.println("创建dblink成功");
oracleExtract.createTableSpace(conn, oracleModel); //创建表空间 oracleExtract.createTableSpace(conn, oracleModel); //创建表空间
System.out.println("创建表空间成功");
oracleExtract.createUser(conn, oracleModel);//创建用户并授权 oracleExtract.createUser(conn, oracleModel);//创建用户并授权
System.out.println("用户授权成功");
oracleExtract.extractColleDB(conn, collectOracle);//执行抽取 oracleExtract.extractColleDB(conn, collectOracle);//执行抽取
client.updateOrAddReplicasLabelById(collectOracle.getName(), "isExtract", "2"); //更新oracle汇总状态0标示为未汇总1标示汇总中2标示汇总完成 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);
/**
* data-infoextract2;
*/
} }
isSuccess = true; isSuccess = true;
}catch(Exception e){ }catch(Exception e){
Configs.CONSOLE_LOGGER.error(e.getMessage());
} }
return false; return false;
} }

@ -21,7 +21,7 @@ public class Configs {
public static final Logger LOGGER = Logger.getLogger(Configs.class); 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 // URl
public static int ORACLE_DEFAULT_PORT = 1521; // oracle的默认端口号 public static int ORACLE_DEFAULT_PORT = 1521; // oracle的默认端口号
@ -42,7 +42,7 @@ public class Configs {
public static String TABLE_SUFFIX = "_20152016"; //汇总库汇总表的后缀名 public static String TABLE_SUFFIX = "_20152016"; //汇总库汇总表的后缀名
public static String EXTRACT_LOG_LOCALTION = "/home/log"; //数据汇总日志保存位置 public static String EXTRACT_LOG_LOCALTION = "D:\\log"; //数据汇总日志保存位置
public static String GATHER_TABLESPACE_NAME=""; //表空间名 public static String GATHER_TABLESPACE_NAME=""; //表空间名

Loading…
Cancel
Save