一.确认数据库是否运行在归档模式下
1.以用户sys的身份登录数据库。
sqlplus sys/system@wisgrpt as sysdba
2.查看数据库的归档状态。
SQL>archive log list;
若Database log mode为ArchiveMode模式,则以下步骤不需要执行,
若Database log mode为No ArchiveMode模式,则以下步骤需要执行。
3.干净的关闭数据库
SQL>shutdown immediate;
4.启动数据库到mount状态
SQL>startup mount;
5.设置归档路径
SQL>alter system set log_archive_dest_1=’LOCATION=$ORACLE_BASE/oradata’ scope=both;
6.把数据库切换到归档模式
SQL>alter database archivelog;
7.打开数据库
SQL>alter database open;
二.备份
1.以用户oracle的身份登录操作系统
2.以用户sys的身份登录数据库,手动归档日志文件。
sqlplus sys/system@wisgrpt as sysdba
SQL>alter system archive log all;
SQL>alter system archive log current;
3.进入执行RMAN命令的目录
cd $ORACLE_HOME/bin
4.启动RMAN,登录目标数据库
rman target sys/system@wisgrpt
5.运行下面的脚本备份整个数据库
RMAN>spool log to '$ORACLE_BASE/oradata/log_fulldatabase.txt';
RMAN>run{
allocate channel c1 type disk MAXPIECESIZE 2G;
backup
full
database
format '$ORACLE_BASE/oradata/bkfulldb_%s_%p_%t' diskratio=0;
release channel c1;
}
RMAN>spool log off;
bkfulldb_*是备份生成文件的文件名
log_fulldatabase.txt是备份生成日志的文件名
$ORACLE_BASE/oradata/是备份生成文件和备份生成日志的路径
6.运行下面的脚本备份归档日志文件
RMAN>spool log to '$ORACLE_BASE/oradata/log_archivelog.txt';
RMAN>run{
allocate channel t1 type disk;
bakcup
archivelog all
format '$ORACLE_BASE/oradata/bkarchivelog_%U';
release channel t1;
}
RMAN>spool log off;