官方下载地址:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html
根据自己服务器的情况选择对应的安装包下载,以我的为例,是64位操作系统的。下载完成后,有两个压缩文件linux.x64_11gR2_database_1of2.zip 和 linux.x64_11gR2_database_2of2.zip。
oracle尽量安装在剩余空间充足的位置,因此首先要查看服务器硬盘情况,如下:
[root@bogon ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 50G 8.5G 42G 17% /
devtmpfs 16G 0 16G 0% /dev
tmpfs 16G 0 16G 0% /dev/shm
tmpfs 16G 9.0M 16G 1% /run
tmpfs 16G 0 16G 0% /sys/fs/cgroup
/dev/sda1 1014M 180M 835M 18% /boot
/dev/mapper/centos-home 142G 37M 142G 1% /home
tmpfs 3.2G 40K 3.2G 1% /run/user/0
/dev/sdb1 493G 825M 467G 1% /data
对比后发现/data余量最大,因此决定将oracle安装在/data目录
把下载下来的两个安装包通过xftp上传到/data目录(开始上传后继续执行后边的目录即可,无需等待上传完成)。
安装依赖包之前,建议将yum源修改为aliyun源,下载速度快些:
[root@iz8vb8edqeyilgy4r9zci6z ~]# cd /etc
[root@iz8vb8edqeyilgy4r9zci6z etc]# mv yum.repos.d yum.repos.d.bak
[root@iz8vb8edqeyilgy4r9zci6z etc]# mkdir yum.repos.d
[root@iz8vb8edqeyilgy4r9zci6z etc]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
--2019-01-25 09:15:40-- http://mirrors.aliyun.com/repo/Centos-7.repo
Resolving mirrors.aliyun.com (mirrors.aliyun.com)... 101.37.183.142, 101.37.183.145, 101.37.183.169, ...
Connecting to mirrors.aliyun.com (mirrors.aliyun.com)|101.37.183.142|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2523 (2.5K) [application/octet-stream]
Saving to: ‘/etc/yum.repos.d/CentOS-Base.repo’
100%[=========================================================================================================================================================>] 2,523 --.-K/s in 0s
2019-01-25 09:15:40 (289 MB/s) - ‘/etc/yum.repos.d/CentOS-Base.repo’ saved [2523/2523]
[root@iz8vb8edqeyilgy4r9zci6z etc]# yum clean all
Loaded plugins: fastestmirror
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
Cleaning repos: base extras updates
Cleaning up everything
Cleaning up list of fastest mirrors
[root@iz8vb8edqeyilgy4r9zci6z etc]# yum makecache
Loaded plugins: fastestmirror
base | 3.6 kB 00:00:00
extras | 3.4 kB 00:00:00
updates | 3.4 kB 00:00:00
(1/12): base/7/x86_64/group_gz | 166 kB 00:00:00
(2/12): base/7/x86_64/primary_db | 6.0 MB 00:00:00
(3/12): base/7/x86_64/filelists_db | 7.1 MB 00:00:00
(4/12): base/7/x86_64/other_db | 2.6 MB 00:00:00
(5/12): extras/7/x86_64/prestodelta | 36 kB 00:00:00
(6/12): extras/7/x86_64/filelists_db | 189 kB 00:00:00
(7/12): extras/7/x86_64/primary_db | 156 kB 00:00:00
(8/12): extras/7/x86_64/other_db | 107 kB 00:00:00
(9/12): updates/7/x86_64/prestodelta | 190 kB 00:00:00
(10/12): updates/7/x86_64/filelists_db | 1.4 MB 00:00:00
(11/12): updates/7/x86_64/primary_db | 1.3 MB 00:00:00
(12/12): updates/7/x86_64/other_db | 204 kB 00:00:00
Determining fastest mirrors
* base: mirrors.cloud.aliyuncs.com
* extras: mirrors.cloud.aliyuncs.com
* updates: mirrors.cloud.aliyuncs.com
Metadata Cache Created
修改成功后,安装如下依赖包:
yum -y 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
安装完成后界面如下:
使用如下命令检查依赖是否安装完整:
rpm -q 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 | grep "not installed"
发现pdksh没有安装,如下图:
通过wget命令直接下载pdksh的rpm包,我下载到了/tmp/,然后安装
[root@bogon ~]# wget -O /tmp/pdksh-5.2.14-37.el5_8.1.x86_64.rpm http://vault.centos.org/5.11/os/x86_64/CentOS/pdksh-5.2.14-37.el5_8.1.x86_64.rpm
--2019-01-25 09:31:23-- http://vault.centos.org/5.11/os/x86_64/CentOS/pdksh-5.2.14-37.el5_8.1.x86_64.rpm
Resolving vault.centos.org (vault.centos.org)... 208.100.23.71, 2607:f128:40:1600:225:90ff:fe00:bde6
Connecting to vault.centos.org (vault.centos.org)|208.100.23.71|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://120.52.51.16/vault.centos.org/5.11/os/x86_64/CentOS/pdksh-5.2.14-37.el5_8.1.x86_64.rpm [following]
--2019-01-25 09:31:24-- http://120.52.51.16/vault.centos.org/5.11/os/x86_64/CentOS/pdksh-5.2.14-37.el5_8.1.x86_64.rpm
Connecting to 120.52.51.16:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 210877 (206K) [application/x-rpm]
Saving to: ‘/tmp/pdksh-5.2.14-37.el5_8.1.x86_64.rpm’
100%[=========================================================================================================================================================>] 210,877 --.-K/s in 0.03s
2019-01-25 09:31:24 (7.63 MB/s) - ‘/tmp/pdksh-5.2.14-37.el5_8.1.x86_64.rpm’ saved [210877/210877]
[root@bogon ~]# cd /tmp/
[root@bogon tmp]# rpm -ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpm
warning: pdksh-5.2.14-37.el5_8.1.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID e8562897: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:pdksh-5.2.14-37.el5_8.1 ################################# [100%]
再次检查依赖包是否安装完整
rpm -q 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 | grep "not installed"
发现所有依赖都已经安装完毕,至此依赖包安装完成
设置密码时pssswd oracle后直接输密码回车即可。
[root@bogon tmp]# groupadd oinstall
[root@bogon tmp]# groupadd dba
[root@bogon tmp]# useradd -g oinstall -G dba oracle -d /home/oracle
[root@bogon tmp]# passwd oracle
Changing password for user oracle.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@bogon tmp]# id oracle
uid=1001(oracle) gid=1001(oinstall) groups=1001(oinstall),1002(dba)
[root@bogon tmp]# vim /etc/hosts
# 编辑状态添加如下内容
192.168.14.107 oracle
[root@bogon tmp]# ping -c 2 oracle
PING oracle (192.168.14.107) 56(84) bytes of data.
64 bytes from oracle (192.168.14.107): icmp_seq=1 ttl=64 time=0.049 ms
64 bytes from oracle (192.168.14.107): icmp_seq=2 ttl=64 time=0.032 ms
--- oracle ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.032/0.040/0.049/0.010 ms
kernel.shmmax 参数设置为物理内存的一半
[root@bogon tmp]# vim /etc/sysctl.conf
# 编辑状态输入如下内容/或修改对应的值
fs.aio-max-nr=1048576
fs.file-max=6815744
kernel.shmall=2097152
kernel.shmmni=4096
kernel.shmmax = 8589934592
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
[root@bogon tmp]# sysctl -p
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmni = 4096
kernel.shmmax = 8589934592
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
[root@bogon data]# mkdir -p /data/oracle/oracle/product/11.2.0
[root@bogon data]# mkdir /data/oracle/oracle/oradata
[root@bogon data]# mkdir /data/oracle/oracle/inventory
[root@bogon data]# mkdir /data/oracle/oracle/fast_recovery_area
# 修改文件夹从属
[root@bogon data]# chown -R oracle:oinstall /data/oracle/oracle/
# 修改权限
[root@bogon data]# chmod -R 775 /data/oracle/oracle/
[root@bogon data]# su - oracle
Attempting to create directory /home/oracle/perl5
[oracle@bogon ~]$ vim .bash_profile
# 进入编辑状态后添加如下代码
umask 022
export ORACLE_HOSTNAME=oracle
export ORACLE_BASE=/data/oracle/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/
export ORACLE_SID=ORCL
export PATH=.:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$ORACLE_HOME/jdk/bin:$PATH
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"
[oracle@bogon ~]$ source .bash_profile
此步完成建议重启一下服务器,如果未重启,进行下边操作的时候先切换回root用户
[root@bogon data]# cd /data
[root@bogon data]# unzip linux.x64_11gR2_database_1of2.zip -d /data/oracle/
[root@bogon data]# unzip linux.x64_11gR2_database_2of2.zip -d /data/oracle/
# 解压完成后进行安装前的配置
[root@bogon data]# mkdir /data/oracle/etc
[root@bogon data]# cp /data/oracle/database/response/* /data/oracle/etc/
[root@bogon data]# vim /data/oracle/etc/db_install.rsp
# 进入编辑状态修改如下项的值
oracle.install.option=INSTALL_DB_SWONLY
DECLINE_SECURITY_UPDATES=true
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/data/oracle/oracle/inventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOSTNAME=oracle
ORACLE_HOME=/data/oracle/oracle/product/11.2.0
ORACLE_BASE=/data/oracle/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.isCustomInstall=true
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=dba
su - oracle
cd /data/oracle/database
# 可以看见database文件夹下有三个模板其中dbca.rsp是用来创建数据库的。db_install.rsp是用来安装Oracle软件的。netca.rsp是用来创建监听器的
./runInstaller -silent -ignorePrereq -responseFile /data/oracle/etc/db_install.rsp
正常会进入如下过程:
最下边一行为日志文件的位置,安装过程中可以通过tail -f xxx.log查看当前日志,当前情况如下
tail -f /data/oracle/oracle/inventory/logs/installActions2019-01-25_10-41-53AM.log
安装成功后情况如下:
按照上边提示的内容进行操作:
1.打开一个新的shell窗口
2. 登录root账号
3.执行脚本(脚本位置在红框前两行有标注)
4.回到当前窗口按回车
[root@bogon ~]# sh /data/oracle/oracle/inventory/orainstRoot.sh
Changing permissions of /data/oracle/oracle/inventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.
Changing groupname of /data/oracle/oracle/inventory to oinstall.
The execution of the script is complete.
[root@bogon ~]# sh /data/oracle/oracle/product/11.2.0/root.sh
Check /data/oracle/oracle/product/11.2.0/install/root_bogon_2019-01-25_10-51-48.log for the output of root script
在另外一个窗口用root执行那两个脚本后,之前oracle的窗口需要关掉重新开,否则监听配置不成功
[root@bogon ~]# su - oracle
Last login: Fri Jan 25 10:40:23 CST 2019 on pts/0
[oracle@bogon ~]$ netca /silent /responsefile /data/oracle/etc/netca.rsp
Parsing command line arguments:
Parameter "silent" = true
Parameter "responsefile" = /data/oracle/etc/netca.rsp
Done parsing command line arguments.
Oracle Net Services Configuration:
Profile configuration complete.
Listener "LISTENER" already exists.
Oracle Net Services configuration successful. The exit code is 0
注:修改配置文件为root用户,静默建库为oracle用户
[root@bogon ~]# vim /data/oracle/etc/dbca.rsp
# 修改如下配置
GDBNAME = "orcl"
SID = "orcl"
SYSPASSWORD = "oracle"
SYSTEMPASSWORD = "oracle"
SYSMANPASSWORD = "oracle"
DBSNMPPASSWORD = "oracle"
DATAFILEDESTINATION =/data/oracle/oracle/oradata
RECOVERYAREADESTINATION=/data/oracle/oracle/fast_recovery_area
CHARACTERSET = "AL32UTF8"
TOTALMEMORY = "1638"
修改完成后执行静默建库 GDBNAME为ORCL
[oracle@bogon etc]$ dbca -silent -createDatabase -templateName General_Purpose.dbc -gdbName ORCL -sysPassword oracle -systemPassword oracle
[oracle@iz8vb8edqeyilgy4r9zci6z ~]$ lsnrctl status
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 25-JAN-2019 16:28:33
Copyright (c) 1991, 2009, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date 26-DEC-2018 23:40:53
Uptime 29 days 16 hr. 47 min. 40 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /data/oracle/oracle/product/11.2.0/network/admin/listener.ora
Listener Log File /data/oracle/oracle/diag/tnslsnr/iz8vb8edqeyilgy4r9zci6z/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=iz8vb8edqeyilgy4r9zci6z)(PORT=1521)))
Services Summary...
Service "ORCL" has 1 instance(s).
Instance "ORCL", status READY, has 1 handler(s) for this service...
Service "orclXDB" has 1 instance(s).
Instance "ORCL", status READY, has 1 handler(s) for this service...
The command completed successfully
需要先将/usr/local/oracle/admin/test/pfile/init.ora.1014201721194复制修改名称放到/usr/local/oracle/product/11.2.0/dbs/initORCL.ora
[oracle@iz8vb8edqeyilgy4r9zci6z ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Fri Jan 25 16:30:40 2019
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup
ORACLE instance started.
Total System Global Area 3273641984 bytes
Fixed Size 2217792 bytes
Variable Size 1795164352 bytes
Database Buffers 1459617792 bytes
Redo Buffers 16642048 bytes
Database mounted.
Database opened.
在此步骤经常遇到的问题:
ORA-00845: MEMORY_TARGET not supported on this system 参考https://blog.csdn.net/sunny05296/article/details/56495599
ORA-01102 cannot mount database in EXCLUSIVE mode 参考 https://blog.csdn.net/lzwgood/article/details/26368323
[oracle@iz8vb8edqeyilgy4r9zci6z ~]$ firewall-cmd --zone=public --add-port=1521/tcp --permanent
[oracle@iz8vb8edqeyilgy4r9zci6z ~]$ firewall-cmd --reload
参考https://blog.csdn.net/yixia/article/details/4029822