一. 安装包下载

下载地址: https://www.oracle.com/database/technologies/oracle-database-software-downloads.html#db_ee

选择Oracle Database 19c for Linux x86-64, 下载ZIP包

二. 环境配置

关闭防火墙和selinux

1
2
3
4
5
6
7
8
9
# 关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl status firewalld.service

# 关闭selinux
setenforce 0
sed -i '/^SELINUX=/cSELINUX=disabled' /etc/selinux/config
getenforce

2.1 安装依赖库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 配置yum仓库(截止202410还好用, 以后不知道)
cat > /etc/yum.repos.d/CentOS-Base.repo << EOF
[base]
name=CentOS-$releasever - Base
baseurl=http://linuxsoft.cern.ch/centos-vault/7.6.1810/os/$basearch/
gpgcheck=1
gpgkey=http://linuxsoft.cern.ch/centos-vault/7.6.1810/os/x86_64/RPM-GPG-KEY-CentOS-7
[updates]
name=CentOS-$releasever - Updates
baseurl=http://linuxsoft.cern.ch/centos-vault/7.6.1810/updates/$basearch/
gpgcheck=1
gpgkey=http://linuxsoft.cern.ch/centos-vault/7.6.1810/os/x86_64/RPM-GPG-KEY-CentOS-7
[extras]
name=CentOS-$releasever - Extras
baseurl=http://linuxsoft.cern.ch/centos-vault/7.6.1810/extras//$basearch/
gpgcheck=1
gpgkey=http://linuxsoft.cern.ch/centos-vault/7.6.1810/os/x86_64/RPM-GPG-KEY-CentOS-7
[centosplus]
name=CentOS-$releasever - Plus
baseurl=http://linuxsoft.cern.ch/centos-vault/7.6.1810/centosplus//$basearch/
gpgcheck=1
enabled=0
EOF

# 安装依赖
yum install -y unzip compat-libcap1 compat-libstdc++-33 gcc-c++ ksh libaio-devel libstdc++-devel elfutils-libelf-devel fontconfig-devel libXrender-devel libXtst-devel rlwrap

2.2 创建用户, 修改用户变量

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 创建用户组
groupadd oinstall
groupadd dba
groupadd oper
useradd -g oinstall -G dba,oper oracle
echo "oracle" | passwd --stdin oracle

# 配置环境变量
vi ~oracle/.bash_profile
PATH=$PATH:$HOME/.local/bin:$HOME/bin
export PATH

export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.3/db_home1
export TMP=/tmp
export TMPDIR=/tmp
export ORACLE_SID=orcl
export PATH=$ORACLE_HOME/bin:$PATH
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export BATCH_HOME=/home/oracle/operate/batch/dispatch
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"
export LANG=en_US
export LC_ALL=en_US

2.3 创建目录并授权

1
2
3
4
mkdir -p /u01/app/oraInventory
mkdir -p /u01/app/oracle/product/19.3/db_home1
chown -R oracle:oinstall /u01/
chmod -R 775 /u01/

2.3 修改内核参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
vi /etc/sysctl.conf
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.all.secure_redirects = 0
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.tcp_keepalive_time = 150
net.ipv4.tcp_keepalive_probes = 5
net.ipv4.tcp_keepalive_intvl = 6

kernel.shmmax = 68719476736
kernel.shmall = 4294967296
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128

fs.aio-max-nr = 1048576
fs.file-max = 6815744

net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576

生效配置

1
sysctl -p

PS: kernel.shmall 和 kernel.shmmax 根据实际物理内存修改,保证oracle数据库SGA 小于系统上的 shmmax,具体如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1. kernel.shmall :

当内存为 12G 时, kernel.shmall = 3145728
当内存为 16G 时, kernel.shmall = 4194304
当内次为 32G 时, kernel.shmall = 8388608
当内存为 64G 时, kernel.shmall = 16777216
当内存为 128G 时, kernel.shmall = 33554432

2. kernel.shmmax :

内存为 12G 时,该值为 12*1024*1024*1024-1 = 12884901887
内存为 16G 时,该值为 16*1024*1024*1024-1 = 17179869183
内存为 32G 时,该值为 32*1024*1024*1024-1 = 34359738367
内存为 64G 时,该值为 64*1024*1024*1024-1 = 68719476735
内存为 128G 时,该值为 128*1024*1024*1024-1 = 137438953471

2.4 修改用户限制

