我在Windows Server 2008中有一台运行Oracle 10g服务器的计算机。我想备份数据库。我还想备份用户使用我的网站上传的oracle服务器保存在硬盘上的一些文件。
我可以使用sql developer和sqlplus连接到Oracle服务器。我可以在服务器上运行sql查询。
为了备份数据库,我必须运行命令“exp”(这是我知道备份数据库的唯一方法)。可能还有其他一些方法,但还有另一个问题,因为我必须运行dos命令。那个问题是备份文件。这些文件存储在c:\ mydir中。无论如何都无法通过网络访问文件夹mydir,它不是共享文件夹。
我已经尝试在连接到oracle服务器后在sqlplus中运行“host”,即“sql>”提示。该命令成功运行但是在本地机器上运行,而不是在oracle服务器上运行。
编辑:“host”命令由sqlplus提供,不是oracle命令,意味着不能在查询中使用。 Sqlplus即使在连接到远程机器时也在本地机器上运行“host”命令。
目标是让sqlplus在远程机器上运行“host”命令,或者从pl / sql查询中运行dos命令(独立于sqlplus)。
答案 0 :(得分:1)
除了贾斯汀所写的内容:
如果您想获取数据库的逻辑快照,则新DataPump工具优先于旧(且已弃用)exp
工具。
DataPump是一个命令行工具(expdp
),但也有一个通过Oracle包和过程的SQL API。
The Data Pump API(包括例子)
DBMS_DATAPUMP(参考)
但是如果你想要一个“真正的”备份,你应该看看RMAN
答案 1 :(得分:0)
可以在执行operating system command on the Oracle server的数据库服务器上创建Java存储过程。但是使用导出实用程序备份数据库是极其罕见的 - 只创建逻辑备份而不是更合适的物理备份。通过SQL * Plus连接到数据库并在服务器操作系统上生成作业来运行备份是极不寻常的。使用运行您要运行的任何导出命令的数据库服务器上的Windows调度程序创建作业会更有意义。