0

我有一台在 windows server 2008 中运行 Oracle 10g 服务器的机器。我想备份数据库。我还想备份用户使用我的网站上传的 Oracle 服务器保存在硬盘上的一些文件。

我可以使用 sql developer 和 sqlplus 连接到 Oracle 服务器。我可以在服务器上运行 sql 查询。

为了备份数据库,我必须运行命令“exp”(这是我知道的唯一备份数据库的方法)。可能还有其他方法,但还有另一个问题,因此我必须运行 dos 命令。这个问题是备份文件。这些文件存储在 c:\mydir 中。文件夹 mydir 无论如何都无法通过 Web 访问,并且不是共享文件夹。

连接到oracle服务器后,我尝试在sqlplus中运行“host”,即在“sql>”提示符下。该命令成功运行,但在本地机器上,而不是在 oracle 服务器上。

编辑:“host”命令由 sqlplus 提供,不是 oracle 命令,意味着不能在查询中使用。Sqlplus 即使连接到远程机器,也可以在本地机器上运行“host”命令。

目标是让 sqlplus 在远程机器上运行“host”命令,或者从 pl/sql 查询(独立于 sqlplus)内部运行 dos 命令。

4

2 回答 2

1

除了贾斯汀所写的:

如果您想获取数据库的逻辑快照,则新的DataPump工具比旧的(和已弃用的)exp工具更受欢迎。

DataPump 是一个命令行工具 ( expdp),但也有一个通过 Oracle 包和过程的 SQL API。

数据泵 API(包括示例)
DBMS_DATAPUMP(参考)

但是如果你想要一个“真正的”备份,你应该看看RMAN

于 2012-09-24T06:32:16.387 回答
0

可以在数据库服务器上创建一个 Java 存储过程,该过程在 Oracle 服务器上执行操作系统命令。但是使用导出实用程序来备份数据库是非常不寻常的——它只创建一个逻辑备份而不是更合适的物理备份。通过 SQL*Plus 连接到数据库并在服务器操作系统上生成作业来运行备份是非常不寻常的。在数据库服务器上使用 Windows 调度程序创建一个作业会更有意义,该调度程序运行您想要运行的任何导出命令。

于 2012-09-24T06:11:49.873 回答