数据库管理-第182期 23ai:惊喜的全功能缓存True Cache-2安装部署(20240505)

来源:这里教程网 时间:2026-03-03 19:55:31 作者:

数据库管理-第182期 23ai:惊喜的全功能缓存True Cache-2安装部署(20240505)

作者:胖头鱼的鱼缸(尹海文) Oracle ACE Associate: Database(Oracle与MySQL) PostgreSQL ACE Partner 10年数据库行业经验,现主要从事数据库服务工作 拥有OCM 11g/12c/19c、MySQL 8.0 OCP、Exadata、CDP等认证 墨天轮MVP、认证技术专家、年度墨力之星,ITPUB认证专家、专家百人团成员,OCM讲师,PolarDB开源社区技术顾问,OceanBase观察团成员 圈内拥有“总监”、“保安”、“国产数据库最大敌人”等称号,非著 名社恐(社交恐怖分子) 公众号:胖头鱼的鱼缸;CSDN:胖头鱼的鱼缸(尹海文);墨天轮:胖头鱼的鱼缸;ITPUB:yhw1809。 除授权转载并标明出处外,均为“非法”抄袭

上一期讲了True Cache的基础概念,本期除了True Cache配置外还包含操作系统配置以及单实例数据库安装。再次说明演示版本同之前DG_PDB版本一样为特殊版本。

1 主机配置

image.png 关于主机操作系统的安装过程这里依然省略。

2 操作系统配置

2.1 基础配置

#关闭防火墙systemctl stop firewalld.service 
systemctl disable firewalld.service
#关闭SELinuxsed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config
setenforce 0
#配置tmpfs
echo "tmpfs /dev/shm tmpfs defaults,size=`head -1 /proc/meminfo | tr -s ' ' | cut -d ' ' -f2`k 0 0">> /etc/fstab
systemctl daemon-reload
mount -o remount /dev/shm

2.2 配置hosts

cat >> /etc/hosts <<EOF
10.10.10.231	db01
10.10.10.232	db02
10.10.10.233	db03
EOF

2.3 安装preinstall RPM包

#这里忽略yum源配置,如离线部署则需要配置本地yum源
#针对Oracle Database 23ai在OracleLinux 9的preinstall RPM包下载地址为:
# 
#RPM包名称为:oracle-database-preinstall-23ai-1.0-2.el9.x86_64.rpm
yum -y install oracle-database-preinstall-23ai-1.0-2.el9.x86_64.rpm

2.4 创建目录

mkdir /u01/app/oracle/product/23.0.0/dbhome_1 -p
chown oracle:oinstall /u01 -R

2.5 配置环境变量

su - oracle
cat >> .bash_profile <<EOF
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/23.0.0/dbhome_1
export ORACLE_SID=PRIMCDB
export PATH=\$ORACLE_HOME/bin:$PATH
export DISPLAY=:0
EOF
#其余节点SID分别为TCCDB1,TCCDB2cat >> .bash_profile <<EOF
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/23.0.0/dbhome_1
export ORACLE_SID=TCCDB1
export PATH=\$ORACLE_HOME/bin:$PATH
export DISPLAY=:0
EOF
cat >> .bash_profile <<EOF
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/23.0.0/dbhome_1
export ORACLE_SID=TCCDB2
export PATH=\$ORACLE_HOME/bin:$PATH
export DISPLAY=:0
EOF

3 部署数据库

3.1 部署DB软件

Oracle Database 23ai单实例软件部署方式同19c、21c一致,这里不做过多展示。

3.2 创建监听

netca#过程略

3.3 创建数据库

dbca
#过程略

注:从21c开始Oracle数据库部署必须采用CDB模式

CDB名称为PRIMCDB,PDB名称为PRIMPDB1。 数据库数据文件存储位置为:{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}。 开启FRA及归档模式。

3.4 验证数据库

sql / as sysdba
#这里也“重新”引入一下从12.2开始加入的新的数据库连接工具,sql可以上下翻页并且自适应列宽度和页长度,但是需要数据库启动才能连接,无法进行startup操作
select banner_full from v$version;select con_id,name,open_mode from v$containers;

image.png

3.5 部署sample schemas

详见Oracle在GitHub上页面:https://github.com/oracle-samples/db-sample-schemas 本次在PRIMPDB1中部署sample schemas中的HR、SH、CO,部署步骤省略。 image.png

4 部署True Cache