1
2
3
4
5
6
7
8
9
10
11
12
vi /etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

oracle soft stack 10240
oracle soft stack 10240

oracle hard memlock 8421772
oracle soft memlock 8421772
#当内存大于8g是要添加内存锁 其值一般为物理内存的80%

三. 安装Oracle服务

3.1 配置安装文件

切换oracle用户

1
su - oracle

上传安装包, 并解压

1
unzip LINUX.X64_193000_db_home.zip -d /u01/app/oracle/product/19.3/db_home1/

配置静默安装文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
vim $ORACLE_HOME/install/response/db_install.rsp

oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v19.0.0
oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oraInventory
ORACLE_HOME=/u01/app/oracle/product/19.3/db_home1
oracle.install.db.InstallEdition=EE
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSOPER_GROUP=opre
oracle.install.db.OSBACKUPDBA_GROUP=oinstall
oracle.install.db.OSDGDBA_GROUP=oinstall
oracle.install.db.OSKMDBA_GROUP=oinstall
oracle.install.db.OSRACDBA_GROUP=oinstall
oracle.install.db.rootconfig.executeRootScript=true
oracle.install.db.rootconfig.configMethod=ROOT

3.2 安装数据库服务

执行安装

1
$ORACLE_HOME/runInstaller -force -silent -noconfig -ignorePrereq -responseFile $ORACLE_HOME/install/response/db_install.rsp

监控安装日志

1
日志位置: /u01/app/oraInventory/logs

执行root脚本

1
2
3
4
5
su - root
cd /u01/app/oraInventory/
sh orainstRoot.sh
cd /u01/app/oracle/product/19.3/db_home1/
sh root.sh

四. 创建监听

4.1 创建默认监听

修改用户变量文件

1
2
3
4
# 配置环境变量
vi ~oracle/.bash_profile
// 修改监听SID, 根据实际情况修改
export ORACLE_SID=orcl
1
2
3
4
5
6
7
su - oracle
# 添加监听
netca -silent -responsefile $ORACLE_HOME/assistants/netca/netca.rsp
查看监听:
lsnrctl status
启动监听:
lsnrctl start

4.2 监听配置文件

1
2
3
4
5
6
7
8
vim $ORACLE_HOME/network/admin/listener.ora
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 本机IP或者hosts域名)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
1
2
3
4
5
6
7
8
9
10
11
12
13
vim $ORACLE_HOME/network/admin/tnsnames.ora
LISTENER_ORCL =
(ADDRESS = (PROTOCOL = TCP)(HOST = 本机IP或者hosts域名)(PORT = 1521))


ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 本机IP或者hosts域名)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)

LNNX配置样例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
cat .bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/.local/bin:$HOME/bin

export PATH
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/db_home1
export TMP=/tmp
export TMPDIR=/tmp
export ORACLE_SID=loandb
export PATH=$ORACLE_HOME/bin:$PATH
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export BATCH_HOME=/home/oracle/operate/batch/dispatch
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"
----------------------------------------------------------------------------------------
cat listener.ora
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = ccmssitdb1)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
-----------------------------------------------------------------------------------------
cat tnsnames.ora
LOANDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = ccmssitdb1)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = loandb)
)
)

LISTENER_LOANDB =
(ADDRESS = (PROTOCOL = TCP)(HOST = ccmssitdb1)(PORT = 1521))


LISTENER_ORCL =
(ADDRESS = (PROTOCOL = TCP)(HOST = czsj)(PORT = 1521))

五. 安装实例

实例名称: orcl

5.1 实例配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
vim $ORACLE_HOME/assistants/dbca/dbca.rsp

responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v19.0.0
gdbName=orcl
sid=orcl

databaseConfigType=SI

templateName=General_Purpose.dbc
oracleHomeUserPassword=oracle
sysPassword=oracle
systemPassword=oracle

datafileDestination=/u01/app/oracle/oradata
recoveryAreaDestination=/u01/app/oracle/flash_recovery_area

characterSet=ZHS16GBK
nationalCharacterSet=AL16UTF16
totalMemory=2048

listeners=LISTENER
sampleSchema=true
databaseType=OLTP
emConfiguration=NONE

5.2 创建实例

1
$ORACLE_HOME/bin/dbca -silent -createDatabase -templateName General_Purpose.dbc -responseFile $ORACLE_HOME/assistants/dbca/dbca.rsp