远程数据备份的问题 我的问题是:数据库ASA存在于远程机子上运行,而进行数据库备份的操作控制台在本地运行.如何将数据库的备份文件取回到本地来.还有如果在asa创建event来执行数据库备份时,那又如何处理,才能将数据库备份文件取回到本地来. 注意控制台程序是用java swing编写的. 哪位高手指点一下!谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用C/S结构的通讯程序实现如何,这里有代码:1.文件服务端import java.io.*;import java.net.*;public class RemoteFileServer { int listenPort; public RemoteFileServer(int listenPort) { this.listenPort=listenPort; } //允许客户机连接到服务器,等待客户机请求 public void acceptConnections() { try { ServerSocket server = new ServerSocket(listenPort); Socket incomingConnection = null; while(true) { incomingConnection = server.accept(); handleConnection(incomingConnection); } } catch(BindException e) { System.out.println("Unable to bind to port "+listenPort); } catch(IOException e) { System.out.println("Unable to instantiate a ServerSocket on port: "+listenPort); } } //与客户机Socket交互以将客户机所请求的文件的内容发送到客户机 public void handleConnection(Socket incomingConnection) { try { InputStream inputFromSocket = incomingConnection.getInputStream(); OutputStream outputToSocket = incomingConnection.getOutputStream(); InputStreamReader inputFromStream = new InputStreamReader(inputFromSocket); BufferedReader bufferedStreamReader = new BufferedReader(inputFromStream); String fileName = bufferedStreamReader.readLine(); System.out.println("请求文件:"+fileName); File file = new File(fileName); FileReader fileReader = new FileReader(file); BufferedReader bufferedFileReader = new BufferedReader(fileReader); PrintWriter streamWriter = new PrintWriter(outputToSocket); String line = null; while((line=bufferedFileReader.readLine())!=null) { streamWriter.println(line); } fileReader.close(); streamWriter.close(); bufferedStreamReader.close(); System.out.println("完成文件:"+fileName); } catch(Exception e) { System.out.println("Error handling a client: "+e); e.printStackTrace(); } } public static void main(String args[]) { System.out.println("FileServer"); RemoteFileServer server = new RemoteFileServer(1001); server.acceptConnections(); } }2.文件请求端import java.io.*;import java.net.*;public class RemoteFileClient { protected BufferedReader socketReader; protected PrintWriter socketWriter; protected String hostIp; protected int hostPort; public static boolean bConnected; //构造方法 public RemoteFileClient(String hostIp, int hostPort) { this.hostIp = hostIp; this.hostPort=hostPort; bConnected=false; } //连接到远程服务器 public void setUpConnection() { try { Socket client = new Socket(hostIp, hostPort); socketReader = new BufferedReader(new InputStreamReader(client.getInputStream())); socketWriter = new PrintWriter(client.getOutputStream()); bConnected=true; } catch(UnknownHostException e) { System.out.println("Error1 setting up socket connection: unknown host at "+hostIp+":"+hostPort); bConnected=false; } catch(IOException e) { System.out.println("Error2 setting up socket connection: "+e); bConnected=false; } } //断开远程服务器 public void tearDownConnection() { try { socketWriter.close(); socketReader.close(); bConnected=false; } catch(IOException e) { System.out.println("Error tearing down socket connection: "+e); } } //向服务器请求文件的内容 public String getFile(String fileNameToGet) { StringBuffer fileLines = new StringBuffer(); try { socketWriter.println(fileNameToGet); socketWriter.flush(); String line = null; while((line=socketReader.readLine())!=null) fileLines.append(line+"\n"); } catch(IOException e) { System.out.println("Error reading from file: "+fileNameToGet); } return fileLines.toString(); } public static void main(String args[]) throws Exception { while(true) { BufferedReader fin=new BufferedReader(new InputStreamReader(System.in)); String fileName=null; System.out.println("输入请求传输的文件名称"); fileName=fin.readLine(); if(fileName=="\n") break; RemoteFileClient remoteFileClient = new RemoteFileClient("127.0.0.1",1001); remoteFileClient.setUpConnection(); if(bConnected) { StringBuffer fileContents = new StringBuffer(); fileContents.append(remoteFileClient.getFile(fileName)); //System.out.println(fileContents); System.out.println("OK"); remoteFileClient.tearDownConnection(); } } } } Oracle数据库都有命令直接可以实现的. 推荐 www.fmq.com.cn 用数据交换中间件~~ 第一步:远程机器将生成的文件写入fmq队列,交换平台会把它发送到本地第二步:你这边编写的程序通过java api 或其他接口从交换平台取出处理既可立刻解决问题~~~ 再次说明一下,请支持国产中间件,fmq中间件是免费的~~~ 编写java小程序 各位大侠这个程序该怎么写啊! JAVA环境变量设置问题 如何不通过key获取LinkedHashMap第一条记录? 新人求助 关于java中GridBagLayout的问题 急!数据库连接池的问题 请问Eclipse3.1的中文包哪里有下,我在官方网站找不到。 送分啦! 不够再补!! 小白求教 如何用java程序执行本地的一个批处理文件?? java初学者 提问 一个简单的程序
1.文件服务端
import java.io.*;
import java.net.*;public class RemoteFileServer {
int listenPort;
public RemoteFileServer(int listenPort) {
this.listenPort=listenPort;
}
//允许客户机连接到服务器,等待客户机请求
public void acceptConnections() {
try {
ServerSocket server = new ServerSocket(listenPort);
Socket incomingConnection = null;
while(true) {
incomingConnection = server.accept();
handleConnection(incomingConnection);
}
}
catch(BindException e) {
System.out.println("Unable to bind to port "+listenPort);
}
catch(IOException e) {
System.out.println("Unable to instantiate a ServerSocket on port: "+listenPort);
}
}
//与客户机Socket交互以将客户机所请求的文件的内容发送到客户机
public void handleConnection(Socket incomingConnection) {
try {
InputStream inputFromSocket = incomingConnection.getInputStream();
OutputStream outputToSocket = incomingConnection.getOutputStream();
InputStreamReader inputFromStream = new InputStreamReader(inputFromSocket);
BufferedReader bufferedStreamReader = new BufferedReader(inputFromStream);
String fileName = bufferedStreamReader.readLine();
System.out.println("请求文件:"+fileName);
File file = new File(fileName);
FileReader fileReader = new FileReader(file);
BufferedReader bufferedFileReader = new BufferedReader(fileReader);
PrintWriter streamWriter = new PrintWriter(outputToSocket); String line = null;
while((line=bufferedFileReader.readLine())!=null) {
streamWriter.println(line);
}
fileReader.close();
streamWriter.close();
bufferedStreamReader.close();
System.out.println("完成文件:"+fileName);
}
catch(Exception e) {
System.out.println("Error handling a client: "+e);
e.printStackTrace();
}
}
public static void main(String args[]) {
System.out.println("FileServer");
RemoteFileServer server = new RemoteFileServer(1001);
server.acceptConnections();
}
}
2.文件请求端
import java.io.*;
import java.net.*;public class RemoteFileClient {
protected BufferedReader socketReader;
protected PrintWriter socketWriter;
protected String hostIp;
protected int hostPort;
public static boolean bConnected;
//构造方法
public RemoteFileClient(String hostIp, int hostPort) {
this.hostIp = hostIp;
this.hostPort=hostPort;
bConnected=false;
}
//连接到远程服务器
public void setUpConnection() {
try {
Socket client = new Socket(hostIp, hostPort);
socketReader = new BufferedReader(new InputStreamReader(client.getInputStream()));
socketWriter = new PrintWriter(client.getOutputStream());
bConnected=true;
} catch(UnknownHostException e) {
System.out.println("Error1 setting up socket connection: unknown host at "+hostIp+":"+hostPort);
bConnected=false;
} catch(IOException e) {
System.out.println("Error2 setting up socket connection: "+e);
bConnected=false;
}
}
//断开远程服务器
public void tearDownConnection() {
try {
socketWriter.close();
socketReader.close();
bConnected=false;
} catch(IOException e) {
System.out.println("Error tearing down socket connection: "+e);
}
}
//向服务器请求文件的内容
public String getFile(String fileNameToGet) {
StringBuffer fileLines = new StringBuffer();
try {
socketWriter.println(fileNameToGet);
socketWriter.flush();
String line = null;
while((line=socketReader.readLine())!=null)
fileLines.append(line+"\n");
} catch(IOException e) {
System.out.println("Error reading from file: "+fileNameToGet);
}
return fileLines.toString();
}
public static void main(String args[]) throws Exception {
while(true) {
BufferedReader fin=new BufferedReader(new InputStreamReader(System.in));
String fileName=null;
System.out.println("输入请求传输的文件名称");
fileName=fin.readLine();
if(fileName=="\n")
break;
RemoteFileClient remoteFileClient = new RemoteFileClient("127.0.0.1",1001);
remoteFileClient.setUpConnection();
if(bConnected) {
StringBuffer fileContents = new StringBuffer();
fileContents.append(remoteFileClient.getFile(fileName));
//System.out.println(fileContents);
System.out.println("OK");
remoteFileClient.tearDownConnection();
}
}
}
}
第一步:远程机器将生成的文件写入fmq队列,交换平台会把它发送到本地
第二步:你这边编写的程序通过java api 或其他接口从交换平台取出处理既可立刻解决问题~~~