前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >RMAN Catalog创建、配置和管理

RMAN Catalog创建、配置和管理

作者头像
Alfred Zhao
发布2019-05-24 20:24:57
6050
发布2019-05-24 20:24:57
举报

环境:RHEL6.4 + Oracle 11.2.0.4

一、创建数据库catdb

  • 1.1 官档的建库脚本示例
  • 1.2 根据我实际环境修改如下项
  • 1.3 创建必要目录并赋予权限
  • 1.4 执行脚本建库

二、配置catdb为catalog数据库

  • 2.1 创建表空间
  • 2.2 创建用户
  • 2.3 创建CATALOG
  • 2.4 目标数据库注册到CATALOG

三、管理catalog数据库

  • 3.1 创建和管理VPC
  • 3.2 创建和管理存储脚本
  • 3.3 删除恢复目录
  • 3.4 更新恢复目录

四、Reference

一、创建数据库catdb

1.1 官档的建库脚本示例

代码语言:javascript
复制
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 根据我实际环境修改如下项

代码语言:javascript
复制
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

代码语言:javascript
复制
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 创建必要目录并赋予权限

代码语言:javascript
复制
#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变量

代码语言:javascript
复制
export ORACLE_SID=catdb

1.4.2 编辑初始化参数文件

vi $ORACLE_HOME/dbs/init$ORACLE_SID.ora

代码语言:javascript
复制
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 创建服务器参数文件并启动实例

创建服务器参数文件,以服务器参数文件启动数据库

代码语言:javascript
复制
SQL> create spfile from pfile;
SQL> startup nomount

1.4.4 运行建库脚本建库

代码语言:javascript
复制
SQL> @/home/oracle/create_db.sql

Database created.

然后执行以下脚本:

代码语言:javascript
复制
@?/rdbms/admin/catalog.sql
@?/rdbms/admin/catproc.sql
conn system/oracle
@?/sqlplus/admin/pupbld.sql

1.4.5 配置tnsnames.ora

代码语言:javascript
复制
CATDB =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = JY-DB02)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = catdb)
    )
  )

二、配置catdb为catalog数据库

2.1 创建表空间

代码语言:javascript
复制
CREATE TABLESPACE TOOLS DATAFILE '/u01/oradata03/catdb/tools.dbf' SIZE 15M REUSE AUTOEXTEND ON NEXT 15M MAXSIZE 1500M;

2.2 创建用户

代码语言:javascript
复制
CREATE USER rman IDENTIFIED BY rman
  TEMPORARY TABLESPACE tempts1
  DEFAULT TABLESPACE tools 
  QUOTA UNLIMITED ON tools;

GRANT RECOVERY_CATALOG_OWNER TO rman;

2.3 创建CATALOG

代码语言:javascript
复制
$ rman catalog rman/rman
RMAN> CREATE CATALOG;

2.4 目标数据库注册到CATALOG

在目标数据库执行:

代码语言:javascript
复制
rman TARGET / CATALOG rman@catdb
REGISTER DATABASE;

三、管理catalog数据库

3.1 创建和管理VPC(virtual private catalogs)

3.1.1 创建表空间,用户,赋权

代码语言:javascript
复制
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用户注册数据库权限

代码语言:javascript
复制
$ rman catalog rman/rman@catdb
RMAN> GRANT REGISTER DATABASE TO vpc1;

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

代码语言:javascript
复制
RMAN> CONNECT CATALOG vpc1@catdb;
RMAN>  CREATE VIRTUAL CATALOG;

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

代码语言:javascript
复制
SQL> EXECUTE base_catalog_owner.DBMS_RCVCAT.CREATE_VIRTUAL_CATALOG;

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

代码语言:javascript
复制
$ rman catalog rman/rman@catdb
RMAN> GRANT CATALOG FOR DATABASE jingyu TO vpc1;

3.2 创建和管理存储脚本

首先连接到目标数据库和恢复目录。

3.2.1 创建全局脚本

代码语言:javascript
复制
CREATE GLOBAL SCRIPT global_full_backup 
{     
  BACKUP DATABASE PLUS ARCHIVELOG;
  DELETE OBSOLETE;
}

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

