前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[译] Oracle Database 18c 中的只读 Oracle 主目录

[译] Oracle Database 18c 中的只读 Oracle 主目录

作者头像
Lucifer三思而后行
发布2022-04-13 17:43:00
9780
发布2022-04-13 17:43:00
举报

原文地址:https://oracle-base.com/articles/18c/read-only-oracle-homes-18c 原文作者:Tim Hall

Oracle 18C 引入了只读 Oracle 主目录的概念,其中所有配置和日志文件都可以与 Oracle 二进制文件分开保存。

目录

为什么要这么做?

对于其他一些产品,将配置与二进制文件分开是一种常见的做法。

  • Tomcat 具有软件所在的 CATALINA_HOME 和配置、应用程序文件和日志文件所在的 CATALINA_BASE 的概念。
  • WebLogic 安装的最佳实践是将配置(域和应用程序)保留在中间件主目录之外。
  • Oracle 数据库安装的最佳实践是将数据文件保存在 ORACLE_HOME 目录之外。

只读 Oracle 主目录的概念是数据库产品的自然演变,它可以在更新补丁和升级期间更轻松地在现有 Oracle 主目录之间进行克隆和切换,而无需查找所有其他配置文件。

先决条件

本文假设您已经安装了 Oracle 数据库 18C 的仅软件安装,如下所述:

注意在创建数据库实例之前停止。

启用只读 Oracle 主目录

roohctl 脚本(只读 Oracle Home CTL)用于启用只读 Oracle Home,通过下方例子演示:

代码语言:javascript
复制
$ cd $ORACLE_HOME/bin
$ ./roohctl -enable 
Enabling Read-Only Oracle home.
Update orabasetab file to enable Read-Only Oracle home.
Orabasetab file has been updated successfully.
Create bootstrap directories for Read-Only Oracle home.
Bootstrap directories have been created successfully.
Bootstrap files have been processed successfully.
Read-Only Oracle home has been enabled successfully.
Check the log file /u01/app/oracle/cfgtoollogs/roohctl/roohctl-180728AM112212.log.
$

“homes” 和 “dbs” 目录已经在 ORACLE_BASE 目录下被创建 :

代码语言:javascript
复制
$ ls $ORACLE_BASE
cfgtoollogs  checkpoints  dbs  diag  homes  product
$

在创建数据库之前,“dbs”目录将是空的,“homes”目录具有以下结构:

代码语言:javascript
复制
$ cd $ORACLE_BASE/homes
$ tree
.
└── OraDB18Home1
    ├── assistants
    │   └── dbca
    │       └── templates
    ├── dbs
    ├── install
    ├── network
    │   ├── admin
    │   ├── log
    │   └── trace
    └── rdbms
        ├── audit
        └── log

13 directories, 0 files
$

创建数据库

启用只读 Oracle 主目录后,我们现在可以创建数据库:

代码语言:javascript
复制
lsnrctl start

dbca -silent -createDatabase                                                   \
     -templateName General_Purpose.dbc                                         \
     -gdbname ${ORACLE_SID} -sid  ${ORACLE_SID} -responseFile NO_VALUE         \
     -characterSet AL32UTF8                                                    \
     -sysPassword SysPassword1                                                 \
     -systemPassword SysPassword1                                              \
     -createAsContainerDatabase true                                           \
     -numberOfPDBs 1                                                           \
     -pdbName ${PDB_NAME}                                                      \
     -pdbAdminPassword PdbPassword1                                            \
     -databaseType MULTIPURPOSE                                                \
     -memoryMgmtType auto_sga                                                  \
     -totalMemory 2000                                                         \
     -storageType FS                                                           \
     -datafileDestination "${DATA_DIR}"                                        \
     -redoLogFileSize 50                                                       \
     -emConfiguration NONE                                                     \
     -ignorePreReqs

检查文件系统

创建数据库后,将在新目录中创建文件,“dbs” 目录的内容如下所示(在一个可读写的 Oracle 主目录中,我们可以在 $ORACLE_HOME/dbs 目录下看到这些文件):

代码语言:javascript
复制
$ cd $ORACLE_BASE/dbs
$ tree
.
├── hc_cdb1.dat
├── initcdb1.ora
├── lkCDB1
├── orapwcdb1
└── spfilecdb1.ora

