如何创建和使用调用包含替换变量的命令文件的动态shell脚本
- 创建使用替换变量的 RMAN 命令文件: quarterly_backup.cmd
# quarterly_backup.cmd
CONNECT TARGET /
RUN
{
ALLOCATE CHANNEL c1
DEVICE TYPE sbt
PARMS 'ENV=(OB_MEDIA_FAMILY=&1)';
BACKUP DATABASE
TAG &2
FORMAT '/disk2/bck/&1%U.bck'
KEEP FOREVER
RESTORE POINT &3;
}
EXIT;
- 创建一个 shell 脚本,可用于运行上一步中创建的 RMAN 命令文件。
以下示例创建一个名为 的 shell 脚本runbackup.sh。该示例为格式和还原点名称创建 shell 变量,并接受这些变量的值作为脚本的命令行参数。
#!/bin/tcsh
# name: runbackup.sh
# usage: use the tag name and number of copies as arguments
set media_family = $argv[1]
set format = $argv[2]
set restore_point = $argv[3]
rman @'/disk1/scripts/quarterly_backup.cmd' USING $media_family $format $restore_point
解析:
set 命令用于定义变量:
media_family:从脚本的第一个参数获取值。
format:从第二个参数获取值。
restore_point:从第三个参数获取值。
$argv 是一个特殊变量,用于存储传递给脚本的命令行参数。
RMAN命令:
@'/disk1/scripts/quarterly_backup.cmd':指定要执行的 RMAN 脚本文件路径。
USING:后面的参数将被传递给 quarterly_backup.cmd 脚本,通常在该脚本中会引用这些参数。
- 执行创建的 shell 脚本,并在命令行上指定所需的参数。
% runbackup.sh archival_backup bck0906 FY06Q3
检查 RMAN 语法
参考:Oracle Database Backup and Recovery Reference
- 检查命令行的语法
% rman CHECKSYNTAX
RMAN> run [ backup database; ]
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00558: error encountered while parsing input commands
RMAN-01006: error signaled during parse
RMAN-02001: unrecognized punctuation symbol "["
RMAN> run { backup database; }
The command has no syntax errors
RMAN>
- 检查命令文件的语法
创建语法正确一个文件/tmp/goodcmdfile:
# command file with legal syntax
RESTORE DATABASE;
RECOVER DATABASE;
标签:脚本,shell,交互,cmd,quarterly,RMAN,backup,客户端
From: https://www.cnblogs.com/lndt/p/18516089