Linux oracle安装

oracle安装

环境信息

  • Linux 7.3
  • oracle 11.2.0.4
  • 无外网环境

1. 准备oracle安装文件

将Oracle的文件通过SSH上传到/usr/local/oracle中。

[root@localhost ~]# cd /usr/local/
[root@localhost local]# mkdir oracle
[root@localhost local]# cd oracle/

2. 解压安装文件到当前目录

[root@localhost root]#cd /usr/local/oracle
[root@localhost oracle]#unzip p13390677_112040_Linux-x86-64_1of7.zip
[root@localhost oracle]#unzip p13390677_112040_Linux-x86-64_2of7.zip
[root@localhost oracle]#unzip p13390677_112040_Linux-x86-64_3of7.zip
[root@localhost oracle]#unzip p13390677_112040_Linux-x86-64_4of7.zip
[root@localhost oracle]#unzip p13390677_112040_Linux-x86-64_5of7.zip
[root@localhost oracle]#unzip p13390677_112040_Linux-x86-64_6of7.zip
[root@localhost oracle]#unzip p13390677_112040_Linux-x86-64_7of7.zip

执行以上命令后,将会在/usr/local/oracle/下面产生名为database的目录,这就是oracle安装程序的目录。


3. 准备oracle的安装目标目录

安装目标目录是用户想将oracle安装到哪个位置的目录,本次我们将oracle安装到/opt/oracle目录中,以下为目录创建命令。

[root@localhost oracle]#mkdir –p /opt/oracle

4. 创建oracle相关用户和用户组

oracle不能在root帐户下进行安装,所以需要为oracle的安装专门创建一个用户,同时需要创建dba和oinstall的用户组。 以下命令将创建dba和oinstall用户组:

[root@localhost oracle]#groupadd dba
[root@localhost oracle]#groupadd oinstall

5. 以下命令将创建oracle用户,并设置密码

[root@localhost oracle]#useradd -g oinstall -G dba oracle
[root@localhost oracle]#passwd oracle

Changing password for user oracle.
New UNIX password: [在此键入密码]
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password: [在此再次键入密码]
passwd: all authentication tokens updated successfully.

6. 以下命令将oracle安装目录(/opt/oracle)赋予oracle用户oins tall用户组

[root@localhost oracle]#chown –R oracle:oinstall /opt/oracle

7. 设置linux内核参数

打开修改/etc/sysctl.conf,在最后加入以下内容

[root@localhost oracle]# vi /etc/sysctl.conf
kernel.shmall = 2097152	
kernel.shmmax = 1073741824
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
fs.file-max = 6815744
net.ipv4.ip_local_port_range = 9000 65500
fs.aio-max-nr = 1048576

8. 修改 /etc/security/limits.conf

在/etc/security/limits.conf,的最后,# End of file 标识符之前加入内容

[root@localhost oracle]# vi /etc/security/limits.conf


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

9. 修改系统环境变量/etc/profile

修改环境变量/etc/profile文件最后加入以下内容

[root@localhost oracle]# 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

10. 设置ORACLE环境变量

修改oracle用户主目录(/home/oracle)的的环境变量配置文件.bash_profile。使用以下命令

[root@localhost oracle]#vi /home/oracle/.bash_profile

向配置文件中加入以下内容

#(注意这个值要和下面创建的数据库实例名称相同)
export ORACLE_SID=orcl
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib

11. 开始安装

以上步骤设置完成后,建议重新启动系统,使所有设置生效。现在使用oracle用户登录,并转到ORACLE安装程序目录。以下的每一个步骤都oracle安装过程的一个步骤(每一个步骤对应一个安装界面)。

[root@localhost oracle] # su oracle
[oracle@localhost oracle] #cd /usr/local/oracle/database

解决oracle乱码.

[oracle@localhost database] #export LANG=en_US

运行安装命令

[oracle@localhost database] #./runInstaller

如果报错.
could not retrieve local nodename

[oracle@localhost database] #./hostname
sun

原文件

[oracle@localhost database] # cat /etc/hosts
[oracle@pandora database]$ cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

修改后文件

[oracle@pandora database]$ vi /etc/hosts
127.0.0.1   sun sun localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         sun sun localhost localhost.localdomain localhost6 localhost6.localdomain6

重新执行 ./runInstaller

安装过程中如果出现错误信息[无法使用命令/usr/bin/xdpyinfo 自动检查显示器颜色。请检查是否设置了DISPLAY变量。],使用root帐户执行以下命令,再切换到oracle用户运行安装程序(如果切换还是有错误,请退出root账户,直接用oracle账户登录系统)。

[oracle@localhost oracle]#su root
[root@localhost oracle]#xhost + [IP地址,可选]

(此问题应根据具体情况而定,不一定能解决你的问题)

