创建恢复目录

在hndx上创建恢复目录:
[oracle@oracle admin]$ export ORACLE_SID=hndx
[oracle@oracle admin]$ sqlplus / as sysdba

SQL> create tablespace rman_cata datafile '/u01/app/oracle/oradata/hndx/cata01.dbf' size 10M;
SQL> create user rman_cata default tablespace rman_cata identified by oracle;

SQL> grant connect,resource,recovery_catalog_owner to rman_cata;
SQL> exit

[oracle@oracle admin]$ echo $ORACLE_SID
hndx

sqlplus rman_cata/oracle
select * from tab--没有对象

[oracle@oracle admin]$ rman catalog rman_cata/oracle
RMAN> create catalog;

sqlplus rman_cata/oracle
select * from tab;--发现有上100个对象

[oracle@oracle admin]$ rman target sys/oracle@orcl catalog rman_cata/oracle@hndx
RMAN> register database;--将目标数据库的信息注册到恢复目录数据库

手动添加备份元数据

SQL> alter tablespace users begin backup;
SQL> !cp -v /u01/app/oracle/oradata/orcl/users01.dbf /u01/backup/hotbk/users.bak
SQL> alter tablespace users end backup;

RMAN> catalog datafilecopy '/u01/backup/hotbk/users.bak' ;
RMAN> list copy of tablespace users;

RMAN> change datafilecopy '/u01/backup/hotbk/users01.dbf' uncatalog;--从控制文件的元数据中删除此项
RMAN> list copy of tablespace users;

RMAN> catalog datafilecopy '/u01/backup/hotbk/users01.dbf' tag=users;--注册的同时进行标记

VPC(Virtual Private Catalog)

假如有3个数据库,数据名分别为:orcl,orcl1,orcl2,创建一个catalog服务器orcl,同时为2台数据库提供服务
要求每个数据库dba只能看到自己的元数据

首先,需要创建一个包含所有目标数据库的基础目录,假设拥有者为:RMAN

1. 创建表空间:
create tablespace rman_tbs datafile '/u01/app/oracle/oradata/orcl/rman_tbs01.dbf' size 100M;

2. 创建RMAN用户:
create user rman default tablespace rman_tbs identified by oracle;
grant recovery_catalog_owner to rman;

3. 创建恢复目录:
rman catalog rman/oracle
create catalog;

4. 将orcl1和orcl2的信息注册到恢复目录:
export ORACLE_SID=orcl1
rman target / catalog rman/oracle@orcl
register database;

export ORACLE_SID=orcl2
rman target / catalog rman/oracle@orcl
register database;

现在无无论orcl1和orcl2的dba都能考到对方的数据,这是不安全的,如:
export ORACLE_SID=orcl1
rman target / catalog rman/oracle@orcl
list db_unique_name all;

为了安全,不让对方dba看到自己的数据,可以创建虚拟专用目录,如:

1. 创建虚拟专用目录的所有者:
create user orcl1 default tablespace users identified by oracle;
create user orcl2 default tablespace users identified by oracle;

2. 为虚拟专用目录的所有者受权:
export ORACLE_SID=orcl

sqlplus / as sysdba
grant recovery_catalog_owner to orcl1;
grant recovery_catalog_owner to orcl2;

rman catalog rman/oracle
grant catalog for database orcl1 to orcl1;
grant register database to orcl1;

grant catalog for database orcl2 to orcl2;
grant register database to orcl2;

3. 创建虚拟专用目录:
export ORACLE_SID=orcl1

rman target / catalog orcl1/a@orcl
create virtual catalog;
list db_unique_name all;
只能看到自己的数据

export ORACLE_SID=orcl2
rman target / catalog orcl2@orcl
create virtual catalog;
list db_unique_name all;
只能看到自己的数据

合并恢复目录

1. 删除以上实验的恢复目录,在orcl和orcl1上重新创建各自的catalog

export ORACLE_SID=orcl1
rman target / catalog orcl1/oracle@orcl
unregister database;

export ORACLE_SID=orcl2
rman target / catalog orcl2/oracle@orcl
unregister database;

export ORACLE_SID=orcl
rman target / catalog rman/oracle
drop catalog;

2. 重新创建catalog:

export ORACLE_SID=orcl
rman catalog rman/oracle
create catalog;
connect target /
register database;
list db_unique_name all;

3. 为orcl1创建自己的catalog:

export ORACLE_SID=orcl1
sqlplus / as sysdba
create user rman1 default tablespace users identified by oracle;
grant connect,resource,recovery_catalog_owner to rman1;

rman catalog rman1/oracle
create catalog;
connect target /
register database;
list db_unique_name all;

4. 将orcl1的恢复目录合并到orcl中:

export ORACLE_SID=orcl
rman target / catalog rman/oracle
import catalog rman1/oracle@orcl1;

list db_unique_name all;
发现orcl1已经合并到orcl中

export ORACLE_SID=orcl1
rman target / catalog rman1/oracle
list db_unique_name all;
发现为空

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

恢复目录
createa tablespace cata_tbs datafile '/u01/app/oracle/oradata/orcl/cata_tbs01.dbf' size 100M; -- no less than 15M

create user cata default tablespace cata_tbs identified by oracle;
grant connect,resource,recovery_catalog_owner to cata;

sqlplus cata/oracle
select * from tab;

rman catalog cata/oracle;
create catalog;

rman target / catalog cata/oracle;
register database;

backup database;

怎么在恢复目录中注册数据库
rman target sys/oracle@orcl1 catalog cata/oracle@orcl
register database;
unregister database;

注册额外的备份文件
rman> catalog backuppiece 'file_name';

alter tablespace users begin backup;
!cp -v /u01/app/oracle/oradata/orcl/users01.dbf /u01/app/oracle/backup/hotbk
alter tablespace users end backup;

catalog datafilecopy '/u01/app/oracle/backup/hotbk';

list copy of database;

重新同步控制文件和恢复目录
rman>resync catalog;

使用rman存储脚本
CREATE [GLOBAL] SCRIPT script_name FROM FILE 'file_name';
rman target / catalog cata/oracle;
create script backupdb {backup database format='/u01/app/oracle/imanbk/%d_%s.dbf';}

run{execute script
script name;
}

RUN { EXECUTE GLOBAL SCRIPT
script_name
; }

print script scriptname;
print script backdb to file '/u01/app/oracle/rmanbk.sh';

rman> list script names;
rman> replace script backdb
{delete noprompt backup;
backup database plus archivelog;
}

list script names;
print script backdb;

OCP读书笔记(3) - 使用RMAN恢复目录的更多相关文章

  1. OCP读书笔记(7) - 使用RMAN执行恢复

    7.Using RMAN to Perform Recovery 使用RMAN进行完全恢复system表空间文件丢失的恢复 模拟损坏: SQL> conn /as sysdba; SQL> ...

  2. OCP读书笔记(5) - 使用RMAN创建备份

    5.Creating Backups with RMAN 创建备份集 RMAN> backup as backupset format '/u01/app/oracle/backup/rmanb ...

  3. RMAN恢复目录

    是否使用RMAN恢复目录(Recovery Catalog 你可能从其他人或书上听过RMAN恢复目录(也有可能是其他名字,RMAN Recovery Catalog的翻译较多较杂,以下简称恢复目录), ...

  4. RMAN_学习笔记5_RMAN Catalog Script恢复目录脚本

    2014-12-24 Created By BaoXinjian

  5. Oracle DB 使用RMAN恢复目录

    • 对恢复目录和RMAN 资料档案库控制文件的使用进行比较• 创建和配置恢复目录• 在恢复目录中注册数据库• 同步恢复目录• 使用RMAN 存储脚本• 备份恢复目录• 创建虚拟专用目录 RMAN 资料 ...

  6. rman catalog (rman 恢复目录)

    受控制文件大小的限制,一般rman需要用rman catalog来管理及存放备份信息: 这里介绍一下创建rman catalog的步骤: C:\Documents andSettings\Admini ...

  7. OCP读书笔记(8) - 监控和调优RMAN

    监视RMAN作业 1. 创建rman备份: RMAN> run { allocate channel ch1 type disk; allocate channel ch2 type disk; ...

  8. OCP读书笔记(6) - 手动恢复操作

    6.Restore and Recovery Task 非关键性文件丢失的恢复 临时文件丢失的恢复 临时表空间文件丢失的恢复: 查看数据库中的临时文件: SQL> select file#,ST ...

  9. OCP读书笔记(2) - 配置恢复

    RMAN的命令类型 1. sqlplus命令 [oracle@oracle admin]$ export ORACLE_SID=orcl [oracle@oracle admin]$ rman tar ...

随机推荐

  1. c语言,volatile

          一.意义: 该关键字的意义就是表示定义的变量值随时都会改变,必须从变量的地址处读取值,所以只有这个变量在使用过程中可能被改变(比如中断程序),就需要用这个关键字说明. )volatile, ...

  2. 【HTTP】Fiddler(三)- Fiddler命令行和HTTP断点调试

    一. Fiddler内置命令. 上一节(使用Fiddler进行抓包分析)中,介绍到,在web session(与我们通常所说的session不是同一个概念,这里的每条HTTP请求都成为一个sessio ...

  3. C++ Primer学习笔记2--c++标准库中的 vector、string 和 bitset 类型

    一.string    #include <string>  using std::string    初始化函数:    string s1;        默认构造函数 s1 为空串 ...

  4. jquery子元素过滤选择器

    :nth-child('索引值')//获取指定元素下的某个子元素的位置,索引从1开始: //偶数行                 //$('li:nth-child(even)').addClass ...

  5. POI读入excel文件到Java中

    package Poi_Test; //导入java自带的包 import java.io.BufferedInputStream; import java.io.File; import java. ...

  6. 中转server

    中转传输概要设计 中转传输的消息架构为模拟MFC的消息架构,请參考我的上一篇文章. 1. 概述 中转server採用事件驱动的方式,与socket结合.其层次例如以下: 在事件驱动层中,将相关消息发送 ...

  7. Maven项目红色叹号+JavaWeb: 报错信息The superclass &quot;javax.servlet.http.HttpServlet&quot; was not found on the Java B

    昨天写的关于解决JavaWeb: 报错信息The superclass "javax.servlet.http.HttpServlet" was not found on the ...

  8. Android应用公布的准备——渠道注冊与认证

    今天早上申请了一个早上的渠道账号,这工作真是太繁琐,申请的是企业账号,须要营业执照等相关资料,假设申请个人的话预计须要身份证相关信息.以下贴出国内主流的几个渠道.不全然,可是基本上涵盖了大部分. 36 ...

  9. c#引用web.config中的ConnectionString

    c#引用web.config中的ConnectionString <connectionStrings>  <add name="JKXTConnectionString& ...

  10. [Warning] Aborted connection 11203 to db: 'ide' user: 'nuc' host: 'prd01.mb.com' (Got an error writi

    PS:一台物理机扯分了3个虚拟机,一个主db,一个主备,一个从备. 切换到0301的时候 Sep  6 09:16:16 prddb0301 mysqld: 130906  9:16:16 [Warn ...