ITPub博客

首页 > 数据库 > Oracle > Linux系统(X64)安装Oracle11g完整安装图文教程另附基本操作

Linux系统(X64)安装Oracle11g完整安装图文教程另附基本操作

原创 Oracle 作者:lz_110505 时间:2020-03-20 12:25:05 0 删除 编辑


Linux 系统(X64)安装Oracle11g完整安装图文教程另附基本操作

因项目需求,需要在 64 位 linux 系统中安装 Oracle 11g ,在网上查了很多内容,结合自己的实际经验,终于安装成功,记录下来


一、修改操作系统核心参数

在 Root 用户下执行以下步骤:

1 )修改用户的 SHELL 的限制,修改 /etc/security/limits.conf 文件

输入命令: vi /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 文件,输入命令: vi /etc/pam.d/login ,按 i 键进入编辑模式,将下列内容加入该文件。

session required /lib/security/pam_limits.so

 

session required pam_limits.so

 

编辑完成后按 Esc 键,输入 “:wq” 存盘退出

3 )修改 linux 内核,修改 /etc/sysctl.conf 文件,输入命令 : vi /etc/sysctl.conf ,按 i 键进入编辑模式,将下列内容加入该文件

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

 

编辑完成后按 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 ,输入命令: vi /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 用户和密码 , 输入命令:

2 、创建用户

需要创建一个 oralce 用户,并创建两个组 dba , oinstall ,且将 oralce 添加至组 oinstall 和附加到 dba 组,具体命令如下:

/usr/sbin/groupadd oinstall

/usr/sbin/groupadd dba

/usr/sbin/useradd -m -g oinstall -G dba oracle

passwd oracle

注意,这里的 useradd  – g:  新账户主组的名称或  ID,-G:  新账户的附加组列表 ,-m:  创建用户的主目录。

/* 若上面方法执行生效后这段可忽略 */

创建用户后若无法跳转则删除用户重建

vi /etc/shadow :删除 oracle 相关信息

cat /etc/passwd

vi /etc/passwd : 删除 oracle 相关信息

oracle: 对应目录一并删除

 

useradd -g oinstall -g dba -m oracle

 

passwd oracle

 

 

然后会让你输入密码,密码任意输入 2 次,但必须保持一致,回车确认。

7 )创建数据库软件目录和数据文件存放目录,目录的位置,根据自己的情况来定,注意磁盘空间即可,这里我把其放到 oracle 用户下 , 例如:

输入命令:

mkdir /home/oracle/app

 

mkdir /home/oracle/app/oracle

 

mkdir /home/oracle/app/oradata

 

mkdir /home/oracle/app/oracle/product

 

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

chown -R oracle:oinstall /home/oracle/app

 

9) 配置 oracle 用户的环境变量,首先,切换到新创建的 oracle 用户下 ,

输入: su – oracle ,然后直接在输入 : vi .bash_profile

按 i 编辑 .bash_profile, 进入编辑模式,增加以下内容:

 

更换 ORACLE_BASE 、ORACLE_HOME 为本机路径即可 if判断必须添加

 

# .bash_profile

 

# Get the aliases and functions

if [ -f ~/.bashrc ]; then

         . ~/.bashrc

fi

 

# User specific environment and startup programs

 

PATH=$PATH:$HOME/bin

 

export PATH

ORACLE_SID=orcl; 

export ORACLE_SID

ORACLE_BASE=/home/oracle/app; export ORACLE_BASE

ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_1; export ORACLE_HOME

ORACLE_TERM=xterm; export ORACLE_TERM

 

PATH=/usr/sbin:$PATH; export PATH

PATH=$ORACLE_HOME/bin:$PATH; export PATH

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH

CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH

 

NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"; export NLS_DATE_FORMAT

NLS_LANG=AMERICAN_AMERICA.ZHS16GBK;export NLS_LANG

ORA_NLS11=$ORACLE_HOME/nls/data; export ORA_NLS11

