Welcome 微信登录

首页 / 数据库 / MySQL / 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教程 更多参考有关闪回特性请参考Oracle 闪回特性(FLASHBACK DATABASE)Oracle 闪回特性(FLASHBACK DROP & RECYCLEBIN)Oracle 闪回特性(Flashback Query、Flashback Table)Oracle 闪回特性(Flashback Version、Flashback Transaction)有关基于用户管理的备份和备份恢复的概念请参考:Oracle 冷备份Oracle 热备份Oracle 备份恢复概念Oracle 实例恢复Oracle 基于用户管理恢复的处理(详细描述了介质恢复及其处理)有关RMAN的恢复与管理请参考:RMAN 概述及其体系结构RMAN 配置、监控与管理RMAN 备份详解RMAN 还原与恢复有关Oracle体系结构请参考:Oracle 实例和Oracle数据库(Oracle体系结构)Oracle 表空间与数据文件Oracle 密码文件Oracle 参数文件Oracle 数据库实例启动关闭过程Oracle 联机重做日志文件(ONLINE LOG FILE)Oracle 控制文件(CONTROLFILE)Oracle 归档日志Oracle 表缓存(caching table)的使用Oracle 热备份相关资讯      Oracle教程 
  • Oracle中纯数字的varchar2类型和  (07/29/2015 07:20:43)
  • Oracle教程:Oracle中查看DBLink密  (07/29/2015 07:16:55)
  • [Oracle] SQL*Loader 详细使用教程  (08/11/2013 21:30:36)
  • Oracle教程:Oracle中kill死锁进程  (07/29/2015 07:18:28)
  • Oracle教程:ORA-25153 临时表空间  (07/29/2015 07:13:37)
  • Oracle教程之管理安全和资源  (04/08/2013 11:39:32)
本文评论 查看全部评论 (1)
表情: 姓名: 字数


评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款