设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 手机 数据 公司
当前位置: 首页 > 服务器 > 安全 > 正文

Oracle DBCA高级玩法:从模板选择、脚本调用到多租户

发布时间:2021-01-07 06:10 所属栏目:53 来源:网络整理
导读:《Oracle DBCA高级玩法:从模板选择、脚本调用到多租户》要点: 本文介绍了Oracle DBCA高级玩法:从模板选择、脚本调用到多租户,希望对您有用。如果有疑问,可以联系我们。 作者介绍 杨建荣,DBAplus社群联合发起人.现就职于搜狐畅游,OracleACE-A、YEP成员,

《Oracle DBCA高级玩法:从模板选择、脚本调用到多租户》要点:
本文介绍了Oracle DBCA高级玩法:从模板选择、脚本调用到多租户,希望对您有用。如果有疑问,可以联系我们。

作者介绍

杨建荣,DBAplus社群联合发起人.现就职于搜狐畅游,OracleACE-A、YEP成员,超7年数据库开发和运维经验,擅长电信数据业务、数据库迁移和性能调优.持Oracle10GOCP,OCM,MySQLOCP认证,《OracleDBA工作笔记》作者.

本篇文章的思路如下:

1.DBCA-熟悉而又陌生

2.Oracle中创建数据库的模板

3.解读seed模板的原理

4.解析seed模板创建数据库的过程

5.解析DBCA的调用脚本

6.DBCA和技术趋势发展的关系

1)DBDA和多租户的关系

2)通过DBCA创建DataGuard

一、DBCA-熟悉而又陌生

但凡是学过Oracle的同学,对DBCA(DatabaseConfigurationAssistant,DBCA)都不会陌生,有了这个工具,使得创建数据库成为可能.而DBCA本身有图形和静默两种方式.其中静默方式看起来高大上一些,因为一个看似复杂的创建数据库的过程,用一个命令就可以轻松搞定.静默安装的命令类似下面的形式,其中创建的数据库为testdb,字符集为ZHS16GBK.

dbca-silent-createDatabase-templateName$ORACLE_HOME/assistants/dbca/templates/General_Purpose.dbc-gdbnametestdb-sidtestdb-characterSetZHS16GBK-sysPasswordoracle-systemPasswordoracle

这样就了解了DBCA的整个过程吗?肯定不是.

二、Oracle中创建数据库的模板

首先需要了解一下上面命令里提到的模板General_Purpose.dbc,在10g中是分为四个模板(通用,OLTP,OLAP,定制)可供选择,而11g中目前存在三种模板可供选择,就是通用/OLTP、OLAP和定制类型,主要是通用模板和OLTP模板耦合度太高,所以11g中我们看到的是三个模板,如下图所示.

需要说明的是对于模板类型有seed和noseed两种,主要的区别在于是否包含数据文件(对应上图红色标识的“IncludesDatafiles”),简单来说,seed就是从RMAN备份中还原恢复数据库,由于是这个过程是使用通用模板,不能做其他更多的定制修改,但是最大的特点是创建速度快,OLTP和OLAP的模板就属于seed模板类型;而“定制数据库”模板则属于noseed模板,不包含数据文件,需要使用createdatabase命令创建数据库,需要初始化数据字典,安装组件等,创建时间要长很多,对于大部分系统业务来说,需要根据自己的需求来选择合适的模板类型.

三、解读seed模板的原理

seed模板的方式是使用RMAN恢复来完成,那么数据备份在哪里呢?在$ORACLE_HOME/assistants/dbca/templates下面.

[oracle@newtest templates]$ ll
total 301544
-rw-r–r– 1 oracle oinstall????? 5104 Aug 24? 2013 Data_Warehouse.dbc
-rwxr-xr-x 1 oracle oinstall? 21741568 Aug 27? 2013 example01.dfb
-rwxr-xr-x 1 oracle oinstall?? 1507328 Aug 27? 2013 example.dmp
-rw-r–r– 1 oracle oinstall????? 4984 Aug 24? 2013 General_Purpose.dbc
-rw-r–r– 1 oracle oinstall???? 11489 May? 1? 2013 New_Database.dbt
-rwxr-xr-x 1 oracle oinstall?? 9748480 Aug 27? 2013 Seed_Database.ctl
-rwxr-xr-x 1 oracle oinstall 275750912 Aug 27? 2013 Seed_Database.dfb

可能到这里还不大明白,其实在这里Seed_Database.dfb就是RMAN的备份.

而可以很清楚看到数据库的db_name是seed_database这样的字眼,其实是在创建的过程中修改了db_name,如果用数据库的工具来理解,就是一个nid修改db_name. 如果我们通过strings的方式解析这些文件就会发现db_name是seeddata.

四、解析seed模板创建数据库的过程

当然DBCA静默这个过程很容易实践.我们花几分钟就能手工完成这个过程.

首先假设我们需要创建的数据库为testdb,我们初始化目录结构.

mkdir -p /U01/app/oracle/oradata/testdb/

1、如何处理参数文件

然后在$ORACLE_HOME/dbs下初始化参数文件initseeddata.ora,内容如下:

db_name=seeddata
sga_target=500M
control_files=/U01/app/oracle/oradata/testdb/control01.ctl

这里尤其注意参数的设置,db_name为seeddata,控制文件的目录为testdb相关.完成这一步我们就可以上道了.

启动数据库到nomount阶段,证明参数文件是设置生效了.

SQL> startup nomount
ORACLE instance started.
Total System Global Area? 521936896 bytes
Fixed Size???????? 2254824 bytes

2、如何处理控制文件

而要启动到mount阶段,控制文件怎么处理,我们是从模板的路径下拷贝一个,就可以启动到mount阶段了.

cp Seed_Database.ctl ?/U01/app/oracle/oradata/testdb/control01.ctl

SQL> alter database mount;
Database altered.

3、如何处理Redo日志

那数据文件,redo这些文件怎么处理,我们先来处理redo,数据文件稍后处理.

当前的redo的设置如下,目前来看是不可用的情况,因为路径是不符合需求的.

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读