Linux7安装oracle数据库11G,12C(图形化和最小化)
(适用于centos7和redhat7)
(由于部分的i686依赖包没有安装,故不适用于32位操作系统)
新系统编辑工具如果没有vim也可用vi,看个人习惯
(一) 修改
关闭并禁用防火墙和seLinux
[root@localhost ~]# systemctl
stop firewalld
[root@localhost ~]# systemctl disable firewalld
关闭 seLinux
[root@localhost ~]# vim /etc/sysconfig/selinux
SELINUX=disabled
查看并修改主机名
[root@localhost ~]# hostname
localhost.localdomain #Oracle 数据库的安装在生产中要慎重考虑主机名,避免二次修改。
[root@localhost ~]# hostnamectl set-hostname oracle.example.com
[root@localhost ~]# hostname
##验证是否成功
配置hostname本机IP映射
vim /etc/hosts
192.168.200.10 oracle.example.com oracle //192.168.200.10为本机地址
重启操作系统
[root@localhost ~]# reboot
(二) 安装依赖包
安装依赖包
更改yum源
1.有外网的情况,个人建议将yum源修改为aliyun源,下载速度快些,执行如下命令即可:
cd /etc
mv yum.repos.d yum.repos.d.bak
mkdir yum.repos.d
wget –O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
yum makecache
2.如果没有外网,则需要配置镜像文件为本地yum源
mkdir /media/cdrom //记住此目录,需要在yum源中写入
mount /dev/cdrom /media/cdrom
如果第二条命令报错如下,则是没有镜像文件,需要上传镜像文件到服务器,如无报错请忽略
报错解决方法:
这里我把镜像文件放到/home/目录下为例,执行挂载镜像操作:
mount -o loop /home /CentOS-7-4-x86_64-DVD-1708.iso /media/cdrom
解决报错后开始写入yum源文件:
cd /etc
mv yum.repos.d yum.repos.d.bak
mkdir yum.repos.d
vim /etc/yum.repos.d/lichao.repo //lichao.repo名称随意,但必须repo结尾
[lichao] //标识符随意
name=lichao //名称随意
baseurl=file:///media/cdrom //必须与上述我们挂载镜像的位置一致
enabled=1 //开启
gpgcheck=0 //本地源,不校验
然后保存退出
yum clean all //写入上述五行后,清除并重新建立缓存
yum makecache
完成上述修改成功后,准备安装如下依赖包:
说到依赖包就多说一句,可能其他地方讲到需要安装32位的依赖包,例如下面的两个包
glibc-2.3.4-2.41
glibc-2.3.4-2.41 (32 bit)
或者这样
glibc-2.3.4-2.41.el7.x86_64
glibc-2.3.4-2.41.el7.i686
但官方文档有很明确的讲述:11G:从Oracle Database 11g第2版(11.2.0.2)开始,除gcc-32bit之外的所有32位软件包,在Linux x86-64上安装数据库不再需要。仅需要64位软件包。但是,对于11.2.0.2之前的任何Oracle Database 11g发行版,列出的32位和64位软件包都是必需的。所以注意数据库版本。如下截图
12C:linux7及更高版本。。仅当您打算使用32位客户端应用程序访问64位服务器时,才需要这些要求列表中的32位软件包。对于Oracle数据库或Oracle Grid Infrastructure安装,Oracle数据库12c第2版(12.2)和更高版本在Oracle Linux和Red Hat Enterprise Linux上不需要编译器软件包gcc和gcc-c ++。如下截图
11g需要安装:
yum install binutils
yum install compat-libcap1
yum install compat-libstdc++-33
yum install gcc
yum install gcc-c++
yum install glibc
yum install glibc-devel
yum install ksh
yum install libaio
yum install libaio-devel
yum install libgcc
yum install libstdc++
yum install libstdc++-devel
yum install libXi
yum install libXtst
yum install libXext
yum install libX11
yum install libXau
yum install libxcb
yum install make
yum install sysstat
yum install unixODBC
yum install unixODBC-devel
yum install zlib-devel
yum install elfutils-libelf-devel
yum install mpfr #以下三个IBM 的Linux on System z系统服务器需要安装
yum install glibc-headers
yum install cpp
12c需要安装:
yum install bc
yum install binutils
yum install compat-libcap1
yum install compat-libstdc++-33
yum install gcc
yum install gcc-c++
yum install glibc
yum install glibc-devel
yum install ksh
yum install libaio
yum install libaio-devel
yum install libgcc
yum install libstdc++
yum install libstdc++-devel
yum install libxcb
yum install libX11
yum install libXau
yum install libXi
yum install libXtst
yum install libXrender
yum install libXrender-devel
yum install make
yum install net-tools
yum install nfs-utils
yum install smartmontools
yum install sysstat
yum install unixODBC
yum install unixODBC-devel
yum install libXaw #以下的包IBM 的Linux on System z系统服务器需要安装
yum install libXft
yum install libXmu
yum install libXp
yum install libgfortran
检查安装结果:
rpm –qa binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat unixODBC unixODBC-devel zlib-devel elfutils-libelf-devel libXrender libXrender-devel smartmontools numactl-devel glibc-common glibc-headers
compat-libstdc++-33在本地镜像没有,需要联网安装或下载rpm单独安装
rpm –ivh compat-libstdc++-33.86_64.rpm
(三) 添加oracle用户组和用户
groupadd oinstall
groupadd dba
groupadd asmadmin
groupadd asmdba
useradd -g oinstall -G dba,asmdba oracle -d /home/oracle
查看oracle用户
id oracle
初始化oracle用户密码
echo oracle | passwd --stdin oracle
(四) 优化OS内核参数
vim /etc/sysctl.conf
fs.aio-max-nr
= 1048576
fs.file-max =
6815744
#(RAM:操作系统的物理内存,这里以2G内存为例)
# kernel.shmmax=RAM*80%*1024*1024*1024
#
kernel.shmall=(RAM*1024*1024)/4
kernel.shmall = 2097152
kernel.shmmax = 1717986918
kernel.shmmni = 4096
# semaphores: semmsl, semmns, semopm, semmni
kernel.sem = 250 32000 100 128
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=1048586
kernel.panic_on_oops = 1 12c需要
使参数生效
sysctl -p
(五) 限制oracle用户的shell权限
vim /etc/security/limits.conf
oracle soft
nproc 2047
oracle
hard nproc 16384
oracle
soft nofile 4096
oracle
hard nofile 65536
oracle
soft stack 10240
oracle soft memlock 134217728
vim /etc/pam.d/login
session required /lib64/security/pam_limits.so
session required pam_limits.so
vim /etc/profile #末尾增加
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
(六) 创建oracle安装目录
mkdir -p /u01/app/oracle/product/11.2.0/dbhome_1
mkdir /u01/app/oracle/oradata
mkdir /u01/app/inventory //12c不支持在$ORACLE_BASE中,故在app目录中
mkdir /u01/app/oracle/ flash_recovery_area
chown -R oracle:oinstall /u01/app
chmod -R 775 /u01/app
(七) 配置oracle用户环境变量
su - oracle
vim .bash_profile
umask 022
export ORACLE_HOSTNAME=oracle.example.com
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
export PATH=.:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$ORACLE_HOME/jdk/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;
export LC_ALL="en_US"
export LANG="en_US"
export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"
以上配置完成后,个人建议重启下系统
reboot
(八) 静默安装
解压oracle压缩文件
cd /tmp #oracle包提前拷贝到此处的,若安装包在其他位置,则需要改变目录
unzip linux.x64_11gR2_database_1of2.zip -d /u01
unzip linux.x64_11gR2_database_2of2.zip -d /u01
配置安装应答文件
mkdir /u01/etc/
cp /u01/database/response/* /u01/etc/
vim /u01/etc/db_install.rsp #将里面一些字段修改与下面的对应
oracle.install.option=INSTALL_DB_SWONLY //类型为安装
UNIX_GROUP_NAME=oinstall //组
INVENTORY_LOCATION=/u01/app/inventory //其他文件等存放位置
SELECTED_LANGUAGES=en,zh_CN //查询语言
ORACLE_HOSTNAME=oracle.example.com //主机名
ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 //安装目录
ORACLE_BASE=/u01/app/oracle //主目录
oracle.install.db.InstallEdition=EE //企业版本
oracle.install.db.isCustomInstall=true //自定义组件
oracle.install.db.DBA_GROUP=dba //dba组
oracle.install.db.OPER_GROUP=dba //oper组
oracle.install.db.OSDBA_GROUP=dba //12c有此选项,需要选
oracle.install.db.OSOPER_GROUP=dba
oracle.install.db.OSBACKUPDBA_GROUP=dba
oracle.install.db.OSDGDBA_GROUP=dba
oracle.install.db.OSKMDBA_GROUP=dba
oracle.install.db.OSRACDBA_GROUP=dba
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE //数据库类型
racle.install.db.config.starterdb.globalDBName=orcl //全局实例名
oracle.install.db.config.starterdb.SID=orcl //实例名
#oracle.install.db.config.starterdb.memoryLimit=81920
//自动管理内存大小,一般为物理内存的40%,11g新特性可以自动调节,可以不设置
oracle.install.db.config.starterdb.password.ALL=ccense
//设定所有用户使用同一个密码
DECLINE_SECURITY_UPDATES=true //安全更新,11g的bug,必须为true
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false //不设置metalink密码
开始安装
su - oracle
./runInstaller -silent -responseFile /u01/etc/db_install.rsp –ignorePrereq
安装期间可以使用tail命令监看oracle的安装日志
tail -f /u01/app/oracle/inventory/logs/installActions2017-07-12_03-48-29PM.log
路径根据提示查看,例如12c可能提示在/tmp目录下
安装完成,提示Successfully Setup Software.
根据提示完成配置(使用root运行两个shell脚本)
执行root脚本完成安装
su - root
sh /u01/app/oracle/inventory/orainstRoot.sh #根据提示,可能路径不一样
sh /u01/app/oracle/product/11.2.0/dbhome_1/root.sh
配置静默监听
#netca.rsp 不用修改,默认即可,可以查看其中不带注释的内容应该如下:
[GENERAL]
RESPONSEFILE_VERSION="11.2"
CREATE_TYPE="CUSTOM"
[oracle.net.ca]
INSTALLED_COMPONENTS={"server","net8","javavm"}
INSTALL_TYPE=""typical""
LISTENER_NUMBER=1
LISTENER_NAMES={"LISTENER"}
LISTENER_PROTOCOLS={"TCP;1521"}
LISTENER_START=""LISTENER""
NAMING_METHODS={"TNSNAMES","ONAMES","HOSTNAME"}
NSN_NUMBER=1
NSN_NAMES={"EXTPROC_CONNECTION_DATA"}
NSN_SERVICE={"PLSExtProc"}
NSN_PROTOCOLS={"TCP;HOSTNAME;1521"}
配置监听
su - oracle
netca -silent -responsefile /u01/etc/netca.rsp
查看监听端口
netstat -tnulp | grep 1521
如果提示没有 netstat 命令,请 yum install net-tools -y
准备静默建库
注:TOTALMEMORY 默认的为物理内存的40%,可以手动更改
修改建库自动响应脚本
vim /u01/etc/dbca.rsp #修改字段对应
GDBNAME = orcl
SID = orcl
SYSPASSWORD = ccense #各用户密码,自己设置
SYSTEMPASSWORD = ccense
SYSMANPASSWORD = ccense
DBSNMPPASSWORD = ccense
DATAFILEDESTINATION =/u01/app/oracle/oradata
TEMPLATENAME=General_Purpose.dbc
listeners=LISTENER
RECOVERYAREADESTINATION=/u01/app/oracle/flash_recovery_area
CHARACTERSET = " ZHS16GBK"
#TOTALMEMORY = "1638" //12c不设置
执行静默建库
dbca -silent -responseFile /u01/etc/dbca.rsp //11g执行
dbca -silent -createDatabase -responseFile /u01/etc/dbca.rsp //12c
查看oracle实例进程
ps -ef | grep ora_ | grep -v grep
(九) 图形化安装
[oracle@oracle ~]$ export DISPLAY=192.168.10.1:0.0
[oracle@oracle ~]$ ./database/runInstaller // 执行安装程序
开始安装
跳过 email 登录
当然如果有购买也可以登陆
跳过更新
只安装软件(后期使用 DBCA 或手工建库)
单实例安装(后面是集群安装和集群节点)
英文和简体中文
选择安装企业版
这里是我们前面写的环境变量生效的结果,确认直接下一步
产品安装清单和用户组,这路路径要是报错就改成/u01/app/oracle/inventory即可
Oracle 系统参数检测及修改,当出现点击需要修复读警告,选择 Fix& Check Again 进行修复
运行脚本 复制脚本,以 root 用户执行,执行成功后点击 OK 完成修复
[root@oracle ~]# /tmp/CVU_11.2.0.4.0_oracle/runfixup.sh
注意:如果是有组件需要安装,在生产环境是不能忽略的,需要全部安装,安装步骤:
[root@oracle ~]# yum -y install xxxx
完成以下步骤,进行安装
这里出现报错,此报错为 Oracle 在 RHEL7 上允许的漏洞,需要修改参数
[oracle@oracle ~]$ vi /u01/app/oracle/product/11.2.0.4/dbhome_1/sysman/lib/ins_emagent.mk
//后面添加 "-lnnz11"字段。
修改后点击 Retry 重试
完成安装
Oracle 让我们安装脚本,两个脚本完成后点击 OK 继续,第二个脚本一路按回车。
创建监听
[oracle@oracle ~]#netca //在图形化界面填入地址和sid直接下一步
建库
开始建库
[oracle@oracle ~]#dbca //弹出图形化界面
创建数据库
设置全局名和 SID(实例名)
配置 EM,反选
配置系统用户密码
我选择了全部都设置为一个密码,在生产中,建议各个密码不一样而且复杂
存储类型设置(选择 File System)
设置需要分配 Oracle 内存的大小
字符集设置建议为(ZHS16GBK)
下一步
开始创建点击 Finish
配置完成 exit 退出
(十) 查看数据库基本信息
查看监听状态
lsnrctl status
查看数据库状态
sqlplus / as sysdba
select status from v$instance;
查看实例状态
sqlplus / as sysdba
select status from v$instance;
查看数据库编码
select userenv('language') from dual;
查看数据库版本信息
select * from v$version;
(十一) 其他错误
出现以下情况,解决方式如下:输入startup,根据提示信息,将$ORACLE_BASE/admin/数据库名称/pfile目录下的init.ora.xxx形式的文件copy到$ORACLE_HOME/dbs目录下init{sid}.ora(根据startup提示)即可。
如果是图形化界面安装可能会出现错误:
可能会出现的两个错误:ins_ctk.mk错误:
修改/u01/app/oracle/product/11.2.0/dbhome_1/ctx/lib/ins_ctx.mk,将
ctxhx: $(CTXHXOBJ)
$(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK) //11行
修改为:
ctxhx: $(CTXHXOBJ)
-static $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK) /usr/lib64/stdc.a
点击Retry继续安装。
接着又出现”Error in invoking target 'agent nmhs' of makefile '/u01/app/oracle/product/11.2.0/dbhome_1/sysman/lib/ins_emagent.mk.' ,
解决方法:在makefile中添加链接libnnz11库的参数,修改/u01/app/oracle/product/11.2.0/dbhome_1/sysman/lib/ins_emagent.mk,将
$(MK_EMAGENT_NMECTL)
修改为:$(MK_EMAGENT_NMECTL) -lnnz11 //190行左右
点击Retry继续安装。
安装成功!
(十二) 设置Oracle开机启动
修改 oratab文件
vim /etc/oratab
把最下面要启动的实例设置成 Y
orcl:/home/oracle/app/oracle/product/12.2.0/dbhome_1:Y
编写启动服务
标红色的地方请替换为$ORACLE_HOME 的绝对路径
[root@localhost system]# vim /usr/lib/systemd/system/oracle.service
[Unit]
Description=Oracle Database 11g Startup/Shutdown Service
After=syslog.target network.target
[Service]
LimitMEMLOCK=infinity
LimitNOFILE=65535
Type=oneshot
RemainAfterExit=yes
User=oracle
Group=oinstall
Environment="ORACLE_HOME=$ORACLE_HOME"
ExecStart=$ORACLE_HOME/bin/dbstart $ORACLE_HOME >> 2>&1 &
ExecStop=$ORACLE_HOME/bin/dbshut $ORACLE_HOME 2>&1 &
[Install]
WantedBy=multi-user.target
执行命令使服务生效
使用服务生效:systemctl daemon-reload
开始服务:systemctl start oracle.service
停止服务:systemctl stop oracle.service
查看状态:systemctl status oracle.service
开机自启动服务:systemctl enable oracle.service