Oracle 冷备份

--======================

-- Oracle 冷备份

--======================

 

一、冷备份

    数据库在关闭状态下完成所有物理系统文件拷贝的过程,也称脱机备份

    适合于非归档模式下,数据库处于一致性状态

   

二、步骤   

    首先在运行的库中得到数据库运行的所有的物理文件位置,然后在计划内关闭数据库(shutdown)

    再执行拷贝物理文家到备份路径或备份设备

    备份完成后立即启动数据库让其提供正常的服务 

 

三、冷备脚本的写法

    首先应该在相关视图里查出数据库的数据文件,日志文件,控制文件,临时文件所在的位置

    注意:不要直接把oradata下的cp就行了,因为生产库里各个文件通常分布在不同的磁盘,不同的地方,所以在去视图里获得真实路径 

 

    --查看实例和数据库的相关信息

    SQL> select instance_name,version,status,archiver,database_status from v$instance;

 

    INSTANCE_NAME    VERSION           STATUS       ARCHIVE DATABASE_STATUS

    ---------------- ----------------- ------------ ------- -----------------

    orcl             10.2.0.1.0        OPEN         STOPPED ACTIVE

 

    SQL> select dbid,name,log_mode from v$database;

 

          DBID NAME      LOG_MODE

    ---------- --------- ------------

    1242732291 ORCL      NOARCHIVELOG

 

    --查看数据文件及状态信息

    SQL> select file_name,tablespace_name,status,online_status from dba_data_files;

 

    FILE_NAME                                               TABLESPACE STATUS    ONLINE_

    ------------------------------------------------------- ---------- --------- -------

    /u01/app/oracle/oradata/orcl/undotbs01.dbf              UNDOTBS1   AVAILABLE ONLINE

    /u01/app/oracle/oradata/orcl/system01.dbf               SYSTEM     AVAILABLE SYSTEM

    /u01/app/oracle/oradata/orcl/sysaux01.dbf               SYSAUX     AVAILABLE ONLINE

    /u01/app/oracle/oradata/orcl/users01.dbf                USERS      AVAILABLE ONLINE

    /u01/app/oracle/oradata/orcl/example01.dbf              EXAMPLE    AVAILABLE ONLINE

    /u01/app/oracle/oradata/orcl/tbs1_1.dbf                 TBS1       AVAILABLE ONLINE

    /u01/app/oracle/oradata/orcl/tbs1_2.dbf                 TBS1       AVAILABLE ONLINE

 

    --查看数据文件

    SQL> select name from v$datafile;

 

    NAME

    --------------------------------------------------------------------------------

    /u01/app/oracle/oradata/orcl/system01.dbf

    /u01/app/oracle/oradata/orcl/undotbs01.dbf

    /u01/app/oracle/oradata/orcl/sysaux01.dbf

    /u01/app/oracle/oradata/orcl/users01.dbf

    /u01/app/oracle/oradata/orcl/example01.dbf

    /u01/app/oracle/oradata/orcl/tbs1_1.dbf

    /u01/app/oracle/oradata/orcl/tbs1_2.dbf

 

    --查看临时文件

    SQL> select name from v$tempfile;

 

    NAME

    --------------------------------------------------------------------------------

    /u01/app/oracle/oradata/orcl/temp01.dbf

 

    --查看日志文件

    SQL> select member from v$logfile;

 

    MEMBER

    ------------------------------------------------------------

    /u01/app/oracle/oradata/orcl/redo2a.rdo

    /u01/app/oracle/oradata/orcl/redo2b.rdo

    /u01/app/oracle/oradata/orcl/redo1a.rdo

    /u01/app/oracle/oradata/orcl/redo3a.rdo

    /u01/app/oracle/oradata/orcl/redo3b.rdo

    /u01/app/oracle/oradata/orcl/redo1b.rdo

 

    --查看控制文件

    SQL> select name from v$controlfile;

 

    NAME

    ------------------------------------------------------------

    /u01/app/oracle/oradata/orcl/control01.ctl

    /u01/app/oracle/oradata/orcl/control02.ctl

 

    --创建备份目录

    SQL> ho mkdir /u01/app/oracle/coolbak

   

    --使用连接符生成复制文件命令

    SQL> select 'ho cp ' || name || ' /u01/app/oracle/coolbak' from v$controlfile;

 

    'HOCP'||NAME||'/U01/APP/ORACLE/COOLBAK'

    ----------------------------------------------------------------------------------

    ho cp /u01/app/oracle/oradata/orcl/control01.ctl /u01/app/oracle/coolbak

    ho cp /u01/app/oracle/oradata/orcl/control02.ctl /u01/app/oracle/coolbak

 

    SQL> save /tmp/tmpbak.sql;   --将上面的输入保存为tmpbak.sql

    Created file /tmp/tmpbak.sql

 

    SQL> ho vim /tmp/tmpbak.sql   --编辑tmpbak.sql,将下面的内容输入到tmpbak.sql

 

    set feedback off

    set heading off

    set verify off

    set trimspool off

    set pagesize 0

    set linesize 200

    define dir = '/u01/app/oracle/coolbak'

    define script = '/tmp/coolbak.sql'

    spool &script

    select 'ho cp ' || name || ' &dir' from v$controlfile

    union all

    select 'ho cp ' || name || ' &dir' from v$datafile

    union all

    select 'ho cp ' || member || ' &dir'  from v$logfile

    union all

    select 'ho cp ' || name || ' &dir' from v$tempfile

    /

    create pfile = '&dir/initorcl.ora' from spfile;

    ho cp /u01/app/oracle/10g/dbs/orapworcl &dir

    spool off

    shutdown immediate

    start &script

    ho rm &script

    startup

 

    --执行tmpbak.sql

    SQL> @/tmp/tmpbak.sql;

 

    --执行过程及数据库启动略

       

    --启动后查看备份的文件

    SQL> ho ls /u01/app/oracle/coolbak

    control01.ctl  orapworcl   redo2b.rdo    system01.dbf   users01.dbf

    control02.ctl  redo1a.rdo  redo3a.rdo    tbs1_1.dbf

    example01.dbf  redo1b.rdo  redo3b.rdo    tbs1_2.dbf

    initorcl.ora   redo2a.rdo  sysaux01.dbf  undotbs01.dbf

 

