sqlplus /nolog (启动sqlplus)
SQL> conn / as sysdba (以DBA身份连接数据库)
SQL> shutdown immediate; (立即关闭数据库)
SQL> startup mount (启动实例并加载数据库,但不打开)
SQL> alter database archivelog; (更改数据库为归档模式)
SQL> alter database open; (打开数据库)
SQL> alter system archive log start; (启用自动归档)
SQL> exit (退出)
#启动恢复管理器
rman target=rman/rman
RMAN>backup as compressed backupset database;
run{
allocate channel c1 type disk;
backup full tag 'dbfull' format '/backup/full%u_%s_%p' database;
include current controlfile;
sql ‘alter system archive log current’; #在数据库进行全备份完成之后,需要执行该条命令将当前日志归档,备份归档日志时应该包括最后生成的归档
backup filesperset 3 format; ‘/backup/arch%u_%s_%p’#filesperset 3设定每个备份集里文件不超过3个
archivelog all delete input; #备份归档可选,可以单独定期备份
release channel c1;
}
#数据文件的备份
select file#,name from v$datafile;
F:\ORACLE-DATA\ORADATA\ORCL\TEST_DATA.DBF
BACKUP DATAFILE 'F:\ORACLE-DATA\ORADATA\ORCL\TEST_DATA.DBF'
#控制文件备份
BACKUP CURRENT CONTROLFILE;
#控制文件备份
LIST BACKUP OF CONTROLFILE;
BACKUP DATABASE FORMAT 'F:\oracle_dump\bak_%U';
run {
backup incremental level=0 cumulative database
format 'f:\oracle_dump\back_db_%d_%t_%s'
plus archivelog
format 'f:\oracle_dump\back_arch_%d_%t_%s'
delete all input;
}
rman target=rman/rman send "run {backup incremental level=1 cumulative database format 'f:\oracle_dump\back_db_%d_%t_%s' plus archivelog format 'f:\oracle_dump\back_arch_%d_%t_%s' delete all input;}"
rman target=rman/rman << "run {backup incremental level=1 cumulative database format 'f:\oracle_dump\back_db_%d_%t_%s' plus archivelog format 'f:\oracle_dump\back_arch_%d_%t_%s' delete all input;}"
run {
backup incremental level=0 DATAFILE 'F:\ORACLE-DATA\ORADATA\ORCL\TEST_DATA.DBF'
format 'f:\oracle_dump\back_db_%d_%t_%s'
plus archivelog
format 'f:\oracle_dump\back_arch_%d_%t_%s'
delete all input;
}
run {
backup incremental level=1 cumulative DATAFILE 'F:\ORACLE-DATA\ORADATA\ORCL\TEST_DATA.DBF'
format "f:\oracle_dump\inc_db_%d_%t_%s"
plus archivelog
format "f:\oracle_dump\inc_arch_%d_%t_%s"
delete all input;
}