介绍: 我必须为旧的 Oracle 10g 安装设置备份概念。服务器很旧,管理不善,但我必须确保我们有可靠的备份,直到 2014 年初系统下线。我已经在 Oracle 文档中读到了几行关于 exp 和 RMAN 的内容。遗憾的是,该系统缺少任何 Oracle 工具(没有 sqlplus => 没有命令行,没有 exp 等),我现在不想安装其他软件。
有没有一种简单的方法可以从客户端机器设置备份解决方案(exp / rman)?
PS:虽然我们的系统本身没有命令行,但我们在客户端上安装了 Oracle 管理控制台。因此基于客户端的备份解决方案就很好了
答案1
Oracle 提供的备份工具可以从客户端使用,但要这样做,您需要 SYSDBA 权限。您可以从客户端使用rman
、expdp
或命令。建议使用,因为它是唯一能够进行差异备份的工具。要使用,请使用 连接到服务器exp
rman
rman
connect target sys@SERVERNAME
命令,其中“SERVERNAME”是服务器的 TNS 条目。
rman
并将expdp
在服务器上进行备份,因此例如如果您在中分配磁盘通道rman
,它将尝试在服务器上写入备份,如果您分配磁带设备,则服务器必须能够访问该设备。
答案2
我使用以下脚本。
#!/usr/bin/ksh
####### env #######
export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db
export PATH=$PATH:$ORACLE_HOME/bin
export TNS_ADMIN=/u01/app/oracle/product/10.2.0/asm/network/admin
export ORACLE_SID=WIND1
export NLS_LANG=american
export NLS_DATE_FORMAT='YYYY-MM-DD, HH24:MI:SS'
export BACKUP_LOC=/rman_backups/WIND1
####### log ######
export DATE=`date +"%Y%m%d%H%M%S"`
LOGFILE=$BACKUP_LOC"/log/rman_backup-"$DATE".log"
exec > $LOGFILE 2>&1
echo "Start of Prod CDA Full Backup " $DATE
####### rman backup database, archive, controlfile and spfile #######
$ORACLE_HOME/bin/rman << EOF
connect target sys/password1
CONFIGURE DEVICE TYPE DISK PARALLELISM 3 BACKUP TYPE TO COMPRESSED BACKUPSET;
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 14 DAYS;
run {
sql 'alter system checkpoint' ;
BACKUP DEVICE TYPE DISK database FORMAT '/rman_backups/WIND1/database/%T_datafile_s%s';
sql 'alter system archive log current' ;
BACKUP DEVICE TYPE DISK archivelog all FORMAT '/rman_backups/WIND1/database/%T_archive_s%s' filesperset 20;
BACKUP DEVICE TYPE DISK CURRENT CONTROLFILE FORMAT '/rman_backups/WIND1/database/%T_control_s%s';
BACKUP DEVICE TYPE DISK SPFILE FORMAT '/rman_backups/WIND1/database/%T_spfile_s%s';
}
CROSSCHECK BACKUP;
CROSSCHECK ARCHIVELOG ALL;
DELETE NOPROMPT EXPIRED ARCHIVELOG ALL;
DELETE NOPROMPT OBSOLETE;
exit
EOF