数据库管理182期 2024-05-05
- 数据库管理-第182期 23ai:惊喜的全功能缓存True Cache-2安装部署(20240505)
- 1 主机配置
- 2 操作系统配置
- 2.1 基础配置
- 2.2 配置hosts
- 2.3 安装preinstall RPM包
- 2.4 创建目录
- 2.5 配置环境变量
- 3 部署数据库
- 3.1 部署DB软件
- 3.2 创建监听
- 3.3 创建数据库
- 3.4 验证数据库
- 3.5 部署sample schemas
- 4 部署True Cache
- 4.1 先决条件
- 4.2 使用DBCA创建True Cache
- 4.3 手工创建True Cache
- 4.3.1 配置tnsname
- 4.3.2 True Cache节点配置监听
- 4.3.3 拷贝密码文件
- 4.3.4 准备True Cache的pfile
- 4.3.7 创建目录
- 4.3.6 创建并启动True Cache
- 总结
数据库管理-第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 主机配置
关于主机操作系统的安装过程这里依然省略。
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
EOFcat >> .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;
3.5 部署sample schemas
详见Oracle在GitHub上页面:https://github.com/oracle-samples/db-sample-schemas
本次在PRIMPDB1中部署sample schemas中的HR、SH、CO,部署步骤省略。
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)))
db02,$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;
至此没有报错,两台True Cache都以搭建完成。
总结
本期演示了如何部署单实例数据库以及搭建True Cache的过程,但到现在True Cache功能还不可用,下一期将进行后续配置。
老规矩,知道写了些啥。