一. 安装包下载
下载地址: 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
setenforce 0 sed -i '/^SELINUX=/cSELINUX=disabled' /etc/selinux/config getenforce
|
2.1 安装依赖库
1 2
| yum install -y bc binutils elfutils-libelf elfutils-libelf-devel fontconfig-devel glibc glibc-devel ksh libaio libaio-devel libXrender libX11 libXau libXi libXtst libgcc libnsl librdmacm libstdc++ libstdc++-devel libxcb libibverbs make policycoreutils policycoreutils-python-utils smartmontools sysstat
|
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 24 25 26
| groupadd oinstall groupadd dba groupadd oper useradd -g oinstall -G dba,oper oracle echo "Orcl123456." | passwd --stdin oracle
cat >> ~oracle/.bash_profile <<'EOF'
[ -f ~/.bashrc ] && . ~/.bashrc umask 022 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=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" export LANG=en_US export LC_ALL=en_US export PERL5LIB=/perl/lib export CV_ASSUME_DISTID=OL7 EOF
|
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
| vi /etc/sysctl.conf 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
|
生效配置
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
|
三. 安装Oracle服务
3.1 配置安装文件
切换oracle用户
上传安装包, 并解压
1
| unzip LINUX.X64_193000_db_home.zip -d $ORACLE_HOME/
|
配置静默安装文件
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=loandb
|
1 2 3 4 5 6 7 8 9
| su - oracle
netca -silent -responsefile $ORACLE_HOME/assistants/netca/netca.rsp
lsnrctl status
lsnrctl start
lsnrctl stop
|
4.2 监听配置文件
如果需要远程登录实例, 需要修改默认localhost
1 2 3 4 5 6 7 8
| vim $ORACLE_HOME/network/admin/listener.ora LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 本机IP或者host域名)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) )
|
1 2 3 4 5 6 7 8 9 10 11 12
| vim $ORACLE_HOME/network/admin/tnsnames.ora LOANDB = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 本机IP或者host域名)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = loandb) ) )
LISTENER_LOANDB = (ADDRESS = (PROTOCOL = TCP)(HOST = 本机IP或者host域名)(PORT = 1521))
|
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
if [ -f ~/.bashrc ]; then . ~/.bashrc fi
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))
|
五. 安装实例
实例名称: loandb
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=loandb sid=loandb
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
|
5.3 启动实例
1 2 3 4 5 6
| sqlplus / as sysdba
startup
shutdown immediate
|
SHUTDOWN IMMEDIATE:立即关闭实例,完成当前正在执行的 SQL 语句,然后关闭。
SHUTDOWN TRANSACTIONAL:等待当前事务完成后再关闭实例。
SHUTDOWN ABORT:强制关闭实例,不管当前正在执行的事务。
六. 创建用户、授权
6.1 登录数据库
1 2 3 4 5 6 7 8 9 10 11
| lsnrctl status
lsnrctl start
sqlplus / as sysdba
startup
|
用户远程登录需要修改监听本地地址, localhost修改为实际IP或者域名
6.2 创建用户
用户名: loanuser
密码: loanpwd
1 2 3 4 5
| CREATE USER loanuser IDENTIFIED BY loanpwd; GRANT CREATE SESSION TO loanuser; GRANT CREATE TABLE TO loanuser; GRANT SELECT, INSERT, UPDATE, DELETE ON <授权表名> TO loanuser; EXIT;
|