环境:
1:安装Oracle 前的配置
1.1:安装所需软件包
1.1.1:分配光驱
设备-‘分配光驱’-REDHAT5的ISO文件,
1.1.2:挂载
挂载光驱:
[root@localhost media]# cd /mnt
[root@localhost mnt]# mkdir dandan
[root@localhost mnt]# mount -t auto -o ro /dev/cdrom /mnt/dandan
--注意:如果是真机,不是虚拟机的话,可以在服务器上插入U盘,然后mount挂载到指定目录,然后安装所需软件。如mount /dev/sdb4 /mnt/dandan
1.1.3:安装
cd /mnt/dandan/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*
如下:
1.2:修改系统版本
因为oracle 的官方只支持到RHEL4为止,所以要修改版本说明,把Red Hat Enterprise Linux Server release 5 (Tikanga) 注释掉,前面加上一行redhat-4,当然oracle安装完成后,要修改回来。redhat-4 必须为redhat-release文件的第一行,否则安装时还会报警告。
vi /etc/redhat-release
redhat-4
#Red Hat Enterprise Linux Server release 5 (Tikanga)
1.3:修改内核参数
1.3.1 vi /etc/sysctl.conf
在行末添加以下内容:
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
# semaphores: semmsl, semmns, semopm, semmni
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
1.3.2 运行sysctl -p应用以上参数
/sbin/sysctl -p
1.4:建用户,组,目录
--建立安装Oracle需要的用户,组,及目录
--建用户,组
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
passwd oracle
--密码oracle
--创建Oracle的安装目录,并把权限付给oracle用户:
mkdir -p /u01/app/oracle/product/10.2.0/db_1
chown -R oracle:oinstall /u01
1.5:修改内核配置文件
vi /etc/security/limits.conf,行末添加以下内容
* soft nproc 2047
* hard nproc 16384
* soft nofile 1024
* hard nofile 65536
1.6:配置用户登录配置文件
vi /etc/pam.d/login 行末添加以下内容
session required pam_limits.so
1.7:配置静态IP地址
安装RHEL的时候最好采用静态IP地址,如果当时选择的是DHCP,现在需要更改/etc/sysconfig/network-scripts/ifcfg-eth0文件.
文件原本是这样的格式:
将BOOTPROTO=dhcp改成BOOTPROTO=static
增加三行:
IPADDR=192.168.1.8 #你的IP地址
GATEWAY=192.168.1.1 #你的网关
NETMASK=255.255.255.0
重启网络服务:
[root@localhost dev]# service network restart
正在关闭接口 eth0: [确定]
关闭环回接口: [确定]
弹出环回接口: [确定]
弹出界面 eth0: [确定]
1.8:修改主机名
这里以修改为PC为例.
1.8.1 修改/etc/sysconfig/network
将HOSTNAME那里改下即可。
修改后的主机名如下:
1.8.2 修改/etc/hosts
修改前的文件如下:
把127.0.0.1那一行改为:127.0.0.1 localhost
再添加一行ip地址 你的主机名
1.9:关闭selinux
vi /etc/selinux/config,添加如下内容:
SELINUX=disabled
1.10:修改oracle用户配置文件
su - oracle
vi .bash_profile
添加:
# Oracle Settings
COLUMNS=132; export COLUMNS
LINES=47; export LINES
EDITOR=vi; export EDITOR
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1; export ORACLE_HOME
ORACLE_SID=orcl; export ORACLE_SID
SHLIB_PATH=$LD_LIBRARY_PATH;export SHLIB_PATH
NLS_LANG=American_America.zhs16gbk;export NLS_LANG
ORA_NLS10=$ORACLE_HOME/nls/data;export ORA_NLS10
TNS_ADMIN=$ORACLE_HOME/network/admin;export TNS_ADMIN
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
alias glance=/opt/perf/bin/glance:x
alias gohome='cd /u01/app/oracle/product/10.2.0'
alias cdb='cd /u01/app/oracle/admin/orcl/bdump'
alias cdu='cd /u01/app/oracle/admin/orcl/udump'
--里面的内容可以根据实际情况进行改动,如可以改动ORACLE_SID.
-- 修改完用:source .bash_profile生效。
1.11:修改开机使用文本模式登录
如果没有下面这些步骤,oracle在安装时,可能出现问题(可能使用oracle用户启动安装界面的时候报错,无法启动图形化界面。)
su - root
#vi /etc/inittab
把 id:5:initdefault: 修改为 id:3:initdefault,等oracle安装完成后,可以修改回来
1.12:关闭linux
#shutdown -h now
1.13:删除盘片
右击镜像,点击‘删除盘片’
(否则,下次启动该虚拟机,会是安装虚拟机界面):
--这个步骤对应的是1.1.1 分配光驱
1.14:添加oracle用户可以使用图形化界面
启动虚拟机,用root登陆,
输入:startx
--进入图形用户界面后,输入:
xhost +
su – oracle
export DISPLAY=192.168.1.8:0.0--设置你linux机器的IP
export LANG=en_US --设置语言
2:安装oracle 10.2.0.1.0
su - oracle
cd /download/database_10g_64
./runInstaller --执行安装文件,进行安装
--注意必须是在虚拟里执行该命令,在CRT里出现不了图形用户界面
如果此时报错:
检查操作系统版本: 必须是redhat-3, SuSE-9, SuSE-10, redhat-4, redhat-5, redhat-6, UnitedLinux-1.0, asianux-1, asianux-2, asianux-3, enterprise-4, enterprise-5 or SuSE-11
未通过 <<<<
正在退出 Oracle Universal Installer。您可以在 /tmp/OraInstall2015-04-02_04-32-39PM/installActions2015-04-02_04-32-39PM.log 中找到本次会话的日志
解决方法:将 /etc/redhat-release的内容 redhat-4改成 Red Hat Enterprise Linux Server release 4 (Tikanga) 。
--手工执行俩脚本:
[root@pc ~]# sh /u01/app/oracle/oraInventory/orainstRoot.sh
Changing permissions of /u01/app/oracle/oraInventory to 770.
Changing groupname of /u01/app/oracle/oraInventory to oinstall.
The execution of the script is complete
[root@pc ~]# sh /u01/app/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= /u01/app/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.
--中间停顿的时候,按回车键往下进行(如黄色阴影处)。
点击‘OK’键,
点击’Exit’退出即可。
装好之后,登陆数据库,随便写个查询,验证是否安装成功。
3:安装oracle 10.2.0.5.0
--重新调整内核参数以适应10.2.0.5
vi /etc/sysctl.conf 增加以下内容
fs.file-max = 101365 net.core.rmem_default = 1048576 net.core.rmem_max = 1048576 net.ipv4.ip_local_port_range = 1024 65000 |
[root@pc ~]# /sbin/sysctl –p
--关闭监听
[oracle@pc ~]$ lsnrctl stop
LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 03-APR-2015 14:49:15
Copyright (c) 1991, 2005, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
The command completed successfully
重新retry,又报这个错误:
--关库
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
--手工执行下面这个脚本:
[root@pc db_1]# sh /u01/app/oracle/product/10.2.0/db_1/root.sh
Running Oracle 10g root.sh script...
The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /u01/app/oracle/product/10.2.0/db_1
Enter the full pathname of the local bin directory: [/usr/local/bin]:
The file "dbhome" already exists in /usr/local/bin. Overwrite it? (y/n)
[n]:
The file "oraenv" already exists in /usr/local/bin. Overwrite it? (y/n)
[n]:
The file "coraenv" already exists in /usr/local/bin. Overwrite it? (y/n)
[n]:
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.
4:打EM补丁p8350262_10205_Generic
以后升级到10204或10205版本,如果要使用em,补丁8350262成为了必打之补丁。
--解压
[root@pc download]# unzip p8350262_10205_Generic.zip
Archive: p8350262_10205_Generic.zip
creating: 8350262/
inflating: 8350262/killDBConsole
creating: 8350262/files/
creating: 8350262/files/sysman/
creating: 8350262/files/sysman/jlib/
creating: 8350262/files/sysman/jlib/emCORE.jar/
creating: 8350262/files/sysman/jlib/emCORE.jar/oracle/
creating: 8350262/files/sysman/jlib/emCORE.jar/oracle/sysman/
creating: 8350262/files/sysman/jlib/emCORE.jar/oracle/sysman/eml/
creating: 8350262/files/sysman/jlib/emCORE.jar/oracle/sysman/eml/sec/
creating: 8350262/files/sysman/jlib/emCORE.jar/oracle/sysman/eml/sec/fsc/
inflating: 8350262/files/sysman/jlib/emCORE.jar/oracle/sysman/eml/sec/fsc/FSWalletUtil.class
creating: 8350262/files/sysman/jlib/emCORE.jar/oracle/sysman/eml/sec/util/
inflating: 8350262/files/sysman/jlib/emCORE.jar/oracle/sysman/eml/sec/util/RootCert.class
inflating: 8350262/files/sysman/jlib/emCORE.jar/oracle/sysman/eml/sec/util/SecConstants.class
creating: 8350262/files/sysman/jlib/emCORE.jar/oracle/sysman/eml/sec/rep/
inflating: 8350262/files/sysman/jlib/emCORE.jar/oracle/sysman/eml/sec/rep/RepWalletUtil.class
creating: 8350262/files/sysman/jlib/emd_java.jar/
creating: 8350262/files/sysman/jlib/emd_java.jar/oracle/
creating: 8350262/files/sysman/jlib/emd_java.jar/oracle/sysman/
creating: 8350262/files/sysman/jlib/emd_java.jar/oracle/sysman/eml/
creating: 8350262/files/sysman/jlib/emd_java.jar/oracle/sysman/eml/sec/
creating: 8350262/files/sysman/jlib/emd_java.jar/oracle/sysman/eml/sec/fsc/
inflating: 8350262/files/sysman/jlib/emd_java.jar/oracle/sysman/eml/sec/fsc/FSWalletUtil.class
creating: 8350262/files/sysman/jlib/emd_java.jar/oracle/sysman/eml/sec/util/
inflating: 8350262/files/sysman/jlib/emd_java.jar/oracle/sysman/eml/sec/util/RootCert.class
inflating: 8350262/files/sysman/jlib/emd_java.jar/oracle/sysman/eml/sec/util/SecConstants.class
creating: 8350262/files/sysman/jlib/emd_java.jar/oracle/sysman/eml/sec/rep/
inflating: 8350262/files/sysman/jlib/emd_java.jar/oracle/sysman/eml/sec/rep/RepWalletUtil.class
inflating: 8350262/killDBConsole.pl
inflating: 8350262/README.txt
creating: 8350262/etc/
creating: 8350262/etc/xml/
inflating: 8350262/etc/xml/ShiphomeDirectoryStructure.xml
inflating: 8350262/etc/xml/GenericActions.xml
creating: 8350262/etc/config/
inflating: 8350262/etc/config/inventory
inflating: 8350262/etc/config/actions
inflating: ¢¦¦¦Ώʬ-→¸.txt
--用oracle用户在解压后的文件路径下执行命令
[root@pc 8350262]# su - oracle
[oracle@pc ~]$ cd /download/8350262/
[oracle@pc 8350262]$ /u01/app/oracle/product/10.2.0/db_1/OPatch/opatch apply
Invoking OPatch 10.2.0.4.9
Oracle 中间补丁程序安装程序版本 10.2.0.4.9
版权所有 (c) 2009, Oracle Corporation。保留所有权利。
Oracle 主目录 : /u01/app/oracle/product/10.2.0/db_1
主产品清单: /u01/app/oracle/oraInventory
从 : /etc/oraInst.loc
OPatch 版本 : 10.2.0.4.9
OUI 版本 : 10.2.0.5.0
OUI 位置 : /u01/app/oracle/product/10.2.0/db_1/oui
日志文件位置 : /u01/app/oracle/product/10.2.0/db_1/cfgtoollogs/opatch/opatch2015-04-03_15-33-26下午.log
Patch history file: /u01/app/oracle/product/10.2.0/db_1/cfgtoollogs/opatch/opatch_history.txt
ApplySession 将中间补丁程序 '8350262' 应用到 OH '/u01/app/oracle/product/10.2.0/db_1'
Running prerequisite checks...
OPatch 从产品清单中检测到非集群 Oracle 主目录, 将仅对本地系统打补丁。
为 Oracle 主目录备份文件和产品清单 (不是用于自动回退)
正在备份受补丁程序 '8350262' 影响的文件以用于还原。此操作将需要一些时间...
正在备份受补丁程序 '8350262' 影响的文件以用于回退。此操作将需要一些时间...
正在为组件 oracle.sysman.agent.core, 10.2.0.5.0a 打补丁...
用 "/sysman/jlib/emCORE.jar/oracle/sysman/eml/sec/fsc/FSWalletUtil.class" 更新 jar 文件 "/u01/app/oracle/product/10.2.0/db_1/sysman/jlib/emCORE.jar"
用 "/sysman/jlib/emCORE.jar/oracle/sysman/eml/sec/rep/RepWalletUtil.class" 更新 jar 文件 "/u01/app/oracle/product/10.2.0/db_1/sysman/jlib/emCORE.jar"
用 "/sysman/jlib/emCORE.jar/oracle/sysman/eml/sec/util/RootCert.class" 更新 jar 文件 "/u01/app/oracle/product/10.2.0/db_1/sysman/jlib/emCORE.jar"
用 "/sysman/jlib/emCORE.jar/oracle/sysman/eml/sec/util/SecConstants.class" 更新 jar 文件 "/u01/app/oracle/product/10.2.0/db_1/sysman/jlib/emCORE.jar"
用 "/sysman/jlib/emd_java.jar/oracle/sysman/eml/sec/fsc/FSWalletUtil.class" 更新 jar 文件 "/u01/app/oracle/product/10.2.0/db_1/sysman/jlib/emd_java.jar"
用 "/sysman/jlib/emd_java.jar/oracle/sysman/eml/sec/rep/RepWalletUtil.class" 更新 jar 文件 "/u01/app/oracle/product/10.2.0/db_1/sysman/jlib/emd_java.jar"
用 "/sysman/jlib/emd_java.jar/oracle/sysman/eml/sec/util/RootCert.class" 更新 jar 文件 "/u01/app/oracle/product/10.2.0/db_1/sysman/jlib/emd_java.jar"
用 "/sysman/jlib/emd_java.jar/oracle/sysman/eml/sec/util/SecConstants.class" 更新 jar 文件 "/u01/app/oracle/product/10.2.0/db_1/sysman/jlib/emd_java.jar"
ApplySession 将中间补丁程序 '8350262' 添加到产品清单
Verifying the update...
Inventory check OK: Patch ID 8350262 is registered in Oracle Home inventory with proper meta-data.
Files check OK: Files from Patch ID 8350262 are present in Oracle Home.
OPatch succeeded.
5:打开数据库
--由于在第3步过程中关掉了数据库,这里要开库
开库的时候报错:
SQL> startup;
ORACLE instance started.
Total System Global Area 285212672 bytes
Fixed Size 2095704 bytes
Variable Size 88081832 bytes
Database Buffers 188743680 bytes
Redo Buffers 6291456 bytes
Database mounted.
ORA-01092: ORACLE instance terminated. Disconnection forced
报警日志:
Errors in file /u01/app/oracle/admin/orcl/udump/orcl_ora_6270.trc:
ORA-00704: bootstrap process failure
ORA-39700: database must be opened with UPGRADE option
Fri Apr 03 15:34:16 CST 2015
Error 704 happened during db open, shutting down database
USER: terminating instance due to error 704
Instance terminated by USER, pid = 6270
ORA-1092 signalled during: ALTER DATABASE OPEN...
看网上http://blog.csdn.net/zero_plus/article/details/8666204说:
startup upgrade;
@$ORACLE_HOME/rdbms/admin/catupgrd.sql;
@$ORACLE_HOME/rdbms/admin/utlrp.sql; --重新编译失效的object,跟这个问题本身关系不大
第一个脚本执行时间较长。
重启数据库
shutdwon immediate;
startup
ok
SQL> select version from v$instance;
VERSION
----------------------------------
10.2.0.5.0
6:设置Oracle开机自动启动
6.1修改/etc/oratab
将所需启动的实例由N修改为Y
orcl:/u01/app/oracle/product/10.2.0/db_1:Y
6.2 修改/etc/rc.d/rc.local
添加两行:
su oracle -lc "/u01/app/oracle/product/10.2.0/db_1/bin/lsnrctl start"
su oracle -lc /u01/app/oracle/product/10.2.0/db_1/bin/dbstart
--说明:/u01/app/oracle/product/10.2.0/db_1/为oracle的安装目录,要根据实际情况进行修改。
7 后续配置
7.1:把redhat版本改回5
[root@pc ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 5.8 (Tikanga)
--对应步骤1.2
7.2:改回开机图形界面登陆
vi /etc/inittab
把 id:3:initdefault: 修改为 id:5:initdefault。对应上面的步骤1.11.
重启Linux,让步骤6,7生效。
安装过程中,出了很多错误。现在终于完成了