web-dev-qa-db-ja.com

変数を代入するOracleRMAN

RMANのUSING句をいじっていますが、機能しないようです。これが私のRMANコマンドです:

rman target username/password @${RMAN_DIR}/backup.rman using "db1"

それを実行すると(二重引用符、一重引用符、引用符なし、パラメーターを使用)、以下のエラーが発生します。

Linux上のOracle11.2.0.4を使用しています。

Argument     Value          Description
-----------------------------------------------------------------------------
target       quoted-string  connect-string for target database
catalog      quoted-string  connect-string for recovery catalog
nocatalog    none           if specified, then no recovery catalog
cmdfile      quoted-string  name of input command file
log          quoted-string  name of output message log file
trace        quoted-string  name of output debugging message log file
append       none           if specified, log is opened in append mode
debug        optional-args  activate debugging
msgno        none           show RMAN-nnnn prefix for all messages
send         quoted-string  send a command to the media manager
pipe         string         building block for pipe names
timeout      integer        number of seconds to wait for pipe input
checksyntax  none           check the command file for syntax errors
-----------------------------------------------------------------------------
Both single and double quotes (' or ") are accepted for a quoted-string.
Quotes are not required unless the string contains embedded white-space.

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00552: syntax error in command line arguments
RMAN-01009: syntax error: found "db1": expecting one of: "double-quoted-string, identifier, integer, single-quoted-string"
RMAN-01007: at line 2 column 1 file: command line arguments
1
unclenevin

コマンドがrmanに到達する前に、Linuxシェルが二重引用符を解釈している必要があります。二重引用符をエスケープします。

rman target username/password @${RMAN_DIR}/backup.rman using \"db1\"

または、コマンドを一重引用符で囲んで、シェルがコマンドを混乱させないようにします。

rman target username/password @${RMAN_DIR}'/backup.rman using "db1"'

後者の場合、シェルに拡張させたいので、引用符で囲まれたコマンドの外に環境変数を残す必要がありますdo

1
mustaccio