[Linux系统安装Oracle数据库]
操作手册
文件修订历史
目录
本文档是Linux(redhat6.x、centos6.x、redhat7.x) 64位操作系统安装Oracle 11g(Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production),本文基于各种网络资料精心整理而成,共享给有需要的朋友。如有问题可联系:QQ:527446862,或邮件:[email protected]
操作系统:64位Linux (redhat6.x、centos6.x、redhat7.x)
内存:2G及以上
硬盘:挂载根目录剩于空间至少7G以上
文件准备:下载好了的压缩包linux.x64_11gR2_database_1of2.zip,或
Oracle 11g R2(Linux x86-64)
http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html
附:Oracle 10g下载址:
http://www.cnblogs.com/wenlg/archive/2010/05/19/1738893.html
linux.x64_11gR2_database_2of2.zip
压缩包目录:/install
创建目录:/app/oracle
将两个压缩包解压至/ install/database
[root@SZB-L0004047 ~]# chmod -R 777 /install |
创建两个oracle用户组:oinstall、dba
[root@SZB-L0004047 ~]# groupadd -g 801 oinstall [root@SZB-L0004047 ~]# groupadd -g 802 dba |
创建一个oracle用户:oracle
[root@SZB-L0004047 ~]# useradd -d /home/oracle oracle [root@SZB-L0004047 ~]# chmod -R 755 /home/oracle |
将oracle用户加入到oinstall和dba两个用户组
[root@SZB-L0004047 ~]# gpasswd -a oracle oinstall Adding user oracle to group oinstall [root@SZB-L0004047 ~]# gpasswd -a oracle dba Adding user oracle to group dba |
修改oracle用户密码:
[root@SZB-L0004006 ~]# passwd oracle |
准备安装oracle前,先把相关参数设置好
修改sysctl.conf:
[root@liujy ~]# vi /etc/sysctl.conf |
内容如下:
kernel.shmmax=2147483648 kernel.shmmni=4096 kernel.shmall=2097152 kernel.sem=800 32000 400 128 fs.file-max=6815744 fs.aio-max-nr=1048576 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 kernel.msgmni=4096 kernel.msgmax=65536 kernel.msgmnb=84000 |
修改内核参数的值使其生效:
[root@SZB-L0004047 ~]# sysctl -p kernel.shmmax = 2147483648 kernel.shmmni = 4096 kernel.shmall = 2097152 kernel.sem = 800 32000 400 128 fs.file-max = 6815744 fs.aio-max-nr = 1048576 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 kernel.msgmni = 4096 kernel.msgmax = 65536 kernel.msgmnb = 84000 |
修改limits.conf
[root@SZB-L0004047 ~]# vi /etc/security/limits.conf |
末尾增加以下内容:
oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 |
修改/etc/pam.d/login
[root@SZB-L0004047 ~]# vi /etc/pam.d/login |
增加以下内容:
session required pam_limits.so |
修改/etc/profile
[root@SZB-L0004047 ~]# vi /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 |
使其生效:
[root@SZB-L0004047 ~]# source /etc/profile |
切换到oracle用户
[root@SZB-L0004047 ~]# su oracle |
跳转到oracle的home目录
[oracle@SZB-L0004047 root]$ cd |
修改oracle用户的环境变量
[oracle@SZB-L0004047 ~]$ vi .bash_profile |
内容如下:
export TMP=/tmp export TMPDIR=$TMP export ORACLE_SID=poc export ORACLE_BASE=/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.2.0 export TNS_ADMIN=$ORACLE_HOME/network/admin export ORACLE_OWNER=oracle export LANG=en_US export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK export LC_CTYPE=zh_CN.GBK export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib:/usr/X11R6/lib export PATH=$PATH:$ORACLE_HOME/bin:/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin:/sbin CLASSPATH=$ORACLE_HOME/JREORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib CLASSPATH=$CLASSPATH:$ORACLE_HOME/network/jlib export CLASSPATH |
内容说明:
ORACLE_SID请跟据实际情况填写
ORACLE_HOME请跟据实例情况填写,11.2.0是指oracle版本号
使其生效:
[oracle@SZB-L0004047 ~]$ source .bash_profile |
由于安装oracle需要可视界面
需先安装vncserver,方便windows远程到Linux上
切换到root用户
[root@SZB-L0004047 ~]# yum install gdm nautilus gnome-panel gnome-terminal tigervnc-server -y |
然后启动vncserver,
[root@SZB-L0004047 ~]# vncserver :1 |
:1表示启动第一个vnc端口,回车提示输入密码,输入123456
然后windows输入 IP:1
如下:
root用户下:
修改hosts文件,增加IP配置
[root@SZB-L0004047 ~]# vi /etc/hosts |
增加一行:
10.20.16.122 SZB-L0004047 |
左边是Linux的IP,右边是linux的机器名
设置Linux的图形显示:
[root@SZB-L0004047 ~]# export DISPLAY=localhost:1 [root@SZB-L0004047 ~]# xhost + access control disabled, clients can connect from any host |
提示access control disabled, clients can connect from any host,表示成功,这样就可以在windows上的SSH上执行命令,SVN窗口里会自动弹出oracle安装界面了
为防止oracle安装界面乱码,
临时设置语言为:
[root@SZB-L0004047 ~]# export LC_CTYPE=en_US.iso88591 |
切换到oracle用户,
[oracle@SZB-L0004047 database]$ export DISPLAY=localhost:1 [oracle@SZB-L0004047 database]$ xhost + |
跳转到/install/database/,执行oracle安装命令
[oracle@SZB-L0004047 database]$ ./runInstaller |
SVN窗口里弹出了oracle界面,去掉“I wish…”的勾
然后next,
点击yes
选择“Skip software updates”,下一步
将简体中文添加右边窗口,next
如果不存在/app/oracle目录,则创建,创建后更改/app的权限为777
next,group name选择dba,修改Inventory:/app/oracle/oraInventory
点击yes
next
warning可忽略,Failed不能忽略,是由于用户ada和root有相同的UID号,需解决,
root用户下,
[root@SZB-L0004047 ~]# vi /etc/passwd |
找到ada,然后将ada:x:0:0::/home/ada:/bin/bash改为ada:x:100:100::/home/ada:/bin/bash
保存。
然后点击:“check again”
系统识别了shmmax推荐值为4294967295,重复1.3.1里的步骤,
解决完所有的“Failed”后,勾上ignore all,然后下一步
Are you sure you want to continue, 点击yes.
root用户下,执行上面两个shell脚本,然后点击OK
跳转到ORACLE安装目录:/app/oracle/product/11.2.0/dbhome_1/bin
执行netca命令:
[oracle@SZB-L0004047 bin]$ /app/oracle/product/11.2.0/dbhome_1/bin/netca |
VNC窗口弹出:
设置监听端口,默认为1521
最后询问是否再创建一个监听器,选择No,下一步后,点击Finish,监听器创建完毕。
oracle用户下,
[oracle@SZB-L0004047 ~]$ /app/oracle/product/11.2.0/dbhome_1/bin/dbca |
弹出
输入数据库SID
设置快速恢复区,建议生产环境勾上,开发、测试环境可不勾。
设置SGA和PGA,可根据硬件实际情况设置。
设置编码,跟据实际情况设置
可勾上第二个选项,表示创建一个模板,可供后续使用,第三个勾是用来保存创建数据库的脚本,可不选
然后关注进度条,总共大约需30分钟左右,可以去休息一会儿了,不定期关注进度条,和查看是否有弹窗。
跟据提示,
oracle用户下,
[oracle@SZB-L0004047 ~]$ /app/oracle/product/11.2.0/dbhome_1/bin/netca |
点击change login,输入密码后点ok,出现,Connecting...Test successful.
oracle用户下,试着运行sqlplus命令,如果出现bash: sqlplus: command not found...,
则表明oracle的path没有配好
[oracle@SZB-L0004047 ~]$ sqlplus bash: sqlplus: command not found... |
查看.bash_profile,看看里面的ORACLE_HOME配置得对不对
[oracle@SZB-L0004047 ~]$ vi .bash_profile |
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
如果不对,则修改,然后使其生效
[oracle@SZB-L0004047 ~]$ source .bash_profile |
oracle用户下,
sqlplus登录
[oracle@SZB-L0004047 ~]$ sqlplus '/as sysdba' SQL*Plus: Release 11.2.0.4.0 Production on Mon Jan 19 16:09:38 2015 Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> select instance_name, status from v$instance; INSTANCE_NAME STATUS ---------------- ------------ poc OPEN SQL> |
OPEN表示数据库已经成功启动
打开/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora
复制
POC = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = SZB-L0004047)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = poc) ) ) |
然后把此连接串复制到windows本地的tnsnames.ora,最好把其中的HOST改成IP形式,防止主机名改了网络不认识。
再重启PL/SQL Develop,输入用户名密码,选择SYSDBA
然后登录,成功则表示一个数据库空库安装完整成功。
-
- 数据库维护常用命令
查看监听状态:
[oracle@SZB-L0004047 oracle]$ lsnrctl status |
启动监听
[oracle@SZB-L0004047 oracle]$ lsnrctl start |
停止监听
[oracle@SZB-L0004047 oracle]$ lsnrctl stop |
数据库的停和启
先sqlplus '/as sysdba'登录
停:shutdown immediate
启:startup