系统环境:
RHEL5.3 数据库:
Oracle Database10g Release2(10.2.0.1.0) for Linux x86 Oracle Database 10g Release 2 (10.2.0.1.0) 下载地址:
[root@rhel5 ~]# cksum /mnt/cdrom/10201_database_linux32.zip 2737423041 668734007 /mnt/cdrom/10201_database_linux32.zip
原来系统只分配了256MB内存,现在安装Oracle10g,所以将内存升级到1G
[root@rhel5 ~]# free -m total used free shared buffers cached
Mem: 1010 436 574 0 22 250
-/+ buffers/cache: 162 848
Swap: 509 0 509
[root@rhel5 ~]#
原来系统分区时Swap分区时只分配了512MB,我们再增加一个2G的Swap交换分区文件,不然安装Oracle10g时会报错误警告,虽然照样可以成功安装Oracle10g,但是为了充分发挥Oracle10g的性能,我们增加2G的Swap交换分区。
增加交换分区文件及大小,如果要增加2G大小的交换分区,则命令写法如下,其中的count 等于想要增加的swap块大小
[root@rhel5 ~]#
dd if=/dev/zero of=/tmpswap bs=1k count=2048000 2048000+0 records in
2048000+0 records out
2097152000 bytes (2.1 GB) copied, 169.875 seconds, 12.3 MB/s
[root@rhel5 ~]#
[root@rhel5 ~]#
mkswap /tmpswap Setting up swapspace version 1, size = 2097147 kB
[root@rhel5 ~]#
立即启用交换分区文件
[root@rhel5 ~]#
swapon tmpswap [root@rhel5 ~]#
free -m total used free shared buffers cached
Mem: 1010 997 13 0 3 823
-/+ buffers/cache: 171 839
Swap: 2509 0 2509
[root@rhel5 ~]#
如果要在引导时自动启用,则编辑 /etc/fstab 文件,添加行:
/tmpswap swap swap defaults 0 0 [root@rhel5 ~]#
swapon -s Filename Type Size Used Priority
/dev/sda3 partition 522104 124 -1
/tmpswap file 2047992 0 -2
[root@rhel5 ~]#
将RHEL5.3安装镜像文件挂载到/mnt/cdrom目录,虚拟成光驱。 [root@rhel5 ~]#
mount /dev/cdrom /mnt/cdrom/ mount: block device /dev/cdrom is write-protected, mounting read-only
[root@rhel5 ~]#
安装Oracle 10g R2数据库所需相依赖的软件包。 # cd /mnt/cdrom/Server/
# rpm -Uvh setarch-2*
# rpm -Uvh make-3*
# rpm -Uvh glibc-2*
# rpm -Uvh libaio-0*
# rpm -Uvh compat-libstdc++-33-3*
# rpm -Uvh compat-gcc-34-3* # rpm -Uvh compat-gcc-34-c++-3* # rpm -Uvh gcc-4*
# rpm -Uvh libXp-1* # rpm -Uvh openmotif-2* # rpm -Uvh compat-db-4* 在RHEL5.3系统安装时已经安装了编程工具及开发库文件,所以只安装了五个软件包,所以参考缺什么就安装相应软件包哈~
如果不安装libXp软件包则安装不能启动Oracle10g安装程序
修改/etc/redhat-release文件,因为Oracle数据库暂不支持RHEL5,所以我们增加redhat-4让Oracle认为系统为RHEL4:
[root@rhel5 ~]#
vim /etc/redhat-release #Red Hat Enterprise Linux Server release 5.3 (Tikanga) redhat-4 Oracle数据库必须在Oracle用户下才能安装。所以建立相应的用户及群组,以及设置相应的目录属主、目录权限。切记,要给Oracle用户设置密码哦,同时,密码要符合复杂性要求。
[root@rhel5 ~]# groupadd oinstall [root@rhel5 ~]# groupadd dba [root@rhel5 ~]# useradd -g oinstall -G dba oracle [root@rhel5 ~]# passwd oracle Changing password for user oracle.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[root@rhel5 ~]# mkdir -p /oracle/product/10.2.0/db_1 [root@rhel5 ~]# chown -R oracle.oinstall /oracle/ [root@rhel5 ~]# chmod -R 775 /oracle/ [root@rhel5 ~]#
如果没有相应的参数就添加,如果相应参数值比下面给出的值大,就不要修改了。
[root@rhel5 ~]#
vim /etc/sysctl.conf # For Oracle 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 设置Oracle用户Shell limit [root@rhel5 ~]#
vim /etc/security/limits.conf # For Oracle oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 在/etc/pam.d/login file文件末端添加相关内容,如果它已经存在则退出 [root@rhel5 ~]#
vim /etc/pam.d/login session required /lib/security/pam_limits.so 修改/etc/hosts文件,将127.0.0.1修改成为你的实际IP地址,否则有可能导致安装Oracle的时候检查网络配置异常 # Do not remove the following line, or various programs
# that require network functionality will fail.
#127.0.0.1 rhel5.3 rhel5 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
192.168.8.1 rhel5.3 rhel5 localhost.localdomain localhost 修改Oracle用户语言环境,注销掉root用户,以oracle用户登录系统 [root@rhel5 ~]# su - oracle [oracle@rhel5 ~]$ touch .i18n LC_CTYPE="en" 配置Oracle用户语言环境。因为,默认的中文环境,安装Oracle界面字符显示乱码,故,我将语言环境设置为英文,即可解决乱码问题,不过安装界面为全英文界面。
配置Oracle用户环境变量,以便支持Oracle数据库安装以及今后的操作、维护 [oracle@rhel5 ~]$
vim .bash_profile # For Oracle TMP=/tmp; export TMP TMPDIR=$TMP; export TMPDIR ORACLE_BASE=/oracle; export ORACLE_BASE ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1; export ORACLE_HOME ORACLE_SID=MIS; 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 安装Oracle 10g数据库 1、启动安装,首先运行xhost hostname命令启动X-Windows安装界面,如下图所示:
[root@rhel5 ~]#
xhost rhel5.3 [oracle@rhel5 ~]$
unzip 10201_database_linux32.zip [oracle@rhel5 ~]$
cd database/ [oracle@rhel5 database]$
./runInstaller 2、选择安装类别,建议选择高级安装,如下图所示:
3、指定Oracle证书存放目录,如下图所示:
4、选择安装类别(企业版)、Oracle所支持的语言(英文以及简体中文),如下图所示:
5、指定Oracle环境变量名、安装路径(.bash_profile环境变量中有指定),如下图示:
6、Oracle开始进行安装前时检查所需软件包、内核、网络等信息,如下图所示:
7、选择配置选项,如下图所示:
8、选择创建数据库模式,如下图所示:
9、指定数据库配置的相关选项(SID、字符集等),如下图所示:
10、选择数据库管理选项,如下图所示:
11、指定数据库存储选项,如下图所示:
12、指定数据库备份恢复选项,如下图所示:
13、指定数据库相关用户密码,如下图所示:
14、Oracle数据库安装摘要,如下图所示:
15、开始安装,安装程序开始复制文件,所需的时间较长,请耐心等待,下列图片所示:
16、安装完成的最后步骤,操作以及图片如下:
[oracle@rhel5 ~]$
su - root Password:
[root@rhel5 ~]#
/oracle/oraInventory/orainstRoot.sh Changing permissions of /oracle/oraInventory to 770.
Changing groupname of /oracle/oraInventory to oinstall.
The execution of the script is complete
[root@rhel5 ~]#
/oracle/product/10.2.0/db_1/root.sh Running Oracle10 root.sh script...
The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /oracle/product/10.2.0/db_1
Enter the full pathname of the local bin directory: [/usr/local/bin]:
Copying dbhome to /usr/local/bin ...
Copying oraenv to /usr/local/bin ...
Copying coraenv to /usr/local/bin ...
Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
[root@rhel5 ~]#
17、Oracle 10数据库通过url操作、管理地址如下:
iSQL*Plus URL:
Enterprise Manager 10g Database Control URL:
18、安装完成后,恢复Oracle用户语言环境以及/etc/redhat-release文件。
[oracle@rhel5 ~]$ rm -f .i18n
[root@rhel5 ~]#
vim /etc/redhat-release Red Hat Enterprise Linux Server release 5.3 (Tikanga) 一般用户登陆iSQL*Plus网址后会直接进入数据库用户登陆界面,使用数据库中的普通用户即可登陆。
我们可以在此输入SQL语句,我们先简单查询一下数据库的版本
Select version FROM Product_component_version Where SUBSTR(PRODUCT,1,6)='Oracle'; DBA用户登陆isqlpus的网址 ,进入该网址后首先会弹出一个登陆框,要求先输入iSQL*Plus DBA的用户和密码,注意这里不是数据库用户,而是isqlplus应用服务器要求的用户和密码。
要以DBA身份登陆isqlplus,必须先配置好oc4j用户。oc4j可以使用两种身份认证方式:
- 基于xml配置文件(jazn-data.xml)
- 基于LDAP(Oracle Internet Directory)
本文只涉及第一种方式,也就是采用xml配置文件认证的方式。该配置文件位于$ORACLE_HOME/oc4j/j2ee/isqlplus/application-deployments/isqlplus/config。
但是该配置文件中的密码是加密过的,所以我们不能手动修改该文件,而是通过JAZN(Java AuthoriZatioN)来配置。JAZN是oracle提供的一个JASS(Java Authentication and Authorization Service)工具。
JAVA_HOME=/usr/jdk1.5 export JAVA_HOME JRE=$JAVA_HOME/jre export JRE PATH=$JAVA_HOME/bin:$JRE/bin:$PATH 我们先安装oc4j,首先解压oc4j_extended.zip
此时会创建这样的目录结构:
/bin /diagnostics /j2ee /javacache /javavm /jdbc /jlib /lib /rdbms /soap /sqlj /webservices 这些就是你解压缩oc4j_extended.zip后所产生的目录。
- Create users
- List users
- Grant the webDba role
- Remove users
- Revoke the webDba role
- Change user passwords
以上任务,可以先进入JAZN命令环境后再执行,也可以直接通过一条完整的命令行实现。完整的命令行其实就是在进入JAZN的命令后面直接加上对应的任务选项即可。
1.进入到目录$ORACLE_HOME/oc4j/j2ee/isqlplus/application-deployments/isqlplus/
2.确保JAVA_HOME环境变量指向了正确的jdk(需要1.4以上)路径,可以使用oracle自带的jdk,位于$ORACLE_HOME/jdk
3.执行以下命令
java -Djava.security.properties=$ORACLE_HOME/sqlplus/admin/iplus/provider -jar $ORACLE_HOME/oc4j/j2ee/home/jazn.jar -user "iSQL*Plus DBA/admin" -password welcome -shell 其中realm=iSQL*Plus DBA,user=admin,这些可以从xml配置文件中看到,admin的默认密码是welcome,但是admin用户默认没有webDba权限,不能直接用于登陆isqlplus。
注意该命令一定要先进入第一步的目录后再执行,否则会报错 oracle.security.jazn.JAZNRuntimeException: Configuration file "configjazn.xml" does not exist. Check your JAAS configuration settings. 或者
Realm [iSQL*Plus DBA] does not exist in system. 如果报以上的错误,请仔细检查你的当前目录是否和第一步中给出的目录
完全一致。
1.新建用户michael,密码redking
JAZN:>
adduser "iSQL*Plus DBA" michael redking 2.列出用户
JAZN:>
listusers iSQL*Plus DBA/admin
iSQL*Plus DBA/michael
JAZN:>
listusers "iSQL*Plus DBA" admin
michael
3.授予用户登陆isqlplus DBA的权限
JAZN:>
grantrole webDba "iSQL*Plus DBA" michael 4.撤销用户登陆isqlplus DBA的权限
JAZN:>
revokerole webDba "iSQL*Plus DBA" michael 5.删除用户
JAZN:>
remuser "iSQL*Plus DBA" michael 6.修改用户密码
JAZN:>
setpasswd "iSQL*Plus DBA" michael redking newpass2009 假设上面我们创建了一个用户michael,密码为redking,并且已经授予webDba权限。
接下来重新启动isqlplus应用服务器
isqlplusctl stop isqlplusctl start 再进入网址 ,在弹出的对话框中输入michael和redking,就可以进入到数据库登陆界面了,选择以sysdba或sysoper身份登陆了。
Select Created, Log_Mode, Log_Mode From V$Database; Enterprise Manager 10g Database Control URL:
启动监听器:
[oracle@rhel5 ~]$
lsnrctl start 我们也可以使用
lsnrctl service查询当前监听器服务情况,当然如果想中止监听器则
lsnrctl stop 判断监听器服务是否好用,可以使用tnsping ip地址或主机名.如果不能正常结束,则说明监听有问题.
[oracle@rhel5 ~]$
sqlplus "/ as sysdba" 用户名是sys,密码是你设置sys用户的密码,这种登陆方式启用的是系统验证方式,因此不用输入用户名及密码,不过登陆是以sys用户登录的,我们可以用select user from dual; 查看登陆帐户为sys用户。
Linux中在Oracle安装完毕以后,如果重新启动Linux ,Oracle是不会自动启动的,我们可以通过手动调用dbstart命令来进行启动,不过这样似乎也很繁琐。我们可以通过配置Oracle的自动启动脚本,然后利用Linux的Service来启动Oracle服务器。
修改Oracle系统配置文件/etc/oratab
/etc/oratab格式为:SID:ORACLE_HOME:AUTO把AUTO域设置为Y(大写),只有这样,oracle 自带的dbstart和dbshut才能够发挥作用。当然也可以不用oracle的脚本,但是那样太麻烦了。
[root@rhel5 ~]#
vim /etc/oratab MIS:/oracle/product/10.2.0/db_1:Y [root@rhel5 ~]# cd /etc/rc.d/init.d/ [root@rhel5 init.d]# touch oracle10g [root@rhel5 init.d]# chmod a+x oracle10g [root@rhel5 init.d]# vim oracle10g oracle10g的文件内容如下,请根据需要修改其中变量值:
#!/bin/bash # chkconfig: 345 99 10 # description: Startup Script for Oracle Databases # /etc/rc.d/init.d/oracle10g export ORACLE_BASE=/oracle export ORACLE_HOME=/oracle/product/10.2.0/db_1 export ORACLE_SID=MIS export PATH=$PATH:$ORACLE_HOME/bin ORA_OWNR="oracle" # if the executables do not exist -- display error if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ] then echo "Oracle startup: can not start" exit 1 fi # depending on parameter -- startup,shutdown,restart # of the instance and listener or usage display case "$1" in 'start') # Oracle listener and instance startup echo -n "Starting oracle10g: " su - $ORA_OWNR -c "$ORACLE_HOME/bin/dbstart" touch /var/lock/subsys/oracle10g su - $ORA_OWNR -c "$ORACLE_HOME/bin/emctl start dbconsole" su - $ORA_OWNR -c "$ORACLE_HOME/bin/isqlplusctl start" su - $ORA_OWNR -c "$ORACLE_HOME/bin/lsnrctl start" echo "OK" ;; 'stop') # Oracle listener and instance shutdown echo -n "shutting down oracle10g: " su - $ORA_OWNR -c "$ORACLE_HOME/bin/emctl stop dbconsole" su - $ORA_OWNR -c "$ORACLE_HOME/bin/isqlplusctl stop" su - $ORA_OWNR -c "$ORACLE_HOME/bin/dbshut" su - $ORA_OWNR -c "$ORACLE_HOME/bin/lsnrctl stop" rm -f /var/lock/subsys/oracle10g echo "OK" ;; 'reload|restart') $0 stop $0 start ;; *) echo "Usage:'basename $0' start|stop|restart|reload" exit 1 esac exit 0 [root@rhel5 init.d]# chkconfig --add oracle10g [root@rhel5 init.d]# chkconfig --list oracle10g OK,开启Oracle DBA之路,现在甲骨文越来越牛了,上月刚刚74亿美元收购Sun,郁闷的SUN~~~
######################Michael分割线#########################
本文转自redking51CTO博客,原文链接:http://blog.51cto.com/redking/157668,如需转载请自行联系原作者