为了使用 ASM 将可传输表空间导入 Oracle 11 数据库,我们使用cp
该asmcmd
工具的命令。
我们如何一次复制多个文件?
不支持通配符,复制目录,如果asmcmd
有脚本机制,我找不到任何提示。
由于没有提到平台或版本,我假设 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,它会略有不同,循环结构会有所不同。
我希望这有帮助。