11.1. 配置安全更新(configure Security Updates)

到现在已经启动了oracle的安装程序,第一个界面可以输入电子邮箱地址,用来接收重大错误信息。
另一选项通过My Oracle Support接收安全更新,本安装过程没有勾选。

11.2 下载软件更新(Download Software Updates)

这是下载更新,我们是新安装,所以直接略过即可。
选择 Skip software updates

11.3 安装选项(Installation Option)

此处选择“安装和配置数据库”(Create and configure a database)

11.4 系统类(System Class)

有桌面类和服务类两个选项。此处选择服务器类(Server Class)。

11.5 网格选项(Grid installation Options)

选择单实例数据库安装(Single insance database installation)

11.6 安装类型 (install Type)

选择高级安装类型(Advanced install)

11.7 产品语言(Product Languages)

可以选择多种运行时语言, 窝在Linux系统中选择默认选择(English)

11.8 数据库类型

此处选择企业版(Enterprise Edition)

11.9 安装位置

oracle基目录为(Oracle base):/opt/oracle
oracle主目录为(software Location):/opt/oracle/product/11.2.0/dbhome_1

目录不要修改,在上面的修改Oracle用户的.bash_profile文件是,已经把文件的地址添加进去了。

11.10 创建产品清单(Create Inventory)

本次安装的产品清单目录为:/opt/oracle/oraInventory
oraInventory的用户组名为:oinstall

在安装到Create Inventory这里可能出现的问题

[INS-32031] Invalid inventory location
[INS-32033] Central Inventory location is not writable

这是我们安装目录的权限不够引起的问题

我们根据在这一页填写的Inventory Dircetory的值,给他的升一级赋权即可.
如: 我们在Inventory Dircetory 中默认的是 /opt/oralnventory
那我们就赋权 /opt

[root@localhost oracle]# chown -R oracle:oinstall /opt/
11.11 配置类型(Configuration Type)

此处选择一般用途/事务(Ceneral Purpose / Transaction Processing )

11.12 数据库标识符(Database Identifiers)

本次安装的全局数据库名和服务标识符为:orcl(采用的默认,注意这个要和上面配置相同)

11.13 配置选项(Configuration Options )

这一步可以对oracle的内存使用,字符集,安全性,示例方案进行配置,本次安装将使用oracle的默认配置。

11.14 管理选项(Management Options)

使用Oracle的默认配置

11.15 数据库存储(Database Storage)

此处选择文件系统,数据库文件位置使用oracle的默认位置

11.16 备份和恢复(Backup and Recovery)

此处选择不启用自动备份(Do not enable automated backups)

11.17 方案口令(Schema Passwords)

此处选择对所有帐户使用相同的口令(Use the same password for all accounts)

11.18 操作系统组

数据库管理员(OSDBA)隶属的用户组是:dba
数据库操作者(OSOPER)隶属的用户组是:dba

11.19 先决条件检查

这一步oracle会对操作系统的用户和用户组、内存、软件包、系统内核等参数进行检查。不符要求的地方会列出来(可根据所列出的不符要求的项逐一解决),完全符合要求时,点击下一步。

注意 这个地方会爆出我们系统中不符合要求的地方。 我们可以根据提示对系统进行修改,我们解决了一个问题都可以,点击[再次检查](Check Again),查看我们是否解决了问题

问题汇总

先决条件检查过程中 出现的问题.
physical memory 内存不足
我们可以用free命令一下

[root@localhost oracle]# free
              total        used        free      shared  buff/cache   available
Mem:        1016488      326380       89264       13408      600844      486276
Swap:       2097148           4     2097144

第一行就是 Mem就是内存大小. 内存不足,应该是我们创建虚拟机的时候的问题,内存给小了.目前我知道的就只能
通过我们VM的管理软件,去调整内存的大小.必须在关闭虚拟机的情况下,才能修改.

列举在这一步常见的错误信息。

  • Swap Size (Swap 空间的问题)

OS Kernel Parameter 问题

  • OS Kernel Parameter: semopm
  • OS Kernel Parameter:shmmax
  • OS Kernel Parameter:shmall
  • OS Kernel Parameter: file-max
  • OS Kernel Parameter: rmem_default
  • OS Kernel Parameter: rmem_max
  • OS Kernel Parameter: wmem_default
  • OS Kernel Parameter: wmem_max

Packages

  • Package: gcc-xxx
  • Package: libaio-devel-xxxx
  • Package: compat-libstdc+±xxxx
  • Package: elfutils-libelf-devel-xxx
  • Package: glibc-devel-xxx
  • Package: glibc-headers-xxx
  • Package: gcc-c+±xxxx
  • Package: libstdc+±devel-xxxx
  • Package: pdksh-xxxxx
① Swap Size

