如何使用java备份oracle数据库?

如何使用java备份oracle数据库?,java,oracle11g,Java,Oracle11g,我目前正在使用Oracle 11g R2 express edition。如何使用java应用程序备份数据库?可能吗?通常可以,因为您可以提取数据并存储SQL结构(表、约束、索引等) 你会发现这很有用 您也可以使用YAML格式来存储数据。这取决于“备份”的含义。如果要创建数据库转储,可以使用dbms\u datapump包 因为它是一个常规的PL/SQL包,所以可以通过JDBC轻松地调用它。最简单的方法可能是将匿名PL/SQL块作为一条语句发送 大概是这样的: String sql = "

我目前正在使用Oracle 11g R2 express edition。如何使用java应用程序备份数据库?可能吗?

通常可以,因为您可以提取数据并存储SQL结构(表、约束、索引等) 你会发现这很有用
您也可以使用YAML格式来存储数据。

这取决于“备份”的含义。如果要创建数据库转储,可以使用
dbms\u datapump

因为它是一个常规的PL/SQL包,所以可以通过JDBC轻松地调用它。最简单的方法可能是将匿名PL/SQL块作为一条语句发送

大概是这样的:

String sql = 
  "DECLARE \n" +
  "  handle NUMBER; \n" +
  "BEGIN \n" +
  "  handle := DBMS_DATAPUMP.OPEN(operation => 'EXPORT', job_mode => 'SCHEMA', job_name => USER||'_DUMP', version => 'COMPATIBLE'); \n" +
  "  dbms_datapump.add_file(handle => handle, filename => 'db_backup', directory => 'EXPDP_DIR'); \n" +
  "  dbms_datapump.metadata_filter(handle, 'SCHEMA_LIST', '''SCOTT'''); \n" +
  "  dbms_datapump.start_job(handle); \n" +
  "  dbms_datapump.detach(handle); \n" +
  "END;";
Statement stmt = connection.createStatement();
stmt.execute(sql);
注意,我遗漏了任何错误处理。或者,您可以单独调用每个
dbms\u数据泵
过程(使用
CallableStatement

转储将写入服务器,而不是客户端

有关更多详细信息,请参阅手册:

如果您有用于该数据库的jdbc驱动程序,任何事情都是可能的。做些调查,然后回来。调查在今天晚上之前就失败了。我没有办法做到这一点。我怎么做?我让JDBC Oracle driverlets先问一下,为什么要从java来实现它?您是否需要使用jdbc,因为您可以从程序中运行一个简单的导出命令只要找出您必须发送到数据库以备份它的Oracle命令,然后使用您的驱动程序执行这些命令。我如何使用java实现这一点?首先,看一看。然后您可以根据需要存储数据