zoukankan      html  css  js  c++  java
  • Oracle数据库的备份与恢复还原笔记

    先介绍一下rman
    RMAN(Recovery Manager)是一种用于备份(backup)、还原(restore)和恢复(recover)数据库的 Oracle 工具。RMAN只能用于ORACLE8或更高的版本中。它能够备份整个数据库或数据库部件,如表空间、数据文件、控制文件、归档文件以及Spfile参数文件。RMAN也允许您进行增量数据块级别的备份,增量RMAN备份是时间和空间有效的,因为他们只备份自上次备份以来有变化的那些数据块。而且,通过RMAN提供的接口,第三方的备份与恢复软件如veritas将提供更强大的备份与恢复的管理功能。通过RMAN,也提供了其它更多功能,如数据库的克隆、采用RMAN建立备用数据库、利用RMAN备份与移动裸设备(RAW)上的文件等工作将变得更方便简单。9i的RMAN通过增强的自动配置与管理功能,以及特有的块级别的恢复,将使备份与恢复工作变得更加快捷与完美。

    这是来自百度百科给我的介绍

    接下来我们直接开始干!!!!

    第一步:首先介绍一下先进入Rman

    1.本地连接方式

    rman target /

    2.远程连接方式

    rman target sys/oracle@orcl

    第二步:关于rman的一些指令

    这句sql的意思就是对单实例数据库或RAC中的当前实例执行日志切换。

    SQL ‘ALTER SYSTEM SWITCH LOGFILE’;

    建议参考更多资料了解:下面是一个有关链接

    http://www.itpub.net/thread-287031-1-1.html

    显示rman的默认配置

    SHOW ALL;

    #default 表示该条配置仍然是初始的默认配置。

    如果我们想把某条更改过的配置再置为初始应该怎么办呢

    我们可以使用这个命令

    configure ... clear;

    CONFIGURE RETENTION POLICY CLEAR;

    第三步:看一下备份的配置

    1、CONFIGURE RETENTION POLICY 配置备份保留策略

    两种保留策略:

    基于时间:

    CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF n DAYS;

    基于冗余数量:

    CONFIGURE RETENTION POLICY TO REDUNDANCY n;

    也可以取消备份保留策略:

    CONFIGURE RETENTION POLICY TO NONE;

    2、CONFIGURE BACKUP OPTIMIZATION 配置备份优化

    如果优化设置打开,将对备份的数据文件、归档日志或备份集运行一个优化算法。

    备份优化,包括OFF 和ON 两个状态

    打开备份优化:

    CONFIGURE BACKUP OPTIMIZATION ON;

    关闭备份优化:

    CONFIGURE BACKUP OPTIMIZATION OFF;

    3、CONFIGURE DEFAULT DEVICE TYPE 配置IO 设备类型

    RMAN 支持的 IO 设备类型有两种:磁盘(DISK)和磁带(SBT),默认情况下为磁盘。
    使用磁盘设备:

    CONFIGURE DEFAULT DEVICE TYPE TO DISK;

    使用磁带设置:

    CONFIGURE DEFAULT DEVICE TYPE TO SBT;

    在这里需要注意的一点是:如果IO 设备发生变化,相关配置项也需要修改。例如:

    RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 2; 

    4、CONFIGURE CONTROLFILE AUTOBACKUP 配置控制文件自动备份

    是否自动备份,包含两个状态:OFF 和ON
    打开自动备份

    CONFIGURE CONTROLFILE AUTOBACKUP ON;

    禁止自动备份

    CONFIGURE CONTROLFILE AUTOBACKUP OFF;

    同时可以通过如下配置指定备份的控制格式,路径。例如:

    CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'E:/backup/%F';

    在备份期间,将产生一个控制文件的快照,用于控制文件的读一致性,这个快照可
    以通过如下配置:

    `CONFIGURE SNAPSHOT CONTROLFILE NAME TO

    'E:/BACKUP/ZTEST.ORA';`

    5、CONFIGURE DEVICE TYPE 设置并行备份
    RMAN 支持并行备份与恢复,也可以在配置中指定默认的并行程度。例如:

    CONFIGURE DEVICE TYPE DISK PARALLELISM 2;

    指定在以后的备份与恢复中,将采用并行度为2,同时开启2个通道进行备份与恢复,当然也可以在run 中指定通道来决定备份与恢复的并行程度。
    默认情况下,自动分配通道的并行度为1,如果你通过设置PARALLELISM 设置了

    并行通道为2,那么在run 块中,如果你没有单独通过ALLOCATE CHANNEL 命令指定通道,它会默认使用2 条并行通道,如果你在run 命令块中指定了数个ALLOCATE CHANNEL,那么rman 在执行备份命令时会以你设置的channel 为准,而不管configure中配置了多少个并行通道。

    需要注意的一点是,在backup 命令中有一个 FILESPERSET 参数该参数是指
    rman建立的每个备份集中所能包含的备份片段(即磁盘文件)的最大数,该参数默认值为64,如果在执行backup 命令时没有指定该参数值,那么rman 会仅使用第一个通道来执行备份,其它通道将处于空闲状态。filesperset 值不要小于你设定的通道数。

    6、CONFIGURE DATAFILE BACKUP COPIES 设置备份文件冗余度

    7、CONFIGURE MAXSETSIZE 配置备份集的最大尺寸
    该配置限制通道上备份集的最大尺寸。单位支持bytes,K,M,G。默认值是unlimited。

    RMAN> show channel; // 通道分配 RMAN> show device type; // IO 设备类型 RMAN> show retention policy; // 保存策略 RMAN> show datafile backup copies; // 多个备份的拷贝数目 RMAN> show maxsetsize; // 备份集大小的最大值 RMAN> show exclude; // 不必备份的表空间 RMAN> show backup optimization; // 备份的优化 

    第四步:备份信息的查看

    1.列出备份信息

    列出数据库中所有文件的备份信息:

    RMAN>LIST BACKUP OF DATABASE;

    列出指定表空间的备份信息:

    RMAN>LIST COPY OF TABLESPACE 'SYSTEM';

    二.删除备份信息

    1.删除陈旧备份

    当使用 RMAN 执行备份操作时,RMAN 会根据备份冗余策略确定陈旧备份。

    RMAN> delete obsolete;

    2.删除 EXPIRED 备份

    执行 crosscheck 命令核对备份集,如果备份集丢失或者损坏,那么会将该备份集标记

    为 EXPIRED 状态。为了删除相应的备份记录,可以执行 delete expired backup 命令。

    RMAN> delete expired backup;

    3.删除 EXPIRED 副本

    RMAN> delete expired copy;

    4.删除特定备份集

    RMAN> delete backupset 19;

    5.删除特定备份片

    RMAN> delete backuppiece 'd:ackupDEMO_19.bak';

    6.删除所有备份集

    RMAN> delete backup;

    7.删除特定映像副本

    RMAN> delete datafilecopy 'd:ackupDEMO_19.bak';

    8.删除所有映像副本

    RMAN> delete copy;

    9.在备份后删除输入对象

    RMAN> delete archivelog all delete input;

    RMAN> delete backupset 22 format = ''E:ackup\%u.bak'' delete input; 

    rman简单的一些操作就到这里吧

    下面我们进行一个实验操作系统:WINDOWS 2007

    ORACLE版本:10G

    ORACLE_SID:ZXTEST

    首先我进入数据库管理员最高的权限

    `SQLPLUS /NOLOG

    CONNECT / AS SYSDBA`

    我的目标数据库

    ZXTEST

    第一步准备工作

    找到我们的数据库表空间TABLESPACE所在位置

    select * from dba_data_files;

    创建表空间

    `CREATE TABLESPACE demo

    DATAFILE 'C:appadminoradataXTESTDEMO.DBF'

    SIZE 20M AUTOEXTEND ON NEXT 20M

    MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL

    SEGMENT SPACE MANAGEMENT AUTO;`

    创建用户

    CREATE USER zhb IDENTIFIED BY zhbzhb** **DEFAULT TABLESPACE DEMO** **TEMPORARY TABLESPACE TEMP** **QUOTA UNLIMITED ON DEMO;

    给用户授权

    `GRANT CONNECT,DBA,RESOURCE,EXP_FULL_DATABASE,IMP_FULL_DATABASE
    TO zhb WITH ADMIN OPTION;

    GRANT CREATE ANY INDEX,CREATE ANY TABLE,DELETE ANY TABLE,
    CREATE SESSION,CREATE TABLE,CREATE VIEW,UNDER ANY TABLE,
    UNLIMITED TABLESPACE TO zhb WITH ADMIN OPTION;`

    我们再创建一个Rman (基于catalog)

    把我们的备份数据放这里

    创建表空间

    CREATE TABLESPACE space_for_backup DATAFILE 'C:appadminoradataXTESTspace_for_backup.DBF' SIZE 50M;

    创建用户

    CREATE USER rman IDENTIFIED BY rman TEMPORARY TABLESPACE TEMP DEFAULT TABLESPACE space_for_backup QUOTA UNLIMITED ON space_for_backup;

    给用户授权

    GRANT CONNECT,RESOURCE,RECOVERY_CATALOG_OWNER TO rman;

    第二步开始玩起来---备份阶段

    创建恢复资料数

    登录到恢复资料数据库

    RMAN>connect catalog rman/rman;

    创建恢复资料 (如果没有这个,你注册目标数据库的时候一定会报错的)

    RMAN>CREATE CATALOG TABLESPACE space_for_backup;

    注册目标数据库

    知道怎么进入rman的把上面已经说过了

    `RMAN>connect catalog rman/rman;

    RMAN>connect target /;

    RMAN>register database;注册目标数据库

    RMAN>report schema;查看注册是否成功
    `

    注册目标数据库

    查看注册是否成功

    开始备份实例

    -----全库备份

    注意这里C盘指定的文件夹需要提前创建好不然会找不到的
    `
    RMAN>connect catalog rman/rman;

    RMAN>connect target /;

    RMAN>backup database format 'c:ackupdb0_%s_%p_%t';`

    -----备份表空间

    `RMAN>connect catalog rman/rman;

    RMAN>connect target /;

    RMAN> backup tablespace demo format 'c:ackupexoa_%s_%p_%t';`

    -----备份归档日志

    RMAN> backup archivelog all format 'c:ackuparchive_%U';

    -----备份控制文件

    `RMAN>connect catalog rman/rman;

    RMAN>connect target /;

    RMAN> backup current controlfile format 'c:ackupcontrolfile_%s_%p_%t';`

    -----备份参数文件SPFILE
    `RMAN>connect catalog rman/rman;

    RMAN>connect target /;

    RMAN> backup spfile format 'c:ackupspfile_%s_%p_%t';`

    好了该备份的基本都已经备份好了,接下来就是要恢复了

    恢复实例

    恢复数据库(可以将数据库文件全部删除,模拟数据库损坏现象)

    SQL> connect / as sysdba;

    已连接到空闲例程。

    startup mount;

    ORACLE 例程已经启动。

    RMAN> connect catalog rman/rman;

    还原数据库

    connect target /;

    恢复数据库

    recover database;

    数据库已更改。

    alter database open;

    恢复表空间(可以将表空间文件文件删除,模拟表空间损坏现象) 这些刚才我们都做了备份

    已连接到空闲例程。

    connect / as sysdba

    例程已经启动。

    startup

    `connect catalog rman/rman;

    connect target /;`

    `run

    {

    restore tablespace demo;

    switch datafile all;

    recover tablespace demo;

    }`

    alter tablespace exoa online;

    数据库已更改。

    alter database open;

    表空间已更改

    alter tablespace exoa online;

  • 相关阅读:
    D
    C
    如何用最简单的方式解释依赖注入?依赖注入是如何实现解耦的?
    二维数组中的查找
    简单对称算法
    冒泡排序(数组排序)
    二分查找
    斐波那契数列
    顺序查找(数组里查找某个元素)
    二维数组排序算法函数
  • 原文地址:https://www.cnblogs.com/zhuhuibiao/p/13046813.html
Copyright © 2011-2022 走看看