THREADS_FLAG=native; export THREADS_FLAG

TMP=/tmp; export TMP

TMPDIR=$TMP; export TMPDIR

export TERM=xterm

编辑完成后按 Esc 键,输入 “:wq” 存盘退出

二、安装过程

1 )当上述系统要求操作全部完成后,注销系统,在图形界面以 Oracle 用户登陆。首先将下载的 Oracle 安装包复制到 linux 中,用 SSH 其他 ftp 工具拷贝。

打开一个终端,运行 unzip 命令解压 oracle 安装文件,如:

输入命令:

unzip linux.x64_11gR2_database_1of2.zip

 

unzip linux.x64_11gR2_database_2of2.zip

 

如若unzip命令不能识别采用如下命令:

如果你如法使用unzip命令解压.zip文件,可能是你没有安装unzip软件,下面是安装方法

 

命令: yum list | grep zip/unzip   #获取安装列表

 

安装命令: yum install zip    #提示输入时,请输入y;

 

安装命令:yum install unzip #提示输入时,请输入y;

然后就可以解决无法使用unzip命令问题:

Xstart 连接远程桌面

打开Xstart,填写主机IP(即你需要远程连接的桌面地址),协议选择SSH,填写用户名,身份认证选择password,命令里面填写/etc/gdm/Xsession,点击运行 

                                             

解压完成后 cd 进入其解压后的目录 database

输入命令:

cd database

使用 ls 命令可以查看解压后 database 所包含的文件,如下图:

Starting Oracle Universal Installer...

正在启动Oracle Universal安装程序。。。

Checking Temp space: must be greater than 120 MB. Actual 47653 MB Passed

正在检查临时空间:必须大于120 MB。实际通过47653 MB

Checking swap space: must be greater than 150 MB. Actual 32255 MB Passed

正在检查交换空间:必须大于150 MB。实际通过32255MB

Checking monitor: must be configured to display at least 256 colors

检查监视器:必须配置为至少显示256色

>>> Could not execute auto check for display colors using command /usr/bin/xdpyinfo. Check if the DISPLAY variable is set. Failed <<<<

>>> 无法使用命令/usr/bin/xdpyinfo执行显示颜色的自动检查。检查是否设置了显示变量。失败的<<<<

Some requirement checks failed. You must fulfill these requirements before

一些需求检查失败。你必须先满足这些要求

continuing with the installation,

继续安装,

 

2 )执行安装,输入命令: ./runInstaller

Linux 服务器图形化界面安装:

弹出图形安装界面, 安装数据库软件和实例


点击下一步

下一步

实际开发中,服务器没有图形界面,我们选择服务类安装,下一步

不需要集群,选择单实例安装,下一步

点击下一步

选择语言,下一步

下一步

下一步

设置密码

这时候打开一个终端,以root身份登录,安装依赖包

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

再次检查

检查缺包:

rpm -q --queryformat %-{name}-%{version}-%{release}-%{arch}"\n" \ compat-libstdc++-33 glibc-kernheaders glibc-headers libaio libgcc glibc-devel xorg-x11-deprecated-libs

这时候打开一个终端,以 root 身份登录,安装依赖包

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

 

finish配置完成

接下来就是等待安装了。

安装成功之后,会弹出这个界面:

执行脚本:

[root@localhost myos]su root
[root@localhost myos]# cd /home/myos/application/oracle/oraInventory
[root@localhost oraInventory]# sh orainstRoot.sh[root@localhost oraInventory]# cd /home/myos/application/oracle/oracle/product/11.2.0/dbhome_1
[root@localhost dbhome_1]# sh root.sh

安装完成

上面安装成功之后,服务监听和本地网络服务应该是就配置好了,我实际安装的过程中都会提示服务名称已经存在。如果没有的话,我们可以按照下面的步骤进行配置。

配置监听

打开终端,输入:
[root@localhost dbhome_1]# netca
Oracle Net Services Configuration:


配置本地网络服务

配置本地网络服务名(充当 oracle 客户端,连接别的 oracle 服务器)

 

我填的是自己服务器的名称,不知道填其他服务器的ip可不可以

 进行连接测试

 

连接成功

 

到此就配置完毕了。

17.  查看监听状态

[myos@localhost ~]$ lsnrctl status
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 05-APR-2018 18:06:52Copyright (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                05-APR-2018 17:41:44Uptime                    0 days 0 hr. 25 min. 8 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   
/home/myos/application/oracle/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
Listener Log File         
home/myos/application/oracle/oracle/diag/tnslsnr/localhost/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(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

其中:

1、Linux oracle数据库listener.ora存放路径/home/myos/application/oracle/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora2、Linux oracle数据库tnsnames.ora存放路径/home/myos/application/oracle/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora3、ORACLE启动监听器
(1)切换至普通安装用户(我的是myos)su - myos 
(2)启动监听器
lsnrctl start 
(3)停止监听器
lsnrctl stop

18.  启动测试oracle

[myos@localhost ~]$ sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on Thu Apr 5 18:12:26 2018Copyright (c) 1982, 2009, Oracle.  All rights reserved.
SQL>

19.  Linux 开放 1521 端口允许网络连接 Oracle Listener

症状:
(1)TCP/IP 连接是通的。可以用 ping  命令测试。
(2) 服务器上 Oracle Listener 已经启动。
lsnrctl status  查看 listener 状态
lsnrctl start  启动 Oracle listener 
(3) 客户端得到的错误信息通常是: ORA-12170 :  TNS: 连接超时  
这时,我们基本可以肯定是服务器没有开放1521 端口(假设你用默认设置)

可配置防火墙开放1521 端口:

[myos@localhost ~]$ vi /etc/sysconfig/iptables

添加如下内容

-A INPUT -m state --state NEW -m tcp -p tcp --dport 1521 -j ACCEPT

重启防火墙

[root@localhost myos]# service iptables restart

iptables: Setting chains to policy ACCEPT: filter          [  OK  ]

iptables: Flushing firewall rules:                         [  OK  ]

iptables: Unloading modules:                               [  OK  ]

iptables: Applying firewall rules:                         [  OK  ]

本地连接测试通过

接下来就可以创建用户进行操作了。

20.  linux 下创建 oracle 用户表空间

就是在已有的数据库实例上创建一个新的帐号,访问一些新的表
操作步骤如下:
(1) 登录 linux ,以 oracle 用户登录(如果是 root 用户登录的,登录后用  su - oracle 命令切换成 oracle 用户)
(2) 以 sysdba 方式来打开 sqlplus ,命令如下:  sqlplus "/as sysdba"
(3) 查看我们常规将用户表空间放置位置:执行如下 sql :
select name from v$datafile
(4) 创建用户表空间:
CREATE TABLESPACE NOTIFYDB DATAFILE '/home/oracle/app/oradata/orcl/scsdb.dbf' SIZE 200M AUTOEXTEND ON EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO; 
(5) 创建用户,指定密码和上边创建的用户表空间
CREATE USER scs IDENTIFIED BY scs DEFAULT TABLESPACE NOTIFYDB;
(6) 赋予权限
grant connect,resource to scs;
grant unlimited tablespace to scs;
grant create database link to scs;
grant select any sequence,create materialized view to scs; 
-- 经过以上操作,我们就可以使用 scs/scs 登录指定的实例,创建我们自己的表了

21.  启动数据库实例

重启了服务器之后,查看监听状态,发现数据库实例没有启动

执行如下命令就可以启动了。

[myos@localhost ~]$ sqlplus / as sysdba
 
SQL*Plus: Release 11.2.0.1.0 Production on Fri Apr 6 04:08:29 2018
 Copyright (c) 1982, 2009, Oracle.  All rights reserved.
 
Connected to an idle instance.
 
SQL> startup
ORACLE instance started.
 
Total System Global Area  776646656 bytes
Fixed Size     2217384 bytes
Variable Size   473959000 bytes
Database Buffers   293601280 bytes
Redo Buffers     6868992 bytes
Database mounted.
Database opened.




以下部分可供参考


装到这一步,可以看到,可以查看到有很多的 rpm 包没有,我们可以从安装 linux 的光盘或 ISO 中(或去 D:\linux_oracle11g_Package )查找所缺的包,使用 ftp 上传到 linux 中,然后使用 rpm –ivh xxx.rpm --nodeps –force 来进行安装(其中加上 --nodeps -- force 代表强制安装,是在直接使用 rpm –ivh xxx.rpm 安装不成功的情况下用的)等到把包全部都安装好的情况下,再次在 oracle 图形界面中,执行安装过程 2 ,下来在环境检查过程中,就通过了。

安装过程中 86% 可能会遇到报错如出错问题( error in invoking target 'mkldflags ntcontab.o nnfgt.o' of makefile )按照如下步骤顺序执行。

上传安装镜像 rhel-server-6.1-x86_64-dvd.iso ,

然后将镜像文件挂,如 /mnt

# mount -o loop rhel-server-6.1-x86_64-dvd.iso /mnt

 

# cd /mnt/Packages

 

# rpm -ivh glibc-common-2.12-1.25.el6.x86_64.rpm

 

# rpm -ivh kernel-headers-2.6.32-131.0.15.el6.x86_64.rpm

 

# rpm -ivh libgcc-4.4.5-6.el6.x86_64.rpm

 

# rpm -ivh glibc-2.12-1.25.el6.x86_64.rpm

 

# rpm -ivh libgomp-4.4.5-6.el6.x86_64.rpm

 

# rpm -ivh nscd-2.12-1.25.el6.x86_64.rpm

 

# rpm -ivh glibc-headers-2.12-1.25.el6.x86_64.rpm

 

# rpm -ivh glibc-devel-2.12-1.25.el6.x86_64.rpm

 

# rpm -ivh mpfr-2.4.1-6.el6.x86_64.rpm

 

# rpm -ivh ppl-0.10.2-11.el6.x86_64.rpm

 

# rpm -ivh cloog-ppl-0.15.7-1.2.el6.x86_64.rpm

 

# rpm -ivh cpp-4.4.5-6.el6.x86_64.rpm

 

# rpm -ivh gcc-4.4.5-6.el6.x86_64.rpm

 

注:以上是安装 gcc ,软件安装顺序不能错。

******************************************

 

# rpm -ivh libstdc++-4.4.5-6.el6.x86_64.rpm

 

# rpm -ivh libstdc++-devel-4.4.5-6.el6.x86_64.rpm

 

# rpm -ivh gcc-c++-4.4.5-6.el6.x86_64.rpm

 

注:以上是安装 gcc-c++

根据这个方法解决了错误。

安装完成后,系统会提示你需要用 root 权限执行 2 个 shell 脚本。按照其提示的路径,找到其所在的位置,如:我的就在 /home/oracle/app/oracle/product/11.2.0/dbhome_1/root.sh

和 /home/oracle/oraInventory/orainstRoot.sh 新开启一个终端,输入命令:

su – root

 

cd /home/oracle/app/oracle/product/11.2.0/dbhome_1

 

sh root.sh

 

cd /home/oracle/oraInventory

 

sh orainstRoot.sh

 

三、数据库建库

1 ) 还是在 oracle 用户的图形界面 oracle 用户中,新开启一个终端,直接输入命令 dbca 会弹出如下界面。我们这里采用定制数据库。

经过漫长的等待,当看到此界面,说明 oracle 建库完成

四、配置监听及本地网络服务

1 )在 oracle 用户的图形界面 oracle 用户中,新开启一个终端,输入命令 netca 会弹出如下界面。

