以Centos7为列
创建运行Oracle数据库的系统用户和用户组
1 #切换root用户 2 [px@localhost /]$ su - root 3 [px@localhost /]$ su - root 4 密码: 5 #创建用户组oinstall 6 [root@localhost /]# groupadd oinstall 7 #创建用户组dba 8 [root@localhost /]# groupadd dba 9 #创建oracle用户并加入组oinstall和附加组dba 10 [root@localhost /]# useradd -g oinstall -G dba -m oracle 11 #设置oracle密码 12 [root@localhost /]# passwd oracle 13 #查看新建的oracle用户信息 14 [root@localhost /]# id oracle 15 uid=1002(oracle) gid=1002(oinstall) 组=1002(oinstall),1003(dba)
创建Oracle数据库安装目录
1 #oracle数据库安装目录 2 [root@localhost home]# mkdir -p /home/app/oracle 3 #oracle数据库配置文件目录 4 [root@localhost home]# mkdir -p /home/app/oraInventory 5 #oracle数据库软件包解压目录 6 [root@localhost home]# mkdir -p /home/app/database 7 #创建完检查一下 8 [root@localhost app]# ls 9 database oracle oraInventory 10 #设置目录所有者为oinstall用户组的oracle用户 11 [root@localhost app]# chown -R oracle:oinstall /home/app/oracle 12 [root@localhost app]# chown -R oracle:oinstall /home/app/oraInventory 13 [root@localhost app]# chown -R oracle:oinstall /home/app/database
修改OS系统标识
1 [root@localhost app]# cat /proc/version 2 Linux version 3.10.0-327.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC) ) #1 SMP Thu Nov 19 22:10:57 UTC 2015 3 [root@localhost app]# cat /etc/redhat-release 4 CentOS Linux release 7.2.1511 (Core) 5 [root@localhost app]# vi /etc/redhat-release 6 [root@localhost app]# cat /etc/redhat-release 7 redhat-7
安装oracle的依赖包