代码语言:javascript
复制
CREATE GLOBAL SCRIPT global_full_backup 
COMMENT 'use only with ARCHIVELOG mode databases'
{     
  BACKUP DATABASE PLUS ARCHIVELOG;
  DELETE OBSOLETE;
}

3.2.2 创建本地脚本

代码语言:javascript
复制
CREATE SCRIPT full_backup 
{     
  BACKUP DATABASE PLUS ARCHIVELOG;
  DELETE OBSOLETE;
}

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

代码语言:javascript
复制
CREATE SCRIPT full_backup 
  FROM FILE '/tmp/my_script_file.txt';

3.2.3 替换存储脚本

代码语言:javascript
复制
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 执行存储脚本

代码语言:javascript
复制
RUN 
{
  EXECUTE GLOBAL SCRIPT global_full_backup;
}

RUN
{ 
  EXECUTE SCRIPT global_full_backup; 
}

如果没有本地脚本是global_full_backup这个名字,那么上面两个命令效果一样,如果有,那么第二个命令则会优先执行本地脚本。

3.2.5 创建和管理动态存储脚本

登录RMAN

代码语言:javascript
复制
rman TARGET / CATALOG rman@catdb USING arc_backup bck0906 FY06Q3

创建动态存储脚本:

代码语言:javascript
复制
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;
}

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

代码语言:javascript
复制
Replace SCRIPT quarterly { 
  ALLOCATE CHANNEL c1
    DEVICE TYPE disk;
  BACKUP
    TAG '&2'
    FORMAT '/u01/jingyu/&1%U.bck'
    KEEP FOREVER
    RESTORE POINT '&3'
    DATABASE;
}

执行:

代码语言:javascript
复制
RUN
{ 
  EXECUTE SCRIPT quarterly 
    USING arc_backup
          bck1206
          FY06Q4;
}

3.2.6 打印存储脚本

打印存储脚本:

代码语言:javascript
复制
PRINT SCRIPT full_backup;

打印内容发送到脚本:

代码语言:javascript
复制
PRINT SCRIPT full_backup 
  TO FILE '/tmp/my_script_file.txt';

3.3 删除恢复目录

连接到catalog,执行删除(两次确认)。

代码语言:javascript
复制
RMAN> drop catalog;
RMAN> drop catalog;

3.4 更新恢复目录

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

代码语言:javascript
复制
SQL> GRANT CREATE TYPE TO rman;

升级catalog(两次确认):

代码语言:javascript
复制
RMAN> upgrade catalog;
RMAN> upgrade catalog;

四、Reference

  • Oracle® Database Backup and Recovery User's Guide 11g Release 2 (11.2)
  • OCP 认证考试指南 (1Z0-053)[M]. 清华大学出版社, 2010.
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015-10-09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、创建数据库catdb
    • 1.1 官档的建库脚本示例
      • 1.2 根据我实际环境修改如下项
        • 1.3 创建必要目录并赋予权限
          • 1.4 执行脚本建库
            • 1.4.1 声明ORACLE_SID变量
            • 1.4.2 编辑初始化参数文件
            • 1.4.3 创建服务器参数文件并启动实例
            • 1.4.4 运行建库脚本建库
            • 1.4.5 配置tnsnames.ora
        • 二、配置catdb为catalog数据库
          • 2.1 创建表空间
            • 2.2 创建用户
              • 2.3 创建CATALOG
                • 2.4 目标数据库注册到CATALOG
                • 三、管理catalog数据库
                  • 3.1 创建和管理VPC(virtual private catalogs)
                    • 3.1.1 创建表空间,用户,赋权
                    • 3.1.2 恢复目录所有者RMAN登录赋予vpc1用户注册数据库权限
                    • 3.1.3 虚拟专用目录RMAN登录创建虚拟CATALOG
                    • 3.1.4 恢复目录所有者RMAN登录赋予vpc1用户已注册数据库的访问权限
                  • 3.2 创建和管理存储脚本
                    • 3.2.1 创建全局脚本
                    • 3.2.2 创建本地脚本
                    • 3.2.3 替换存储脚本
                    • 3.2.4 执行存储脚本
                    • 3.2.5 创建和管理动态存储脚本
                    • 3.2.6 打印存储脚本
                  • 3.3 删除恢复目录
                    • 3.4 更新恢复目录
                    • 四、Reference
                    相关产品与服务
                    数据库
                    云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档