1.安装说明
使用到的工具:
软件名称 | 版本 | 软件包 |
系统 | centOS6.8 | CentOS-6.8-x86_64-bin-DVD1.iso |
数据库 | ORACLE11g |
linux.x64_11gR2_database_1of2.zip linux.x64_11gR2_database_2of2.zip |
ssh工具 | Xshell5 | |
文件传输工具 | Xftp | |
图形化显示工具 | Xming | Xming-6-9-0-31-setup.exe |
安装用户:
我安装时使用到的是普通用户myos,并不是大部分教程当中使用到的oracle.
[[email protected] myos]# id myos uid=500(myos) gid=501(oinstall) groups=501(oinstall),502(dba)
2. 切换到root用户
因为我是在自己搭建的虚拟机上进行的操作,所以在普通用户和root之间切换用的是su命令,在实际项目开发过程中,推荐使用sudo命令来切换,这样利于系统安全性管理。
3. 修改操作系统核心参数
[[email protected] myos]# vi /etc/security/limits.conf 添加以下内容: oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536
4. 修改/etc/pam.d/login 文件
[[email protected] myos]# vi /etc/pam.d/login 添加如下内容 session required /lib/security/pam_limits.so session required pam_limits.so
5. 修改内核
[[email protected] myos]# vi /etc/sysctl.conf 添加如下内容 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 使文件生效 [[email protected] myos]# sysctl -p
6. 编辑/etc/profile
[[email protected] myos]# vi /etc/profile 添加如下内容: if [ $USER = "myos" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi
7. 创建oinstall、dba组 将myos用户加入组 修改并设定oracle用户密码
[[email protected] myos]# groupadd oinstall [[email protected] myos]# groupadd dba [[email protected] myos]# usermod -g oinstall -G dba myos [[email protected] myos]# id myos uid=500(myos) gid=501(oinstall) groups=501(oinstall),502(dba)
8. 创建目录并修改所属组及权限
[[email protected] myos]# mkdir application/oracle [[email protected] myos]# mkdir application/oracle/oracle [[email protected] myos]# mkdir application/oracle/oradata [[email protected] myos]# mkdir application/oracle/oracle/product 修改权限 [[email protected] myos]# chown -R myos:oinstall application/oracle [[email protected] myos]# chmod -R 777 application/oracle 查看信息 [[email protected] myos]# id myos uid=500(myos) gid=501(oinstall) groups=501(oinstall),502(dba)
9. 切换到myos用户
[[email protected] oracle]# su myos
10. 添加环境变量
[[email protected] oracle]$ vi ~/.bash_profile 添加如下内容 export ORACLE_BASE=/home/myos/application/oracle/oracle 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
11. 修改服务器的DISPLAY环境变量,使得oracle的安装界面可以显示在客户机上
[[email protected] oracle]$ echo $DISPLAY [[email protected] oracle]$ DISPLAY="192.168.1.106:0.0" [[email protected] oracle]$ export DISPLAY [[email protected] oracle]$ echo $DISPLAY 192.168.1.106:0.0
12. 上传文件并解压
[[email protected] application]$ unzip linux.x64_11gR2_database_1of2.zip [[email protected] application]$ unzip linux.x64_11gR2_database_2of2.zip
13. 安装
这时候在windows下打开Xming,执行安装的时候,图形安装界面就会在windows下显示了。
[[email protected] application]$ cd database [[email protected] database]$ ./runInstaller Starting Oracle Universal Installer... Checking Temp space: must be greater than 120 MB. Actual 8386 MB Passed Checking swap space: must be greater than 150 MB. Actual 2047 MB Passed Checking monitor: must be configured to display at least 256 colors. Actual 16777216 Passed Preparing to launch Oracle Universal Installer from /tmp/OraInstall2018-04-05_05-27-15PM. Please wait ...[[email protected] database]$
14. 弹出图形安装界面,安装数据库软件和实例
点击下一步
点击下一步
实际开发中,服务器没有图形界面,我们选择服务类安装,下一步
不需要集群,选择单实例安装,下一步
下一步
选择语言,下一步
下一步
选择目录,下一步
下一步
下一步
内存
字符集
下一步
下一步
下一步
设置密码
下一步
先决条件检查,缺少依赖包
这时候打开一个终端,以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身份登录终端,执行以下脚本。
执行脚本:
[[email protected] myos]su root [[email protected] myos]# cd /home/myos/application/oracle/oraInventory [[email protected] oraInventory]# sh orainstRoot.sh [[email protected] oraInventory]# cd /home/myos/application/oracle/oracle/product/11.2.0/dbhome_1 [[email protected] dbhome_1]# sh root.sh
安装完成
上面安装成功之后,服务监听和本地网络服务应该是就配置好了,我实际安装的过程中都会提示服务名称已经存在。如果没有的话,我们可以按照下面的步骤进行配置。
15. 配置监听
打开终端,输入:
[[email protected] dbhome_1]# netca
Oracle Net Services Configuration:
弹出界面:
创建监听服务(充当oracle服务器,让别的oracle客户端连接本oracle服务器)
16. 配置本地网络服务
配置本地网络服务名(充当oracle客户端,连接别的oracle服务器)
我填的是自己服务器的名称,不知道填其他服务器的ip可不可以
进行连接测试
连接成功
到此就配置完毕了。
17. 查看监听状态
[[email protected] ~]$ lsnrctl status LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 05-APR-2018 18:06:52 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 05-APR-2018 17:41:44 Uptime 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.ora 2、Linux oracle数据库tnsnames.ora存放路径 /home/myos/application/oracle/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora 3、ORACLE启动监听器 (1)切换至普通安装用户(我的是myos) su - myos (2)启动监听器 lsnrctl start (3)停止监听器 lsnrctl stop
18. 启动测试oracle
[[email protected] ~]$ sqlplus /nolog SQL*Plus: Release 11.2.0.1.0 Production on Thu Apr 5 18:12:26 2018 Copyright (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端口:
[[email protected] ~]$ vi /etc/sysconfig/iptables
添加如下内容
-A INPUT -m state --state NEW -m tcp -p tcp --dport 1521 -j ACCEPT
重启防火墙
[[email protected] 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. 启动数据库实例
重启了服务器之后,查看监听状态,发现数据库实例没有启动
执行如下命令就可以启动了。
[[email protected] ~]$ 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.
安装的过程中参考了不少教程,版权意识我们是要有的,但是由于参考的太多,各种来源我也混淆了,所以就这样写吧:
来源:各种安装过oracle写过教程的网友。