1 #为了确保没问题多找了几个,我都执行了一遍(参考:https://docs.oracle.com/cd/E11882_01/install.112/e47689/pre_install.htm#BABCFJFG) 2 3 yum -y install binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33*.i686 elfutils-libelf-devel gcc gcc-c++ glibc*.i686 glibc glibc-devel glibc-devel*.i686 ksh libgcc*.i686 libgcc libstdc++ libstdc++*.i686 libstdc++-devel libstdc++-devel*.i686 libaio libaio*.i686 libaio-devel libaio-devel*.i686 make sysstat unixODBC unixODBC*.i686 unixODBC-devel unixODBC-devel*.i686 libXp 4 5 6 yum -y install binutils-2.* compat-libstdc++-33* elfutils-libelf-0.* elfutils-libelf-devel-* gcc-4.* gcc-c++-4.* glibc-2.* glibc-common-2.* glibc-devel-2.* glibc-headers-2.* ksh-2* libaio-0.* libaio-devel-0.* libgcc-4.* libstdc++-4.* libstdc++-devel-4.* make-3.* sysstat-7.* unixODBC-2.* unixODBC-devel-2.* pdksh* 7 8 9 binutils-2.23.52.0.1-12.el7.x86_64 10 compat-libcap1-1.10-3.el7.x86_64 11 gcc-4.8.2-3.el7.x86_64 12 gcc-c++-4.8.2-3.el7.x86_64 13 glibc-2.17-36.el7.i686 14 glibc-2.17-36.el7.x86_64 15 glibc-devel-2.17-36.el7.i686 16 glibc-devel-2.17-36.el7.x86_64 17 ksh 18 libaio-0.3.109-9.el7.i686 19 libaio-0.3.109-9.el7.x86_64 20 libaio-devel-0.3.109-9.el7.i686 21 libaio-devel-0.3.109-9.el7.x86_64 22 libgcc-4.8.2-3.el7.i686 23 libgcc-4.8.2-3.el7.x86_64 24 libstdc++-4.8.2-3.el7.i686 25 libstdc++-4.8.2-3.el7.x86_64 26 libstdc++-devel-4.8.2-3.el7.i686 27 libstdc++-devel-4.8.2-3.el7.x86_64 28 libXi-1.7.2-1.el7.i686 29 libXi-1.7.2-1.el7.x86_64 30 libXtst-1.2.2-1.el7.i686 31 libXtst-1.2.2-1.el7.x86_64 32 make-3.82-19.el7.x86_64 33 sysstat-10.1.5-1.el7.x86_64
关闭防火墙
1 --centos7默认用的firewalld作为防火墙 2 #查看防火墙状态 3 [root@localhost /]# systemctl status firewalld 4 #关闭防火墙 5 [root@localhost /]# systemctl stop firewalld 6 #禁止使用防火墙,重启后还是是禁止 7 [root@localhost /]# systemctl disable firewalld.service
关闭selinux(需重启生效)
1 [root@localhost /]# vi /etc/selinux/config 2 #此处修改为disabled 3 [root@localhost /]# cat /etc/selinux/config 4 SELINUX=disabled
修改内核参数
1 [root@localhost /]# vi /etc/sysctl.conf 2 net.ipv4.icmp_echo_ignore_broadcasts = 1 3 net.ipv4.conf.all.rp_filter = 1 4 fs.file-max = 6815744 #设置最大打开文件数 5 fs.aio-max-nr = 1048576 6 kernel.shmall = 2097152 #共享内存的总量,8G内存设置:2097152*4k/1024/1024 7 kernel.shmmax = 2147483648 #最大共享内存的段大小 8 kernel.shmmni = 4096 #整个系统共享内存端的最大数 9 kernel.sem = 250 32000 100 128 10 net.ipv4.ip_local_port_range = 9000 65500 #可使用的IPv4端口范围 11 net.core.rmem_default = 262144 12 net.core.rmem_max= 4194304 13 net.core.wmem_default= 262144 14 net.core.wmem_max= 1048576 15 #使配置生效 16 [root@localhost /]# sysctl -p
对oracle用户设置限制,提高软件运行性能
1 #添加如下内容 2 [root@localhost /]# vi /etc/security/limits.conf 3 oracle soft nproc 2047 4 oracle hard nproc 16384 5 oracle soft nofile 1024 6 oracle hard nofile 65536
配置oracle用户的环境变量
1 [root@localhost /]# vim /home/oracle/.bash_profile 2 export ORACLE_BASE=/home/app/oracle #oracle数据库安装目录 3 export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1 #oracle数据库路径 4 export ORACLE_SID=gdlisnet #oracle启动数据库实例名 5 export ORACLE_TERM=xterm #xterm窗口模式安装 6 export PATH=/home/app/oracle/product/11.2.0/dbhome_1/bin:$PATH #添加系统环境变量 7 export LD_LIBRARY_PATH=$ORACLE_HOME/usr:/lib:/usr/lib #添加系统环境变量 8 export LANG=C #防止安装过程出现乱码 9 export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK #设置Oracle客户端字符集,必须与Oracle安装时设置的字符集保持一致,如:ZHS16GBK,否则出现数据导入导出中文乱码问题 10 #即时生效 11 [root@localhost /]# source /home/oracle/.bash_profile
上传Oracle安装包
安装包可去下载https://www.oracle.com/database/technologies/oracle-database-software-downloads.html
1 #将安装包上传到/usr/local/src,然后解压 2 [root@localhost /]# cd /usr/local/src/ 3 #可以使用ftp上传,或者用rz,sz,如果没安装进行安装 4 yum -y install lrzsz 5 #上传完后解压 6 [root@localhost src]$ unzip linux.x64_11gR2_database_1of2.zip -d /home/app/database/ 7 [root@localhost src]$ unzip linux.x64_11gR2_database_2of2.zip -d /home/app/database/ 8 [root@localhost src]# chown -R oracle:oinstall /home/app/database/database/
图形界面登录oracle用户安装
1 #处理界面为英文或者中文,默认英文 2 [root@localhost /]# export LANG="en_US" 3 #中文 4 [root@localhost /]# export LANG="zh_CN" 5 #中文后会乱码,需要将中文包zysong.ttf拷入解决 6 [root@localhost /]# cp zysong.ttf /usr/share/fonts/zh_CN/TrueType/ 7 #启动oralce安装,到/home/app/database/database/目录下,执行runInstaller 8 [oracle@localhost database]# ./runInstaller
安装检测,遇到问题,按照提示一个一个解决
我遇到交换空间不足问题(有些包是版本高,可直接忽略14)
1 #swap空间不足解决 :(要求2.67G 实际2G) 2 #查看当前虚拟内存 3 [root@localhost /]# free -m 4 #将当前swap空间由2048M 增加到 3048M 新增一个2014的swap文件 5 [root@localhost /]# dd if=/dev/zero of=/home/swap bs=1024 count=1024000 6 [root@localhost /]# mkswap /home/swap 7 [root@localhost /]# free -m 8 #增加并启用虚拟内容 9 [root@localhost /]# swapon /home/swap
如图:直接全部忽略,完成安装
安装到84%时候会出现灰色竖道,直接选中右键关闭即可,后边按提示执行脚本!
配置监听,创建实例
dbca创建数据库之前必须先配置监听,并且启动
1 #现在root下执行xhost + 2 [root@localhost ~]# xhost + 3 xhost: unable to open display "" 4 #如果报错,执行如下,然后再执行xhost + 5 [root@localhost ~]# export DISPLAY=localhost:1 6 [root@localhost ~]# xhost + 7 xhost: unable to open display "localhost:1" 8 #然后切换到oracle用户 9 [root@localhost ~]# su - oracle 10 [oracle@localhost ~]$ export DISPLAY=:0.0 11 #建立监听 12 [oracle@localhost bin]$ ./netca 13 #创建监听完成查看监听,必须启动 14 [oracle@localhost bin]$ lsnrctl stat
15 [oracle@localhost bin]$ dbca
测试连接
1 [root@localhost /]# su - oracle 2 [oracle@localhost ~]$ sqlplus /nolog 3 4 SQL*Plus: Release 11.2.0.1.0 Production on Wed Aug 26 13:26:10 2020 5 6 Copyright (c) 1982, 2009, Oracle. All rights reserved. 7 8 SQL> connect / as sysdba 9 Connected. 10 SQL> startup 11 ORACLE instance started. 12 13 Total System Global Area 764121088 bytes 14 Fixed Size 2217264 bytes 15 Variable Size 494930640 bytes 16 Database Buffers 260046848 bytes 17 Redo Buffers 6926336 bytes 18 Database mounted. 19 Database opened.
设置开机自启动
1 1 #设置开机自启 2 2 [oracle@centos7 /]$ vim /etc/oratab 3 3 gdlisnet: /home/app/oracle/product/11.2.0:Y 4 4 [oracle@centos7 bin]$ vim /home/app/oracle/product/11.2.0/bin/dbstart 5 5 #将ORACLE_HOME_LISTNER=$1改成 6 6 ORACLE_HOME_LISTNER=$ORACLE_HOME 7 7 [root@centos7 bin]# vim /etc/rc.local 8 8 su - oracle -c '/home/app/oracle/product/11.2.0/bin/lsnrctl start' 9 9 su - oracle -c '/home/app/oracle/product/11.2.0/bin/dbstart' 10 10 [root@centos7 bin]# chmod +x /etc/rc.d/rc.local 11 11 12 12 #同步网络时间 13 13 [root@centos7 /]# yum -y install ntp 14 14 [root@centos7 /]# ntpdate -u ntp.api.bz 15 15 [root@centos7 /]# hwclock –w
开启防火墙
1 #开启防火墙 2 systemctl start firewalld 3 #开放指定端口 4 firewall-cmd --zone=public --add-port=1521/tcp --permanent 5 #命令含义: 6 --zone #作用域 7 --add-port=1521/tcp #添加端口,格式为:端口/通讯协议 8 --permanent #永久生效,没有此参数重启后失效 9 #重启防火墙 10 firewall-cmd --reload 11 12 #查看端口号 13 #查看当前所有tcp端口· 14 netstat -ntlp 15 #查看所有1935端口使用情况· 16 netstat -ntulp |grep 1521 17 18 #iptables防火墙 19 /sbin/iptables -I INPUT -p tcp --dport 1521 -j ACCEPT
使用命令
lsnrctl status 查看状态
lsnrctl start 启动
lsnrctl stop 停止
sqlplus /nolog //登录sqlplus
connect /as sysdba //连接oracle
startup //起动数据库
shutdown //关闭数据库 shutdown immediate
exit //退出sqlplus
环境变量改错的话,执行如下:
export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin