官方文档
https://docs.oracle.com/en/database/oracle/oracle-database/21/ladbi/index.html
复制
主机规划
主机名 | IP地址 | 磁盘空间 | 内存 | 操作系统版本 | 数据库版本 |
forest.oracle.com | 192.168.255.221 | 500G | 64G | Oracle Linux 8.10 | Oracle 21c |
查看操作系统
[root@forest ~]# cat /etc/os-release
NAME="Oracle Linux Server"
VERSION="8.10"
ID="ol"
ID_LIKE="fedora"
VARIANT="Server"
VARIANT_ID="server"
VERSION_ID="8.10"
PLATFORM_ID="platform:el8"
PRETTY_NAME="Oracle Linux Server 8.10"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:oracle:linux:8:10:server"
HOME_URL="https://linux.oracle.com/"
BUG_REPORT_URL="https://github.com/oracle/oracle-linux"
ORACLE_BUGZILLA_PRODUCT="Oracle Linux 8"
ORACLE_BUGZILLA_PRODUCT_VERSION=8.10
ORACLE_SUPPORT_PRODUCT="Oracle Linux"
ORACLE_SUPPORT_PRODUCT_VERSION=8.10
复制
查看磁盘分区
[root@forest ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 13.2G 0 rom
sr1 11:1 1 67.6M 0 rom
vda 251:0 0 500G 0 disk
├─vda1 251:1 0 1G 0 part /boot
└─vda2 251:2 0 499G 0 part
├─ol_forest-root 252:0 0 100G 0 lvm /
├─ol_forest-swap 252:1 0 16G 0 lvm [SWAP]
├─ol_forest-tmp 252:2 0 4G 0 lvm /tmp
└─ol_forest-u01 252:3 0 379G 0 lvm /u01
[root@forest ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 32G 0 32G 0% /dev
tmpfs tmpfs 32G 0 32G 0% /dev/shm
tmpfs tmpfs 32G 8.6M 32G 1% /run
tmpfs tmpfs 32G 0 32G 0% /sys/fs/cgroup
/dev/mapper/ol_forest-root xfs 100G 2.9G 98G 3% /
/dev/mapper/ol_forest-tmp xfs 4.0G 61M 4.0G 2% /tmp
/dev/mapper/ol_forest-u01 xfs 379G 2.7G 377G 1% /u01
/dev/vda1 xfs 1014M 263M 752M 26% /boot
tmpfs tmpfs 6.3G 0 6.3G 0% /run/user/0
复制
关闭防火墙并禁止开机自启动
[root@forest ~]# systemctl stop firewalld
[root@forest ~]# systemctl disable firewalld
复制
禁用selinux
临时生效
[root@forest ~]# setenforce 0
修改配置文件重启后永久生效
[root@forest ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
复制
修改hosts配置文件
[root@forest ~]# cat <<-EOF >>/etc/hosts
> 192.168.255.221 forest forest.oracle.com
> EOF
测试
[root@forest ~]# ping forest -c 2
[root@forest ~]# ping forest.oracle.com -c 2
复制
创建用户和组
1、创建组
[root@forest ~]# /usr/sbin/groupadd -g 54321 oinstall
[root@forest ~]# /usr/sbin/groupadd -g 54322 dba
[root@forest ~]# /usr/sbin/groupadd -g 54323 oper
[root@forest ~]# /usr/sbin/groupadd -g 54324 backupdba
[root@forest ~]# /usr/sbin/groupadd -g 54325 dgdba
[root@forest ~]# /usr/sbin/groupadd -g 54326 kmdba
[root@forest ~]# /usr/sbin/groupadd -g 54330 racdba
2、创建oracle用户,主组oinstall,附加组dba,oper,backupdba,dgdba,kmdba,racdba
[root@forest ~]# /usr/sbin/useradd -u 54321 -g oinstall -G dba,oper,backupdba,dgdba,kmdba,racdba oracle
3、设置oracle密码
[root@forest ~]# /usr/sbin/useradd -u 54321 -g oinstall -G dba,oper,backupdba,dgdba,kmdba,racdba oracle
[root@forest ~]# echo "oracle" | passwd --stdin oracle
Changing password for user oracle.
passwd: all authentication tokens updated successfully.
[root@forest ~]# id oracle
uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba),54323(oper),54324(backupdba),54325(dgdba),54326(kmdba),54330(racdba)
复制
安装yum依赖包
参考官方文档,安装yum依赖包
[root@forest ~]# yum install bc binutils compat-openssl10 elfutils-libelf glibc glibc-devel ksh libaio libXrender libX11 libXau libXi libXtst libgcc libnsl libstdc++ libxcb libibverbs make policycoreutils policycoreutils-python-utils smartmontools sysstat
创建目录并修改权限
复制
创建目录
[root@forest ~]# mkdir -p /u01/app/oracle
[root@forest ~]# mkdir -p /u01/app/oraInventory
[root@forest ~]# chown -R oracle:oinstall /u01/app/oracle
[root@forest ~]# chown -R oracle:oinstall /u01/app/oraInventory
[root@forest ~]# chmod -R 775 /u01/app
复制
调整系统内核参数
#kernel.shmmax 表示单个共享内存段的最大字节
#kernel.shmall 表示可以在系统范围内使用的共享内存总量(页为单位)
#kernel.shmmni 用于设置系统范围内共享内存段的最大数量
#kernel.shmmax=kernel.shmall*kernel.shmmni
#fs.aio-max-nr 表示同时可以拥有的异步IO请求数量
#fs.file-max 表示系统级别能够打开的文件句柄的数量
#net.ipv4.ip_local_port_range 表示端口范围
#net.core.rmem_default 表示接收套接字缓冲区大小默认值
#net.core.rmem_max 表示接收套接字缓冲区大小最大值
#net.core.wmem_default 表示发送套接字缓冲区大小默认值
# net.core.wmem_max 表示发送套接字缓冲区大小最大值
[root@forest ~]# vi /etc/sysctl.d/99-sysctl.conf
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
kernel.panic_on_oops = 1
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.conf.all.rp_filter = 2
net.ipv4.conf.default.rp_filter = 2
fs.aio-max-nr = 1048576
fs.file-max = 6815744
net.ipv4.ip_local_port_range = 9000 65500
使参数生效
[root@forest ~]# sysctl -p
复制
调整系统资源参数
[root@forest ~]# vim /etc/security/limits.conf
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384
oracle soft stack 10240
oracle hard stack 32768
oracle hard memlock 134217728
oracle soft memlock 134217728
oracle soft data unlimited
oracle hard data unlimited
复制
调整用户访问资源参数
[root@forest ~]# cat <<-EOF >>/etc/pam.d/login
> session required pam_limits.so
> EOF
复制
设置透明大页
官方文档建议将透明大页参数transparent_hugepages的值设为madvise。12c,19c版本该参数的值设为never,也就是关闭透明大页。
[root@forest ~]# sed -i 's/quiet/quiet transparent_hugepage=madvise/' /etc/default/grub
使参数生效
[root@forest ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
done
复制
关闭numa
[root@forest ~]# sed -i 's/quiet/quiet transparent_hugepage=madvise numa=off/' /etc/default/grub
使参数生效
[root@forest ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
done
复制
上传软件至服务器
E:\BaiduNetdiskDownload>scp LINUX.X64_213000_db_home.zip root@192.168.255.221:~
[root@forest ~]# ll -h
total 2.9G
-rw-------. 1 root root 1.6K Oct 17 21:34 anaconda-ks.cfg
-rw-r--r--. 1 root root 2.9G Oct 17 23:44 LINUX.X64_213000_db_home.zip
复制
runInstaller图形化安装数据库软件
1、创建ORACLE_HOME目录
[root@forest ~]# mkdir -p /u01/app/oracle/product/21.3.0/dbhome_1
2、需要解压到ORACLE_HOME目录执行runInstaller,否则会提示报错
[root@forest ~]# unzip LINUX.X64_213000_db_home.zip -d /u01/app/oracle/product/21.3.0/dbhome_1
3、修改ORACLE_HOME目录的属组
[root@forest ~]# chown -R oracle:oinstall /u01/app/oracle
[root@forest ~]# ll -hd /u01/app/oracle/product/21.3.0/dbhome_1/
drwxr-xr-x. 63 oracle oinstall 4.0K Oct 17 23:48 /u01/app/oracle/product/21.3.0/dbhome_1/
4、设置DISPLAY变量,将图形化界面调到本地客户端
[oracle@forest ~]$ export DISPLAY=192.168.255.1:0.0
5、执行runInstaller
[oracle@forest ~]$ /u01/app/oracle/product/21.3.0/dbhome_1/runInstaller
复制
安装步骤
1、选择仅安装数据库软件复制
2、选择单实例数据库安装复制
3、选择企业版本复制
4、ORACLE_BASE目录和ORACLE_HOME目录复制
5、指定Inventory目录的主组为oinstall复制
6、oracle用户的附加组复制
7、手动执行root脚本复制
8、环境预先检测,点击Fix & Check Again复制
执行完脚本,点击OK
[root@forest ~]# /tmp/InstallActions2024-10-17_11-52-40PM/CVU_21.0.0.0.0_oracle/runfixup.sh
All Fix-up operations were completed successfully.
复制
9、安装总结,点击安装复制
保存安装数据库软件响应文件
[oracle@forest ~]$ ll -h
total 20K
-rw-r--r--. 1 oracle oinstall 19K Oct 18 00:10 runInstaller.rsp
[oracle@forest ~]$ egrep -v '^#|^$' runInstaller.rsp
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v21.0.0
oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oraInventory
ORACLE_BASE=/u01/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSOPER_GROUP=oper
oracle.install.db.OSBACKUPDBA_GROUP=backupdba
oracle.install.db.OSDGDBA_GROUP=dgdba
oracle.install.db.OSKMDBA_GROUP=kmdba
oracle.install.db.OSRACDBA_GROUP=racdba
oracle.install.db.rootconfig.executeRootScript=false
oracle.install.db.rootconfig.configMethod=
oracle.install.db.rootconfig.sudoPath=
oracle.install.db.rootconfig.sudoUserName=
oracle.install.db.CLUSTER_NODES=
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
oracle.install.db.config.starterdb.globalDBName=
oracle.install.db.config.starterdb.SID=
oracle.install.db.config.PDBName=
oracle.install.db.config.starterdb.characterSet=
oracle.install.db.config.starterdb.memoryOption=false
oracle.install.db.config.starterdb.memoryLimit=
oracle.install.db.config.starterdb.password.ALL=
oracle.install.db.config.starterdb.password.SYS=
oracle.install.db.config.starterdb.password.SYSTEM=
oracle.install.db.config.starterdb.password.DBSNMP=
oracle.install.db.config.starterdb.password.PDBADMIN=
oracle.install.db.config.starterdb.managementOption=DEFAULT
oracle.install.db.config.starterdb.omsHost=
oracle.install.db.config.starterdb.omsPort=0
oracle.install.db.config.starterdb.emAdminUser=
oracle.install.db.config.starterdb.emAdminPassword=
oracle.install.db.config.starterdb.enableRecovery=false
oracle.install.db.config.starterdb.storageType=
oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=
oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=
oracle.install.db.config.asm.diskGroup=
oracle.install.db.config.asm.ASMSNMPPassword=
复制
10、执行root脚本
[root@forest ~]# /u01/app/oraInventory/orainstRoot.sh
Changing permissions of /u01/app/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.
Changing groupname of /u01/app/oraInventory to oinstall.
The execution of the script is complete.
[root@forest ~]# /u01/app/oracle/product/21.3.0/dbhome_1/root.sh
Performing root user operation.
The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /u01/app/oracle/product/21.3.0/dbhome_1
Enter the full pathname of the local bin directory: [/usr/local/bin]:
Copying dbhome to /usr/local/bin ...
Copying oraenv to /usr/local/bin ...
Copying coraenv to /usr/local/bin ...
Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
复制
11、安装完成复制
dbca图形化建库
[oracle@forest ~]$ /u01/app/oracle/product/21.3.0/dbhome_1/bin/dbca
复制
1、创建数据库复制
2、高级配置复制
3、数据库类型单实例,模版类型通用和OLTP复制
4、全局数据库名=数据库名+域名
Global Database name = db_name + db_domin = forest.oracle.com
db_name=forest
db_domain=oracle.com
SID:实例名称 = FOREST
PDB使用本地undo表空间
PDB前缀名:FORESTPDB复制
5、从模版中指定数据文件存储类型和位置,也可以自定义数据文件的位置复制
6、指定快速恢复区存储类型、位置和大小,是否启用重做日志归档,默认不开闪回和归档复制
7、指定网络配置监听名称和端口复制
8、数据仓库配置,默认不配置复制
9、参数配置
内存参数,使用ASMM管理
sga_target=19372MB
pga_aggregate_target=6458MB
最佳实践中,ORACLE内存的总量设置为服务器内存的40%
sga+pga=62G*40%=25832MB复制
使用ASM管理报错,使用ASM内存管理方式的前提是物理内存不超过4G,当前内存62GB,不满足ASM管理方式。
所以生产环境中都使用ASMM方式进行内存管理复制
进程数和数据块大小复制
数据库字符集设置为ZHS16GBK复制
服务器连接模式默认专用模式复制
10、不设置EM和EMCC复制
11、设置SYS、SYSTEM、PDBADMIN用户的密码复制
12、保存数据库创建模版和创建脚本
13、总结
全局设置
全局数据库名称:forest.oracle.com
实例名称:FOREST
数据库类型:单实例
是否创建为CDB:是
PDB前缀名称:FORESTPDB
PDB数量:2
PDB是否使用本地undo表空间:是
内存管理方式:ASSM,自动共享内存管理方式
模版名称:通用复制
保存建库响应文件
[oracle@forest ~]$ egrep -v '^#|^$' dbca.rsp
responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v21.0.0
gdbName=forest.oracle.com
sid=FOREST
databaseConfigType=SI
RACOneNodeServiceName=
policyManaged=false
managementPolicy=AUTOMATIC
createServerPool=false
serverPoolName=
cardinality=
force=false
pqPoolName=
pqCardinality=
createAsContainerDatabase=true
numberOfPDBs=2
pdbName=FORESTPDB
useLocalUndoForPDBs=true
pdbAdminPassword=
nodelist=
templateName=/u01/app/oracle/product/21.3.0/dbhome_1/assistants/dbca/templates/General_Purpose.dbc
sysPassword=
systemPassword=
serviceUserPassword=
emConfiguration=
emExpressPort=5500
runCVUChecks=FALSE
dbsnmpPassword=
omsHost=
omsPort=0
emUser=
emPassword=
dvConfiguration=false
dvUserName=
dvUserPassword=
dvAccountManagerName=
dvAccountManagerPassword=
olsConfiguration=false
datafileJarLocation={ORACLE_HOME}/assistants/dbca/templates/
datafileDestination={ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/
recoveryAreaDestination=
recoveryAreaSize=54525952BYTES
configureWithOID=
pdbOptions=SAMPLE_SCHEMA:false,SPATIAL:true,JSERVER:true,CWMLITE:true,DV:true,IMEDIA:true,OMS:true,ORACLE_TEXT:true
dbOptions=SAMPLE_SCHEMA:false,SPATIAL:true,JSERVER:true,CWMLITE:true,DV:true,IMEDIA:true,OMS:true,ORACLE_TEXT:true
storageType=FS
diskGroupName=
asmsnmpPassword=
recoveryGroupName=
characterSet=ZHS16GBK
nationalCharacterSet=AL16UTF16
registerWithDirService=false
dirServiceUserName=
dirServicePassword=
walletPassword=
listeners=
skipListenerRegistration=true
variablesFile=
variables=ORACLE_BASE_HOME=/u01/app/oracle/homes/OraDB21Home1,DB_UNIQUE_NAME=forest,ORACLE_BASE=/u01/app/oracle,PDB_NAME=,DB_NAME=forest,ORACLE_HOME=/u01/app/oracle/product/21.3.0/dbhome_1,SID=FOREST
initParams=undo_tablespace=UNDOTBS1,sga_target=19372MB,db_block_size=8192BYTES,nls_language=AMERICAN,dispatchers=(PROTOCOL=TCP) (SERVICE=FORESTXDB),diagnostic_dest={ORACLE_BASE},control_files=("{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/control01.ctl", "{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/control02.ctl"),remote_login_passwordfile=EXCLUSIVE,audit_file_dest={ORACLE_BASE}/admin/{DB_UNIQUE_NAME}/adump,processes=1280,pga_aggregate_target=6458MB,nls_territory=AMERICA,local_listener=LISTENER_FOREST,open_cursors=300,db_domain=oracle.com,compatible=21.0.0,db_name=forest,audit_trail=db
enableArchive=false
useOMF=false
memoryPercentage=40
databaseType=MULTIPURPOSE
automaticMemoryManagement=false
totalMemory=0
复制
14、安装进度复制
15、安装完成复制
配置环境变量
[oracle@forest ~]$ vi .bash_profile
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/21.3.0/dbhome_1
export ORACLE_SID=FOREST
export PATH=$ORACLE_HOME/bin:$PATH
[oracle@forest ~]$ source .bash_profile
复制
查看监听
[oracle@forest ~]$ lsnrctl status
LSNRCTL for Linux: Version 21.0.0.0.0 - Production on 18-OCT-2024 01:01:49
Copyright (c) 1991, 2021, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=forest)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 21.0.0.0.0 - Production
Start Date 18-OCT-2024 00:49:52
Uptime 0 days 0 hr. 11 min. 57 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/homes/OraDB21Home1/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/forest/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=forest)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Services Summary...
Service "24b015b0602a6fb2e063dd6f10acd361.oracle.com" has 1 instance(s).
Instance "FOREST", status READY, has 1 handler(s) for this service...
Service "24b016b69ff17138e063dd6f10acb4f1.oracle.com" has 1 instance(s).
Instance "FOREST", status READY, has 1 handler(s) for this service...
Service "FORESTXDB.oracle.com" has 1 instance(s).
Instance "FOREST", status READY, has 1 handler(s) for this service...
Service "c8209f27c6b16005e053362ee80ae60e.oracle.com" has 1 instance(s).
Instance "FOREST", status READY, has 1 handler(s) for this service...
Service "forest.oracle.com" has 1 instance(s).
Instance "FOREST", status READY, has 1 handler(s) for this service...
Service "forestpdb1.oracle.com" has 1 instance(s).
Instance "FOREST", status READY, has 1 handler(s) for this service...
Service "forestpdb2.oracle.com" has 1 instance(s).
Instance "FOREST", status READY, has 1 handler(s) for this service...
The command completed successfully
复制
设置sqlplus参数
[oracle@forest ~]$ vi $ORACLE_HOME/sqlplus/admin/glogin.sql
set sqlprompt "_user'@'_connect_identifier> "
复制
登录数据库
[oracle@forest ~]$ . oraenv
ORACLE_SID = [FOREST] ? FOREST
The Oracle base remains unchanged with value /u01/app/oracle
[oracle@forest ~]$ sqlplus / as sysdba
SQL*Plus: Release 21.0.0.0.0 - Production on Fri Oct 18 01:05:40 2024
Version 21.3.0.0.0
Copyright (c) 1982, 2021, Oracle. All rights reserved.
Connected to:
Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production
Version 21.3.0.0.0
SYS@FOREST> show parameter name
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
cdb_cluster_name string
cell_offloadgroup_name string
db_file_name_convert string
db_name string forest
db_unique_name string forest
global_names boolean FALSE
instance_name string FOREST
lock_name_space string
log_file_name_convert string
pdb_file_name_convert string
processor_group_name string
service_names string forest.oracle.com
复制
最后修改时间:2024-10-23 18:38:27
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。