安装步骤:
1、下载oracle 11g 安装包
因为我centos7为64位操作系统,所以这里下载的也是64位版本的oracle。
下载地: Software Download | Oracle
下载后:
2、安装前的准备
2.1、创建组与用户
[root@localhost zhuzi]# groupadd oinstall #创建oinstall组
[root@localhost zhuzi]# groupadd dba #创建dba组
[root@localhost zhuzi]# useradd -g oinstall -g dba -m oracle #创建oracle用户并将用户加入到dba组与oinstall组
若用户已经存在:
[root@localhost zhuzi]# usermod -a -G oinstall oracle
[root@localhost zhuzi]# usermod -a -G dba oracle
[root@localhost zhuzi]# passwd oracle #设置oracle用户密码
2.2、创建oracle安装目录
[root@localhost zhuzi]# mkdir -p /data/oracle #oracle根目录
[root@localhost zhuzi]# mkdir -p /data/database #用于存放Oracle解压后的安装包
[root@localhost zhuzi]# mkdir -p /data/oraInventory #数据库配置文件目录
[root@localhost zhuzi]# chown -R oracle:oinstall /data #修改目录所有者为oracle
首先关闭selinux,修改/etc/selinux/config文件,将SELINUX=disabled。修改好后如下图所示,这个如果修改好后,需要重启才能生效:
[root@localhost zhuzi]# vi /etc/selinux/config
2.3、关闭防火墙,并设置开机不启动防火墙。设置好后不需要重启,会立即生效。(也可以不用关闭)
[root@localhost zhuzi]# systemctl stop firewalld.service #关闭防火墙
[root@localhost zhuzi]# systemctl disable firewalld.service #设置开机不启动防火墙
2.4、优化系统内核参数
[root@localhost zhuzi]# vi /etc/sysctl.conf
1)、编辑/etc/sysctl.conf文件,在文件尾添加如下内容:
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.rp_filter = 1
fs.file-max = 6815744 #设置最大打开文件数
fs.aio-max-nr = 1048576
kernel.shmall = 2097152 #共享内存的总量,8G内存设置:2097152*4k/1024/1024
kernel.shmmax = 2147483648 #最大共享内存的段大小
kernel.shmmni = 4096 #整个系统共享内存端的最大数
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500 #可使用的IPv4端口范围
net.core.rmem_default = 262144
net.core.rmem_max= 4194304
net.core.wmem_default= 262144
net.core.wmem_max= 1048576
2)、使配置修改内核的参数生效:
[root@localhost zhuzi]# sysctl -p
2.5、对oracle用户设置限制
[root@localhost zhuzi]# vi /etc/security/limits.conf
在文件后半部分,添加如下内容中斜体部分内容,保存退出。
@student - maxlogins 4
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
End of file
2.6、设置用户变量
[root@localhost ~]# vi /home/oracle/.bash_profile
在文件末尾添加如下内容:
export ORACLE_BASE=/data/oracle #oracle数据库安装目录
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 #oracle数据库路径
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH #添加系统环境变量
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib #添加系统环境变量
export ORACLE_SID=orcl #oracle启动数据库实例名
export ORACLE_PID=ora11g
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export LANG=C #防止安装过程出现乱码
使配置的环境变量生效:
[root@localhost ~]# source /home/oracle/.bash_profile
2.7、安装依赖包
[root@localhost ~]# yum -y install binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33*i686 compat-libstdc++-33*.devel compat-libstdc++-33 compat-libstdc++-33*.devel gcc gcc-c++ glibc glibc*.i686 glibc-devel glibc-devel*.i686 ksh libaio libaio*.i686 libaio-devel libaio-devel*.devel libgcc libgcc*.i686 libstdc++ libstdc++*.i686 libstdc++-devel libstdc++-devel*.devel libXi libXi*.i686 libXtst libXtst*.i686 make sysstat unixODBC unixODBC*.i686 unixODBC-devel unixODBC-devel*.i686
centos7需要的安装包,可以在Oracle上查看: Oracle Database Preinstallation Tasks
我的版本当然对应的是这个版本:Oracle Linux 7 and Red Hat Enterprise Linux 7
它没有要求说要安装elfutils和unixODBC包,但是等安装Oracle检查安装前准备时,会提示说缺少这两个包,所以一并安装
3、开始安装Oracle
前面设置很多内容,保险起见,重启一次系统。
[root@localhost ~]# reboot
将步骤1中下载的两个oracle安装文件,上传至/usr/local/src目录中。我使用的xshell工具,root用户直接在命令窗口cd /usr/local/src ,然后鼠标拖住那两个安装包至命令窗口就可以自动上传。
用root用户解压这两个文件到/data/database 目录下,设置所属用户与组,再切换至oracle用户加载一下环境变量,开始安装。
[root@localhost src]# unzip p10404530_112030_Linux-x86-64_1of7.zip -d /data/database/ #解压第一个压缩包
[root@localhost src]# unzip p10404530_112030_Linux-x86-64_2of7.zip -d /data/database/ #解压第二个压缩包
压后进入 database 目录,该目录下有三个 .rsp 文件,用来作为静默安装时的应答文件的模板。
三个文件作用分别是:
db_install.rsp:安装应答
dbca.rsp:创建数据库应答
netca.rsp:建立监听、本地服务名等网络设置的应答
[root@localhost src]# cd /data/database/database/response # 进入 response 目录
[root@localhost response ]# cp db_install.rsp db_install_copy.rsp # 将 db_install.rsp 备份一份,以免修改出错
然后修改静默安装的配置文件
[root@localhost response ]# vim db_install.rsp # 编辑
按照下方的参数进行修改,需要修改的地方标红了
---------------------------
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=oracledb
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/data/oracle/oraInventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/data/oracle/product/11.2.0/db_1
ORACLE_BASE=/data/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.isCustomInstall=false
oracle.install.db.customComponents=oracle.server:11.2.0.1.0,oracle.sysman.ccr:10.2.7.0.0,oracle.xdk:11.2.0.1.0,oracle.rdbms.oci:11.2.0.1.0,oracle.network:11.2.0.1.0,oracle.network.listener:11.2.0.1.0,oracle.rdbms:11.2.0.1.0,oracle.options:11.2.0.1.0,oracle.rdbms.partitioning:11.2.0.1.0,oracle.oraolap:11.2.0.1.0,oracle.rdbms.dm:11.2.0.1.0,oracle.rdbms.dv:11.2.0.1.0,orcle.rdbms.lbac:11.2.0.1.0,oracle.rdbms.rat:11.2.0.1.0
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oinstall
oracle.install.db.CLUSTER_NODES=
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
oracle.install.db.config.starterdb.globalDBName=ora11g
oracle.install.db.config.starterdb.SID=ora11g
oracle.install.db.config.starterdb.characterSet=AL32UTF8
oracle.install.db.config.starterdb.memoryOption=true
oracle.install.db.config.starterdb.memoryLimit=1500
oracle.install.db.config.starterdb.installExampleSchemas=false
oracle.install.db.config.starterdb.enableSecuritySettings=true
oracle.install.db.config.starterdb.password.ALL=oracle
oracle.install.db.config.starterdb.password.SYS=oracle
oracle.install.db.config.starterdb.password.SYSTEM=
oracle.install.db.config.starterdb.password.SYSMAN=
oracle.install.db.config.starterdb.password.DBSNMP=
oracle.install.db.config.starterdb.control=DB_CONTROL
oracle.install.db.config.starterdb.gridcontrol.gridControlServiceURL=
oracle.install.db.config.starterdb.dbcontrol.enableEmailNotification=false
oracle.install.db.config.starterdb.dbcontrol.emailAddress=
oracle.install.db.config.starterdb.dbcontrol.SMTPServer=
oracle.install.db.config.starterdb.automatedBackup.enable=false
oracle.install.db.config.starterdb.automatedBackup.osuid=
oracle.install.db.config.starterdb.automatedBackup.ospwd=
oracle.install.db.config.starterdb.storageType=FILE_SYSTEM_STORAGE
oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=/data/oracle/oradata
oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=/data/oracle/fast_recovery_area
oracle.install.db.config.asm.diskGroup=
oracle.install.db.config.asm.ASMSNMPPassword=
MYORACLESUPPORT_USERNAME=
MYORACLESUPPORT_PASSWORD=
SECURITY_UPDATES_VIA_MYORACLESUPPORT=
DECLINE_SECURITY_UPDATES=true //一定要设为 true
PROXY_HOST=
PROXY_PORT=
PROXY_USER=
PROXY_PWD=
注意:
host中添加ip和hostname名,此处的添加ip hostname,两者可以通过ifconfig和hostname查看
[root@localhost src]# hostname
[root@localhost src]# vi /etc/hosts
192.168.56.10 localhost.localdomain
以root用户需创建/etc/oraInst.loc文件,否则安装会报错
[root@localhost src]# vi /etc/oraInst.loc
inventory_log=/data/oracle/oraInventory
inst_group=oinstall
开始静默安装
[root@localhost src]# chown -R oracle:oinstall /data #指定文件夹及子目录的所属用户与组
[root@localhost src]# su - oracle #切换至oracle用户
[oracle@localhost src]$ cd #进入家目录
[oracle@localhost ~]$ source .bash_profile #加载环境变量
[oracle@localhost ~]$ cd /data/database/database/ #进入oracle安装程序存放的目录
[oracle@localhost database]$ ./runInstaller -silent -force -responseFile /data/database/database/response/db_install.rsp # 安装
如果出现下图错误,可参照 centos 安装oracle 报Checking swap space: 0 MB available, 150 MB required. Failed <<<< - 苍洱 - 博客园 解决,然后重新执行安装命令
[WARING]可暂时忽略,此时安装程序仍在后台进行,如果出现[FATAL],则安装程序已经停止了。
安装需要一会儿,如果想看安装进度,可以再打开一个窗口,输出会话日志
tail -f 日志文件(下图中红色框中为日志文件绝对路径)
当出现 Successfully Setup Software. 证明已经安装成功,然后根据提示以 root 用户执行脚本
[root@localhost database]$ su - root
[root@localhost database]$ sh /data/oracle/oraInventory/orainstRoot.sh
[root@localhost database]$ sh /data/oracle/product/11.2.0/db_1/root.sh
四、配置监听程序
监听命令
启动监听:lsnrctl start
停止监听:lsnrctl stop
重启监听:lsnrctl reload
查看监听:lsnrctl status
1、配置监听(使用oracle用户)
[oracle@localhost ~]$ su - oracle # 切换到 oracle 用户
[oracle@localhost ~]$ /data/oracle/product/11.2.0/db_1/bin/netca /silent /responseFile /data/database/database/response/netca.rsp # 配置监听
2、查看监听(使用oracle用户)
[oracle@localhost ~]$ lsnrctl status # 查看监听状态
3、静默dbca建库
[oracle@localhost ~]$ su - root # 切换到 root 用户
[oracle@localhost ~]$ vi /data/database/database/response/dbca.rsp
修改如下内容:
GDBNAME = "orcl" # 78 行
SID="orcl" # 170行
CHARACTERSET="AL32UTF8" # 418行
NATIONALCHARACTERSET="UTF8" # 428行
保存并退出:wq
可以在查看模式(非inster)输入 :set number 显示行号;
可以在查看模式(非inster)输入 /+内容 快速定位内容处;
默dbca建库
[oracle@localhost ~]$ su - oracle # 切换到 oracle 用户
[oracle@localhost ~]$ /data/oracle/product/11.2.0/db_1/bin/dbca -silent -responseFile /data/database/database/response/dbca.rsp # 建库
执行完后会先清屏,清屏之后没有提示,直接输入oracle用户的密码(oracle),回车,再输入一次(oracle),再回车。
稍等一会,会开始自动创建
4、启动数据库
[oracle@oracledb ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.1.0 Production on Mon Feb 16 14:26:57 2015 Copyright (c) 1982, 2009, Oracle. All rights reserved. Connected to an idle instance. SQL> start SP2-1506: START, @ or @@ command has no arguments SQL> startup ORACLE instance started. Total System Global Area 3290345472 bytes Fixed Size 2217832 bytes Variable Size 1795164312 bytes Database Buffers 1476395008 bytes Redo Buffers 16568320 bytes Database mounted. Database opened. SQL> show parameter; |
使用 show parameter;或者 select table_name from dba_tables 看看是否正常
6、开放1521端口(远程连接Oracle所需)
查看开放的端口:firewall-cmd --listy-port
永久开放1521端口号:firewall-cmd --permanent --zone=public --add-port=1521/tcp
刷新防火墙: firewall-cmd --reload
若系统是LinuxOracle R6的话,防火墙就需要重新设置
vi /etc/sysconfig/iptables
在commit之前加()
-A INPUT -m state --state NEW -m tcp -p tcp --dport 1521 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 1158 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 5560 -j ACCEPT
重启防火墙生效
service iptables restart