一、安装Oracle前准备

1.创建运行oracle数据库的系统用户和用户组

  1. [humf@localhost ~]$ su root  #切换到root
  2. Password:
  3. [root@localhost sonny]# groupadd oinstall  #创建用户组oinstall
  4. [root@localhost sonny]# groupadd dba  #创建用户组dba
  5. [root@localhost sonny]# useradd -g oinstall -g dba -m oracle  #创建oracle用户,并加入到oinstall和dba用户组
  6. [root@localhost sonny]# passwd oracle  #设置用户oracle的登陆密码,不设置密码,在CentOS的图形登陆界面没法登陆
  7. Changing password for user oracle.
  8. New password:   # 密码
  9. BAD PASSWORD: The password is shorter than 8 characters
  10. Retype new password:   # 确认密码
  11. passwd: all authentication tokens updated successfully.
  12. [root@localhost sonny]# id oracle # 查看新建的oracle用户
  13. uid=1001(oracle) gid=1002(dba) groups=1002(dba)
  14. [root@localhost sonny]#

理论上单例按照需要3种用户组,实际只建两个oinstall和dba,后面再安装oracle数据库的时候把OSOPER组也设置是dba组。
a.oracle 清单组(一般为oinstall):
 OINSTALL 组的成员被视为 Oracle 软件的“所有者”,拥有对 Oracle 中央清单 (oraInventory) 的写入权限。在一个 Linux 系统上首次安装 Oracle 软件时,
 OUI 会创建 /etc/oraInst.loc 文件。该文件指定 Oracle 清单组的名称(默认为 oinstall)以及 Oracle 中央清单目录的路径。
b.数据库管理员(OSDBA,一般为 dba):
 OSDBA 组的成员可通过操作系统身份验证使用 SQL 以 SYSDBA 身份连接到一个 Oracle 实例。该组的成员可执行关键的数据库管理任务,如创建数据库、启动和关
 闭实例。该组的默认名称为dba。SYSDBA 系统权限甚至在数据库未打开时也允许访问数据库实例。对此权限的控制完全超出了数据库本身的范围。不要混淆 SYSDBA 
 系统权限与数据库角色 DBA。DBA 角色不包括 SYSDBA 或 SYSOPER 系统权限。
c.数据库操作员组(OSOPER,一般为 oper):
 OSOPER 组的成员可通过操作系统身份验证使用 SQL 以 SYSOPER 身份连接到一个 Oracle 实例。这个可选组的成员拥有一组有限的数据库管理权限,如管理和运行备份。
 该组的默认名称为oper。SYSOPER 系统权限甚至在数据库未打开时也允许访问数据库实例。对此权限的控制完全超出了数据库本身的范围。要使用该组,选择 Advanced 安装类型来安装 Oracle 数据库软件。

2.修改操作系统核心参数
在Root用户下执行以下步骤:
1)修改用户的SHELL的限制,修改/etc/security/limits.conf文件
输入命令:vi /etc/security/limits.conf,按i键进入编辑模式,将下列内容加入该文件。

  1. oracle soft nproc 2047
  2. oracle hard nproc 16384
  3. oracle soft nofile 1024
  4. oracle hard nofile 65536

编辑完成后按Esc键,输入“:wq”存盘退出
2)修改/etc/pam.d/login 文件,输入命令:vi /etc/pam.d/login,按i键进入编辑模式,将下列内容加入该文件。

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

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

  1. fs.file-max = 6815744
  2. fs.aio-max-nr = 1048576
  3. kernel.shmall = 2097152
  4. kernel.shmmax = 2147483648
  5. kernel.shmmni = 4096
  6. kernel.sem = 250 32000 100 128
  7. net.ipv4.ip_local_port_range = 9000 65500
  8. net.core.rmem_default = 4194304
  9. net.core.rmem_max = 4194304
  10. net.core.wmem_default = 262144
  11. net.core.wmem_max = 1048576

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

  1. linux:~ # sysctl -p
  2. net.ipv4.icmp_echo_ignore_broadcasts = 1
  3. net.ipv4.conf.all.rp_filter = 1
  4. fs.file-max = 6815744
  5. fs.aio-max-nr = 1048576
  6. kernel.shmall = 2097152
  7. kernel.shmmax = 2147483648
  8. kernel.shmmni = 4096
  9. kernel.sem = 250 32000 100 128
  10. net.ipv4.ip_local_port_range = 9000 65500
  11. net.core.rmem_default = 4194304
  12. net.core.rmem_max = 4194304
  13. net.core.wmem_default = 262144
  14. net.core.wmem_max = 1048576

