环境:RHEL6.4 + Oracle 11.2.0.4

一、创建数据库catdb

二、配置catdb为catalog数据库

三、管理catalog数据库

四、Reference

一、创建数据库catdb

1.1 官档的建库脚本示例

```
CREATE DATABASE mynewdb
USER SYS IDENTIFIED BY sys_password
USER SYSTEM IDENTIFIED BY system_password
LOGFILE GROUP 1 ('/u01/logs/my/redo01a.log','/u02/logs/my/redo01b.log') SIZE 100M BLOCKSIZE 512,
GROUP 2 ('/u01/logs/my/redo02a.log','/u02/logs/my/redo02b.log') SIZE 100M BLOCKSIZE 512,
GROUP 3 ('/u01/logs/my/redo03a.log','/u02/logs/my/redo03b.log') SIZE 100M BLOCKSIZE 512
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXLOGHISTORY 1
MAXDATAFILES 100
CHARACTER SET US7ASCII
NATIONAL CHARACTER SET AL16UTF16
EXTENT MANAGEMENT LOCAL
DATAFILE '/u01/app/oracle/oradata/mynewdb/system01.dbf' SIZE 325M REUSE
SYSAUX DATAFILE '/u01/app/oracle/oradata/mynewdb/sysaux01.dbf' SIZE 325M REUSE
DEFAULT TABLESPACE users
DATAFILE '/u01/app/oracle/oradata/mynewdb/users01.dbf'
SIZE 500M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
DEFAULT TEMPORARY TABLESPACE tempts1
TEMPFILE '/u01/app/oracle/oradata/mynewdb/temp01.dbf'
SIZE 20M REUSE
UNDO TABLESPACE undotbs
DATAFILE '/u01/app/oracle/oradata/mynewdb/undotbs01.dbf'
SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
```

1.2 根据我实际环境修改如下项

```
sys_password -> oracle
system_password -> oracle
US7ASCII -> ZHS16GBK
mynewdb -> catdb
/u01/logs/my -> /u01/redologs/a
/u02/logs/my -> /u01/redologs/b
/u01/app/oracle/oradata -> /u01/oradata03
```
可以vi批量替换,比如`:%s#/u01/logs/my#/u01/redologs/a#g`替换所有`/u01/logs/my`为`/u01/redologs/a`。
修改完如下:
vi /home/oracle/create_db.sql
```
CREATE DATABASE catdb
USER SYS IDENTIFIED BY oracle
USER SYSTEM IDENTIFIED BY oracle
LOGFILE GROUP 1 ('/u01/redologs/a/redo01a.log','/u01/redologs/b/redo01b.log') SIZE 100M BLOCKSIZE 512,
GROUP 2 ('/u01/redologs/a/redo02a.log','/u01/redologs/b/redo02b.log') SIZE 100M BLOCKSIZE 512,
GROUP 3 ('/u01/redologs/a/redo03a.log','/u01/redologs/b/redo03b.log') SIZE 100M BLOCKSIZE 512
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXLOGHISTORY 1
MAXDATAFILES 100
CHARACTER SET ZHS16GBK
NATIONAL CHARACTER SET AL16UTF16
EXTENT MANAGEMENT LOCAL
DATAFILE '/u01/oradata03/catdb/system01.dbf' SIZE 325M REUSE
SYSAUX DATAFILE '/u01/oradata03/catdb/sysaux01.dbf' SIZE 325M REUSE
DEFAULT TABLESPACE users
DATAFILE '/u01/oradata03/catdb/users01.dbf'
SIZE 500M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
DEFAULT TEMPORARY TABLESPACE tempts1
TEMPFILE '/u01/oradata03/catdb/temp01.dbf'
SIZE 20M REUSE
UNDO TABLESPACE undotbs
DATAFILE '/u01/oradata03/catdb/undotbs01.dbf'
SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
```

1.3 创建必要目录并赋予权限

```
#redologs和datafiles
mkdir -p /u01/redologs/a && mkdir -p /u01/redologs/b && mkdir -p /u01/oradata03/catdb
chown oracle:oinstall /u01/redologs/a /u01/redologs/b /u01/oradata03/catdb
#controlfiles
mkdir -p /u01/system/catdb && mkdir -p /u02/system/catdb && mkdir -p /u03/system/catdb
chown oracle:oinstall /u01/system/catdb /u02/system/catdb /u03/system/catdb
```

