精华内容
下载资源
问答
  • 技术创新变革未来 Oracle数据库备份与恢复概述 目录 01 备份 Content 02 恢复 为什么需要备份 最后的数据保护措施 介质故障 用户错误 应用程序错误 数据保留和历史保留 数据恢复 为什么需要备份 备份和恢复要求 保护...
  • Oracle数据库备份与恢复
  • Oracle数据库应用与开发案例教程 Java Web开发技术 * * * Oracle数据库应用 与开发案例教程 主编 王红 中国水利水电出版社 * * Oracle数据库应用 与开发案例教程 第十章 数据库备份与恢复 * Oracle数据库应用与开发...
  • linux下oracle数据库自动备份与恢复,Windows下oracle数据库自动备份与恢复
  • oracle数据库备份与恢复 oracle数据库备份与恢复 oracle数据库备份与恢复 oracle数据库备份与恢复 oracle数据库备份与恢复 oracle数据库备份与恢复
  • oracle数据库创建备份与恢复oracle数据库日常维护经常用到的,下面与大家分享下常用脚本的整理,不会的朋友可以参考下哈
  • Oracle管理oracle数据库备份与恢复 第六章oracle数据库备份与恢复 第一部分数据库的备份 备份的必要性 因为各种人为或外界的因素可能会造成数据库中灾难性的数据丢失为了保证数据库中数据的安全必须采取备份措施...
  • | I I oracle数据库 备份与恢复方案 文件控制 受控 不受控 文档编号 日期项目名称 版本号 分册名称 第册/共册 总页数 正文 附录 编制 审批 生效日期 目录 TOC \o "1-5" \h \z 一 编写目的 1 \o "Current Document" ...
  • PAGE 收稿日期2007-05-10 作者简介朱娅宾1977-女浙江东阳人本科工程师 Oracle管理基于ORACLE数据库备份与恢复 基于ORACLE数据库备份与恢复 朱娅宾 浙江电信有限公司金华分公司浙江金华321000 摘要结合金华电信IT...
  • Oracle-Oracle数据库备份与恢复

    万次阅读 多人点赞 2019-06-21 22:59:31
    Oracle数据库备份与恢复 下面通过一些简单的例子来了解一下: Oracle数据库各种物理备份的方法。 Oracle数据库各种物理恢复的方法 利用RMAN工具进行数据库备份与恢复。 数据的导出与导入操作。 (1)关闭...

    Oracle数据库备份与恢复

    下面通过一些简单的例子来了解一下:

    • Oracle数据库各种物理备份的方法。
    • Oracle数据库各种物理恢复的方法
    • 利用RMAN工具进行数据库的备份与恢复。
    • 数据的导出与导入操作。
    • (1)关闭BOOKSALES数据库,进行一次完全冷备份。
    select file_name from dba_data_files;
    

    在这里插入图片描述

    select member from v$logfile;
    

    在这里插入图片描述

    select value from v$parameter where name='control_files';
    

    在这里插入图片描述

    shutdown immediate
    //复制所有的数据文件、联机重做日志文件以及控制文件到备份磁盘
    startup
    
    • (2)启动数据库后,在数据中创建一个名为cold表,并插入数据,以改变数据库的状态。
    create table cold (id number(5,0) primary key);
    Table COLD 已创建。
    insert into cold values(1);
    1行已插入。
    select * from cold;
    

    在这里插入图片描述

    • (3)利用数据库冷备份恢复BOOKSALES数据库到备份时刻的状态,并查看恢复后是否存在cold表。
    //关闭数据库
    shutdown immediate
    //将备份的所有数据文件、控制文件、联机重做日志文件还原到原来所在的位置。
    //重新启动数据库
    startup
    
    • (4)将BOOKSALES数据库设置为归档模式。
    //关闭数据库
    shutdown immediate
    //设置归档目的地
    select name,value from v$parameter where name='db_recovery_file_dest';
    

    在这里插入图片描述

    alter system set log_archive_dest='D:\Oracle\backup\archive';
    alter system set log_archive_duplex='D:\Oracle\backup\archive';
    //将数据库启动到加载状态
    startup mount
    //改变数据库为归档模式
    alter database archivelog;
    //打开数据库
    alter database open;
    
    • (5)对BOOKSALES数据库进行一次热备份。
    select tablespace_name,file_name from dba_data_files order by tablespace_name;
    

    在这里插入图片描述

    alter tablespace users begin backup;
    Tablespace USERS已变更。
    //将表空间中所有的数据文件复制到备份磁盘
    alter tablespace users end backup;
    Tablespace USERS已变更。
    
    • (6) 在数据库中创建一个名为hot表,并插入数据,以改变数据库的状态。
    create table hot (id number primary key, name varchar2(25)) tablespace users;
    Table HOT 已创建。
    insert into hot values(33, 'xushicheng');
    1行已插入。
    
    • (7) 假设保存hot表的数据文件损坏,利用热备份进行数据库恢复。
    shutdown abort
    startup mount
    recover datafile 'D:\Oracle\app\administrators\oradata\BOOKSALES\users002.dbf';
    alter database datafile 'D:\Oracle\app\administrators\oradata\BOOKSALES\users002.dbf' online;
    alter database open;
    
    • (8) 数据库恢复后,验证hot表的状态及其数据情况。
    select * from hot;
    
    • (9) 利用数据库的热备份,分别进行基于时间,基于SCN和基于CANCEL的不完全恢复。
    shutdown abort;
    startup mount;
    recover database until time '2019-6-1';
    
    set time on
    alter system switch logfile;
    System SWITCH已变更。
    alter session set nls_date_format='YYYY-MM-DD HH24:MI:SS';
    Session已变更。
    select recid,stamp,sequence#,first_change#,first_time,next_change# from v$log_history;
    

    在这里插入图片描述
    在这里插入图片描述

    shutdown abort;
    startup mount;
    recover database until change 1344396;
    
    • (10) 为了使用RMAN工具备份与恢复BOOKSALES数据库,配置RMAN的自动通道分配。
    RMAN target sys/admin@BOOKSALES
    

    在这里插入图片描述

    RMAN> configure default device type to sbt;
    
    使用目标数据库控制文件替代恢复目录
    新的 RMAN 配置参数:
    CONFIGURE DEFAULT DEVICE TYPE TO 'SBT_TAPE';
    已成功存储新的 RMAN 配置参数
    
    RMAN> configure device type disk parallelism 2;
    
    新的 RMAN 配置参数:
    CONFIGURE DEVICE TYPE DISK PARALLELISM 2 BACKUP TYPE TO BACKUPSET;
    已成功存储新的 RMAN 配置参数
    
    RMAN> configure device type disk parallelism 3;
    
    旧的 RMAN 配置参数:
    CONFIGURE DEVICE TYPE DISK PARALLELISM 2 BACKUP TYPE TO BACKUPSET;
    新的 RMAN 配置参数:
    CONFIGURE DEVICE TYPE DISK PARALLELISM 3 BACKUP TYPE TO BACKUPSET;
    已成功存储新的 RMAN 配置参数
    RMAN> configure channel 3 device type disk maxpiecesize=50m;
    
    新的 RMAN 配置参数:
    CONFIGURE CHANNEL 3 DEVICE TYPE DISK MAXPIECESIZE 50 M;
    已成功存储新的 RMAN 配置参数
    
    • (11)利用RMAN工具完全备份BOOKSALES数据库。
    shutdown immediate
    alter system set log_archive_dest_1='location=D:\Oracle\backup\ARCHIVE MANDATORY';
    System SET已变更。
    startup mount
    alter database archivelog;
    RMAN> backup database format 'D:\Oracle\backup\%U.BKP';
    
    启动 backup03-6-19
    使用目标数据库控制文件替代恢复目录
    RMAN-00571: ===========================================================
    RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
    RMAN-00571: ===========================================================
    RMAN-03002: backup 命令 (06/03/2019 00:21:49) 失败
    ORA-19554: 配置设备时出错, 设备类型: SBT_TAPE, 设备名称:
    ORA-27211: 未能加载介质管理库
    (12) 利用RMAN工具备份BOOKSALES数据库的初始化参数文件和控制文件。
    RMAN> backup spfile format 'D:\Oracle\app\administrators\oradata\BOOKSALES\%U';
    
    启动 backup03-6-19
    RMAN-00571: ===========================================================
    RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
    RMAN-00571: ===========================================================
    RMAN-03002: backup 命令 (06/03/2019 00:23:19) 失败
    ORA-19554: 配置设备时出错, 设备类型: SBT_TAPE, 设备名称:
    ORA-27211: 未能加载介质管理库
    RMAN> backup current controlfile format 'D:\Oracle\app\administrators\oradata\BOOKSALES\%U.CTL';
    
    启动 backup03-6-19
    RMAN-00571: ===========================================================
    RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
    RMAN-00571: ===========================================================
    RMAN-03002: backup 命令 (06/03/2019 00:24:58) 失败
    ORA-19554: 配置设备时出错, 设备类型: SBT_TAPE, 设备名称:
    ORA-27211: 未能加载介质管理库
    
    • (13)利用RMAN工具对USERS表空间、BOOKTBS1表空间进行备份。
    RMAN> backup tablespace users,booktbs1 format 'D:\Oracle\app\administrators\oradata\BOOKSALES\%U.BKP';
    
    启动 backup03-6-19
    RMAN-00571: ===========================================================
    RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
    RMAN-00571: ===========================================================
    RMAN-03002: backup 命令 (06/03/2019 00:26:39) 失败
    ORA-19554: 配置设备时出错, 设备类型: SBT_TAPE, 设备名称:
    ORA-27211: 未能加载介质管理库
    
    • (14) 利用RMAN工具备份BOOKSALES数据库的数据文件users01.dbf、users02.dbf进行备份。
    RMAN> backup datafile 'D:\Oracle\app\administrators\oradata\BOOKSALES\users01.dbf' format 'D:\Oracle\app\administrators\oradata\BOOKSALES\%u';
    
    启动 backup03-6-19
    RMAN-00571: ===========================================================
    RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
    RMAN-00571: ===========================================================
    RMAN-03002: backup 命令 (06/03/2019 00:29:14) 失败
    ORA-19554: 配置设备时出错, 设备类型: SBT_TAPE, 设备名称:
    ORA-27211: 未能加载介质管理库
    RMAN> backup datafile 'D:\Oracle\app\administrators\oradata\BOOKSALES\users02.dbf' format 'D:\Oracle\app\administrators\oradata\BOOKSALES\%u';
    
    启动 backup03-6-19
    RMAN-00571: ===========================================================
    RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
    RMAN-00571: ===========================================================
    RMAN-03002: backup 命令 (06/03/2019 00:30:49) 失败
    ORA-19554: 配置设备时出错, 设备类型: SBT_TAPE, 设备名称:
    ORA-27211: 未能加载介质管理库
    
    • (15) 利用RMAN工具备份BOOKSALES数据库的控制文件。
    RMAN> backup current controlfile format 'D:\Oracle\app\administrators\oradata\BOOKSALES\%U.ctl';
    
    启动 backup03-6-19
    RMAN-00571: ===========================================================
    RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
    RMAN-00571: ===========================================================
    RMAN-03002: backup 命令 (06/03/2019 00:31:50) 失败
    ORA-19554: 配置设备时出错, 设备类型: SBT_TAPE, 设备名称:
    ORA-27211: 未能加载介质管理库
    (16) 利用RMAN工具备份BOOKSALES数据库的归档文件。
    RMAN> backup archivelog all;
    
    启动 backup03-6-19
    当前日志已存档
    RMAN-00571: ===========================================================
    RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
    RMAN-00571: ===========================================================
    RMAN-03002: backup 命令 (06/03/2019 00:32:37) 失败
    ORA-19554: 配置设备时出错, 设备类型: SBT_TAPE, 设备名称:
    ORA-27211: 未能加载介质管理库
    
    RMAN> backup database plus archivelog format 'D:\Oracle\app\administrators\oradata\BOOKSALES\%u';
    
    
    启动 backup03-6-19
    当前日志已存档
    RMAN-00571: ===========================================================
    RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
    RMAN-00571: ===========================================================
    RMAN-03002: backup plus archivelog 命令 (06/03/2019 00:33:14) 失败
    ORA-19554: 配置设备时出错, 设备类型: SBT_TAPE, 设备名称:
    ORA-27211: 未能加载介质管理库
    
    • (17) 利用RMAN工具备份BOOKSALES数据库形成的备份集,恢复数据库。
     RMAN> shutdown immediate;
    
    数据库已关闭
    数据库已卸装
    Oracle 实例已关闭
    
    RMAN> startup mount;
    
    已连接到目标数据库 (未启动)
    Oracle 实例已启动
    数据库已装载
    
    系统全局区域总计    3373858816 字节
    
    Fixed Size                     2180424 字节
    Variable Size               1845496504 字节
    Database Buffers            1509949440 字节
    Redo Buffers                  16232448 字节
    
    RMAN> restore database;
    
    启动 restore03-6-19
    分配的通道: ORA_DISK_1
    通道 ORA_DISK_1: SID=191 设备类型=DISK
    分配的通道: ORA_DISK_2
    通道 ORA_DISK_2: SID=129 设备类型=DISK
    分配的通道: ORA_DISK_3
    通道 ORA_DISK_3: SID=192 设备类型=DISK
    
    RMAN-00571: ===========================================================
    RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
    RMAN-00571: ===========================================================
    RMAN-03002: restore 命令 (06/03/2019 00:34:44) 失败
    RMAN-06026: 有些目标没有找到 - 终止还原
    RMAN-06023: 没有找到数据文件4的副本来还原
    RMAN-06023: 没有找到数据文件3的副本来还原
    RMAN-06023: 没有找到数据文件2的副本来还原
    RMAN-06023: 没有找到数据文件1的副本来还原
    RMAN> recover database;
    
    启动 recover 于 03-6-19
    使用通道 ORA_DISK_1
    使用通道 ORA_DISK_2
    使用通道 ORA_DISK_3
    RMAN-00571: ===========================================================
    RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
    RMAN-00571: ===========================================================
    RMAN-03002: recover 命令 (06/03/2019 00:35:37) 失败
    RMAN-06094: 数据文件4必须重新存储
    
    RMAN> alter database open;
    
    数据库已打开
    
    RMAN> alter database open resetlogs;
    
    RMAN-00571: ===========================================================
    RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
    RMAN-00571: ===========================================================
    RMAN-03002: alter db 命令 (06/03/2019 00:36:19) 失败
    ORA-01531: 实例已打开数据库
    
    
    • (18) 利用EXPDP工具导出BOOKSALES数据库的整个数据库。
    create or replace directory dumpdir as 'D:\Oracle\backup';
    Directory DUMPDIR 已创建。
    grant read,write on directory dumpdir to system;
    Grant 成功。
    grant exp_full_database, imp_full_database to system;
    Grant 成功。
    expdp system/admin directory=dum_dir dumpfile=expfull.dmp full=yes nologfile=yes;
    
    • (19)利用EXPDP工具导出EXPDP数据库的USERS表空间。
    C:\Users\徐仕成>expdp system/admin directory=dum_dir dumpfile=expfull.dmp full=yes nologfile=yes;
    
    Export: Release 11.2.0.1.0 - Production on 星期一 63 00:49:22 2019
    
    Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.
    
    连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
    ORA-39001: 参数值无效
    ORA-39000: 转储文件说明错误
    ORA-39087: 目录名 DUM_DIR 无效
    
    • (20)利用EXPDP工具导出BOOKSALES数据库publisher表和books表。
    C:\Users\徐仕成>expdp system/admin directory=dump_dir dumpfile=publishers_books.dmp logfile=publishers_books.log tables=scott.emp, scott.dept parallel=3
    
    Export: Release 11.2.0.1.0 - Production on 星期一 63 00:50:14 2019
    
    Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.
    
    连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
    ORA-39002: 操作无效
    ORA-39070: 无法打开日志文件。
    ORA-39087: 目录名 DUMP_DIR 无效
    
    • (21)利用EXPDP工具导出BOOKSALES数据库中bs模式下的所有数据库对象及数据。
    C:\Users\徐仕成>expdp bs/bs directory=dump_dir dumpfile=exfull.dmp full=yes nologfile=yes
    
    Export: Release 11.2.0.1.0 - Production on 星期一 63 00:51:05 2019
    
    Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.
    
    连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
    ORA-39006: 内部错误
    ORA-39068: 在 PROCESS_ORDER=-3 的行中主表数据无效
    ORA-01658: 无法为表空间 USERS 中的段创建 INITIAL 区
    
    ORA-39097: 数据泵作业出现意外的错误 -1658
    
    • (22)删除BOOKSALES数据库中的orderitem表和order表,使用转储文件,利用IMPDP工具进行恢复。
    drop table orderitem;
    drop table order;
    C:\Users\徐仕成>impdp scott/admin directory=dpump_dir dumpfile=emp_deptdmp tables=detp,emp nologfile=yes
    
    Import: Release 11.2.0.1.0 - Production on 星期一 63 00:54:29 2019
    
    Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.
    
    UDI-28000: 操作产生了 ORACLE 错误 28000
    ORA-28000: the account is locked
    
    用户名: sys as sysdba
    口令:
    
    连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
    ORA-39001: 参数值无效
    ORA-39000: 转储文件说明错误
    ORA-39087: 目录名 DPUMP_DIR 无效
    
    • (23)删除BOOKSALES数据库中的USERS表空间,使用转储文件,利用IMPDP工具进行恢复。
    drop users;
    C:\Users\徐仕成>impdp scott/admin directory=dpump_dir dumpfile=emp_deptdmp tables=detp,emp nologfile=yes
    
    Import: Release 11.2.0.1.0 - Production on 星期一 63 00:56:42 2019
    
    Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.
    
    UDI-28000: 操作产生了 ORACLE 错误 28000
    ORA-28000: the account is locked
    
    用户名: sys as sysdba
    口令:
    
    连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
    ORA-39001: 参数值无效
    ORA-39000: 转储文件说明错误
    ORA-39087: 目录名 DPUMP_DIR 无效
    

    上面有很多操作其实都失败了,具体原因我也不清楚,也一直没有解决,但是相关的命令应该都是正确的。

    创作不易,喜欢的话加个关注点个赞,蟹蟹蟹蟹

    展开全文
  • 中文版Oracle数据库备份与恢复Oracle数据库备份与恢复Oracle数据库备份与恢复Oracle数据库备份与恢复
  • Oracle 数据库备份与恢复,介绍oracle数据库导入导出的操作命令。
  • Oracle数据库RMAN备份与恢复技术!
  • oracle数据库备份与恢复.ppt oracle数据库备份与恢复.ppt
  • Oracle数据库备份与恢复Oracle数据库的使用过程中,备份与恢复是经常遇到的操作。Oracle中的备份分为两大类:逻辑备份和物理备份。其中物理备份又分为两类:冷备份和热备份。本节将简要讲述如何利用各种备份...

    Oracle数据库的备份与恢复


    在Oracle数据库的使用过程中,备份与恢复是经常遇到的操作。Oracle中的备份分为两大类:逻辑备份和物理备份。其中物理备份又分为两类:冷备份和热备份。本节将简要讲述如何利用各种备份手段进行Oracle数据库的备份与恢复。

    1 逻辑备份/恢复(导出/导入)


    逻辑备份是指利用exp命令进行备份。利用该命令进行备份,简单易行,也不影响正常的数据库操作。因此,经常被作为日常备份的手段。exp命令可以添加多个参数选项,以实现不同的导出策略。可以通过exp –?命令进行查看。其中,常用参数包括:owner、table和inctype。
    1.必备参数
    对于一个导出命令,可以只使用必备参数,如范例1所示。
    【范例1】演示导出命令的使用。
    C:\Documents and Settings\Administrator>exp system/abc123 file=d:/b.dmp
    【代码说明】system/abc123为登录数据库时所使用的用户名和密码;file=d:/b.dmp指定数据导出所存放的文件完整路径。这里需要注意的是,该命令并未指定登录到哪个数据库实例,因此,将使用系统环境变量ORACLE_SID所指定的数据库实例。

    注意:另外一种特殊情况为,在环境变量列表中找不到ORACLE_SID,那么,可以在注册表中搜索ORACLE_SID项。Oracle也会参考注册表中该项的值来设置环境。


    2.owner参数
    owner参数,可以指定一个用户名列表。导出时,将只导出用户名列表中用户所拥有的对象,如范例2所示。
    【范例2】演示owner参数的使用。
        C:\Documents and Settings\Administrator>exp system/abc123 owner=(test, oracle)
    file=d:/b.dmp
    【代码说明】owner=(test, oracle)指定exp命令仅仅导出test和oracle两个用户所拥有的对象。如果某个用户不存在,例如,本例中用户oracle不存在,那么将给出相应警告,但不会影响对于用户test的对象的导出。

    3.tables参数
    当使用exp命令时,同样可以指定tables参数。该参数用于指定导出哪些数据表。范例3演示了该参数的使用。
    【范例3】演示tables参数的使用。
    exp system/abc123 tables=(people, employees) file=d:/b.dmp
    【代码说明】tables=(people, employees)指定了要导出的数据表列表,在exp命令执行时,将只导出用户system的people和employees表。如果要导出的表不存在,那么将给出警告信息。但不会影响其他表的导出工作。


    4.关于inctype参数
    在Oracle 9i之前的版本中,可以利用inctype参数指定导出的增量类型。但是,在Oracle 9i及以后的版本中,该参数不再使用。范例4演示了在Oracle 10g中使用该参数的错误信息。
    【范例4】Oracle 10g中参数inctype已经废除。
        C:\Documents  and  Settings\Administrator>exp  system/abc123  inctype=  complete
    file=d:/b.dmp
    【代码说明】在exp命令中使用inctype参数,Oracle将抛出错误错误信息,

    对于逻辑备份,相应的恢复命令为imp。如果数据库遭到破坏,可以利用如下命令进行恢复:
    C:\Documents and Settings\Administrator>imp system/abc123 file=d:/b.dmp
    imp命令同样可以指定参数。例如,使用owner参数只导入特定用户的对象;使用tables参数只导入特定表,代码如下: C:\Documents   and   Settings\Administrator>imp   system/abc123   file=d:/b.dmp tables=(people, employees)
    该命令将只导入名为people与employees的表。

    2 物理备份/恢复


    物理备份,是指直接备份数据库的文件。物理备份又分为两种:冷备份和热备份。
    1.冷备份/恢复
    冷备份是指在数据库关闭的状态下,备份所有的数据库文件。这些文件包括:所有数据文件、所有控制文件、所有联机REDO LOG文件和Init.ora文件(可选)。
    【范例5】演示数据库冷备份。
    (1)首先以管理员身份登录数据库,并将数据库关闭
    C:\Documents and Settings\Administrator>sqlplus / as sysdba
    SQL> shutdown normal;
    Database closed.
    Database dismounted.
    ORACLE instance shut down.
    (2)在关闭数据库之后,可以对其物理文件进行备份。这些物理文件默认处于{ORACLE_HOME}\product\10.1.0\oradata\test,其中test为数据库名。因此,首先返回到Windows命令行下使用复制命令,或者在SQL命令行中添加host关键字直接使用主机命令:
    SQL> host copy D:\oracle\product\10.1.0\oradata\test  f:\backup\
    D:\oracle\product\10.1.0\oradata\test\CONTROL01.CTL
    D:\oracle\product\10.1.0\oradata\test\CONTROL02.CTL
    D:\oracle\product\10.1.0\oradata\test\CONTROL03.CTL
    此时,已经实现了整个数据库的冷备份。而冷备份的恢复则十分方便,只要数据库处于关闭状态,将备份的文件复制到原来的位置即可。


    2.热备份/恢复
    数据库的热备份是指对处于启动状态下的数据库进行备份。热备份一个数据库,首先要保证数据库运行于归档模式,然后备份表空间的数据文件,最后备份控制文件。
    【范例6】演示数据库热备份。
    (1)在进行日志模式切换之前,必须将运行的数据库正常关闭。因此,首先应该以管理员身份登录数据库,关闭数据库。
    SQL> shutdown immediate;
    Database closed.
    Database dismounted.
    ORACLE instance shut down.


    (2)重新启动数据库实例,但是并不打开数据库。
    SQL> startup mount;
    ORACLE instance started.
    Total System Global Area  171966464 bytes
    Fixed Size               787988 bytes
    Variable Size          145488364 bytes
    Database Buffers         25165824 bytes
    Redo Buffers             524288 bytes
    Database mounted.


    (3)利用alter命令将数据库切换到归档模式。
    SQL> alter database archivelog;
    Database altered.


    (4)打开数据库,以便对数据库进行操作。
    SQL> alter database open;
    Database altered.


    (5)利用archive log list命令确认当前数据库处于归档模式。
    SQL> archive log list;
    Database log mode         Archive Mode
    Automatic archival          Enabled
    Archive destination          USE_DB_RECOVERY_FILE_DEST
    Oldest online log sequence     538
    Next log sequence to archive   540
    Current log sequence         540
    Archive Mode表明当前的数据库处于归档模式。Oracle数据库有联机重做日志,该日志用于记录用户的数据库操作,如插入、删除或更新数据。一般情况下,每个Oracle数据库至少含有两个联机重做日志组。当一个联机重做日志组被写满的时候,就会发生日志切换。另一个联机日志组成为当前使用的日志,继续记录用户操作。当前联机日志组写满后,会切换到第一个联机日志组,并覆写其中的数据。
    如果数据库处于非归档模式,联机日志在切换时就会丢弃已有信息。而在归档模式下,当发生日志切换时,被切换的日志会首先进行归档,并将信息复制到其他目录。这样,不会造成联机日志信息的丢失。


    (6)将数据库中的表空间users设置为备份模式,代码如下:
    SQL> alter tablespace users begin backup;
    Tablespace altered.


    (7)复制实际的表空间的数据文件到备份目录下,代码如下:
    SQL> host copy D:\oracle\product\10.1.0\oradata\test\users01.dbf d:\back;
    已复制       1 个文件。
    关闭表空间的备份模式,代码如下:
    SQL> alter tablespace users end backup;
    Tablespace altered.


    (8)以同样的方式备份数据库中的其他表空间的数据文件。


    (9)备份控制文件,代码如下:
    SQL> alter database backup controlfile to 'F:\backup\TEST_BACKUP' reuse;
    Database altered.


    (10)备份控制文件的创建脚本,代码如下:
    SQL> alter database backup controlfile to trace;
    Database altered.
    此时会在{ORACLE_HOME}\admin\{INSTANCE_NAME}\udump目录下生成新的控制文件的跟踪文件。在本例中其路径为D:\oracle\product\10.1.0\admin\test\udump。在目录中获得最新的跟踪文件,该文件记录了数据库控制文件的创建脚本。以下代码为文件片段:
        -- The following commands will create a new control file and use it
        -- to open the database.
        -- Data used by Recovery Manager will be lost.
        -- The contents of online logs will be lost and all backups will
        -- be invalidated. Use this only if online logs are damaged.
        -- After mounting the created controlfile, the following SQL
        -- statement will place the database in the appropriate
        -- protection mode:
        --  ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PERFORMANCE
        STARTUP NOMOUNT
        CREATE CONTROLFILE REUSE DATABASE "TEST" RESETLOGS  ARCHIVELOG
            MAXLOGFILES 16
            MAXLOGMEMBERS 3
            MAXDATAFILES 100
            MAXINSTANCES 8
            MAXLOGHISTORY 454
        LOGFILE
          GROUP 1 'D:\ORACLE\PRODUCT\10.1.0\ORADATA\TEST\REDO01.LOG'  SIZE 10M,
          GROUP 2 'D:\ORACLE\PRODUCT\10.1.0\ORADATA\TEST\REDO02.LOG'  SIZE 10M,
          GROUP 3 'D:\ORACLE\PRODUCT\10.1.0\ORADATA\TEST\REDO03.LOG'  SIZE 10M
        -- STANDBY LOGFI
    复制该文件,并将该文件复制到备份目录下。至此,热备份的过程结束。
    在备份成功之后,一旦出现数据库故障,即可以利用备份文件进行恢复工作。例如,如果数据文件D:\oracle\product\10.1.0\oradata\test\users01.dbf损坏,那么在启动数据库时会抛出错误。
    SQL> startup mount;
    ORACLE instance started.
    Total System Global Area  171966464 bytes
    Fixed Size               787988 bytes
    Variable Size          145488364 bytes
    Database Buffers         25165824 bytes
    Redo Buffers             524288 bytes
    Database mounted.
    SQL> alter database open;
    alter database open
    *
    ERROR at line 1:
    ORA-01157: cannot identify/lock data file 4- see DBWR trace file
    ORA-01110: data file 4: 'D:\ORACLE\PRODUCT\10.1.0\ORADATA\TEST\USERS01. DBF'

    由于无法找到数据文件USERS01.DBF,数据库启动失败。此时,需要将以前备份的数据文件复制到原目录中。
        SQL>   host   copy   f:\backup\users01.dbf   D:\ORACLE\PRODUCT\10.1.0\ORADATA\
    TEST\USERS01.DBF;
        已复制       1 个文件。
    此时,重新启动数据库。

            SQL> alter database open;
            alter database open
    *
            ERROR at line 1:
            ORA-01113: file 4 needs media recovery
            ORA-01110: data file 4: 'D:\ORACLE\PRODUCT\10.1.0\ORADATA\TEST\USERS01. DBF'
    Oracle在启动时,总是会检查控制文件中的标识(Checkpoint CNT与Checkpoint SCN)与数据文件中的标识是否相同。如果不同,则需要重新恢复数据文件,以同步控制文件中的标识与数据文件中的标识。恢复的命令如下:
    SQL> recover datafile 'D:\ORACLE\PRODUCT\10.1.0\ORADATA\TEST\USERS01. DBF';
    当然,也可以使用如下语句代替。
    SQL> recover datafile 4;
    此时,Oracle可能会要求用户指定归档日志。归档日志默认存储在{ORACLE_HOME}\flash_recovery_area\{DATABASE_NAME}\ARCHIVELOG\下,为recover命令选择最近的归档日志或使用Oracle建议的归档日志,如图所示。

    选择归档日志
    在选择了归档日志之后,Oracle将使用该归档日志进行恢复。恢复成功之后,可以成功打开数据库。
    SQL> alter database open;
    Database altered.
    备份控制文件的意义在于,当控制文件丢失时,可以将热备份的控制文件还原。而备份跟踪文件的意义在于,当备份的控制文件无法正常使用时,利用跟踪文件重新创建控制文件。

    3 利用PL/SQL Developer备份数据库


    除了利用各种命令对数据库进行备份之外,还可以利用PL/SQL Developer进行备份。利用该工具进行备份,简单易学,而且不易出错。利用PL/SQL Developer进行备份的模式包括针对整个数据库、针对某个用户、针对某些特定表等。本节以备份某个用户对象为例,讲述如何利用PL/SQL Developer进行备份。
    【范例7】演示利用PL/SQL Developer备份用户System所有对象。
    (1)打开PL/SQL Developer,并利用System用户登录数据库TEST。
    (2)在左侧窗口的下拉菜单中选择【My objects】从而保证所有的操作都是针对当前用户的对象。
    (3)选择菜单栏中的【Tools】菜单下的【Export User Objects】菜单项,将弹出导出窗口,如图所示。

    利用PL/SQL Developer备份用户的所有对象
    (4)选择列表中所有对象,并为【Output File】指定导出文件的路径。导出的文件实际上是一个SQL脚本文件。其中记录了当前用户的所有对象的创建脚本。一旦数据库出现故障,可以重建数据库,并在其中创建相应用户(System用户无须创建,为数据库默认用户),然后利用该用户登录数据库,并执行该SQL脚本,即可实现数据库对象的重新创建。
    (5)除了备份数据库对象之外,还需要备份数据表中的数据。备份表中数据,需要使用【Tools】菜单下的【Export Tables】功能。

    展开全文
  • Oracle管理Oracle数据库备份与恢复方案内部学习资料 Oracle数据库备份与恢复方案 内部学习资料jszzj 数据库的备份和恢复是指为保护一个数据库免于数据损失或者在发生数据损失后进行数据重新创建的各种策略和步骤...
  • Oracle 数据库备份与恢复方法 内容涵盖表结构的备份方法
  • 数据库备份恢复,讲解了基础的备份恢复,可以供对初学者提供一些思路。
  • 学习目标 1理解数据库备份的概念 2掌握Oracle9i数据库备份技术 3理解数据库恢复的概念 4掌握Oracle9i数据库恢复技术 ;第8章 Oracle9i数据库恢复 实际使用数据库时可能会因某些异常情况使数据库发生故障从而...
  • 一、oracle数据库恢复1.恢复刚才删除的一条数据delete from emp e where e.empname='SMITH'select * from flashback_transaction_query f where f.table_name='EMP'UNDO_SQL下面的语句为刚才删除数据的相反操作,...

    一、oracle数据库恢复

    1.恢复刚才删除的一条数据

    delete from emp e where e.empname='SMITH'

    select * from flashback_transaction_query f where f.table_name='EMP'

    UNDO_SQL下面的语句为刚才删除数据的相反操作,执行该语句即可恢复刚才删除的数据

    在11g版本中UNDO_SQL为空值

    alter database add supplemental log data

    2.恢复刚更新的数据到某一时间点

    update emp e set e.job='clerk'

    select sysdate from dual;

    查看指定时间点时的数据是否是需要恢复前的数据:

    select * from emp as of timestamp to_timestamp('2013/3/30 21:10:19', 'yyyy-mm-dd hh24:mi:ss')

    alter table emp enable row movement;

    恢复到某一时间点:

    flashback table emp to timestamp to_timestamp('2013/3/30 21:10:19', 'yyyy-mm-dd hh24:mi:ss')

    3.恢复删除的表

    drop table bonus

    flashback table bonus to before drop

    查看被删除的表:

    select * from user_recyclebin u order by u.droptime desc

    二、oracle数据库备份

    1.数据库的RMAN备份须要在归档模式下

    查看归档模式

    $ sqlplus / as sysdba

    SQL> archive log list

    Database log mode              No Archive Mode

    Automatic archival             Disabled

    Archive destination            USE_DB_RECOVERY_FILE_DEST

    Oldest online log sequence     18

    Current log sequence           20

    更改归档模式

    关闭数据库

    SQL> shutdown immediate

    启动数据库到mount状态

    SQL> startup mount

    更改为归档模式(noarchivelog为非归档模式)

    SQL> alter database archivelog;

    再次查看是否为归模式

    SQL> archive log list

    Database log mode              Archive Mode

    Automatic archival             Enabled

    Archive destination            USE_DB_RECOVERY_FILE_DEST

    Oldest online log sequence     18

    Next log sequence to archive   20

    Current log sequence           20

    进入RMAN

    $ rman target/

    查看默认设置

    RMAN> show all;

    using target database control file instead of recovery catalog

    RMAN configuration parameters for database with db_unique_name ORCL are:

    CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default

    CONFIGURE BACKUP OPTIMIZATION OFF; # default

    CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default

    CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default

    CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default

    CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default

    CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default

    CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default

    CONFIGURE MAXSETSIZE TO UNLIMITED; # default

    CONFIGURE ENCRYPTION FOR DATABASE OFF; # default

    CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default

    CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default

    CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default

    CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/app/oracle/product/11.1.0/db_1/dbs/snapcf_ixdba.f'; # default

    其中CONFIGURE CONTROLFILE AUTOBACKUP OFF;即默认不备份控制文件,需要修改为默认备份控制文件

    RMAN> CONFIGURE CONTROLFILE AUTOBACKUP on;

    数据库全库备份

    RMAN> backup database;

    查看备份的相关信息

    RMAN> list backup;

    List of Backup Sets

    ===================

    BS Key  Type LV Size       Device Type Elapsed Time Completion Time

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

    1       Full    1006.31M   DISK        00:08:09     31-AUG-13

    BP Key: 1   Status: AVAILABLE  Compressed: NO  Tag: TAG20130831T025434

    Piece Name: /app/oracle/flash_recovery_area/ORCL/backupset/2013_08_31/o1_mf_nnndf_TAG20130831T025434_923hbw6f_.bkp

    List of Datafiles in backup set 1

    File LV Type Ckp SCN    Ckp Time  Name

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

    1       Full 1037059    31-AUG-13 /app/oracle/oradata/orcl/system01.dbf

    2       Full 1037059    31-AUG-13 /app/oracle/oradata/orcl/sysaux01.dbf

    3       Full 1037059    31-AUG-13 /app/oracle/oradata/orcl/undotbs01.dbf

    4       Full 1037059    31-AUG-13 /app/oracle/oradata/orcl/users01.dbf

    5       Full 1037059    31-AUG-13 /app/oracle/oradata/orcl/bank_data01.dbf

    BS Key  Type LV Size       Device Type Elapsed Time Completion Time

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

    2       Full    9.33M      DISK        00:00:04     31-AUG-13

    BP Key: 2   Status: AVAILABLE  Compressed: NO  Tag: TAG20130831T030251

    Piece Name: /app/oracle/flash_recovery_area/ORCL/autobackup/2013_08_31/o1_mf_n_824870625_923htgw8_.bkp

    Control File Included: Ckp SCN: 1037059      Ckp time: 31-AUG-13

    三、oracle数据库全库恢复

    数据库启动过程

    找到初始化spfile或pfile,处于nomount状态;

    根据初始化文件找到控制文件Contral File,处于mount状态;

    根据控制文件找到数据文件Data File、重做日志文件Redo File,处于open状态;

    恢复数据库的前提是Oracle数据库的初始化spfile文件、控制文件、重做日志、归档日志、备份都可以正常使用

    恢复原则:根据丢失的文件情况,启动数据库到相应状态,然后通过RMAN恢复相应文件,再将数据库启动到下一状态

    查看是否有备份

    RMAN> list backup summary;

    1.仅丢失数据文件情况

    删除数据文件

    # rm -rf *.dbf

    启动数据库

    SQL> startup

    ORACLE instance started.

    Total System Global Area  527290368 bytes

    Fixed Size                  1337660 bytes

    Variable Size             318768836 bytes

    Database Buffers          201326592 bytes

    Redo Buffers                5857280 bytes

    Database mounted.

    ORA-01157: cannot identify/lock data file 1 - see DBWR trace file

    ORA-01110: data file 1: '/app/oracle/oradata/orcl/system01.dbf'

    进入RMAN

    $ rman target/

    恢复数据文件

    RMAN> restore database;

    Starting restore at 31-AUG-13

    using target database control file instead of recovery catalog

    allocated channel: ORA_DISK_1

    channel ORA_DISK_1: SID=20 device type=DISK

    channel ORA_DISK_1: starting datafile backup set restore

    channel ORA_DISK_1: specifying datafile(s) to restore from backup set

    channel ORA_DISK_1: restoring datafile 00001 to /app/oracle/oradata/orcl/system01.dbf

    channel ORA_DISK_1: restoring datafile 00002 to /app/oracle/oradata/orcl/sysaux01.dbf

    channel ORA_DISK_1: restoring datafile 00003 to /app/oracle/oradata/orcl/undotbs01.dbf

    channel ORA_DISK_1: restoring datafile 00004 to /app/oracle/oradata/orcl/users01.dbf

    channel ORA_DISK_1: restoring datafile 00005 to /app/oracle/oradata/orcl/bank_data01.dbf

    channel ORA_DISK_1: reading from backup piece /app/oracle/flash_recovery_area/ORCL/backupset/2013_08_31/o1_mf_nnndf_TAG20130831T025434_923hbw6f_.bkp

    channel ORA_DISK_1: piece handle=/app/oracle/flash_recovery_area/ORCL/backupset/2013_08_31/o1_mf_nnndf_TAG20130831T025434_923hbw6f_.bkp tag=TAG20130831T025434

    channel ORA_DISK_1: restored backup piece 1

    channel ORA_DISK_1: restore complete, elapsed time: 00:05:58

    Finished restore at 31-AUG-13

    RMAN> recover database;

    Starting recover at 31-AUG-13

    using channel ORA_DISK_1

    starting media recovery

    media recovery complete, elapsed time: 00:00:07

    Finished recover at 31-AUG-13

    进入SQL将状态改为open即恢复成功

    SQL> alter database open; 2.丢失重做日志文件 # rm -rf *.log SQL> recover database until cancel; SQL> alter database open resetlogs; 3.丢失控制文件、重做日志文件、数据文件 RMAN> restore controlfile from autobackup; RMAN> alter database mount; RMAN> restore database; SQL> recover database using backup controfile until cancel; SQL> alter database open resetlogs; 4.初始化文件也丢失的情况 SQL> startup fpile='/app/oracle/admin/orcl/pfile/init.ora.2220136918'; RMAN> restore spfile from autobackup; SQL> startup nomount; 其余步骤同丢失控制文件

    展开全文
  • Oracle数据库备份与恢复技术 郑永生 (华能德州电厂信息中心,德州 253024) 摘 要 确保数据安全是每一位数据库DBA的必要工作,根据数据的重要性和软硬件条件制定可行的备份恢复方案,将数据丢失造成的损失...

     

    Oracle数据库的备份与恢复技术

     

    郑永生

    (华能德州电厂信息中心,德州 253024)

        摘 要 确保数据安全是每一位数据库DBA的必要工作,根据数据的重要性和软硬件条件制定可行的备份恢复方案,将数据丢失造成的损失降到最低。主要探讨Oracle数据库导出 /导入(Export/Import)、冷备份、热备份、ram备份与恢复的方法,比较各种方式的优缺点。

        关键词 数据库备份与恢复;导出/导入(Export/Import);冷备份;热备份;rman数据备份与恢复

     

    1 引言

        随着计算机信息化的普及和大量数据的电子化,数据安全显得尤为重要。一旦造成数据丢失,将会付出巨大的工作量去弥补数据,也可能因此造成不可挽回的损失。因此对从事数据库管理的DBA 来说,做好数据的备份与恢复是一项很重要的工作,本文专门针对Oracle数据库的备份与恢复进行探讨。

        Oracle数据库有四种常用的备份方法,它们分别是导出/导入(EXP/IMP)、热备份、冷备份、rman备份

     

    2 导出、导入(Export、Import)

        利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回到Oracle数据库中去,这是人们最常用,也是比较可靠的一种备份恢复方法。在数据库的版本升级时一般采用这种方法。Oracle支持三种方式类型的输出,下面举例说明(jnth是用户名,thpassword是用户密码, oracle是数据库服务命名, yxgl_a、yxgl_b, yxgl_c是表名):

    2.1 表方式(T方式),将指定表的数据导出

        备份某个用户模式下指定的对象(表)。业务数据库通常采用这种备份方式,若备份到本地文件,使用如下命令:

        exp jnth/thpassword@oracle rows=y indexes=n compress=n buffer=50000000 file=080813.dmp log=080813.log tables= yxgl_a,yxgl_b,yxgl_c

    2.2 用户方式(U方式),将指定用户的所有对象及数据导出

        备份某个用户模式下的所有对象。业务数据库通常采用这种备份方式,若备份到本地文件,使用如下命令:

        exp jnth/thpassword@oracle owner=jnth rows=y indexes=n compress=n buffer=50000000 file=080813.dmp log=080813.log

    2.3 全库方式(Full方式),将数据库中的所有对象导出

        备份完整的数据库,备份命令为:

    exp system/manager@oracle rows=y indexes=n compress=n buffer=50000000 full=y file=080813.dmp log=080813.log

        数据导入(Import)的过程是数据导出(Export)的逆过程,分别将数据文件导入数据库和将数据库数据导出到数据文件。

    2.4 恢复备份数据中的指定表

        若从本地文件恢复,使用如下命令:

        imp jnth/thpassword@oracle fromuser=jnth touser=jnth rows=y indexes=n commit=y buffer=50000000 ignore=n file=080813.dmp log=080813.log tables=yxgl_a,yxgl_b,yxgl_c

    2.5 按照用户模式备份的数据进行恢复

        A. 恢复备份数据的全部内容

        若从本地文件恢复,使用如下命令:

        imp jnth/thpassword@oracle fromuser=jnth touser=jnth rows=y indexes=n commit=y buffer=50000000 ignore=n file=080813.dmp log=080813.log

        B. 恢复备份数据中的指定表

        若从本地文件恢复,使用如下命令:

        imp jnth/thpassword@oracle fromuser=jnth touser=jnth rows=y indexes=n commit=y buffer=50000000 ignore=n file=080813.dmp log=080813.log tables=yxgl_a,yxgl_b,yxgl_c

    2.6 如果备份方式为完全模式,采用下列恢复方法

        若从本地文件恢复,使用如下命令:

        imp system/manager@oracle rows=y indexes=n commit=y buffer=50000000 ignore=y full=y file=080813.dmp log=080813.log

        导出、导入(Export、Import)的优点:

        ●简单易行;

        ●可靠性高;

        ●不影响数据库的正常运行。

        缺点:

        ●只能提供到“某一时间点上”的恢复,不能最大可能的恢复数据;

        ●数据量大时,恢复较慢。

     

    3 冷备份

        冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。冷备份时将关键性文件拷贝到另外的位置的一种说法。对于备份Oracle信息而言,冷备份是最快和最安全的方法。

    3.1 冷备份中必须拷贝的文件包括

        所有数据文件

        所有控制文件

        所有联机REDO LOG文件

        Init.ora文件(可选)

        值得注意的是冷备份必须在数据库关闭的情况下进行,当数据库处于打开状态时,执行数据库文件系统备份是无效的。

    3.2下面是做冷备份的完整例子

    3.2.1 关闭数据库

        sqlplus /nolog

        sql>connect /as sysdba

        sql>shutdown normal;

    3.2.2 用拷贝命令备份全部的数据文件、重做日志文件、控制文件、初始化参数文件

        可以通过命令select v$tablespace.name,v$datafile.name from v$tablespace, v$datafile where v$tablespace.ts#= v$datafile.ts#;查看相关文件的具体位置。或通过查看Enterprise Manager Console 的初始化参数知道这些文件的具体位置。

    3.2.3 重启Oracle数据库

        sql>startup

    3.3 冷备份的优点

        ●非常快速、容易的备份方法,只需简单拷贝文件;

        ●非常容易恢复到某个时间点上,只需将文件再拷贝回去;

        ●能与归档方法相结合,做数据库“最佳状态”的恢复;

        ●低度维护,高度安全。

    3.4 缺点

        ●单独使用时,只能提供到“某一时间点上”的恢复;

        ●实施冷备份的全过程中,数据库必须是关闭状态,因此会影响正常工作;

        ●不能按表或按用户恢复。

     

    4 热备份

        热备份是在数据库运行的情况下,采用archivelog mode方式备份数据库的方法。

    4.1 查看归档模式

        SQL> archive log list;

        数据库日志模式      存档模式

        自动存档             启用

        存档终点            c:/oracle/ora92/RDBMS

        最早的概要日志序列     11

        下一个存档日志序列     13

        当前日志序列           13

        SQL>

    4.2 如数据库在非归档模式下的,如下命令更改非归档模式为归档模式

        SQL> shutdown immediate; (立即关闭数据库)

        SQL> startup mount (启动实例并加载数据库,但不打开)

        SQL> alter database archivelog; (更改数据库为归档模式)

        SQL> alter database open; (打开数据库)

        SQL> alter system archive log start; (启用自动归档
        SQL> exit (退出)

    4.3 一旦数据库运行在archivelog状态下,就可以做备份了热备份的命令文件由三部分组成

        4.3.1 数据文件的备份

        (1) 设置表空间为备份状态
    SQL>alter tablespace rlgl begin backup;
    表空间已更改。

        (2) 备份表空间的数据文件
    用操作系统的复制拷贝数据文件。

        (3) 回复表空间为正常状态 
    SQL> alter tablespace sysbs end backup
    表空间已更改。

        4.3.2 备份归档日志文件

        在sqlplus上执行alter system switch logfile命令来强迫日志切换,以便所有的日志都被归档。通过在执行archive log list命令获取当前的日志顺序号,从最早的概要日志序列到当前日志序列的联机redo日志都应该拷贝出来。

    4.3.3 使用alter database backup controlfile to trace;命令获得控制文件的一个备份,可以到%oracle_base%/admin/ %oracle_sid%/udump目录中寻找最新的跟踪文件,其中有重建控制文件的全部命令。

    4.4 恢复实例,假设表空间JNTH中的数据文件jinth1.dbf损坏

        SQL> startup

        ORACLE 例程已经启动。

        Total System Global Area 135338868 bytes

        Fixed Size 453492 bytes

        Variable Size 109051904 bytes

        Database Buffers 25165824 bytes

        Redo Buffers 667648 bytes

        数据库装载完毕。

        ORA-01157: 无法标识/锁定数据文件 8 - 请参阅 DBWR 跟踪文件

        ORA-01110: 数据文件 8: ’E:/ORACLE/ORADATA/ JNTH1.DBF’

        恢复过程:

        (1)可以先将损坏的表空间文件脱机。

        SQL> alter database datafile ’e:/oracle/oradata/jnth1.dbf’ offline;

        数据库已更改。

        (2)打开数据库。

        SQL> alter database open;

        数据库已更改。

        (3)将拷贝的文件jnth1.dbf拷贝回先前的文件夹E:/ORACLE/ORACLEDATA。

        (4)恢复数据库文件。

        SQL>recover datafile ’e:/oracle/oradata/jnth1.dbf’;

        介质恢复完成。

        (5)关闭数据库。

        SQL>shutdown immediate;

        (6)重新打开数据库。

        SQL> startup;

    4.5 热备份的优点

        ●可在表空间或数据库文件级备份备份的时间短;

        ●备份时数据库仍可使用;

        ●可以恢复到某一时间点上;

        ●恢复快速。

    4.6 缺点

        ●不能出错,否则将不能正常恢复数据;

        ●维护较困难,需要一定的oracle数据库知识。

     

    5 RMAN ( Recovery Manager, 恢复管理器 )备份恢复

        RMAN ( Recovery Manager, 恢复管理器 )是从Oracle8开始提供的一套用于备份和恢复的有利工具,它有两种使用界面:GUI(图形用户界面)和CLI(命令行界面)。使用RMAN可以完成Oracle 数据库备份和恢复的各种任务。现在许多oracle 备份恢复软件的内核实际上就是RMAN(例如 VERITAS NetBackup 备份软件)。

    5.1 切换服务器归档模式

        C:/sqlplus /nolog (启动sqlplus)

        SQL> conn / as sysdba (以DBA身份连接数据库)

        SQL> archive log list (查看是否是归档模式,更改归档模式在热备份时已介绍)

    5.2 连接

        C:/rman target=rman/rman@oracle (启动恢复管理器,oracle是服务名,根据自己的实际情况设定)

    5.3 基本设置

        RMAN> configure default device type to disk; (设置默认的备份设备为磁盘)

        RMAN> configure device type disk parallelism 2; (设置备份的并行级别,通道数)

        RMAN> configure channel 1 device type disk format 'e:/backup1/backup_%U'; (设置备份的文件格式,只适用于磁盘设备)

        RMAN> configure channel 2 device type disk format 'e:/backup2/backup_%U'; (设置备份的文件格式,只适用于磁盘设备)

        RMAN> configure controlfile autobackup on; (打开控制文件与服务器参数文件的自动备份

        RMAN> configure controlfile autobackup format for device type disk to 'e:/backup1/ctl_%F'; (设置控制文件与服务器参数文件自动备份的文件格式)

    5.4 查看所有参数设置

        RMAN> show all;

    5.5 查看数据库方案报表

        RMAN> report schema;

    5.6 备份全库及控制文件、服务器参数文件与所有归档的重做日志,并删除旧的归档日志

        RMAN> backup database plus archivelog delete input;

    5.7 备份表空间及归档的重做日志,并删除旧的归档日志

        RMAN> backup tablespace system plus archivelog delete input;

    5.8 备份归档日志

        RMAN> backup archivelog all delete input;

    5.9 复制数据文件

        RMAN> copy datafile 1 to 'e:/backup1/datafile/1.ora';

    5.10 查看备份和文件复本

        RMAN> list backup;

    5.11验证备份

        RMAN> validate backupset 3;

    5.12从自动备份中恢复服务器参数文件

        RMAN> shutdown immediate; (立即关闭数据库)

        RMAN> startup nomount; (启动实例到nomount 状态)

        RMAN> restore controlfile to '/backup1' from autobackup; (从自动备份中恢复控制文件)

    5.13 恢复和复原全数据库

        RMAN> shutdown immediate; (立即关闭数据库)

        RMAN> exit (退出)

        将数据文件jnth1.ora,

        C:/ ren E:/oracle/oradata/oracle/jnth1.ora jnth1.bak;   

        C:/ ren E:/oracle/oradata/oracle/jnth2.ora jnth2.bak;   

        C:/rman target=rman/rman@oracle (启动恢复管理器)

        RMAN> startup pfile=C:/oracle/admin/oracle/pfile/ initoracle.ora (指定初始化参数文件启动数据库)

        RMAN> restore database; (还原数据库)

        RMAN> recover database; (恢复数据库)

        RMAN> alter database open; (打开数据库)

    5.14 Rman备份的优点

        ●支持在线热备份

        ●支持多级增量备份

        ●减小所需要备份量;

        ●备份,恢复使用简单。

    5.15 Rman备份的缺点

        ●维护较复杂,需要一定的专业知识。

     

    6 结束语

        本文根据多年的工作经验就一些基础性的知识进行探讨,在实际工作中利用这些基础知识,结合操作系统的计划任务或第三方的软件就可以实现数据的自动、定时、定量的备份与恢复。

    展开全文
  • Oracle数据库备份与恢复案例

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,343
精华内容 1,337
关键字:

数据库oracle备份与恢复