数据文件的传统备份与恢复方法
一、备份
1、查看当前创建的那些数据文件 ,可查看数据库字典视图 dba_data_files
2、打开数据库、执行
SQL> alter tablespace users begin backup --对表空间的备份即对数据文件的备份
--users代表users表空间
--begin backup 并非意味着开始备份,而是使该表空间的数据在内存和文件中达到一致状态(将脏数据写入文件),并且阻止用户对该表空间数据进行修改
3、利用操作系统指令,将对应的数据文件拷贝到备份位置(真正意义上的备份)
4、执行以下命令
SQL> alter tablespace users end backup
--备份完成,解除用户对表空间修改的限制
二、恢复(有备份)
1、将数据打开到mount或open状态,查看需要恢复的数据文件
select file#,online_status,error from v$recover_file;
2、将需要的数据文件转换为离线状态
alter database datafile x offline -- x表示第几个数据文件
或 alter tablespace tablespace_name offline; --此种方式需要数据处于open状态
3、还原数据文件,即restore
情况一、将之前备份的数据文件拷贝到原始位置,且数据文件名必须同之前相同
情况二、若恢复到其他目录或更名,拷贝到指定位置后,执行
SQL>alter database rename file '/opt/oracle/xxxx.dbf' to '/usr/app/datafile/xxx2.dbf'
4、利用重做日志执行恢复,即recover
SQL>recover database
SQL> recover tablespace tablespace_name; 或
SQL>recover datafile x ; 或
SQL>alter database recover datafile x ;
5、将数据文件切换到online状态
SQL> alter database datafile x online; 或
SQL>alter tablespace tablespace_name online;
6、若数据库之前为mount状态,则切换为open状态
SQL> alter database open;
三、恢复(无备份)
1、查看待恢复数据文件,字典视图 dba_data_file
2、将数据文件状态切换到offline状态
3、重建数据文件
SQL> alter database create datafile '/opt/oracle/new.dbf' as '/opt/oracle/old.dbf'
4、recover还原
5、数据文件状态切换为online
6、数据库切换到open