2 )创建监听服务(充当 oracle 服务器,让别的 oracle 客户端连接本 oracle 服务器)

3 ) 配置本地网络服务名(充当 oracle 客户端,连接别的 oracle 服务器)

输入连接的 oracle 服务器的数据库的实例名

输入 oracle 服务器的 ip 地址

选中 YES 测试

点击 change Login 输入所连接 oracle 服务器的其中某一个用户名和密码(用户名 oracle 和设置的密码),点击 OK

看到此界面说明测试成功(如果不成功,请查看网络是否畅通,所连接的 oracle 服务器是否启动,监听是否启动等原因 )

为你所设置的本地网络服务名起个名字

这样 oracle 服务器安装配置基本就完成了

注意:

1 、 Linux oracle 数据库 listener.ora 存放路径

cd /home/oracle/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora

2 、 Linux oracle 数据库 tnsnames.ora 存放路径

cd /home/oracle/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora

3 、 ORACLE 启动监听器
(1)
切换至 oracle 安装用户(一般为 oracle )
su - oracle
(2)
启动监听器
lsnrctl start
(3)
停止监听器
lsnrctl stop

4 、启动测试 oracle :
[oracle@oracle ~]$ sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on Fri Jul 27 02:12:12 2012
Copyright (c) 1982, 2009, Oracle. All rights reserved.
SQL> quit
测试的另一种方法:找一台 windows 平台电脑, telnet oracle 主机 IP 地址: 1521 ,通的话,会出现一个黑屏,光标一闪一闪。