4.1 先决条件

  • 在True Cache节点安装数据库软件
  • 确保主库(Primary Database)是归档模式(ARCHIVELOG MODE)
  • 不要在主库配置LOG_ARCHIVE_CONFIG和LOG_ARCHIVE_DEST_n参数,True Cache会自动在主库配置这些参数

    4.2 使用DBCA创建True Cache

    这里和之前搭ADG一样还是不大喜欢用dbca来创建True Cache,相关内容可以通过下面网址进行查看,这里不做演示了:

    https://docs.oracle.com/en/database/oracle/oracle-database/23/odbtc/configuring-true-cache-oracle-dbca.html

    4.3 手工创建True Cache

    4.3.1 配置tnsname

    需要在主库和True Cache节点都配置相同的tnsname,$ORACLE_HOME/network/admin/tnsnames.ora:

    # True Cache network nameTCCDB1 =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = db02)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SID = TCCDB1)
        )
      )
      
    TCCDB2 =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = db03)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SID = TCCDB2)
        )
      )
    # True Cache database application service namePROD_TC =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = db02)(PORT = 1521))
          (ADDRESS = (PROTOCOL = TCP)(HOST = db03)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVICE_NAME = PROD_TC)
        )
      )
    # Primary database network namePRIMCDB =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = db01)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SID = PRIMCDB)
        )
      )
      
    # Primary database application service namePROD =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = db01)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVICE_NAME = PROD)
        )
      )
      
    listener_primary =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = db01)(PORT=1521))
      )
      
    listener_true_cache =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = db02)(PORT=1521))
        (ADDRESS = (PROTOCOL = TCP)(HOST = db03)(PORT=1521))
      )

    4.3.2 True Cache节点配置监听

    db02,$ORACLE_HOME/network/admin/listener.ora:

    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (GLOBAL_DBNAME = TCCDB1)
          (ORACLE_HOME = /u01/app/oracle/product/23.0.0/dbhome_1)
        (SID_NAME = TCCDB1)
        )
      )
      
    LISTENER =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = db02)(PORT = 1521))
      )

    db03,$ORACLE_HOME/network/admin/listener.ora:

    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (GLOBAL_DBNAME = TCCDB2)
          (ORACLE_HOME = /u01/app/oracle/product/23.0.0/dbhome_1)
        (SID_NAME = TCCDB2)
        )
      )
      
    LISTENER =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = db03)(PORT = 1521))
      )

    4.3.3 拷贝密码文件

    这里需要将主库的密码文件(如果使用还需要拷贝wallet)至True Cache节点。

    scp $ORACLE_HOME/dbs/orapwPRIMCDB db02:$ORACLE_HOME/dbs/orapwTCCDB1
    scp $ORACLE_HOME/dbs/orapwPRIMCDB db03:$ORACLE_HOME/dbs/orapwTCCDB2

    4.3.4 准备True Cache的pfile

    db02,$ORACLE_HOME/dbs/initTCCDB1.ora

    true_cache=trueenable_pluggable_database=truedb_name=PRIMCDB
    db_unique_name=TCCDB1
    db_files=200
    sga_target=4G
    fal_server=PRIMCDB
    fal_client=TCCDB1
    instance_name=TCCDB1
    db_create_file_dest=/u01/app/oracle/oradata
    local_listener=listener
    remote_listener=listener_primary

    db03,$ORACLE_HOME/dbs/initTCCDB2.ora

    true_cache=trueenable_pluggable_database=truedb_name=PRIMCDB
    db_unique_name=TCCDB2
    db_files=200
    sga_target=4G
    fal_server=PRIMCDB
    fal_client=TCCDB2
    instance_name=TCCDB2
    db_create_file_dest=/u01/app/oracle/oradata
    local_listener=listener
    remote_listener=listener_primary

    4.3.7 创建目录

    在db02和db03创建物理文件目录:

    mkdir /u01/app/oracle/oradata

    4.3.6 创建并启动True Cache

    db02和db03操作:

    sqlplus / as sysdba
    startup nomount
    --验证密码文件位置
    SELECT file_name FROM v$passwordfile_info;
    --创建比启动True Cache
    CREATE TRUE CACHE;

    image.png image.png

    至此没有报错,两台True Cache都以搭建完成。

    总结

    本期演示了如何部署单实例数据库以及搭建True Cache的过程,但到现在True Cache功能还不可用,下一期将进行后续配置。 老规矩,知道写了些啥。

  • 相关推荐