1. 联机备份

优点:

  1)在备份期间数据库的业务可以正常进行;

  2)既可以备份表空间也可以备份数据文件,备份的数据量可能急剧下降;

  3)在备份期间用户仍然可以正常使用数据库

缺点:

  1)数据库运行在归档模式,所以系统的开销增大,管理和维护成本增加;

  2)对DBA的技术要求提高;

2.联机备份步骤

  1)查看数据文件的备份状态

  select * from v$backup;

  2)查看备份的数据文件名,了解表空间与数据文件之间的对应关系

  select file_id,file_name from dba_data_files;

  3)选择一个数据文件作为联机备份的对象,先将该文件所对应的表空间置为备份状态

 alter tablespace pioneer_index begin backup;

注意:执行完上述语句,备份的表空间所对应的所有数据文件的文件头被冻结(锁住)并产生检查点

  4)将数据文件pioneer_index.dbf从数据库中复制到备份磁盘上

  host copy d:\orcl\disk4\moon\proneer_index.dbf f:\tbsbackup\disk4;

  5)再次查看数据文件的备份状态

  select * from v$backup;

  6)将表空间pioneer_index重新置为正常的非备份状态

  alter tablespace pioneer_index end backup;

  7)查看联机备份是否成功

  8)从v$log_history获取重做日志切换相关信息

  select sequence#,first_change#,to_char(first_time,''RR-MM-DD HH:MM:SS'),next_change#,stamp from v$log_history where sequence#>120;

  9)将当前的重做日志文件的信息写到归档日志文件中

  alter system archive log current;

  10)重复步骤8,可以发现归档日志已经生成

3. 联机备份时可以进行查询和DML操作。当进行DML操作时,此时数据是无法写到数据文件中,oracle记录到重做日志文件中。可能会增加重做日志缓冲区和重做日志文件的压力,需要注意:重做日志缓冲区和重做日志文件适当加大;在进行联机备份时,每次只备份一个表空间;在DML操作最少的时间段进行联机备份。

4. 自动化冷备份

  1)编写BasedBak.sql文件

-- 切换到sys用户下

conn sys/oracle as sysdba
-- 关闭数据库
shutdown immediate;

-- 备份控制文件
host cp /back/oracle/disk1/control01.ctl /back/oracle/backupmoon/controlfile/disk1/control01.ctl 
host cp /back/oracle/disk2/control02.ctl /back/oracle/backupmoon/controlfile/disk2/control02.ctl 
host cp /back/oracle/disk3/control03.ctl /back/oracle/backupmoon/controlfile/disk3/control03.ctl

--- 备份日志文件和表空间
host cp /bak/DBSoftware/app/oracle/oradata/orcl/*.* /back/oracle/backupmoon/oradata/orcl/

-- 备份参数文件
host cp /bak/DBSoftware/app/oracle/product/10.2.0/db_1/dbs/spfileORCL.ora /back/oracle/backupmoon/dbs/

host cp /bak/DBSoftware/app/oracle/product/10.2.0/db_1/database/spfileORCL.ora /back/oracle/backupmoon/database/

-- 启动数据库
startup

exit

2)编写bat文件

  D:\oracle\product\11.2.0\dbhome_1\BIN\sqlplus /nolog @CoolBack.sql

5.联机备份(热备份)

1)编写sql脚本

connect system/oracle as sysdba
  alter system archive log start;
  alter tablespace users begin backup;
  host copy /bak/DBSoftware/app/oracle/oradata/orcl/users01.dbf f:\tbsbackup\
  alter tablespace users end backup;
  alter system archive log current;
  alter tablespace system begin backup;
  host copy /bak/DBSoftware/app/oracle/oradata/orcl/system01.dbf f:\tbsbackup\
  alter tablespace users end backup;
  alter system archive log current;
  .........................
  exit
  /
  2)编写bat文件
  D:\oracle\product\11.2.0\dbhome_1\BIN\sqlplus /nolog @hotBack.sql