一、 环境准备

操作系统:CentOS Linux release 7.6.1810 (Core)
数据库版本:Oracle Database 11g Enterprise Edition Release 11.2.0.4.0

数据库安装包: p13390677_112040_Linux-x86-64_1of7.zip p13390677_112040_Linux-x86-64_2of7.zip PL/SQL

注意: Oracle 官网目前只能下载到 11.2.0.1 的安装包,所以本文档的安装包请大家搜索找资源下载。 关闭防火墙和selinux systemctl status firewalld
systemctl disable firewalld systemctl disable firewalld #firewall-cmd --zone=public --add-port=1521/tcp --permanent #如果打开防火墙的话,需放开Oracle1521端口 #firewall-cmd --reload #增加新的配置需重新加载 sed -i 's#SELINUX=.*#SELINUX=disabled#g' /etc/selinux/config sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config grep SELINUX=disabled /etc/selinux/config setenforce 0 getenforce 二、 操作系统配置 在Root用户下执行以下步骤: 1)修改用户的 SHELL 的限制(资源限制),修改 /etc/security/limits.conf 文件 $ vim /etc/security/limits.conf 按i键进入编辑模式,将下列内容加入该文件: oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 编辑完成后按Esc键,输入“:wq”存盘退出

2)修改 /etc/pam.d/login 文件 输入命令:

$ vim /etc/pam.d/login 按i键进入编辑模式,将下列内容加入该文件:

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

编辑完成后按Esc键,输入“:wq”存盘退出 3)修改 linux 内核,修改 /etc/sysctl.conf 文件 输入命令: $ vim /etc/sysctl.conf 按i键进入编辑模式,将下列内容加入该文件

该参数决定了系统中所允许的文件句柄最大数目,文件句柄设置代表linux系统中可以打开的文件的数量

fs.file-max = 6815744

此参数限制并发未完成的请求,应该设置避免I/O子系统故障

fs.aio-max-nr = 1048576

可以使用的共享内存的总页数

kernel.shmall = 2097152

单个共享内存段的最大值(不能超过自己的内存大小,这里设置的值为2G)

kernel.shmmax = 2147483648

该参数是共享内存段的最大数量,建议用缺省值4096

kernel.shmmni = 4096 kernel.sem = 250 32000 100 128

IP4的端口可使用范围

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 编辑完成后按Esc键,输入“:wq”存盘退出 4)要使 /etc/sysctl.conf更改立即生效,执行以下命令 输入 $ sysctl -p 显示如下:

linux:~ $ sysctl -p 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 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 5)编辑 /etc/profile 输入命令: $ vim /etc/profile 按i键进入编辑模式,将下列内容加入该文件

if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi 编辑完成后按 Esc 键,输入“:wq”存盘退出 6)创建相关用户和组,作为软件安装和支持组的拥有者 创建Oracle用户和密码,输入命令: $groupadd oinstall $groupadd bda $ useradd -g oinstall -g dba -m oracle $ passwd oracle 然后会让你输入密码,密码任意输入2次,但必须保持一致,回车确认。 创建数据库软件目录和数据文件存放目录,目录的位置,根据自己的情况来定,注意磁盘空间即可,这里我把其放到 oracle 用户下,输入命令

$ mkdir /home/oracle/app $ mkdir /home/oracle/app/oracle $ mkdir /home/oracle/app/oradata $ mkdir /home/oracle/app/oracle/product 8)更改目录属主为Oracle用户所有,输入命令 $ chown -Rf oracle:oinstall /home/oracle/app 9)配置 oracle 用户的环境变量,首先,切换到新创建的 oracle 用户下, 输入: $ su - oracle 然后直接在输入: $ vim .bash_profile 按i编辑 .bash_profile,进入编辑模式,增加以下内容: export ORACLE_BASE=/home/oracle/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

编辑完成后按 Esc 键,输入“:wq”存盘退出。 $ source .bash_profile 说明:这里指定的 ORACLE_SID 为数据库实例名 配置主机名监听   增加主机名,若不执行此步,则配置监听时会出错,系统无法识别监听。 hostnamectl set-hostname oracle cat /etc/sysconfig/network # Created by anaconda hostname=oracle cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 oracle ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 10.10.16.245 oracle

安装相关依赖包   安装系统依赖包,这一步也是最关键出错的地方,所以一定要注意: yum -y install binutils-* compat-libcap1-* gcc-* gcc-c++-* glibc-* glibc-devel-* glibc-headers-* libstdc* elfutils-libelf-devel* libaio-devel* unixODBC-* pdksh-* libaio-* libgcc-* libXi-* libXtst-* make-* sysstat-* ld-linux.so.2 libc.so.6* wget ftp://ftp.icm.edu.pl/vol/rzm3/linux-redhat/linux/6.1/en/os/i386/RedHat/RPMS/pdksh-5.2.14-1.i386.rpm #默认pdksh会无法安装,使用rpm安装 rpm -ivh pdksh-5.2.14-1.i386.rpm 三、 安装 Oracle

步骤一:当上述系统要求操作全部完成后,注销系统,在图形界面以 Oracle 用户登陆。首先将下载的 Oracle 安装包 使用 FTP 发送到 Linux系统中。 运行 unzip 命令解压 oracle 安装文件,输入命令:

$ unzip linux.x64_11gR2_database_1of2.zip $ unzip linux.x64_11gR2_database_2of2.zip 解压完成后 cd 进入其解压后的目录 database 使用 ls 命令可以查看解压后 database 所包含的文件:

$ ls

步骤二:Xmanager 配置远程图形化 使用 XShell 建立连接时,设置连接属性,在 SSH --> tunneling 选项下勾选 Forward X11 connections to: Xmanager。

注意:登陆用户名为 oracle 设置 display 变量,设置的 IP 为安装 xmanager 的客户端IP $ export DISPLAY=192.168.1.226:0.0 执行安装,输入命令: $ ./runInstaller 取消勾选,下一步: Skip software updates: Install database software only(软件和创建数据库分开安装) Single Instance database installation(单实例数据库安装) 添加语言:简体中文 选择 Enterprise Edtion(企业版) Oracle会根据环境变量自动选择设置好的安装路径,直接下一步即可: 装到这一步,可以看到,可以查看到有很多的 rpm 包没有,我们可以从安装 linux 的光盘或ISO中(或去linux_oracle11g_Package)查找所缺的包,使用 ftp上传到linux中,然后使用 rpm –ivh xxx.rpm --nodeps --force 来进行安装(其中加上–nodeps – force 代表强制安装,是在直接使用 rpm –ivh xxx.rpm 安装不成功的情况下用的)等到把包全部都安装好的情况下,再次在 oracle 图形界面中,执行安装过程2,下来在环境检查过程中,就通过了

镜像文件挂,如/mnt: $ mount -o loop CentOS-7-x86_64-DVD-1708.iso /mnt/ $ cd /mnt/Packages $ rpm -ivh libtool-ltdl-2.4.2-22.el7_3.x86_64.rpm --nodeps --force

件安装到最后一步,会跳出如下执行脚本的提示: 打开一个终端,使用root登录,执行要求执行的脚本。执行完毕后在图形界面点OK $ cd /home/oracle/app/oracle/product/11.2.0/dbhome_1 $ ./root.sh $ /home/oracle/oraInventory $ ./orainstRoot.sh 四、 数据库建库 还是在oracle用户的图形界面oracle用户中,新开启一个终端,直接输入命令dbca会弹出如下界面。我们这里采用定制数据库 $ dbca 据环境变量中设置的 ORACLE_SID 设置数据库名称和SID,这里设置的是:orcl 选择所有用户设置相同密码(正式业务中请为这些用户分别设置密码) 五、 配置监听及本地服务 步骤一:在oracle用户的图形界面oracle用户中,新开启一个终端,输入命令 netca 会弹出如下界面 $ netca 步骤二:创建监听服务(充当oracle服务器,让别的oracle客户端连接本oracle服务器) 这样oracle服务器安装配置基本就完成了 $ lsnrctl status

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 24-NOV-2019 18:29:00

Copyright (c) 1991, 2013, Oracle. All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))) STATUS of the LISTENER

Alias LISTENER Version TNSLSNR for Linux: Version 11.2.0.4.0 - Production Start Date 24-NOV-2019 17:21:47 Uptime 0 days 1 hr. 7 min. 13 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /home/oracle/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora Listener Log File /home/oracle/app/diag/tnslsnr/localhost/listener/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) Servimces Summary... Servimce "orcl" has 1 instance(s). Instance "orcl", status READY, has 1 handler(s) for this servimce... Servimce "orclXDB" has 1 instance(s). Instance "orcl", status READY, has 1 handler(s) for this servimce... The command completed successfully 查看数据库状态: $ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Sun Nov 24 18:30:28 2019

Copyright (c) 1982, 2013, Oracle. All rights reserved.

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> select status from v$instance;

STATUS

OPEN

SQL> select open_mode from v$database;

OPEN_MODE

READ WRITE 六、 初始化数据库 测试plsql登录: 创建表空间:

create tablespace rdc logging datafile '/home/oracle/app/oradata/orcl/rdc.dbf' size 1112m autoextend on next 64m extent management local; 创建普通用户:

-- Create the user create user tom_jk identified by "123456" default tablespace rdc temporary tablespace TEMP profile DEFAULT; -- Grant/Revoke role privimleges grant connect to tom_jk; grant dba to tom_jk; -- Grant/Revoke system privimleges grant unlimited tablespace to tom_jk; 切换到普通用户,导入数据: 到此,我们完成整个数据库的搭建。