5)编辑 /etc/profile ,输入命令:vi /etc/profile,按i键进入编辑模式,将下列内容加入该文件。

  1. if [ $USER = "oracle" ]; then
  2. if [ $SHELL = "/bin/ksh" ]; then
  3. ulimit -p 16384
  4. ulimit -n 65536
  5. else
  6. ulimit -u 16384 -n 65536
  7. fi
  8. fi

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

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

  1. mkdir /home/oracle/app
  2. mkdir /home/oracle/app/oracle
  3. mkdir /home/oracle/app/oradata
  4. mkdir /home/oracle/app/oracle/product

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

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

8)配置oracle用户的环境变量,首先,切换到新创建的oracle用户下,
输入:su – oracle ,然后直接在输入 : vi .bash_profile
按i编辑 .bash_profile,进入编辑模式,增加以下内容:

  1. export ORACLE_BASE=/home/oracle/app
  2. export ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/dbhome_1
  3. export ORACLE_SID=orcl
  4. export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
  5. export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib

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

ps:我的云服务器没有防火墙,如果你们有,可以关闭
--关闭防火墙 CentOS 7.2默认使用的是firewall作为防火墙

  1. [humf@localhost /]$ su root
  2. Password:
  3. [root@localhost /]# systemctl status firewalld.service  #查看防火墙状态,运行中
  4. ● firewalld.service - firewalld - dynamic firewall daemon
  5. Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
  6. Active: active (running) since Thu 2016-04-07 18:54:29 PDT; 2h 20min ago
  7. Main PID: 802 (firewalld)
  8. CGroup: /system.slice/firewalld.service
  9. └─802 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
  10. Apr 07 18:54:25 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon...
  11. Apr 07 18:54:29 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon.
  12. [root@localhost /]# systemctl stop firewalld.service  #关闭防火墙
  13. [root@localhost /]# systemctl status firewalld.service  #再次查看防火墙状态,发现已关闭
  14. ● firewalld.service - firewalld - dynamic firewall daemon
  15. Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
  16. Active: inactive (dead) since Thu 2016-04-07 21:15:34 PDT; 9s ago
  17. Main PID: 802 (code=exited, status=0/SUCCESS)
  18. Apr 07 18:54:25 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon...
  19. Apr 07 18:54:29 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon.
  20. Apr 07 21:15:33 localhost systemd[1]: Stopping firewalld - dynamic firewall daemon...
  21. Apr 07 21:15:34 localhost systemd[1]: Stopped firewalld - dynamic firewall daemon.
  22. [root@localhost /]# systemctl disable firewalld.service  #禁止使用防火墙(重启也是禁止的)
  23. Removed symlink /etc/systemd/system/dbus-org.Fedoraproject.FirewallD1.service.
  24. Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.
  25. [root@localhost /]#

防火墙先禁用,搞好之后再配置,个人虚拟机,要毛线防火墙~~

6.关闭selinux(需重启生效)

  1. [root@localhost /]# vi /etc/selinux/config
  2. [root@localhost /]# cat /etc/selinux/config
  3. # This file controls the state of SELinux on the system.
  4. # SELINUX= can take one of these three values:
  5. #     enforcing - SELinux security policy is enforced.
  6. #     permissive - SELinux prints warnings instead of enforcing.
  7. #     disabled - No SELinux policy is loaded.
  8. SELINUX=disabled   #此处修改为disabled
  9. # SELINUXTYPE= can take one of three two values:
  10. #     targeted - Targeted processes are protected,
  11. #     minimum - Modification of targeted policy. Only selected processes are protected.
  12. #     mls - Multi Level Security protection.
  13. SELINUXTYPE=targeted
  14. [root@localhost /]#

为啥要关闭selinux?因为selinux太高深,非专业人士搞不懂~~

二、正式Oracle的安装过程

1)当上述系统要求操作全部完成后,注销系统,在图形界面以Oracle用户登陆。

PS:对于不会用图形界面的这边教你怎么用Windows远程连接Oracle图形界面
   前提: 
2.1.1 CentOS已经安装桌面,如果无桌面,请执行 (yum不会的可以百度,这边不赘述了)

  1. # yum -y groups install "GNOME Desktop"
  2. # startx

2.1.2 配置源

  1. <span style="white-space:pre;">     </span># yum install  epel* -y

2.1.3 安装xrdp

  1. <span style="white-space:pre;"><span style="white-space:pre;">  </span> </span># yum --enablerepo=epel -y install xrdp

2.1.4 启动xrdp并设置开机启动

  1. <span style="white-space:pre;">     </span># systemctl start xrdp
  2. # systemctl enable xrdp

2.1.5 打开Windows的远程工具输入服务器IP用Oracle账户登陆就行

首先将下载的Oracle安装包复制到linux中,用SSH其他ftp工具拷贝。
打开一个终端,运行unzip命令解压oracle安装文件,如:
输入命令:

  1. unzip linux.x64_11gR2_database_1of2.zip
  2. unzip linux.x64_11gR2_database_2of2.zip

解压完成后 cd 进入其解压后的目录database
输入命令:

  1. cd database

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

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

装到这一步,可以看到,可以查看到有很多的rpm包没有,这里可以通过yum安装
我这边的是操作系统:Oracle Linux 7 centos
The following packages (or later versions) must be installed:
binutils-2.23.52.0.1-12.el7.x86_64 
compat-libcap1-1.10-3.el7.x86_64 
gcc-4.8.2-3.el7.x86_64 
gcc-c++-4.8.2-3.el7.x86_64 
glibc-2.17-36.el7.i686 
glibc-2.17-36.el7.x86_64 
glibc-devel-2.17-36.el7.i686 
glibc-devel-2.17-36.el7.x86_64 
ksh
libaio-0.3.109-9.el7.i686 
libaio-0.3.109-9.el7.x86_64 
libaio-devel-0.3.109-9.el7.i686 
libaio-devel-0.3.109-9.el7.x86_64 
libgcc-4.8.2-3.el7.i686 
libgcc-4.8.2-3.el7.x86_64 
libstdc++-4.8.2-3.el7.i686 
libstdc++-4.8.2-3.el7.x86_64 
libstdc++-devel-4.8.2-3.el7.i686 
libstdc++-devel-4.8.2-3.el7.x86_64 
libXi-1.7.2-1.el7.i686 
libXi-1.7.2-1.el7.x86_64 
libXtst-1.2.2-1.el7.i686 
libXtst-1.2.2-1.el7.x86_64 
make-3.82-19.el7.x86_64 
sysstat-10.1.5-1.el7.x86_64 
一个一个的安装,命令也很简单,反正文档要求高版本也可以:

  1. [humf@localhost data]$ su root
  2. Password:
  3. [root@localhost data]# yum install binutils

省略...

一个一个检查package,在准备阶段中漏掉的,此处再安装,有些系统报错是因为现有的包的版本比检测要高,最后右上角忽略即可

3)安装过程是一个漫长的过程,中间有几次卡住,没有出现任何画面,屏幕中间有条小线,尝试多次,发现光标在该线上,右键点击Closed,不知道关闭了啥,又能继续安装了。先装吧,到时有问题看日志


4)配置监听listener

1)执行netca 报错

  1. [Oracle@localhost ~]$ netca
  2. Oracle Net Services Configuration:
  3. #
  4. # An unexpected error has been detected by HotSpot Virtual Machine:
  5. #
  6. #  SIGSEGV (0xb) at pc=0x00007f69a69fcb9d, pid=8033, tid=140092892297024
  7. #
  8. # Java VM: Java HotSpot(TM) 64-Bit Server VM (1.5.0_17-b03 mixed mode)
  9. # Problematic frame:
  10. # C  [libclntsh.so.11.1+0x62ab9d]  snlinGetAddrInfo+0x1b1
  11. #
  12. # An error report file with more information is saved as hs_err_pid8033.log
  13. #
  14. # If you would like to submit a bug report, please visit:
  15. #   http://java.sun.com/webapps/bugreport/crash.jsp
  16. #
  17. /data/oracle/product/11.2.0/db_1/bin/netca: line 178:  8033 Aborted                 (core dumped) $JRE $JRE_OPTIONS -classpath $CLASSPATH oracle.net.ca.NetCA $*
  18. [oracle@localhost ~]$

错误原因:安装操作系统是默认主机名localhost造成错误

解决办法:

  1. racle]# cat /etc/sysconfig/network
  2. # Created by anaconda
  3. [root@localhost oracle]# vi /etc/sysconfig/network  #增加HOSTNAME
  4. [root@localhost oracle]# cat /etc/sysconfig/network
  5. # Created by anaconda
  6. HOSTNAME=odb-sonny
  7. [root@localhost oracle]# cat /etc/hosts
  8. 127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
  9. ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
  10. [root@localhost oracle]# vi /etc/hosts  #增加HOSTNAME
  11. [root@localhost oracle]# cat /etc/hosts
  12. 127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 odb-sonny
  13. ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
  14. [root@localhost oracle]# hostname odb-sonny  #执行
  15. [root@localhost oracle]#

最后注销当前oracle用户,重新登陆即可!!这次发现打开配置界面正常

5)创建Oracle数据实例Orcl

执行dbca命令,启动oracle实例安装界面,剩下的与Windows上安装一样,不废话了:

注意:必须先创建监听,并且监听是启动中,否则报错。

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

这样oracle服务器安装配置基本就完成了
注意:
1、Linux oracle数据库listener.ora存放路径

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

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

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

3、ORACLE启动监听器
(1)切换至oracle安装用户(一般为oracle)

  1. su - oracle

(2)启动监听器

  1. lsnrctl start

(3)停止监听器

  1. lsnrctl stop

4、启动测试oracle:

  1. [oracle@oracle ~]$ sqlplus /nolog
  2. SQL*Plus: Release 11.2.0.1.0 Production on Fri Jul 27 02:12:12 2012
  3. Copyright (c) 1982, 2009, Oracle. All rights reserved.
  4. 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的防火墙。

  1. sudo service iptables stop

(2)编辑iptables, 开放1521端口:

  1. sudo vi /etc/sysconfig/iptables
  2. -A INPUT -p tcp -m state --state NEW -m tcp --dport 1521 -j ACCEPT
  3. :wq

重启防火墙

  1. sudo service iptables restart

保存配置,以便linux重启后依然有效

  1. sudo service iptables save

查看防火墙规则:

  1. sudo iptables -L –n

PS:如果你是云服务器,请看看自己的安全策略组有没有给1521添加

6、linux下创建oracle用户表空间
就是在已有的数据库实例上创建一个新的帐号,访问一些新的表
操作步骤如下:
(1)登录linux,以oracle用户登录(如果是root用户登录的,登录后用 su - oracle命令切换成oracle用户)
(2)以sysdba方式来打开sqlplus,命令如下: sqlplus "/as sysdba"
(3)查看我们常规将用户表空间放置位置:执行如下sql:

  1. select name from v$datafile

(4)创建用户表空间:

  1. CREATE TABLESPACE NOTIFYDB DATAFILE '/home/oracle/app/oradata/orcl/scsdb.dbf' SIZE 200M AUTOEXTEND ON EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;

(5)创建用户,指定密码和上边创建的用户表空间

  1. CREATE USER scs IDENTIFIED BY scs DEFAULT TABLESPACE NOTIFYDB;

(6)赋予权限

  1. grant connect,resource to scs;
  2. grant unlimited tablespace to scs;
  3. grant create database link to scs;
  4. grant select any sequence,create materialized view to scs;

--经过以上操作,我们就可以使用scs/scs登录指定的实例,创建我们自己的表了

藏经阁技术资料分享群二维码

