#!/bin/bash
Dt=`date +'%Y%m%d-%H%M'`
BACKUP_LOG="rman-${ORACLE_SID}-$Dt"export TAGDATE=`date +%Y%m%d%H%M`;
LOGPATH=/u01/scripts/logs
rman target / >> $LOGPATH/rman-${ORACLE_SID}-$Dt << EOF
SQL "ALTER SYSTEM SWITCH LOGFILE";
SQL "ALTER SESSION SET NLS_DATE_FORMAT="DD.MM.YYYY HH24:MI:SS"";
RUN
{
ALLOCATE CHANNEL ch11 TYPE DISK MAXPIECESIZE 5G;
ALLOCATE CHANNEL ch12 TYPE DISK MAXPIECESIZE 5G;
BACKUP AS COMPRESSED BACKUPSET FULL DATABASE FORMAT '/efs/rman_backup/FSCM/%d_%T_%s_%p_FULL' ;
SQL "ALTER SYSTEM ARCHIVE LOG CURRENT";
BACKUP FORMAT '/efs/rman_backup/FSCM/%d_%T_%s_%p_ARCHIVE' ARCHIVELOG ALL DELETE ALL INPUT ;
BACKUP CURRENT CONTROLFILE FORMAT '/efs/rman_backup/FSCM/%d_%T_%s_%p_CONTROL';
}
EXIT;
EOF
DBA
运行备份脚本。
要运行RMAN备份脚本,请以 Oracle 主用户身份登录并运行该脚本。
$ chmod a+x rman_backup.sh
$ ./rman_backup.sh &
DBA
检查是否存在错误,并记下备份文件的名称。
检查RMAN日志文件中是否有错误。如果一切正常,请运行以下命令列出控制文件的备份。
RMAN> list backup of controlfile;
using target database control file instead of recovery catalog
记下输出文件的名称。
List of Backup Sets
===================
BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
12 Full 21.58M DISK 00:00:0113-JUL-22
BP Key: 12 Status: AVAILABLE Compressed: NO Tag: TAG20220713T150155
Piece Name: /efs/rman_backup/FSCM/FSDMO92_20220713_12_1_CONTROL
Control File Included: Ckp SCN: 16559159985898 Ckp time: 13-JUL-22
在 Amazon Custo RDS m 上恢复数据库/efs/rman_backup/FSCM/FSDMO92_20220713_12_1_CONTROL时,您将使用备份控制文件。
#!/bin/bash
Dt=`date +'%Y%m%d-%H%M'`
BACKUP_LOG="rman-${ORACLE_SID}-$Dt"export TAGDATE=`date +%Y%m%d%H%M`;
LOGPATH=/u01/scripts/logs
rman target / >> $LOGPATH/rman-${ORACLE_SID}-$Dt << EOF
SQL "ALTER SYSTEM SWITCH LOGFILE";
SQL "ALTER SESSION SET NLS_DATE_FORMAT="DD.MM.YYYY HH24:MI:SS"";
RUN
{
ALLOCATE CHANNEL ch11 TYPE DISK MAXPIECESIZE 5G;
ALLOCATE CHANNEL ch12 TYPE DISK MAXPIECESIZE 5G;
BACKUP AS COMPRESSED BACKUPSET FULL DATABASE FORMAT '/efs/rman_backup/FSCM/%d_%T_%s_%p_FULL' ;
SQL "ALTER SYSTEM ARCHIVE LOG CURRENT";
BACKUP FORMAT '/efs/rman_backup/FSCM/%d_%T_%s_%p_ARCHIVE' ARCHIVELOG ALL DELETE ALL INPUT ;
BACKUP CURRENT CONTROLFILE FORMAT '/efs/rman_backup/FSCM/%d_%T_%s_%p_CONTROL';
}
EXIT;
EOF
DBA
运行备份脚本。
要运行RMAN备份脚本,请以 Oracle 主用户身份登录并运行该脚本。
$ chmod a+x rman_backup.sh
$ ./rman_backup.sh &
DBA
检查是否存在错误,并记下备份文件的名称。
检查RMAN日志文件中是否有错误。如果一切正常,请运行以下命令列出控制文件的备份。
RMAN> list backup of controlfile;
using target database control file instead of recovery catalog
记下输出文件的名称。
List of Backup Sets
===================
BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
12 Full 21.58M DISK 00:00:0113-JUL-22
BP Key: 12 Status: AVAILABLE Compressed: NO Tag: TAG20220713T150155
Piece Name: /efs/rman_backup/FSCM/FSDMO92_20220713_12_1_CONTROL
Control File Included: Ckp SCN: 16559159985898 Ckp time: 13-JUL-22
在 Amazon Custo RDS m 上恢复数据库/efs/rman_backup/FSCM/FSDMO92_20220713_12_1_CONTROL时,您将使用备份控制文件。
DBA
任务
描述
所需技能
关闭应用程序。
若要关闭源应用程序层,请使用 psadmin 实用程序或 psadmin 命令行实用程序。
若要关闭 Web 服务器,请运行以下命令。
psadmin -w shutdown -d "webserver domain name"
若要关闭应用程序服务器,请运行以下命令。
psadmin -c shutdown -d "application server domain name"
#!/bin/bash
Dt=`date +'%Y%m%d-%H%M'`
BACKUP_LOG="rman-${ORACLE_SID}-$Dt"
export TAGDATE=`date +%Y%m%d%H%M`;
LOGPATH=/rdsdbdata/scripts/logs
rman target / >> $LOGPATH/rman-${ORACLE_SID}-$Dt << EOF
restore controlfile from "/efs/rman_backup/FSCM/FSDMO92_20220713_12_1_CONTROL";
alter database mount;
run
{set newname for database to '/rdsdbdata/db/FSDMO92_A/datafile/%f_%b';
SET NEWNAME FOR TEMPFILE 1 TO '/rdsdbdata/db/FSDMO92_A/datafile/%f_%b';
RESTORE DATABASE;
SWITCH DATAFILE ALL;
SWITCH TEMPFILE ALL;
RECOVER DATABASE;
}
EOF
sqlplus / as sysdba >> $LOGPATH/rman-${ORACLE_SID}-$Dt<<-EOF
ALTER DATABASE RENAME FILE '/u01/psoft/db/oradata/FSDMO92/redo01.log' TO '/rdsdbdata/db/FSDMO92_A/onlinelog/redo01.log';
ALTER DATABASE RENAME FILE '/u01/psoft/db/oradata/FSDMO92/redo02.log' TO '/rdsdbdata/db/FSDMO92_A/onlinelog/redo02.log';
ALTER DATABASE RENAME FILE '/u01/psoft/db/oradata/FSDMO92/redo03.log' TO '/rdsdbdata/db/FSDMO92_A/onlinelog/redo03.log';
alter database clear unarchived logfile group1;
alter database clear unarchived logfile group2;
alter database clear unarchived logfile group3;
alter database open resetlogs;
EXIT
EOF
DBA
删除起始数据库并创建用于存储数据库文件的目录
任务
描述
所需技能
暂停自动化模式。
在继续执行后续步骤之前,您必须暂停 Amazon C RDS ustom 数据库实例的自动化模式,以确保自动化不会干扰RMAN恢复活动。
#!/bin/bash
Dt=`date +'%Y%m%d-%H%M'`
BACKUP_LOG="rman-${ORACLE_SID}-$Dt"
export TAGDATE=`date +%Y%m%d%H%M`;
LOGPATH=/rdsdbdata/scripts/logs
rman target / >> $LOGPATH/rman-${ORACLE_SID}-$Dt << EOF
restore controlfile from "/efs/rman_backup/FSCM/FSDMO92_20220713_12_1_CONTROL";
alter database mount;
run
{set newname for database to '/rdsdbdata/db/FSDMO92_A/datafile/%f_%b';
SET NEWNAME FOR TEMPFILE 1 TO '/rdsdbdata/db/FSDMO92_A/datafile/%f_%b';
RESTORE DATABASE;
SWITCH DATAFILE ALL;
SWITCH TEMPFILE ALL;
RECOVER DATABASE;
}
EOF
sqlplus / as sysdba >> $LOGPATH/rman-${ORACLE_SID}-$Dt<<-EOF
ALTER DATABASE RENAME FILE '/u01/psoft/db/oradata/FSDMO92/redo01.log' TO '/rdsdbdata/db/FSDMO92_A/onlinelog/redo01.log';
ALTER DATABASE RENAME FILE '/u01/psoft/db/oradata/FSDMO92/redo02.log' TO '/rdsdbdata/db/FSDMO92_A/onlinelog/redo02.log';
ALTER DATABASE RENAME FILE '/u01/psoft/db/oradata/FSDMO92/redo03.log' TO '/rdsdbdata/db/FSDMO92_A/onlinelog/redo03.log';
alter database clear unarchived logfile group1;
alter database clear unarchived logfile group2;
alter database clear unarchived logfile group3;
alter database open resetlogs;
EXIT
EOF
SQL>GRANT "CONNECT" TO RDSADMIN WITH ADMIN OPTION;
SQL>GRANT "RESOURCE" TO RDSADMIN WITH ADMIN OPTION;
SQL>GRANT "DBA" TO RDSADMIN;
SQL>GRANT "SELECT_CATALOG_ROLE" TO RDSADMIN WITH ADMIN OPTION;
SQL>GRANTALTERSYSTEMTO RDSADMIN;
SQL>GRANT UNLIMITED TABLESPACE TO RDSADMIN;
SQL>GRANTSELECTANYTABLETO RDSADMIN;
SQL>GRANTALTER DATABASE TO RDSADMIN;
SQL>GRANT ADMINISTER DATABASE TRIGGERTO RDSADMIN;
SQL>GRANTANY OBJECT PRIVILEGE TO RDSADMIN WITH ADMIN OPTION;
SQL>GRANT INHERIT ANY PRIVILEGES TO RDSADMIN;
SQL>ALTERUSER RDSADMIN DEFAULT ROLE ALL;
Set the SYS, SYSTEM, and DBSNMP user profiles to RDSADMIN.
SQL>set echo on feedback on serverout onSQL>alteruser SYS profile RDSADMIN;
SQL>alteruserSYSTEM profile RDSADMIN;
SQL>alteruser DBSNMP profile RDSADMIN;
SQL>GRANT "CONNECT" TO RDSADMIN WITH ADMIN OPTION;
SQL>GRANT "RESOURCE" TO RDSADMIN WITH ADMIN OPTION;
SQL>GRANT "DBA" TO RDSADMIN;
SQL>GRANT "SELECT_CATALOG_ROLE" TO RDSADMIN WITH ADMIN OPTION;
SQL>GRANTALTERSYSTEMTO RDSADMIN;
SQL>GRANT UNLIMITED TABLESPACE TO RDSADMIN;
SQL>GRANTSELECTANYTABLETO RDSADMIN;
SQL>GRANTALTER DATABASE TO RDSADMIN;
SQL>GRANT ADMINISTER DATABASE TRIGGERTO RDSADMIN;
SQL>GRANTANY OBJECT PRIVILEGE TO RDSADMIN WITH ADMIN OPTION;
SQL>GRANT INHERIT ANY PRIVILEGES TO RDSADMIN;
SQL>ALTERUSER RDSADMIN DEFAULT ROLE ALL;
Set the SYS, SYSTEM, and DBSNMP user profiles to RDSADMIN.
SQL>set echo on feedback on serverout onSQL>alteruser SYS profile RDSADMIN;
SQL>alteruserSYSTEM profile RDSADMIN;
SQL>alteruser DBSNMP profile RDSADMIN;