基本条件准备
准备虚拟机, 基本配置为: 16G 内存, 4core CPU,4 个磁盘(1 个系统盘, 一个 / tmp 分区, 一个数据分区, 一个交换分区 swap).
准备操作系统, 并使磁盘可用.
建议正式环境为用户数据存储提供独立的磁盘或者分区.
从 Oracle 官方网站下载 oracle 19c, 文件名为 Linux.X64_193000_db_home.zip. 用 unzip 对其进行解压, 备用.
- [root@CentOS100 home]# unzip Linux.X64_193000_db_home.zip -d /home/oracle19c
- [root@centos100 home]# unzip Linux.X64_193000_db_home.zip -d /home/oracle19c
准备安装环境, 包括安装 oracle 所必需的依赖库, 所需的用户及组, 系统参数等修改. 因为是单实例部署, 因此未创建其它更多的用户. 又由于步骤繁琐, 为避免人为手工输入出错, 提高效率, 我写了个脚本(CentOS 7,RedHat EL 7), 参照了官方的文档, 照搬运行即可!
- [root@centos100 ~]# more preinstall.sh
- #!/bin/bash
- #writen by sery(wx:formyz),2019-7-18
- #install dependency package
- yum install -y \
- bc \
- binutils \
- compat-libcap1 \
- compat-libstdc++-33 \
- elfutils-libelf \
- elfutils-libelf-devel \
- fontconfig-devel \
- glibc \
- glibc-devel \
- kmod \
- kmod-libs \
- gcc-c++ \
- ksh \
- libaio \
- libaio-devel \
- libX11 \
- libXau \
- libXi \
- libXtst \
- libXrender \
- libXrender-devel \
- libgcc \
- librdmacm-devel \
- libstdc++ \
- libstdc++-devel \
- libxcb \
- make \
- net-tools \
- nfs-utils \
- Python \
- python-configshell \
- python-rtslib \
- python-six \
- targetcli \
- smartmontools \
- sysstat \
- tigervnc-server
- #install xwindow
- yum groupinstall -y "X Window System"
- yum groupinstall -y "GNOME Desktop" "Graphical Administration Tools"
- #modify system parameter
- cat <<EOF> /etc/sysctl.d/98-oracle-kernel.conf
- vm.swappiness = 1
- vm.dirty_background_ratio = 3
- vm.dirty_ratio = 80
- vm.dirty_expire_centisecs = 500
- vm.dirty_writeback_centisecs = 100
- 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
- kernel.msgmnb = 65536
- kernel.msgmax = 65536
- kernel.shmmax = 8589934590
- kernel.shmall = 2147483648
- kernel.shmmni = 4096
- EOF
- sysctl -p /etc/sysctl.d/98-oracle-kernel.conf
- cat <<EOF> /etc/security/limits.d/99-oracle-limits.conf
- oracle soft nproc 2047
- oracle hard nproc 16384
- oracle soft nofile 1024
- oracle hard nofile 65536
- oracle soft stack 10240
- oracle hard stack 32768
- EOF
- #create groups and user
- groupadd -g 1000 oinstall
- groupadd -g 1001 dba
- useradd -g oinstall -G dba oracle
- echo "sery888"|passwd --stdin oracle
- #create directory
- mkdir -p /u01/App/oracle/product/19.3/db_01
- chown -R oracle.oinstall /u01
- chmod -R 755 /u01
- [root@centos100 ~]# more preinstall.sh
- #!/bin/bash
- #writen by sery(wx:formyz),2019-7-18
- #install dependency package
- yum install -y \
- bc \
- binutils \
- compat-libcap1 \
- compat-libstdc++-33 \
- elfutils-libelf \
- elfutils-libelf-devel \
- fontconfig-devel \
- glibc \
- glibc-devel \
- kmod \
- kmod-libs \
- gcc-c++ \
- ksh \
- libaio \
- libaio-devel \
- libX11 \
- libXau \
- libXi \
- libXtst \
- libXrender \
- libXrender-devel \
- libgcc \
- librdmacm-devel \
- libstdc++ \
- libstdc++-devel \
- libxcb \
- make \
- net-tools \
- nfs-utils \
- python \
- python-configshell \
- python-rtslib \
- python-six \
- targetcli \
- smartmontools \
- sysstat \
- tigervnc-server
- #install xwindow
- yum groupinstall -y "X Window System"
- yum groupinstall -y "GNOME Desktop" "Graphical Administration Tools"
- #modify system parameter
- cat <<EOF> /etc/sysctl.d/98-oracle-kernel.conf
- vm.swappiness = 1
- vm.dirty_background_ratio = 3
- vm.dirty_ratio = 80
- vm.dirty_expire_centisecs = 500
- vm.dirty_writeback_centisecs = 100
- 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
- kernel.msgmnb = 65536
- kernel.msgmax = 65536
- kernel.shmmax = 8589934590
- kernel.shmall = 2147483648
- kernel.shmmni = 4096
- EOF
- sysctl -p /etc/sysctl.d/98-oracle-kernel.conf
- cat <<EOF> /etc/security/limits.d/99-oracle-limits.conf
- oracle soft nproc 2047
- oracle hard nproc 16384
- oracle soft nofile 1024
- oracle hard nofile 65536
- oracle soft stack 10240
- oracle hard stack 32768
- EOF
- #create groups and user
- groupadd -g 1000 oinstall
- groupadd -g 1001 dba
- useradd -g oinstall -G dba oracle
- echo "sery888"|passwd --stdin oracle
- #create directory
- mkdir -p /u01/App/oracle/product/19.3/db_01
- chown -R oracle.oinstall /u01
- chmod -R 755 /u01
此脚本执行完以后, 再对 oracle 帐号设置环境变量. 切换到用户 oracle, 然后编辑文件 / home/oracle/.bash_profile. 增加其内容为:
- export ORACLE_BASE=/u01/App/oracle
- export ORACLE_HOME=$ORACLE_BASE/product/19.3/db_01
- export PATH=$ORACLE_HOME/bin:/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
- export ORACLE_SID=serydb
- export ORACLE_BASE=/u01/App/oracle
- export ORACLE_HOME=$ORACLE_BASE/product/19.3/db_01
- export PATH=$ORACLE_HOME/bin:/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
- export ORACLE_SID=serydb
执行 source .bash_profile 使其生效.
如果是隔离环境, 不能连接互联网进行安装的话, 需要挂载操作系统 iso 镜像文件, 手动创建 yum 源.
启动 vncserver 服务, 初次启动需要设置密码. 如果是 root 启动的话, 可以设置成系统 root 帐号相一致的密码. 在客户端进行连接时, 如果出现蓝屏(与 Windows 蓝屏不可同日而语, 仅仅是桌面上没有图标而已), 需要检查桌面环境是否安装完整, 特别是 gnome 及图形管理工具.
从 Windows 的 vnc 客户端 vnc viewer 连接时, 需要指定 ip 地址及带冒号的数字, 这个数字在 vncserver 启动时, 会有输出, 不要想当然或者从网上拷贝下来随意乱输一通.
启动的数字是 1, 那么连接的时候, 也要与之相一致.
输入密码, 如果正确, 则出现远程图形界面, 如果忘记密码或者密码错误, 可用 vncpass 进行重新设定.
远程图形方式进行安装
一, 为安装目录赋予权限
Oracle 的安装, 使用的是普通帐号 oracle, 为了避免权限问题影响安装, 需要把解压出来的目录赋予执行权限, 具体操作就是改变目录属主 (组) 及给予读写权限.
- -bash-4.2# chown -R oracle:oinstall /home/oracle19c/
- -bash-4.2# chmod -R 755 /home/oracle19c/
- -bash-4.2# mv /home/oracle19c/*/u01/App/oracle/product/19.3/db_01
- -bash-4.2# chown -R oracle:oinstall /home/oracle19c/
- -bash-4.2# chmod -R 755 /home/oracle19c/
- -bash-4.2# mv /home/oracle19c/* /u01/App/oracle/product/19.3/db_01
尽可能把解压后的目录复制到设定好的 ORACLE_HOME 下, 因为在安装过程中, 只能指定 ORACLE_BASE. 到这一步, 我才明白为啥压缩包的名字是 "LINUX.X64_193000_db_home".
二, 设置变量 DISPLAY
为了是描述更加清晰准备, 我分两个步骤来描述.
(一)以 vnc 客户端登录系统, 右键调出终端, 然后以 root 帐号执行指令 xhost + .
(二)再开一个终端, 切换到 oracle 帐号, 执行指令 "export DISPLAY=:1", 此数字 1 来自 vncserver 启动时的输出, 不要照网上别人的文章乱复制一通, 否则下一步执行安装进行不下去.
三, 开始安装
(一)运行安装脚本
进入 oracle 安装脚本所在的目录, 执行 "sh runInstaller".
如果一切正常, 就会弹出安装界面, 如下图所示:
(二)安装过程中的设置.
1, 选择只安装软件(安装完软件, 并且监听器正常以后, 再创建数据库).
2, 选择单实例(有时间了再搞 oracle rac).
3, 选企业版(本人在以前来没选过标准版).
4, 选择 oracle 基础目录, 默认目录可能与我开始的规划目录有差异, 改正它.
5, 选定清单目录.
6, 选定属组. 单实例默认就行.
7,Root 脚本自动执行配置, 可以把它选上, 并输入系统 root 的密码. 这样做的好处, 是不用像以前的版本, 执行过程中, 需要单切换到终端, 以 root 帐号执行两个脚本. 这个简化, 能提高一点效率.
8, 必要条件检查, 包括内存, 依赖包, 内核参数等等等等一大堆. 看到不少文档, 通不过就跳过了之. 还是建议多点耐心, 以全部满足条件为妙!
9, 第九步为信息汇总, 可以大概了解一下.
确认没有需要修改的项目后, 点击按钮 "Install" 进行下一步.
10, 执行文件复制, 链接等操作. 这个过程耗费时间比较长, 可以暂时休息一会.
在进度条进行到大概 63% 的时候, 弹出确认一个确认的界面, 通过阅读上面的文字, 即可知道是怎么一回事情, 直接选 yes 就完事(前边提到过).
11, 软件安装完成,
配置网络监听器
继续在上述终端执行指令 netca , 如果弹不出图形界面, 则需要再设置 DISPLAY.
接下来点若干个 "Next", 最后一步点完成.
一创建好监听器, 它就自动起来了, 通过指令 lsnrctl status 了解其运行状态:
- [oracle@centos100 db_01]$ lsnrctl status
- LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 19-JUL-2019 04:31:03
- Copyright (c) 1991, 2019, Oracle. All rights reserved.
- Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=centos100)(PORT=1521)))
- STATUS of the LISTENER
- ------------------------
- Alias LISTENER
- Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production
- Start Date 19-JUL-2019 04:22:25
- Uptime 0 days 0 hr. 8 min. 45 sec
- Trace Level off
- Security ON: Local OS Authentication
- SNMP OFF
- Listener Parameter File /u01/App/oracle/product/19.3/db_01/network/admin/listener.ora
- Listener Log File /u01/App/oracle/diag/tnslsnr/centos100/listener/alert/log.xml
- Listening Endpoints Summary...
- (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=centos100)(PORT=1521)))
- (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
- The listener supports no services
- The command completed successfully
创建数据库
1, 终端任意路径执行指令 dbca, 弹出配置助手窗口.
2, 选择典型配置, 不选择容器数据库(暂时不熟悉这个).
3, 配置汇总. 可拉滚动条, 查看一下大概有哪些设置.
4, 确认没什么不妥以后, 点 "Finish" 按钮. 接下来, 耐心等待.
5, 进度到 40% 左右的时候, 通过详细按钮 "detail" 可知 oracle 实例已经开始启动.
登录验证, 看实例是否已经正常.
- [oracle@centos100 db_01]$ sqlplus / as sysdba
- SQL*Plus: Release 19.0.0.0.0 - Production on Fri Jul 19 04:51:19 2019
- Version 19.3.0.0.0
- Copyright (c) 1982, 2019, Oracle. All rights reserved.
- Connected to:
- Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
- Version 19.3.0.0.0
- SQL> select count(*) from v$session;
- COUNT(*)
- ----------
- 49
- [oracle@centos100 db_01]$ sqlplus / as sysdba
- SQL*Plus: Release 19.0.0.0.0 - Production on Fri Jul 19 04:51:19 2019
- Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle. All rights reserved.
- Connected to:
- Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
- Version 19.3.0.0.0
- SQL> select count(*) from v$session;
- COUNT(*)
- ----------
- 49
生产环境后续工作
如果是用于生产环境, 再创建完数据库以后, 还需要多系统表空间, 临时表空间, redo 日志组, 密码过期时间等等进行调整.
来源: http://www.linuxidc.com/Linux/2019-07/159468.htm