史上最详细最全的Linux上安装Oracle的教程-centos7的更多相关文章

  1. Linux上安装Oracle的教程-centos7

    一.安装Oracle前准备 1.创建运行oracle数据库的系统用户和用户组   [humf@localhost ~]$ su root #切换到root   Password:   [root@lo ...

  2. 在Linux中安装Oracle(较详细图解)

    原创 http://www.cnblogs.com/nucdy/p/5603998.html 参考视屏:链接: https://pan.baidu.com/s/1kViEZQZ  密码: z7ha ( ...

  3. 百度文库,linux下安装oracle客户端

    linux单独安装oracle client(oracle客户端) 更新:2013-10-17 18:30 | 标签:linux oracle   1.要远程使用oracle,先下载下面三个文件,注意 ...

  4. linux 手动安装 oracle(转)

    Linux下安装Oracle 11 此为参照CU论坛上的高人写的文章并结合自身环境增加了点细节性的东西 操作系统 CentOS 4.2 2.6.11.8内核 安装准备 下载Oracle11安装包 内存 ...

  5. CentOS Linux 系统 安装oracle 11g

    CentOS Linux 系统 安装oracle 11g 在Linux系统上安装oracle是比较麻烦,需要配置各种变量啥的,o(︶︿︶)o ,但是没办法,有些东西你总的去接触,而且接触理解的越早越深 ...

  6. linux下安装Oracle时交换空间不足的解决方法

    摘:linux下安装Oracle时交换空间不足的解决方法 linux上安装Oracle时交换空间不足的解决办法 增加交换空间有两种方法: 严格的说,在系统安装完后只有一种方法可以增加swap,那就是本 ...

  7. 解决在Linux下安装Oracle时的中文乱码问题

    本帖最后由 TsengYia 于 2012-2-22 17:06 编辑 解决在Linux下安装Oracle时的中文乱码问题 操作系统:Red Hat Enterprise Linux 6.1数据库:O ...

  8. Ubuntu Linux下安装Oracle JDK

    from://http://blog.csdn.net/gobitan/article/details/24322561 Ubuntu Linux下安装Oracle JDK Dennis Hu 201 ...

  9. Intellij idea史上最简单的教程之Linux下安装与破解Intellij idea2017

    一.前言 这一节我们介绍在Linux下如何安装与破解Intellij idea2017.现在有很多公司开发环境都是Linux,所以掌握在Linux环境下使用Idea办公也是咱们必须得掌握的技能. 记住 ...

随机推荐

  1. java基础 4 继承(3)this 与 super关键字

    this用来指向当前实例对象,用来区别成员变量与方法的形参 super可以用来访问父类的方法或成员变量,当子类构造函数需要显示的调用父类的构造函数时,super()必须为构造函数中的第一条语句.

  2. C++ std::tr1::bind使用

    1. 简述 同function函数相似.bind函数相同也能够实现相似于函数指针的功能.但却却比函数指针更加灵活.特别是函数指向类 的非静态成员函数时.std::tr1::function 能够对静态 ...

  3. 【转】LoadRunner监控 -- Linux的17个指标

    这17个指标根据需要设置,指标设置的越多,对服务器真实值影响越大,所以要秉承按需而设的原则.   1.Average load:Average number of processes simultan ...

  4. 块状元素的text-align对齐属性

    能够为块状元素(div,h1,h2,form等)内容设置位置text-align:center,left;right;

  5. graph driver-device mapper-03thin pool基本操作

    // 在thin pool中创建一个新thin device // 调用路径:driver.Create() 1.1 func (devices *DeviceSet) AddDevice(hash, ...

  6. 嵌入式开发之davinci--- 8148/8168/8127 中的图像缩放sclr、swms之后出现图像视频卡顿、屏幕跳跃的问题

    ()问题原因 这边的case链路是这样的camera->sclr(yuv420sp cif)->dup->ipcframeoutm3<->ipcframerocess&l ...

  7. Oracle修改序列(Sequence)起始值问题

    Oracle 序列(Sequence)主要用于生成流水号,在应用中经常会用到,特别是作为ID值,拿来做表主键使用较多. 但是,有时需要修改序列初始值(START WITH)时,有同仁使用这个语句来修改 ...

  8. 深入理解Java执行时数据区

    前情回想 在本专栏的前12篇博客中. 我们主要大致介绍了什么是JVM, 而且具体介绍了class文件的格式. 对于深入理解Java, 或者深入理解运行于JVM上的其它语言, 深入理解class文件格式 ...

  9. (2)MyEclipse怎么关联本地Tomcat服务器

    1,在MyEclipse中点击服务器按钮: 2,选择“Configure Server” 3,在弹出面板中选择 [Servers]-[Tomcat]-[对应版本的服务器] 5,看上图,先选择Enabl ...

  10. 网络驱动移植之简述CS8900A网络芯片的基本原理

    CS8900A数据手册:http://www.cirrus.com/cn/products/cs8900a.html 1.概述 CS8900A是CIRRUS LOGIC公司生产的低功耗.性能优越的16 ...