系统:建议用Oracle官网提供的OEL7.6 (Oracle企业版Linux),有对oracle内核做了好多优化 。
这里用示范的是在CentOS7.6下图形化安装Oracle 12,静默安装另外写一篇文章介绍
图形化安装大概步骤:安装Oracle软件(runInstaller) -> 配置网络监听(netca) -> 创建数据库(dbca) -> 本地Net服务名配置(netca)
https://edelivery.oracle.com/osdc/faces/SoftwareDelivery#!
Oracle安装包:linuxx64_12201_database.zip (到Oracle官网,注册个用户去下载)
想练习的话把example的包也下了“linuxx64_12201_examples.zip”
下面是安装过程:
[root@localhost ~]# groupadd -g 501 oinstall #建一个gid为501的oinstall组
[root@localhost ~]# groupadd -g 502 dba #建一个gid为503的dba组
[root@localhost ~]# useradd -g oinstall -G dba oracle #建用户oracle,且加入主组oinstall和从属组dba,好像古代老婆一个,妾可以很多个。举例,su - oracle后创建的文件所属组是oinstall,newgrp dba切换到从属组dba后创建的文件所属组是dba
[root@localhost ~]# id oracle
uid=1000(oracle) gid=501(oinstall) groups=501(oinstall),502(dba)
[root@localhost ~]# mkdir -p /orasetup /home/app/oracle/product/12.2.0/db_1 #这些连接根据自己需要来定
[root@localhost ~]# chmod -R 775 /orasetup /home/app/oracle/product/12.2.0/db_1
[root@localhost ~]# chown -R oracle:oinstall /orasetup /home/app/oracle/product/12.2.0/db_1
[root@localhost ~]# su - oracle
[oracle@localhost ~]$ pwd
/home/oracle
[oracle@localhost ~]$ vi .bash_profile #设环境变量,下面的alias和export
[oracle@localhost ~]$ 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
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias vi='vim'
alias sqlplus='rlwrap sqlplus' #去安装rlwrap,它支持上下左右的键盘滚动以及历史记录快速查询的,默认sqlplus不支持,用list看历史记录也不方便
alias rman='rlwrap rman'
export ORACLE_BASE=/home/app/oracle #oracle基本目录,其它oracle软件都可以装这里
export ORACLE_HOME=$ORACLE_BASE/product/12.2.0/db_1 #oracle数据库软件目录
export ORACLE_SID=oral #oracle数据库唯一标识(在单实例里比较重要)
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:/lib/usr/lib #字典库路径
export PATH=$ORACLE_HOME/bin:/bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin:$ORACLE_HOME/jdk/bin #bin操作路径
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS" #日期显示格式
export NLS_LANG="Simplified Chinese_China".AL32UTF8 #字符集
[oracle@localhost ~]$ source .bash_profile
安装rlwrap
[root@localhost ~]# tar -zxvf rlwrap-0.37.tar.gz
......
[root@localhost ~]# cd rlwrap-0.37
[root@localhost rlwrap-0.37]# ls
aclocal.m4 AUTHORS BUGS ChangeLog completions config.h.in configure configure.ac COPYING doc filters INSTALL Makefile.am Makefile.in NEWS PLEA README src test TODO tools
[root@localhost rlwrap-0.37]# ./configure
checking build system type... Invalid configuration `x86_64-unknown-linux-': machine `x86_64-unknown-linux' not recognized
configure: error: /bin/sh tools/config.sub x86_64-unknown-linux- failed
[root@localhost rlwrap-0.37]# yum install gcc gcc-c++ -y #上面报错,先安装一些常用依赖再试下,哈
......
[root@localhost rlwrap-0.37]# ./configure
......
configure: checking for pty ranges...
checking for tgetent... no
checking for tgetent in -lcurses... yes
checking for readline in -lreadline... no
configure: error:
You need the GNU readline library(ftp://ftp.gnu.org/gnu/readline/ ) to build
this program!
[root@localhost rlwrap-0.37]# yum install *readline* -y #上面还有别的报错,再装依赖
......
[root@localhost rlwrap-0.37]# ./configure
...... #终于正常了
[root@localhost rlwrap-0.37]# make && make install
......
[root@localhost rlwrap-0.37]# rlwrap -v
rlwrap 0.37
设置些系统限制
[root@localhost rlwrap-0.37]# vi /etc/profile #加下面去解除系统限制
......
if [ $USER = "oracle" ] || [ $USER = "grid" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
[root@localhost rlwrap-0.37]# source /etc/profile
[root@localhost rlwrap-0.37]# vi /etc/security/limits.conf #加下面去允许打开的软硬限制。参考下https://www.cnblogs.com/galengao/p/5764693.html
......
oracle soft stack 10240
oracle soft nproc 2047 #noproc表示的是每个用户最大的进程数
oracle hard nproc 16384
oracle soft nofile 1024 #nofile表示的时最多能同时打开的文件数
oracle hard nofile 65536
......