0 directories, 5 files
$

“homes” 目录的内容如下所示:

代码语言:javascript
复制
$ cd $ORACLE_BASE/homes
$ tree
.
└── OraDB18Home1
    ├── assistants
    │   └── dbca
    │       └── templates
    ├── dbs
    ├── install
    ├── log
    │   ├── diag
    │   │   └── adrci_dir.mif
    │   └── localhost
    │       └── client
    │           └── tnslsnr_26425.log
    ├── network
    │   ├── admin
    │   ├── log
    │   └── trace
    └── rdbms
        ├── audit
        └── log
            ├── cdb1_ora_26901.trc
            ├── cdb1_ora_27066.trc
            ├── cdb1_ora_27164.trc
            ├── cdb1_ora_27984.trc
            ├── cdb1_ora_27985.trc
            ├── cdb1_ora_29244.trc
            ├── cdb1_ora_29249.trc
            ├── opatch
            │   ├── lsinv
            │   │   ├── lsinventory2018-07-28_11-48-30AM.txt
            │   │   ├── lsinventory2018-07-28_11-48-34AM.txt
            │   │   ├── lsinventory2018-07-28_11-53-39AM.txt
            │   │   ├── lsinventory2018-07-28_11-54-16AM.txt
            │   │   ├── lsinventory2018-07-28_11-54-20AM.txt
            │   │   └── lsinventory2018-07-28_11-58-00AM.txt
            │   ├── opatch2018-07-28_11-48-30AM_1.log
            │   ├── opatch2018-07-28_11-48-34AM_1.log
            │   ├── opatch2018-07-28_11-53-39AM_1.log
            │   ├── opatch2018-07-28_11-54-16AM_1.log
            │   ├── opatch2018-07-28_11-54-20AM_1.log
            │   ├── opatch2018-07-28_11-58-00AM_1.log
            │   └── opatch_history.txt
            ├── qopatch.log
            └── qopatch_log.log

19 directories, 24 files
$

路径和导航

“orabasetab” 文件包含 “/etc/oratab” 文件中的 ORACLE_HOME、ORACLE_BASE 和“$ORACLE_BASE/homes” 目录下的主目录名称之间的映射:

代码语言:javascript
复制
$ cat $ORACLE_HOME/install/orabasetab
#orabasetab file is used to track Oracle Home associated with Oracle Base
/u01/app/oracle/product/18.0.0/dbhome_1:/u01/app/oracle:OraDB18Home1:Y:
$

orabaseconfig 和 orabasehome 命令显示配置的有效位置,对于读写 Oracle 主目录,orabaseconfig 和 orabasehome 命令都返回 ORACLE_HOME 值。对于只读 Oracle 主目录,orabaseconfig 命令返回 ORACLE_BASE 位置。对于只读 Oracle 主目录,orabasehome 命令返回 “$ORACLE_BASE/homes” 目录下的相关路径:

代码语言:javascript
复制
# 读写 Oracle home.

$ . oraenv
ORACLE_SID = [cdb1] ?
The Oracle base remains unchanged with value /u01/app/oracle
$ $ORACLE_HOME/bin/orabaseconfig
/u01/app/oracle/product/18.0.0/dbhome_1
$ $ORACLE_HOME/bin/orabasehome
/u01/app/oracle/product/18.0.0/dbhome_1
$

# 只读 Oracle home.

$ . oraenv
ORACLE_SID = [cdb1] ?
The Oracle base remains unchanged with value /u01/app/oracle
$ $ORACLE_HOME/bin/orabaseconfig
/u01/app/oracle
$ $ORACLE_HOME/bin/orabasehome
/u01/app/oracle/homes/OraDB18Home1
$

如果 “$ORACLE_HOME/bin” 路径是 PATH 环境变量的一部分,我们可以如下导航:

代码语言:javascript
复制
$ cd $(orabaseconfig)
$ pwd
/u01/app/oracle
$ cd $(orabasehome)
$ pwd
/u01/app/oracle/homes/OraDB18Home1
$
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022/01/19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 目录
  • 为什么要这么做?
  • 先决条件
  • 启用只读 Oracle 主目录
  • 创建数据库
  • 检查文件系统
  • 路径和导航
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档