5 、 Linux 开放 1521 端口允许网络连接 Oracle Listener

症状:
(1)TCP/IP
连接是通的。可以用 ping 命令测试。
(2)
服务器上 Oracle Listener 已经启动。
lsnrctl status
查看 listener 状态
lsnrctl start
启动 Oracle listener
(3)
客户端得到的错误信息通常是: ORA-12170 : TNS: 连接超时
这时,我们基本可以肯定是服务器没有开放 1521 端口(假设你用默认设置)

解决方法:
(1)
假如你是在一个局域网环境,配置了防火墙。那么可以关闭 Linux 的防火墙。
sudo service iptables stop
(2)
编辑 iptables, 开放 1521 端口:
sudo vi /etc/sysconfig/iptables
-A INPUT -p tcp -m state --state NEW -m tcp --dport 1521 -j ACCEPT
:wq

重启防火墙
sudo service iptables restart
保存配置,以便 linux 重启后依然有效
sudo service iptables save
查看防火墙规则:
sudo iptables -L –n

6 、 linux 下创建 oracle 用户表空间

就是在已有的数据库实例上创建一个新的帐号,访问一些新的表
操作步骤如下:
(1)
登录 linux ,以 oracle 用户登录(如果是 root 用户登录的,登录后用 su - oracle 命令切换成 oracle 用户)
(2)
以 sysdba 方式来打开 sqlplus ,命令如下: sqlplus "/as sysdba"
(3)
查看我们常规将用户表空间放置位置:执行如下 sql :
select name from v$datafile
(4)
创建用户表空间:
CREATE TABLESPACE NOTIFYDB DATAFILE '/home/oracle/app/oradata/orcl/scsdb.dbf' SIZE 200M AUTOEXTEND ON EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
(5)
创建用户,指定密码和上边创建的用户表空间
CREATE USER scs IDENTIFIED BY scs DEFAULT TABLESPACE NOTIFYDB;
(6)
赋予权限
grant connect,resource to scs;
grant unlimited tablespace to scs;
grant create database link to scs;
grant select any sequence,create materialized view to scs;
--
经过以上操作,我们就可以使用 scs/scs 登录指定的实例,创建我们自己的表了

 


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69942301/viewspace-2681608/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 启动数据库监听
请登录后发表评论 登录
全部评论

注册时间:2019-07-25

  • 博文量
    12
  • 访问量
    13597