使用 Oracle ASM asmcmd 工具进行多个副本 (cp)?

ABX*_*ABX 5 oracle

为了使用 ASM 将可传输表空间导入 Oracle 11 数据库,我们使用cpasmcmd工具的命令。

我们如何一次复制多个文件?

不支持通配符,复制目录,如果asmcmd有脚本机制,我找不到任何提示。

ik_*_*elf 8

由于没有提到平台或版本,我假设 Unix/Linux 和 11gR2。

首先,检查Running ASMCMD in Noninteractive Mode。这说明我们可以在脚本中使用 ASMCMD,所以无论我们梦想什么,我们都可以编写脚本。在这种情况下,为了复制文件,我们可以使用

asmcmd command options
Run Code Online (Sandbox Code Playgroud)

此处显示了一个简单示例在脚本中运行 ASMCMD 命令 稍微更改此示例以使其复制本地目录中的所有文件,也使用此使用 ASMCMD cp 命令作为输入:

ls | while read FILE
do
   asmcmd cp $FILE +data/orcl/datafile/$FILE
done
Run Code Online (Sandbox Code Playgroud)

我不确定并行运行多个副本有多聪明。这完全取决于您的硬件可以处理什么。如果您想并行运行,请在后台运行副本,但要小心一点,当并行运行过多时,它肯定会导致比以顺序方式运行更慢的吞吐量。

对于 Windows,它会略有不同,循环结构会有所不同。

我希望这有帮助。