oracle 02 在linux上部署

在linux上直接安装oracle太麻烦了!!

建议阅读《oracle 03 基于docker部署》

下载

去官网下载你需要的版本(要注册账号)

https://www.oracle.com/database/technologies/oracle-database-software-downloads.html

或者,你可以通过我的百度网盘获取:

linux.x64_11gR2_database_1of2
链接:https://pan.baidu.com/s/1er8VVqM9j-bh-XoHh_vsiw
提取码:ylv9

linux.x64_11gR2_database_2of2
链接:https://pan.baidu.com/s/1HcuseqqlA9pRUETIJwzSEw
提取码:192r

如果你没百度会员的话,找我要高速下载链接

压缩包上传到linux

mkdir /tmp

上传两个文件到tmp目录下

linux.x64_11gR2_database_1of2.zip
linux.x64_11gR2_database_2of2.zip

swap分区

dd if=/dev/zero of=/home/swapfile bs=1M count=512
mkswap /home/swapfile
swapon /home/swapfile

然后修改 /etc/fstab,加上:

/home/swapfile swap swap defaults 0 0

修改主机名

hostnamectl set-hostname oracle

重启

reboot

加入hosts

vim /etc/hosts
127.0.0.1 oracle

关闭防火墙

systemctl status firewalld.service  #查看防火墙状态,运行中
systemctl stop firewalld.service  #关闭防火墙
systemctl status firewalld.service  #再次查看防火墙状态,发现已关闭
systemctl disable firewalld.service  #禁止使用防火墙(重启也是禁止的)

修改SELINUX

vim /etc/selinux/config
SELINUX=disabled

修改用户的SHELL的限制

vim /etc/security/limits.conf

追加四行配置

oracle   soft    nproc    2047  
oracle   hard    nproc    16384  
oracle   soft    nofile   1024  
oracle   hard    nofile   65536

修改/login文件

vim  /etc/pam.d/login

将下列内容加入该文件

session   required    /lib/security/pam_limits.so   
session   required    pam_limits.so  

修改linux内核

vim /etc/sysctl.conf 

将下列内容加入该文件。

fs.file-max = 6815744   
fs.aio-max-nr = 1048576   
kernel.shmall = 2097152   
kernel.shmmax = 2147483648   
kernel.shmmni = 4096   
kernel.sem = 250 32000 100 128   
net.ipv4.ip_local_port_range = 9000 65500   
net.core.rmem_default = 4194304   
net.core.rmem_max = 4194304   
net.core.wmem_default = 262144   
net.core.wmem_max = 1048576 
并用#符号注释掉原有的配置。
# Controls the maximum shared segment size, in bytes
#kernel.shmmax = 68719476736
# Controls the maximum number of shared memory segments, in pages
#kernel.shmall = 4294967296

输入命令,使/etc/sysctl.conf配置文件立即生效。

sysctl -p

修改/etc/profile。

vi  /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  

创建用户和组

创建用户组oinstall、dba
创建oracle用户,主组为oinstall,副组dba,输入命令:

groupadd  oinstall
groupadd  dba
useradd -g oinstall -G dba -m oracle

副组的参数是大写G,别弄错,否则安装时会出现错误:
[FATAL] [INS-35341] User is not a member of the following chosen OS groups

设置用户oracle密码

输入如下命令,随后输入两次密码。

passwd  oracle

创建数据库软件目录和数据文件存放目录。

看下硬盘的大小,如果实际的,需要挂盘,/u01是挂盘创建,如需挂盘查看挂盘文件

mkdir -p /u01/app
mkdir -p /u01/app/oracle
mkdir -p /u01/app/oradata
mkdir -p /u01/app/oraInventory
mkdir -p /u01/app/fast_recovery_area
mkdir -p /u01/app/oracle/product

修改目录权限

更改目录属主为Oracle用户所有,输入命令:

chown -R oracle:oinstall /u01/app  

配置oracle用户的环境变量

用命令su - oracle切换到oracle用户下。

su - oracle

输入命令,

vim .bash_profile,

将下列内容加入该文件。

umask 022  
export ORACLE_BASE=/u01/app  
export ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/dbhome_1  
export ORACLE_SID=orcl  
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin  
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib  

执行应用下

source .bash_profile

解压安装文件

进入tmp目录,使用unzip命令解压文件。

cd /tmp  
unzip linux.x64_11gR2_database_1of2.zip 
unzip linux.x64_11gR2_database_2of2.zip  

解压完成后,在tmp目录下会有一个database的文件夹。

