Red_Hat_Linux5.3下安装oracle10g详解
第一章Oracle 10g的安装... 5
1.1检查硬件环境... 5
1.1.1硬件要求... 5
1.1.2检查内存... 5
1.1.3检查交换分区... 5
1.1.4检查/tmp临时文件夹空闲空间... 5
1.1.5检查磁盘空闲空间大小... 6
1.2检查软件环境... 6
1.2.1软件环境要求... 6
1.2.2检查操作系统型号... 6
1.2.3检查内核型号... 6
1.2.4安装必须的软件包... 7
1.2.5检查安装Oracle10g必须的操作系统安装包是否安装成功... 7
1.3修改Linux和oracle10g的系统兼容性... 7
1.4修改Linux内核参数... 8
1.5运行以下命令,内核参数生效... 9
1.6创建安装oracle需要的用户和组... 9
1.6.1创建oinstall组... 9
1.6.2创建dba组... 9
1.6.3创建用户名为oracle的用户并将其指派到相应的组... 9
1.6.4设定oracle的密码... 10
1.6.5检查确认用户... 10
1.7创建oracle安装目录并修改目录属性... 10
1.7.1创建oracle安装目录... 10
1.7.2分配组... 10
1.7.3为oracle用户授权... 10
1.8设置oracle用户的shelllimit. 10
1.8.1修改/etc/security/limits.conf文件... 10
1.8.2增加下面的内容到文件/etc/pam.d/login 中,使shell limit生效... 11
1.9修改host文件及oracle用户环境变量... 12
1.9.1修改/etc/hosts. 12
1.9.2重启网络... 12
1.9.3查看主机名称... 13
1.9.4修改/etc/sysconfig/network文件... 13
1.9.5修改SELINUX的配置文件... 13
1.9.6配置oracle用户环境变量... 14
1.10开始安装oracle. 15
1.10.1设置运行语言... 15
1.10.2解压安装包... 15
1.10.3进入解压目录,安装oracle. 15
1.10.4指定产品清单目录和身份证明... 16
1.10.5产品特定的先决条件检查,点选用户已验证然后点击“Next”。... 17
1.10.6安装,点击“install”. 17
1.10.7安装进程... 18
1.10.8执行配置脚本... 18
1.10.9安装完毕退出,点击“Exit”弹出警告对话框... 20
1.10.10点击“Yes”,完成... 21
第二章配置监听及建库... 22
2.1配置监听器... 22
2.1.1在终端输入如下命令调用网络配置助手... 22
2.1.2添加监听程序... 23
2.1.3为监听起名... 23
2.1.4选择协议TCP. 24
2.1.5配置端口,默认1521. 24
2.1.6是否配置另一个监听,如果不配置选择No. 25
2.1.7完成监听配置,点击Next. 25
2.1.8点击“Finish”. 26
2.2创建数据库... 27
2.2.1使用dbca命令调用oracle数据库配置助手进行图形建库... 27
2.2.2创建数据库... 27
2.2.3选择模版为“GeneralPurpose”创建数据库... 28
2.2.4为数据库实例起名... 28
2.2.5选择使用默认管理器管理数据库... 29
2.2.6设置数据库密码... 29
2.2.7选择数据库存储机制... 30
2.2.8指定数据库创建位置... 30
2.2.9指定恢复区位置及大小... 31
2.2.10是否添加实例方案... 31
2.2.11设置oracle相关参数,Memory选项... 32
2.2.12 Sizing选项... 32
2.2.13 Character Sets选项... 33
2.2.14 Connection Mode选项... 33
2.2.15数据库的存储配置... 34
2.2.16选择创建数据库选项,如保存模板和脚本可进行点选... 34
2.2.17点击OK开始创建... 35
2.2.18口令管理... 36
第三章配置oracle. 37
3.1启动监听器... 37
3.2使用OracleEnterprise Manager 10g进行数据库控制... 37
3.3使用iSQL*Plus访问数据库... 38
3.4 RHEL5.3下oracle 10g开机自动启动... 39
3.4.1使用root用户修改/etc/oratab文件:... 39
3.4.2使用ORACLE用户修改$ORACLE_HOME/bin/dbstart文件... 40
3.4.3执行相应的脚本进行测试... 41
3.4.4创建添加自动启动执行脚本... 43
3.4.5检查... 45
第四章 Oracle 10创建用户和授权... 46
4.1linux下oracle的启动... 46
4.1.1启动监听... 46
4.1.2登录SQL. 46
4.1.3连接数据库... 46
4.1.4启动数据库... 46
4.2在数据中创建用户名... 47
4.2.1连接超级用户... 47
4.2.2创建用户名字... 47
4.2.3添加用户的权限... 47
4.2.4向用户授予系统特权... 47
4.2.5查看用户权限... 47
4.2.6撤销用户授予的权限... 47
4.2.7更改用户密码... 48
4.2.8删除用户... 48
4.2.9为用户授予角色... 48
内存 |
至少512M |
交换分区 |
至少1G |
/tmp |
至少400M |
磁盘空闲空间 |
至少4G |
#grepMemTotal /proc/meminfo
# grepSwapTotal /proc/meminfo
#df �Ch/tmp
#df �Ch
操作系统:Red HatEnterprise Linux Server release 5.3 (Tikanga)
内核:至少2.4.21-27.EL内核
软件包:
※setarch-2.0-1.1
※make-3.81-3.el5
※glibc-2.5-34
※libaio-0.3.106-3.2
※compat-libstdc++-33-3.2.3-61
※compat-gcc-34-3.4.6-4
※compat-gcc-34-c++-3.4.6-4
※gcc-4.1.2-44.el5
※libgcc-4.1.2-44.el5
※libXp-1.0.0-8.1.el5
※openmotif-2.3.1-2.el5
※compat-db-4.2.52-5.1
#cat/etc/issue
#uname �Cr
这些必须的软件包可以从RHEL5.3系统盘里面找到。确保cdrom里面有RHEL5.3的系统盘,然后使用命令:
[root@localhost~]#mkdir/mnt/cdrom //创建一个文夹
[root@localhost~]#mount /dev/cdrom /mnt/cdrom //将光驱的内容挂载到/mnt/cdrom路径下面。
进入到/mnt/cdrom/Server:
执行如下命令:
[root@localhost~]#cd /mnt/cdrom/Server
[root@ localhost Server]# rpm -ivh setarch-2*
[root@ localhost Server]# rpm -ivh make-3*
[root@ localhost Server]# rpm --force -ivhglibc-2*
[root@ localhost Server]# rpm -ivh libaio-0*
[root@ localhost Server]# rpm -ivh compat-libstdc++-33-3*
[root@ localhost Server]# rpm -ivhcompat-gcc-34-3*
[root@ localhost Server]# rpm -ivh compat-gcc-34-c++-3*
[root@ localhost Server]# rpm -ivh gcc-4*
[root@ localhost Server]# rpm -ivh libXp-1*
[root@ localhost Server]# rpm -ivh openmotif-2*
[root@ localhost Server]# rpm -ivhcompat-db-4*
[root@localhost~]#rpm �Cqa | grep setarch-2
[root@localhost~]#rpm �Cqa | grep make-3
[root@localhost~]#rpm �Cqa | grep glibc-2
[root@localhost~]#rpm �Cqa | grep libaio-0
[root@localhost~]#rpm �Cqa | grep compat-libstdc++33-3
[root@localhost~]#rpm �Cqa | grep compat-gcc-34-3
[root@localhost~]#rpm �Cqa | grep compat-gcc-34-c++-3
[root@localhost~]#rpm �Cqa | grep gcc-4
[root@localhost~]#rpm �Cqa | grep libXp-1
[root@localhost~]#rpm �Cqa | grep openmotif-2
[root@localhost~]#rpm �Cqa | grep compat-db-4
oracle 的官方只支持到Red Hat Release 4为止,所以要修改版本说明。
修改/etc/redhat-release文件,将
[root@localhost~]#vi /etc/redhat-release
Red HatEnterprise Linux Server release 5.3 (Tikanga)注释掉(前加”#”即可)。
然后添加一行:redhat-4
ZZ保存退出即可。
[root@localhost~]#vi /etc/sysctl.conf
添加下面内容:
kernel.shmall= 2097152
kernel.shmmax= 2147483648
kernel.shmmni= 4096
kernel.sem= 250 32000 100 128
fs.file-max= 65536
net.ipv4.ip_local_port_range= 1024 65000
net.core.rmem_default=262144
net.core.rmem_max=262144
net.core.wmem_default=262144
net.core.wmem_max=262144
ZZ保存退出。
[root@localhost~]#/sbin/sysctl -p
[root@localhost~]#groupadd oinstall
[root@localhost~]#groupadd dba
[root@localhost~]#useradd -g oinstall -G dba oracle
备注:如果oracle已经存在,但不是oinstall组,也非dba组成员,则修改用户属性:
[root@localhost~]#usermod�Cg oinstall �CG dba oracle
[root@localhost~]#passwd oracle
[root@localhost~]#idoracle
[root@localhost~]#mkdir -p /opt/app/oracle
注:-p 参数的意思是如果没有该目录则新建。
[root@localhost~]#chown -R oracle.oinstall /opt/app/oracle
[root@localhost~]#chmod -R 777 /opt
注:-R参数是应用到子文件夹,777参数是读,写,执行权限。
[root@localhost~]#vi /etc/security/limits.conf
oraclesoft nproc 2047
oraclehard nproc 16384
oraclesoft nofile 1024
oraclehard nofile 65536
ZZ保存退出
[root@localhost~]#vi/etc/pam.d/login
session required /lib/security/pam_limits.so
[root@localhost~]#vi/etc/hosts
修改Linux的IP地址,否则网络检查通不过
(格式:ip地址 �C 主机名 �C localhost)
192.168.5.240 hakim localhost
ZZ保存退出
[root@localhost~]#service network restart
[root@localhost~]#hostname
1.9.4修改/etc/sysconfig/network文件
[root@localhost~]#vi /etc/sysconfig/network
添加以下内容
NETWORKING=yes //系统是否使用网络服务功能
NETWORKING_IPV6=yes //是否支持IPV6网络
HOSTNAME=hakim //设置主机名
GATEWAY=192.168.5.1 //设置默认网关
FORWARD_IPV4=false //是否开启IPV4包转发
ZZ保存退出
因为SELINUX对 oracle 有影响,所以把 secure linux 设成无效,编辑文件 /etc/selinux/config :引用:SELINUX=disabled(如果在安装系统时把selinux禁用了,这里就不用再配置了)
[root@localhost~]# vi /etc/selinux/config
注销root用户,以oracle 用户身份登录,运行以下命令:
[oracle@hakim~]$vi /home/oracle/.bash_profile
添加如下内容:
# OracleSettings
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_BASE=/opt/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORACLE_TERM=xterm
export ORACLE_SID=HKDB
export PATH=$PATH:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
export CLASSPATH=$ORACLE_HOME/JREORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
if [ $USER= "oracle" ]; then
if [ $SHELL= "/bin/ksh" ]; then
ulimit -p16384
ulimit -n65536
else
ulimit -u16384 -n 65536
fi
fi
ZZ保存退出
安装须以X windows图形界面登录。以oracle用户登录。
注销root用户,以oracle用户登录。不能以root用户切换到oracle用户。
[oracle@hakim~]$exportLC_CTYPE=en_US.UTF-8 //如果这里不设置语言,安装oracle会出现乱码
将安装包10201_database_linux32.zip复制到opt文件夹中,然后解压
[oracle@hakimopt]$unzip 10201_database_linux32.zip
[oracle@hakimopt]$cd /database
[oracle@hakimdatabase]$./runInstaller
我们只安装oracle软件,不创建数据库,所以把“Create Starter Database(additional 720MB)”选项的勾去掉;UNX DBA Group(G)下拉选项,选择“dba”;oracle Home Location的安装路径是不是跟上面设置一样,如果不一样手动改一下,然后点击”Next”。
这里的产品清单目录是不是跟上面设置的一样,如里不一样,手动改一下。
打开终端窗口,切换root用户执行脚本:
$su �C root
#/opt/app/oracle/oralnventory/orainstRoot.sh
#/opt/app/oracle/product/10.2.0/db_1/root.sh
手动重启系统
[oracle@hakim~]$exportLC_CTYPE=en_US.UTF-8
[oracle@hakim~]$netca
弹出监听界面
监听界面
终端打印信息如下:
安装进程
不设置其他用户的口令可以点击Exit
到这里oracle已经安装完成,恢复语言环境以及版本信息
$ export LC_CTYPE=zh_CN.UTF-8
#vi/etc/redhat-release
Red HatEnterprise Linux Server release 5.3 (Tikanga)
监听器接受客户端的连接请求,并在验证证书后创建数据库连接。要使用OEM或iSQL*PLUS,必须先启动监听器。
[oracle@hakim~]$lsnrctlstart //启动
[oracle@hakim~]$lsnrctlstop //停止
启动和停止OEM的命令为:
[oracle@hakim~]$emctlstart dbconsole //启动
[oracle@hakim~]$emctlstop dbconsole //停止
在web浏览器中,输入:
http://192.168.5.240:1158/em
用户名:sys
口令:<安装过程中建立的口令>
连接为:SYSDBA
启动和停止iSQL*Plus命令:
[oracle@hakim~]$isqlplusctl start //启动
[oracle@hakim~]$isqlplusctl stop //停止
iSQL*Plus是历史悠久的SQL*Plus交互式工具的基于web的版本,用于访问数据库。要使用iSQL*Plus,请单击OEM控制台相关连接部分中的iSQL*Plus链接,或将浏览器指向安装过程中提供的iSQL*Plus URL。
在web浏览器中,输入:
http://192.168.5.240:5560/isqlplus
用户名:system
口令:<安装过程中创建的口令>
连接标识:HKDB <安装过程中创建的数据库名>
[oracle@hakim~]$ su �C root
[root@hakim~]# vi /etc/oratab
orcl:/oracle/app/product/10.2.0/db_1:N
改为:
orcl:/oracle/app/product/10.2.0/db_1:Y //也就是将最后的N改为Y
[root@hakim~]# su �C oracle
[oracle@hakim~]$ cd $ORACLE_HOME/bin
[oracle@hakim~]$ vi dbstart
找到ORACLE_HOME_LISTNER=…这行,修改成ORACLE_HOME_LISTNER=/opt/app/oracle/product/10.2.0/db_1 或者直接修改成: ORACLE_HOME_LISTNER=$ORACLE_HOME
[oracle@hakim~]$cd $ORACLE_HOME/bin
[oracle@hakimbin]$./dbstart (或./dbshut)
[oracle@hakimbin]$ ps - efw | grep ora
[oracle@hakimbin]$ lsnrctl status //查看监听状态
[oracle@hakimbin]$ ps -efw | grep LISTEN | grep -v grep
[oracle@hakimbin]$su - root
[root@hakim~]# cd /etc/rc.d/init.d/
[[email protected]]# vi oradbstart
添加如下自动启动执行脚本
#!/bin/bash
#chkconfig: 345 99 10
#description: Startup Script for oracle Databases
#/etc/rc.d/init.d/dbstart
export ORACLE_BASE=/opt/app/oracle/
exportORACLE_HOME=/opt/app/oracle/product/10.2.0/db_1
exportORACLE_SID=orcl
exportPATH=$PATH:$ORACLE_HOME/bin
ORA_OWNR="oracle"
# if theexecutables do not exist -- display error
if [ ! -f$ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
then
echo"Oracle startup: cannot start"
exit 1
fi
#depending on parameter -- startup, shutdown, restart
# of theinstance and listener or usage display
case"$1" in
start)
# Oraclelistener and instance startup
echo -n"Starting Oracle: "
su -$ORA_OWNR -c "$ORACLE_HOME/bin/dbstart"
touch/var/lock/oracle
su -$ORA_OWNR -c "$ORACLE_HOME/bin/emctl start dbconsole"
su -$ORA_OWNR -c "$ORACLE_HOME/bin/isqlplusctrl start"
echo"OK"
;;
stop)
# Oraclelistener and instance shutdown
echo -n"Shutdown Oracle: "
su -$ORA_OWNR -c "$ORACLE_HOME/bin/emctl stop dbconsole"
su -$ORA_OWNR -c "$ORACLE_HOME/bin/isqlplusctrl stop"
su -$ORA_OWNR -c "$ORACLE_HOME/bin/dbshut"
su -$ORA_OWNR -c "$ORACLE_HOME/bin/lsnrctl stop"
rm -f/var/lock/oracle
echo"OK"
;;
reload|restart)
$0 stop
$0 start
;;
*)
echo"Usage: `basename $0` start|stop|restart|reload"
exit 1
esac
exit 0
保存退出。
打开终端执行:
[oracle@hakim~]$ su - root
[root@hakim~]#chown oracle.oinstall /etc/rc.d/init.d/oradbstart
[root@hakim~]# chmod 775 /etc/rc.d/init.d/oradbstart
然后执行:
[root@hakim~]#chkconfig --add oradbstart
[root@hakim~]#chkconfig --list oradbstart
chkconfig--list oradbstart运行结果:
oradbstart0:关闭 1: 关闭2: 关闭3:启用 4: 启用5: 启用6: 关闭
根据上面的运行结果,当相应的运行级别为“启用”时(例如:5:启用),在对应的/etc/rc.d/rcN.d(例如:和5:“启用”对应的是:/etc/rc.d/rc5.d)下面会生成一个文件:S99oradbstart,使用vi S99oradbstart打开该文件,可以看到该文件的内容和/etc/rc.d/init.d/oradbstart内容相同,表示配置成功,其实,S99oradbstart是一个到/etc/rc.d/init.d/oradbstart的链接,我们可以使用file命令来查看:
[root@hakim~]#su - oracle
[oracle@hakim~]$file /etc/rc.d/rc5.d/S99oradbstart
S99oradbstart:symboliclink to '../init.d/oradbstart
到这里整个配置已经完成,重启系统后,在web浏览器中输入:
http://192.168.5.240:1158/em
http://192.168.5.240:5560/isqlplus
看下能不能登录进去,如果成功登录,说明oracle 10g的监听自动开启了。
以oracle身份登录
[oracle@hakim~]$ lsnrctl start
[oracle@hakim~]$sqlplus /nolog
SQL>connect /as sysdba
SQL>startup
SQL>connectsystem/hkgqdb //system 系统用户名字; hkgqdb密码
SQL> create user hk01 identified by hkgqdb // 用户名:hk01 ;密码 : hkgqdb
SQL>Grantcreate session to hk01; // 授予 hk01 连接数据的权限,分号“;”表示结束语句
系统权限如下:
系统特权 |
允许执行的操作 |
Create session |
连接数据库 |
Create sequence |
创建序列 |
Create synonym |
创建同名对象 |
Create table |
创建表 |
Create any table |
创建任何模式的表 |
Create procedure |
创建存储过程 |
Create user |
创建用户 |
Create view |
创建视图 |
Drop table |
删除表 |
Drop user |
删除用户 |
Drop any table |
删除任何模式的表 |
Execute any procedure |
执行任何模式的存储过程 |
SQL>Grant execute any procedure to hk01 with admin option
此句意思为hk01用户创建系统特权并且可以用hk01为别的用户授予权限
连接hk01用户
SQL>connecthk01/hkgqdb
进入 hk01 用户
SQL>connecthk01/ hkgqdb
查看到一个列表
Select * from user_sys_privs;
连接hk01用户
SQL>connecthk01/hkgqdb
撤销权限
SQL>Revokeexecute any procedure from hk01;
连接hk01用户
SQL>connecthk01/hkgqdb
更改用户密码
SQL>Password //输入旧密码输入新密码俩边 OK
连接hk01用户
SQL>connecthk01/hkgqdb
删除用户
SQL>Dropuser hk01 ;
SQL>Grantdba to hk01;
SQL>Grantconnect to hk01;