一、安装依赖包
yum -y install compat-libcap* libstdc++-devel* glibc-devel* gcc-c++* glibc-headers* cpp* gcc* kernel-headers* libaio-devel* pdksh*
二、 创建用户及目录
groupadd -g 1001 oinstall
groupadd -g 1002 dba
groupadd -g 1003 oper
useradd -u 1001 -g oinstall -G dba,oper oracle
mkdir -p /u01/app/oracle/{oraInventory,install,db_1,oradate}
chown -R oracle:oinstall /u01/app
chmod -R 775 /u01/app
passwd oracle
#配置成功
三、 修改各种系统参数
cat >> /etc/sysctl.conf <<EOF
# Kernel paramaters required by Oracle 11g R2
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
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 = 1048586
EOF
cat >> /etc/security/limits.conf <<EOF
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
EOF
cat >> /etc/pam.d/login <<EOF
session required /lib64/security/pam_limits.so
EOF
#防止linux无法本地登录
注意:
32位系统用:
session required /lib/security/pam_limits.so
64位系统用:
session required /lib64/security/pam_limits.so
如果不写对,在命令行模式下,是无法登陆系统的。
cat >> /etc/profile <<EOF
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
EOF
cat >> /etc/csh.login <<EOF
# For Oracle Install
if ( $USER == "oracle" ) then
limit maxproc 16384
limit descriptors 65536
umask 022
end if
EOF
四、 设置环境变量
必须使用Oracle用户登录
cd /home/oracle
cat >> /home/oracle/.bash_profile <<EOF
# For Oracle Install
TMP=/tmp;
export TMP;
TMPDIR=$TMP;
export TMPDIR;
ORACLE_BASE=/u01/app/oracle;
export ORACLE_BASE;
ORACLE_HOME=$ORACLE_BASE/db_1;
export ORACLE_HOME;
ORACLE_SID=orcl;
export ORACLE_SID;
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;
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
EOF
#这一步很重要,建议设置完再使用cat确认下是否修改成功,或者vim进去查看
五、 安装oracle数据库
必须使用oracle用户登录
将Oracle
p13390677_112040_Linux-x86-64_1of7.zip
p13390677_112040_Linux-x86-64_2of7.zip
p13390677_112040_Linux-x86-64_3of7.zip
p13390677_112040_Linux-x86-64_4of7.zip
安装包上传至/u01/app/oracle/install目录下
解压安装包;
unzip p13390677_112040_Linux-x86-64_1of7.zip
unzip p13390677_112040_Linux-x86-64_2of7.zip
unzip p13390677_112040_Linux-x86-64_3of7.zip
unzip p13390677_112040_Linux-x86-64_4of7.zip
解压完后Oracle目录下会产生一个database的目录;进入database目录运行./runinstaller(弹出的安装界面可能会乱码,出现乱码的情况在database目录下执行export LANG=en_US,然后再运行./runinstaller)
#使用xshell调不出来Xmanager的时候 source /home/oracle/.bash_profile即可进入
安装准备工作完毕之后,我们即可看到oracle图形化的安装界面(如下图所示)。
#取消选中这个钩,下一步
#点击yes
#选择只安装软件,点击下一步
#选择单数据库安装,点击下一步
#选择English也可以简体中文,点击下一步
#选择企业版,点击下一步
#配置Oracle Base目录和Softwore Location目录,注意,这里的Oracle Base目录要和前面设置的环境变量一致,即/home/oracle/.bash_profile文件里的ORACLE_BASE和ORACLE_HOME分别对应
#选择目录,这个目录之间建立过。
#选择oinstall点击下一步
#接下来会到达检查依赖的步骤,他会提示很多依赖有问题,但是其实没关系,你已经安装好了,直接点击右上角的“忽略全部”即可,然后下一步。
#点击“安装”。
#等它安装完
#如果出现这种情况进入/u01/app/oracle/db_1/sysman/lib/ins_emagent.mk文件修改
先进行备份cp ins_emagent.mk ins_emagent.mk.bak 然后编辑 ins_emagent.mk文件
将 $(MK_EMAGENT_NMECTL) 修改为:$(MK_EMAGENT_NMECTL -lnnz11)
保存退出点击Retry即可
执行脚本:/u01/app/oracle/oraInventory/orainstRoot.sh
执行脚本:/u01/app/oracle/db_1/root.sh
#这样就安装完成了,点击关闭,结束安装
六、 配置监听器
#在终端中使用netca命令启动创建监听器
注:可以会出现netca命令打不开监听的情况使用命令
source /home/oracle/.bash_profile 即可
#选择监听器配置,点击下一步
#选择“增加”,并执行下一步
#输入监听的名称(默认就行),并点击下一步
#直接下一步
#使用默认的端口号:1521,直接下一步
#不需要配置其他监听器了,直接下一步
#监听配置完成,下一步
#点击“完成”,结束监听器的配置
七、 创建数据库实例
#在终端中使用dbca命令启动创建数据库实例
#点击“下一步”开始配置
#选择“创建数据库”,并点击下一步
#直接点击下一步
#(这个地方你可以查看一下你配置的环境变量/home/oracle/.bash_profile里面的ORACLE_SID)是多少填写实例名,这里需要与之前配置的环境变量中的保持一致,然后点击“下一步
#这个地方直接点击下一步
#接下来设置所有用户的密码,全部设置一样就行
#跟我说,密码太简单了,是否要继续,点击继续
#这两个地方直接选择下一步
#选择简单的文法,并下一步
#设置编码格式为GBK 16
#点击下一步
#选择“创建数据库”,并点击下一步
#再弹框里点ok
#然后就开始创建数据库实例了,这个过程需要等一会
#创建完成后弹了一个说明,直接退出即可
至此,安装步骤结束,接下来开始进行各种配置了
八、 启动数据实例
启动数据库实例,分为两步:第一步,启动监听;第二步,启动数据库实例。
注:使用oracle用户登录,避免出现不必要的错误
lsnrctl start #打开监听
sqlplus /nolog #进入到sqlplus
conn /as sysdba #连接到sysdba
startup #启动数据库实例
shutdown immediate #关闭数据库实例
exit #退出sqlplus
lsnrctl stop #关闭监听
还有一种方法,不需要登陆sqlplus都ok
先启动监听 lsnrctl start
后启动实例 dbstart
使用dbstart命令启动数据库比较方便,但是在linux上安装好oracle之后,第一次使用dbstart命令可能会报如下错误:
[oracle@localhost ~]$ dbstart
ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener
Usage: /u01/app/oracle/db_1/bin/dbstart ORACLE_HOME
错误原因
dbstart和dbshut脚本文件中ORACLE_HOME_LISTNER的设置有问题
解决方法(注意这两个文件的位置,在你安装的oracle子目录里面,我的是在/u01/app/oracle/db_1/bin下面)分别打开两个文件找到:ORACLE_HOME_LISTNER=$1,修改为ORACLE_HOME_LISTNER=$ORACLE_HOME,命令如下:
[oracle@oracle11g ~]$ vi $ORACLE_HOME/bin/dbstart
[oracle@oracle11g ~]$ vi $ORACLE_HOME/bin/dbshut
修改后保存退出,问题解决,此时再运行dbstart,已经不报错了,但是没有任何反应,ps一下进程,没有oracle的进程,说明oracle实例没有正常启动。
此时的原因是在/etc/oratab的设置问题,(注意这里的是在cd /下面的/etc/oratab里面设置)我们cat一下,发现
orcl:/u01/app/oracle/db_1:N
最后设置的是"N"(我的环境中只菜单有一个实例,因此只有一行配置语句),我们需要把“N”修改为“Y”。
九、 设置开机自启动
(root用户下)在/etc/rc.d/rc.local中加入如下语句即可实现同系统启动实例:
su - oracle -c "lsnrctl start"
su - oracle -c "dbstart"
十、 测试
1、重启机器,然后oracle是会自动启动的
2、输入:sqlplus /nolog 连上oralce
3、切换到 dba:conn /as sysdba
4、执行:select * from fbi;
5、如果报找不到表,则代表正常。(因为我们本来就没有这个表。)
当然也可以查看已存在的表比如:
select * from all_users;
查看用户表
测试成功