备份类型 |
备份方法 |
示例 |
数据文件 |
操作系统命令或工具 |
C:\COPY datafile1.ora datafile.bak |
归档重做日志文件 |
操作系统命令或工具 |
C:\COPY log_01_23.arc log_01_23.bak |
控制文件 |
SQL命令 |
SQL>ALTER DATABASE BACKUP CONTROLFILE TO confile.bak; |
初始化参数文件 |
SQL命令 |
SQL>CREATE PFILE=SIDinit.ora FROM SPFILE; |
网络配置与口令文件 |
操作系统命令 |
C:\COPY tnsnames.ora tnsnames.bak |
数据库逻辑对象(表、索引、存储过程等) |
Export工具 |
C:\EXPORT system/manager TABLE =hr.employees file=emp.dmp |
如果数据库运行在不归档模式下,可以对数据库进行不一致的完全备份,或者对某个表空间或数据文件进行单独的备份。
如果数据库运行在不归档模式下,只能在关闭状态下对数据库进行一致的完全备份
一、 表空间或数据文件的脱机备份
如果数据库运行在归档模式下,可以在打开状态下对数据库中处于脱机状态的表空间或数据文件进行备份。在备份期间数据库中其它的表空间或数据文件仍然可以被用户使用。
SQL>ALTER TABLESPACE users OFFLINE NORMAL;
C:\COPY E:\oracle\oradata\users01.dbf F:\backup\users01.bak
SQL>ALTER TABLESPACE users ONLINE;
SQL>ALTER SYSTEM ARCHIVE LOG CURRENT;
二、 表空间或数据文件的联机备份
如果数据库运行在归档模式下,可以在打开状态下对数据库中处于联机状态的表空间或数据文件进行备份。在备份期间这些表空间或数据文件仍然可以被用户使用。
SQL>ALTER TABLESPACE users BEGIN BACKUP;
C:\COPY E:\oracle\oradata\users01.dbf F:\backup\users01.bak
SQL>ALTER TABLESPACE users END BACKUP;
SQL>ALTER SYSTEM ARCHIVE LOG CURRENT;
三、 处理备份故障
如果在备份过程中发生故障,导致备份突然中断,那么在下一次启动数据库时备份表空间的数据文件将会仍然处于备份模式下,因此ORACLE会要求进行数据库恢复。
1、 利用ALTER DATABASE END BACKUP语句退出备份模式
SQL>STARTUP MOUNT
SQL>SELECT * FROM V$BACKUP WHERE STATUS=’ACTIVE’
(查询哪些数据文件处于备份模式)
SQL>ALTER DATABASE END BACKUP;
SQL>ALTER DATABASE OPEN;
2、 利用RECOVER命令退出备份模式
SQL>STARTUP MOUNT
SQL>RECOVER DATABASE
SQL>ALTER DATABASE OPEN;
四、 控制文件备份为二进制文件
SQL>ALTER DATABASE BACKUP CONTROLFILE TO
‘E:\backup\cfile.bak’ REUSE;
五、 控制文件备份到跟踪文件中
SQL>ALTER DATABASE BACKUP CONTROLFILE TO TRACE;
(数据库处于加载状态时,利用上面语句可以将控制文件备份到跟踪文件中)