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

数据库管理-第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

#关闭SELinux
sed -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包下载地址为:
#https://www.oracle.com/database/free/get-started/
#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,TCCDB2
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=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 name
TCCDB1 =
  (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 name
PROD_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 name
PRIMCDB =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = db01)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SID = PRIMCDB)
    )
  )


# Primary database application service name
PROD =
  (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=true
enable_pluggable_database=true
db_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=true
enable_pluggable_database=true
db_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功能还不可用,下一期将进行后续配置。
老规矩,知道写了些啥。

  • 17
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

胖头鱼的鱼缸(尹海文)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值