四、总结

    优点

        冷备模式下概念易于理解,即将需要备份的文件复制到安全的位置

        操作比较简单,不需要太多的干预

        容易恢复到某个时间点上(只需将文件再拷贝回去)

        能与归档方法相结合,作数据库最新状态的恢复。

    缺点

        备份时,数据库必须处于一致性关闭状态

        只能提供到某一时间点的恢复

        备份时速度比较慢,尤其是数据量大性能影响比较大

        不能实现基于表和用户级别的数据恢复

 

五、更多参考

 

  Oracle 备份恢复概念 

SPFILE错误导致数据库无法启动 

Managing Archived Redo Logs 

Oracle 用户、对象权限、系统权限 

Oracle 角色、配置文件 

  Oracle 联机重做日志文件(ONLINE LOG FILE) 

  Oracle 控制文件(CONTROLFILE) 

  Oracle 表空间与数据文件 

Oracle 归档日志

  • 1
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
Oracle备份优缺点: 备份: 优点: 1. 数据库备份速度快,因为备份数据库处于关闭状态,不需要考虑数据一致性和并发问题; 2. 备份成本低,不需要额外的硬件和软件支持; 3. 可以进行完全备份、增量备份、差异备份等多种备份方式。 缺点: 1. 数据库备份频率低,备份期间数据库不可用,对系统的影响较大; 2. 数据库恢复时间长,因为备份文件中包含完整的数据,恢复时需要将所有数据进行还原; 3. 只能保证备份时刻的数据完整性,不能保证备份后的数据一致性和实时性。 热备份: 优点: 1. 数据库备份频率高,备份期间数据库可以正常使用,对系统的影响较小; 2. 数据库恢复时间短,只需要还原差异数据,可以快速恢复到最新状态; 3. 可以保证备份后的数据一致性和实时性。 缺点: 1. 备份成本高,需要使用专业的备份软件和硬件支持; 2. 数据库备份速度慢,因为备份数据库需要保证数据一致性和并发问题; 3. 不能进行完全备份,只能进行增量备份或差异备份,需要进行多次备份才能完全还原数据库数据库备份优缺点: 备份: 优点: 1. 数据库备份速度快,因为备份数据库处于关闭状态,不需要考虑数据一致性和并发问题; 2. 可以进行完全备份备份文件中包含完整的数据,可以保证备份时刻的数据完整性; 3. 备份成本低,不需要额外的硬件和软件支持。 缺点: 1. 数据库备份频率低,备份期间数据库不可用,对系统的影响较大; 2. 数据库恢复时间长,因为备份文件中包含完整的数据,恢复时需要将所有数据进行还原; 3. 只能保证备份时刻的数据完整性,不能保证备份后的数据一致性和实时性。 热备份: 优点: 1. 数据库备份频率高,备份期间数据库可以正常使用,对系统的影响较小; 2. 数据库恢复时间短,只需要还原差异数据,可以快速恢复到最新状态; 3. 可以保证备份后的数据一致性和实时性。 缺点: 1. 备份成本高,需要使用专业的备份软件和硬件支持; 2. 数据库备份速度慢,因为备份数据库需要保证数据一致性和并发问题; 3. 不能进行完全备份,只能进行增量备份或差异备份,需要进行多次备份才能完全还原数据库

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值