this is a perrequisite condition to test whether sufficient total swap space is available on the system
Expected Value: 2.6948GB (1815724.0KB)
Actual Value : 2GB(2097148.0KB)

这个问题是Swap分区的空间,不足以安装Oracle

  • 解决方案:
    使用dd命令创建一个swap分区, 先用 free 命令查询出现在swap分区的大小,再用Expected Value 值- 现在swap分区的值 = count中写入的分区大小。 swap分区最好稍微大一些。)
    创建分区时间稍微有点长。
[root@localhost oracle]# free 
              total        used        free      shared  buff/cache   available
Mem:        1883816      753952       70072        3720     1059792      923688
Swap:       2097148       91332     4831536
[root@localhost oracle]# dd if=/dev/zero of=/home/swap bs=1024 count=1000000 

格式化刚才创建的分区

[root@localhost oracle]# mkswap /home/swap

再使用swapon命令将这个文件分区变成swap分区

[root@localhost oracle]# swapon /home/swap

再使用free 查看已经扩容的了swap分区

[root@localhost oracle]# free

为了能够让swap分区自动挂载,修改配置文件/etc/fstab文件,在文件的末尾加上。
再修改/etc/inittab文件,再文件最后添加 swapon /home/swap

[root@localhost oracle]# vi /etc/fstab


#
# /etc/fstab
# Created by anaconda on Tue Jan 15 11:53:42 2019
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=6eafb221-7d6c-419e-9ae5-555a15b48c4f /boot                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
/home/swap swap swap default 0 0
[root@localhost oracle]# vi /etc/inittab

# inittab is no longer used when using systemd.
#
# ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# Ctrl-Alt-Delete is handled by /usr/lib/systemd/system/ctrl-alt-del.target
#
# systemd uses 'targets' instead of runlevels. By default, there are two main targets:
#
# multi-user.target: analogous to runlevel 3
# graphical.target: analogous to runlevel 5
#
# To view current default target, run:
# systemctl get-default
#
# To set a default target, run:
# systemctl set-default TARGET.target
#
swapon /home/swap

swap size 问题就解决了。

② OS Kernel Parameter :semopm
this is preequisite condition to test whether the OS kernel paramper"semopm" is properly set.
Expected Value: Current=100; Configured=100
Actual Value: Current=32; Configured=100

  • 解决方案:
    修改/etc/sysctl.conf文件,在文件中添加
    kernel.sem=250 32000 100 128
[root@localhost oracle]# vi /etc/sysctl.conf
文件内容如下  
# sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
#
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
#
# For more information, see sysctl.conf(5) and sysctl.d(5).
kernel.shmall = 2097152	
kernel.shmmax = 1073741824
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
fs.file-max = 6815744
net.ipv4.ip_local_port_range = 9000 65500
fs.aio-max-nr = 1048576

如下命令是文件生效

[root@localhost oracle]# /sbin/sysctl -p

OS Kernel Parameter :semopm 问题解决完成后,发现连带着如下问题也解决了。

  • OS Kernel Parameter: file-max
  • OS Kernel Parameter: rmem_default
  • OS Kernel Parameter: rmem_max
  • OS Kernel Parameter: wmem_default
  • OS Kernel Parameter: wmem_max
OS Kernel Parameter 的大部分问题都是因为/etc/sysctl.conf文件配置的问题。贴下sysctl.conf文件的内容。供大家参考。

# sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
#
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
#
# For more information, see sysctl.conf(5) and sysctl.d(5).
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 1073741824
kernel.shmmni = 4096
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 = 1048576

③ Packages 问题。

  • 解决方案
    根据下面的安装顺序,既解决依赖的问题。 我安装的环境没有外网,所以用rpm包去安装。 如果有网络的话,直接用yum去安装就没有依赖的问题了。

  • mpfr-3.1.1-4.el7.x86_64.rpm

  • libmpc-1.0.1-3.el7.x86_64.rpm

  • kernel-headers-3.10.0-514.el7.x86_64.rpm

  • glibc-headers-2.17-157.el7.x86_64.rpm

  • glibc-devel-2.17-157.el7.x86_64.rpm

  • cpp-4.8.5-11.el7.x86_64.rpm

  • gcc-4.8.5-11.el7.x86_64.rpm

  • libstdc+±devel-4.8.5-16.el7.x86_64.rpm

  • gcc-c+±4.8.5-16.el7.x86_64.rpm

  • libaio-devel-0.3.109-13.el7.x86_64.rpm

  • compat-libstdc+±33-3.2.3-69.el6.x86_64.rpm

  • zlib-1.2.7-17.el7.x86_64.rpm

  • zlib-devel-1.2.7-17.el7.x86_64.rpm

  • elfutils-libelf-devel-0.168-8.el7.x86_64.rpm

  • pdksh-5.2.14-37.el5.x86_64.rpm