创建oraInst.loc

否则安装时会报错:SEVERE: [FATAL] [INS-32038] The operating system group specified for central inventory (oraInventory) ownership is invalid.

vim /etc/oraInst.loc
inventory_loc=/u01/app/oraInventory
inst_group=oinstall

安装依赖

yum install binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel expat gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers libaio libaio-devel libgcc libstdc++ libstdc++-devel make pdksh sysstat unixODBC unixODBC-devel

开始安装

Oracle支持静默安装。在我看来,它主要有两方面的好处:
一、极大地提升了效率,尤其是批量安装。
二、很多时候,只有终端环境可供使用。

准备responseFile文件

从Oracle软件中获取文件模板

cd /tmp/database/response/
ls

dbca.rsp db_install.rsp netca.rsp

其中database是Oracle软件解压后生成的目录。可见在response目录下有三个模板,其中dbca.rsp是用来创建数据库的。db_install.rsp是用来安装Oracle软件的。netca.rsp是用来创建监听器的。当然也可在db_install.rsp中直接创建数据库。在这里,为求方便,我们选择db_install.rsp模板一并安装软件,创建数据库。

编辑responseFile文件

在编辑之前,我们先备份下。

[root@localhost response]# mv db_install.rsp bb.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_AND_CONFIG
ORACLE_HOSTNAME=oracle
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oraInventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
ORACLE_BASE=/u01/app
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=orcl
oracle.install.db.config.starterdb.SID=orcl
oracle.install.db.config.starterdb.characterSet=AL32UTF8
oracle.install.db.config.starterdb.memoryOption=true
oracle.install.db.config.starterdb.memoryLimit=400
oracle.install.db.config.starterdb.installExampleSchemas=false
oracle.install.db.config.starterdb.enableSecuritySettings=true
oracle.install.db.config.starterdb.password.ALL=1Password
oracle.install.db.config.starterdb.password.SYS=
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=xxxx@xxxx.com
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=/u01/app/oradata
oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=/u01/app/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
PROXY_HOST=
PROXY_PORT=
PROXY_USER=
PROXY_PWD=

输出修改的信息,确认下即可

[root@localhost response]# grep -Ev "^$|^#" db_install.rsp

开始静默安装

su - oracle
cd /tmp/database
./runInstaller -silent -ignorePrereq -responseFile /tmp/database/response/db_install.rsp 

可以通过查看日志文件,来知晓安装进度。此时,ctrl+c,tail -f 日志文件
如果是测试环境的VM可能会出现tmpfs比MEMORY_TARGET小,导致oracle没办法起来。ORA-00845: MEMORY_TARGET not supportsqpled on this system。

mount -o remount,size=4G /dev/shm

启动数据库

[oracle@oracle ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Wed Dec 6 09:14:24 2017
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

查看监听器状态

lsnrctl status
lsnrctl start

修改Oracle启动配置文件

[root@oracle admin]# vim /etc/oratab
#



# This file is used by ORACLE utilities.  It is created by root.sh
# and updated by the Database Configuration Assistant when creating
# a database.

# A colon, ':', is used as the field terminator.  A new line terminates
# the entry.  Lines beginning with a pound sign, '#', are comments.
#
# Entries are of the form:
#   $ORACLE_SID:$ORACLE_HOME:<N|Y>:
#
# The first and second fields are the system identifier and home
# directory of the database respectively.  The third filed indicates
# to the dbstart utility that the database should , "Y", or should not,
# "N", be brought up at system boot time.
#
# Multiple entries with the same $ORACLE_SID are not allowed.
#
#
orcl:/u01/app/oracle/product/11.2.0/dbhome_1:Y

修改/etc/rc/loacl文件

目录是为了让oracle在系统启动时服务自动启动

[root@oracle admin]# vim /etc/rc.d/rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
su - oracle -lc "/u01/app/oracle/product/11.2.0/dbhome_1/bin/lsnrctl start"
su - oracle -lc "/u01/app/oracle/product/11.2.0/dbhome_1/bin/dbstart"

执行

chmod +x /etc/rc.d/rc.local

新建表空间、用户

参考《oracle 04 使用手册》

开防火墙1521端口

参考《linux 防火墙》


转载请注明来源。 欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。 可以在下面评论区评论,也可以邮件至 sharlot2050@foxmail.com。

文章标题:oracle 02 在linux上部署

字数:1.9k

本文作者:夏来风

发布时间:2020-07-02, 22:42:02

原始链接:http://www.demo1024.com/blog/oracle-linux/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。