1.4 执行脚本建库

### 1.4.1 声明ORACLE_SID变量 ###
```
export ORACLE_SID=catdb
```
### 1.4.2 编辑初始化参数文件 ###
vi $ORACLE_HOME/dbs/init$ORACLE_SID.ora
```
DB_NAME=catdb
CONTROL_FILES=('/u01/system/catdb/control01.ctl','/u02/system/catdb/control02.ctl','/u03/system/catdb/control03.ctl')
MEMORY_TARGET=1G
```
### 1.4.3 创建服务器参数文件并启动实例 ###
创建服务器参数文件,以服务器参数文件启动数据库
```
SQL> create spfile from pfile;
SQL> startup nomount
```
### 1.4.4 运行建库脚本建库 ###
```
SQL> @/home/oracle/create_db.sql

Database created.

然后执行以下脚本:

@?/rdbms/admin/catalog.sql

@?/rdbms/admin/catproc.sql

conn system/oracle

@?/sqlplus/admin/pupbld.sql

### 1.4.5 配置tnsnames.ora ###

CATDB =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = JY-DB02)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = catdb)

)

)


<h1 id="2">二、配置catdb为catalog数据库</h1>
<h2 id="2.1">2.1 创建表空间</h2>

CREATE TABLESPACE TOOLS DATAFILE '/u01/oradata03/catdb/tools.dbf' SIZE 15M REUSE AUTOEXTEND ON NEXT 15M MAXSIZE 1500M;

<h2 id="2.2">2.2 创建用户</h2>

CREATE USER rman IDENTIFIED BY rman

TEMPORARY TABLESPACE tempts1

DEFAULT TABLESPACE tools

QUOTA UNLIMITED ON tools;

GRANT RECOVERY_CATALOG_OWNER TO rman;

<h2 id="2.3">2.3 创建CATALOG</h2>

$ rman catalog rman/rman

RMAN> CREATE CATALOG;

<h2 id="2.4">2.4 目标数据库注册到CATALOG</h2>
在目标数据库执行:

rman TARGET / CATALOG rman@catdb

REGISTER DATABASE;


<h1 id="3">三、管理catalog数据库</h1>
<h2 id="3.1">3.1 创建和管理VPC(virtual private catalogs)</h2>
### 3.1.1 创建表空间,用户,赋权 ###

create tablespace vpcusers datafile '/u01/oradata03/catdb/vpcusers01.dbf' size 30M autoextend on maxsize 300M;

CREATE USER vpc1 IDENTIFIED BY vpc1 DEFAULT TABLESPACE vpcusers QUOTA UNLIMITED ON vpcusers;

GRANT recovery_catalog_owner TO vpc1;

### 3.1.2 恢复目录所有者RMAN登录赋予vpc1用户注册数据库权限 ###

$ rman catalog rman/rman@catdb

RMAN> GRANT REGISTER DATABASE TO vpc1;

### 3.1.3 虚拟专用目录RMAN登录创建虚拟CATALOG ###

RMAN> CONNECT CATALOG vpc1@catdb;

RMAN> CREATE VIRTUAL CATALOG;

如果是10.2版本或更早,需要SQL下执行存储过程创建:

SQL> EXECUTE base_catalog_owner.DBMS_RCVCAT.CREATE_VIRTUAL_CATALOG;

### 3.1.4 恢复目录所有者RMAN登录赋予vpc1用户已注册数据库的访问权限 ###

$ rman catalog rman/rman@catdb

RMAN> GRANT CATALOG FOR DATABASE jingyu TO vpc1;

<h2 id="3.2">3.2 创建和管理存储脚本</h2>
首先连接到目标数据库和恢复目录。
### 3.2.1 创建全局脚本 ###

CREATE GLOBAL SCRIPT global_full_backup

{

BACKUP DATABASE PLUS ARCHIVELOG;

DELETE OBSOLETE;

}

你可以创建脚本时同时加上描述性的注释,比如:

CREATE GLOBAL SCRIPT global_full_backup

COMMENT 'use only with ARCHIVELOG mode databases'

{

BACKUP DATABASE PLUS ARCHIVELOG;

DELETE OBSOLETE;

}

### 3.2.2 创建本地脚本 ###

CREATE SCRIPT full_backup

{

BACKUP DATABASE PLUS ARCHIVELOG;

DELETE OBSOLETE;

}

创建脚本还可以从已有脚本文本文件获取:

CREATE SCRIPT full_backup

FROM FILE '/tmp/my_script_file.txt';

### 3.2.3 替换存储脚本 ###

REPLACE GLOBAL SCRIPT global_full_backup

COMMENT 'A script for full backup to be used with any database'

{

BACKUP AS BACKUPSET DATABASE PLUS ARCHIVELOG;

}

### 3.2.4 执行存储脚本 ###

RUN

{

EXECUTE GLOBAL SCRIPT global_full_backup;

}

RUN

{

EXECUTE SCRIPT global_full_backup;

}

如果没有本地脚本是global_full_backup这个名字,那么上面两个命令效果一样,如果有,那么第二个命令则会优先执行本地脚本。
### 3.2.5 创建和管理动态存储脚本 ###
登录RMAN

rman TARGET / CATALOG rman@catdb USING arc_backup bck0906 FY06Q3

创建动态存储脚本:

CREATE SCRIPT quarterly {

ALLOCATE CHANNEL c1

DEVICE TYPE sbt

PARMS 'ENV=(OB_MEDIA_FAMILY=&1)';

BACKUP

TAG &2

FORMAT '/disk2/bck/&1%U.bck'

KEEP FOREVER

RESTORE POINT &3

DATABASE;

}

替换成符合我实际环境可执行的:

Replace SCRIPT quarterly {

ALLOCATE CHANNEL c1

DEVICE TYPE disk;

BACKUP

TAG '&2'

FORMAT '/u01/jingyu/&1%U.bck'

KEEP FOREVER

RESTORE POINT '&3'

DATABASE;

}

执行:

RUN

{

EXECUTE SCRIPT quarterly

USING arc_backup

bck1206

FY06Q4;

}

### 3.2.6 打印存储脚本 ###
打印存储脚本:

PRINT SCRIPT full_backup;

打印内容发送到脚本:

PRINT SCRIPT full_backup

TO FILE '/tmp/my_script_file.txt';

<h2 id="3.3">3.3 删除恢复目录</h2>
连接到catalog,执行删除(两次确认)。

RMAN> drop catalog;

RMAN> drop catalog;

<h2 id="3.4">3.4 更新恢复目录</h2>
比如RMAN恢复目录版本是10g,那么11g版本的RMAN客户端需要升级更新本地包和模式。
如果你10gR1版本之前创建的恢复目录, 并且RECOVERY_CATALOG_OWNER角色不包含CREATE TYPE权限,那么需要赋予CREATE TYPE的权限给恢复目录所有者。

SQL> GRANT CREATE TYPE TO rman;

升级catalog(两次确认):

RMAN> upgrade catalog;

RMAN> upgrade catalog;


<h1 id="4">四、Reference</h1>
- Oracle® Database Backup and Recovery User's Guide 11g Release 2 (11.2)
- OCP 认证考试指南 (1Z0-053)[M]. 清华大学出版社, 2010.

RMAN Catalog创建、配置和管理的更多相关文章

  1. 通过Rman catalog 创建及管理Oracle数据库备份

    基本环境信息target DB (需备份数据库) 192.168.199.67 ORACLE_SID=zgw HOSTNAME=Oracle11 catlog DB (备份管理数据库) 192.168 ...

  2. rman catalog (rman 恢复目录)

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

  3. 基于catalog 创建RMAN存储脚本

    --============================== -- 基于catalog 创建RMAN存储脚本 --============================== 简言之,将rman的 ...

  4. OCM_第十七天课程:Section7 —》GI 及 ASM 安装配置 _管理和配置 GRID /实施 ASM 故障组 /创建 ACFS 文件系统

    注:本文为原著(其内容来自 腾科教育培训课堂).阅读本文注意事项如下: 1:所有文章的转载请标注本文出处. 2:本文非本人不得用于商业用途.违者将承当相应法律责任. 3:该系列文章目录列表: 一:&l ...

  5. rman catalog配置

    1.创建表空间 create tablespace rman_tbs datafile '/u01/app/oracle/oradata/PROD1/rman_tbs01.dbf' size 200m ...

  6. RMAN 总括 组成 配置 检测

    RMAN 组件: 1. RMAN 执行程序, 也就是RMAN 命令. 2. Server session : 服务器上的进程, 是真正用来干活的. 3. Target database: 你想要进行备 ...

  7. oracle 11g 数据库恢复技术 --rman catalog

    Oracle RMAN的catalog并不是指标备份恢复操作的一个必要组件,但oracle推荐使用该组件.启用之后,归档日志.备份集.镜像复制等备份信息的保存地点是RMAN资料库(catalog), ...

  8. Azure Redis Cache (4) 配置和管理Redis Cache

    <Windows Azure Platform 系列文章目录> 我们在创建完Azure Redis Cache后,经常需要切换Redis Cache的服务级别,这里我简单介绍一下使用Azu ...

  9. mysql多实例的配置和管理

    原文地址:mysql多实例的配置和管理 作者:飞鸿无痕 多实例mysql的安装和管理 mysql的多实例有两种方式可以实现,两种方式各有利弊.第一种是使用多个配置文件启动不同的进程来实现多实例,这种方 ...

随机推荐

  1. 工作中那些提高你效率的神器(第一篇)_Everything

    引言 无论是工作还是科研,我们都希望工作既快又好,然而大多数时候却迷失在繁杂的重复劳动中,久久无法摆脱繁杂的事情. 你是不是曾有这样一种想法:如果我有哆啦A梦的口袋,只要拿出神奇道具就可解当下棘手的问 ...

  2. 通过c程序更改文件的ctime和mtime

    通过c程序更改文件的ctime和mtime与某个文件相同 源文件words.txt [root@bogon ~]# ll words.txt ;ll words.txt -u -rw-r--r-- 1 ...

  3. JSP页面以及JSP九大隐式对象

    €JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术. €JSP这门技术的最大的特点在于,写jsp就像在写html,但它相比 ...

  4. 编译安装PHP的参数 --with-mysql --with-mysqli --with-apxs2默认路径

    编译安装PHP时指定如下几个参数说明: --with-apxs2=/usr/local/apache/bin/apxs //整合apache,apxs功能是使用mod_so中的LoadModule指令 ...

  5. canvas初探3:画方画圆

    绘制矩形的方法,strokeRect().fillRect()及clearRect(). 方法 描述 strokeRect(double x,double y,double w,double h) 使 ...

  6. 基于Picture Library创建的图片文档库中的上传多个文件功能(upload multiple files)报错怎么解决?

    复现过程 首先,我创建了一个基于Picture Library的图片文档库,名字是 Pic Lib 创建完毕后,我点击它的Upload 下拉菜单,点击Upload Picture按钮 在弹出的对话框中 ...

  7. 成为OpenStack工程师

    OpenStack Hacker 态度:开放.主动.沟通 影响力:能说.能写.能分享 四化:自动化.流程化.系统化.文档化 0级 掌握一些基本技能:python.c.linux.git.unittes ...

  8. [转]runtime 消息机制

    原文地址:http://www.jianshu.com/p/f6300eb3ec3d 一.关于runtime 之前在项目中有遇到过用runtime解决改变全局字体的问题,所以再一次感受到了runtim ...

  9. 【直播】APP全量混淆和瘦身技术揭秘

    [直播]APP全量混淆和瘦身技术揭秘 近些年来移动APP数量呈现爆炸式的增长,黑产也从原来的PC端转移到了移动端,通过逆向手段造成数据泄漏.源码被盗.APP被山寨.破解后注入病毒或广告现象让用户苦不堪 ...

  10. 浅谈SQL Server数据库分页

    数据库分页是老生常谈的问题了.如果使用ORM框架,再使用LINQ的话,一个Skip和Take就可以搞定.但是有时由于限制,需要使用存储过程来实现.在SQLServer中使用存储过程实现分页的已经有很多 ...