如果安装 pdksh,出现

试图安装 pdksh-5.2.14-30.x86_64 和 pdksh-5.2.14-30.x86_64 会导致文件 /usr/bin/ksh 冲突  

只需要下载一个高版本的安装了就行.


11.20 安装产品 (Install Product)

在这一步,基本上就是自动安装阶段了。

我在这里报了一个错误:
Error in inwoking target ‘agent_numhs’ of makefile

‘/opt/oracle/product/11.2.0/dbhome_1/sysman/lib/ins_emagent,mk’.
See ‘/opt/app/oralnventory/logs/installActions2019-01-16_11-14-43AM.log’ for details.

  • 解决方案:
    在makefile中添加链接 lnnz11
    修改ORACLEHOME/sysman/lib/insemagent.mkORACLE_HOME/sysman/lib/ins_emagent.mk 将(MK_EMAGENT_NMECTL)修改为:$(MK_EMAGENT_NMECTL) -lnnz11
[root@localhost oracle]# vi /opt/oracle/product/11.2.0/dbhome_1/sysman/lib/ins_emagent.mk

在文件大概176行左右的位置。

 $(SYSMANBIN)emdctl:
        $(MK_EMAGENT_NMECTL) -lnnz11

保存文件后,在oracle安装界面中点击REtry 即可。

在程序安装到94%左右,会提示Execute Configuration scripts

The following configuration scripts need to be executed as the “root” user
Scripts to be executer:

  1. /opt/oracle/oraInventory/orainsRoot.sh
  2. /opt/oracle/product/11.2.0/dbhome_1/root

用root用户执行如下命令:

[root@localhost ~]# /opt/oracle/oraInventory/orainstRoot.sh 
Changing permissions of /opt/oracle/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.

Changing groupname of /opt/oracle/oraInventory to oinstall.
The execution of the script is complete.
[root@localhost ~]# /opt/oracle/product/11.2.0/dbhome_1/root.sh 
Performing root user operation for Oracle 11g 

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /opt/oracle/product/11.2.0/dbhome_1

Enter the full pathname of the local bin directory: [/usr/local/bin]: 
   Copying dbhome to /usr/local/bin ...
   Copying oraenv to /usr/local/bin ...
   Copying coraenv to /usr/local/bin ...


Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Finished product-specific root actions.

执行这一步后安装基本就完成了。

配置监听服务:
修改listener.ora 配置文件。

[root@localhost admin]# vi /opt/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora 

将下面的SID_LIST_LISTENER添加到文件中,ORACLE_HOME 地址是我们安装的地址。

SID_LIST_LISTENER=  
             (SID_LIST =
                (SID_DESC =
                  (GLOBAL_DBNAME =  orcl)
                  (ORACLE_HOME = /opt/oracle/product/11.2.0/dbhome_1)
                  (SID_NAME = orcl)
                 )
               )

文件内容如下:


# listener.ora Network Configuration File: /opt/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER=
             (SID_LIST =
                (SID_DESC =
                  (GLOBAL_DBNAME =  orcl)
                  (ORACLE_HOME = /opt/oracle/product/11.2.0/dbhome_1)
                  (SID_NAME = orcl)
                 )
               )
#将HOST = 192.168.16.40文件中IP地址修改为自己的IP地址。
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.16.40)(PORT = 1521))
    )
  )

ADR_BASE_LISTENER = /opt/oracle

vim /opt/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora


# tnsnames.ora Network Configuration File: /opt/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.16.6)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

在启动前,重启一下服务器,以确保各个配置都生效.

10. 启动ORACLE

完成以上操作时,建议重新启动一次,避免某些设置未生效。重启后使用oracle用户登录.打开终端,键入以下命令运行以下命令

启动监听:
需要关闭防火墙否则可能会不成功.

[root@localhost oracle]$ lsnrctl start

启动数据库和实例:
在oracle的bin目录下执行如下命令

[root@localhost oracle]$sqlplus /nolog
SQL>conn /as sysdba

进入sqlplus后,执行启动数据库命令,以下命令将创建、安装并打开ORACLE实例。此时,数据库系统处于正常工作状态,可以接受用户请求。

SQL>startup

恭喜,你的ORACLE数据库已经启动成功


11. 创建Oracle用户。

在Oracle数据库命令行中执行操作.
创建用户:

SQL>create user xxx identified by xxx;

给用户赋权

SQL>grant dba to xxx;
SQL>grant connect,resource to xxx;
SQL>grant select any table to xxx;
SQL>grant delete any table to xxx;
SQL>grant update any table to xxx;
SQL>grant insert any table to xxx;

经过以上操作,就可以使用xxx/xxx 登录了。

发布了33 篇原创文章 · 获赞 14 · 访问量 3万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 数字20 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览