使用SQL * Plus在远程Oracle服务器上运行命令行命令

问题描述 投票:0回答:2

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

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

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

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

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

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

oracle sqlplus
2个回答
1
投票

除了贾斯汀写的东西:

如果要对数据库进行逻辑快照,则新的DataPump工具比旧的(已弃用的)exp工具更为可取。

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

The Data Pump API(包括示例)DBMS_DATAPUMP(参考)

但是如果您想进行“真实”备份,则应查看RMAN


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.