1、RMAN冷备全库
rman target /
list backup
shutdown immediate
startup mount
#不要自动备份control file
set nocfau;
#注意要先备份数据库,然后备份控制文件,因为数据库的备份位置记录在控制文件中。
#备份数据库
backup database format '/mnt/disk01/rman_backup_dir2/db_%d_%T_%U.bak';#备份控制文件
backup current controlfile format '/mnt/disk01/rman_backup_dir2/ctl_%d_%T_%U.bak';
恢复的时候,如果12c只是安装的了Oracle数据库软件,但是没有建库,是不是要用DBCA建一个库以后,再用RMAN恢复呢?这样做也可以,但不是必须的。即使12c的数据库损坏,或者完全没有了,被删除了,重新安装了12c软件,只要有RMAN的备份集(包括数据文件和控制文件的备份)就可以恢复。
2、恢复
(在12c的环境下,ORACLE_HOME等)
注意,只能还原相同版本Oracle的备份,即使是小版本不同,都不行。
rman target /
startup force nomount;
restore controlfile from '/mnt/disk01/rman_backup_dir2/ctl_PAAS_20221019_051am6dk_1_1.bak';#还原控制文件后,不必指定数据库备份的位置,因为这个信息已经在备份文件中
startup force mount;
restore database;
alter database open resetlogs;
如果startup force nomount的时报错:
RMAN-04014: startup failed: ORA-09925: Unable to create audit trail file
Linux-x86_64 Error: 2: No such file or directory
查看AUDIT_FILE_DEST,这个配置在pfile或spfile中:
SQL> create pfile='/home/oracle/pfile' from spfile;
vim /home/oracle/pfile
...
*.audit_file_dest='/mnt/disk01/oracle/admin/paas/adump'
...
如果audit文件所在的目录不存在,创建目录:
mkdir -p /mnt/disk01/oracle/admin/paas/adump
然后再启动:
startup nomount
这一步启动成功,再按照上面的恢复步骤继续操作(恢复控制文件、数据库)。