提示:#后跟命令表示以root用户操作,$后跟命令表示以oracle用户操作。
首先到oracle网站下载安装包和patch包。 1. 安装前工作 1.1 删除历史数据库和oracle软件 确认实例并删除数据库: $ dbca 删除oracle软件: $ export ORACLE_HOME=/u01/app/oracle/product/1020/db_1 $ $ORACLE_HOME/bin/emctl stop dbconsole $ ps -ef | grep dbconsole | grep -v grep (检查) $ $ORACLE_HOME/bin/lsnrctl stop $ ps -ef | grep tnslsnr | grep -v grep (检查) $ $ORACLE_HOME/bin/isqlplusctl stop $ ps -ef | grep isqlplus | grep -v grep (检查) $ $ORACLE_HOME/bin/searchctl stop $ ps -ef | grep ultrasearch | grep -v grep (检查) $ $ORACLE_HOME/oui/bin/runInstaller 1.2 安装前工作-硬件检查 # xhost + (设置pc客户端的ip,确保能显示OUI界面) # cat /proc/meminfo | grep Mem (至少1g内存) # cat /proc/meminfo | grep Swap (参考如下) 1-2g内存 swap为内存的1.5倍 2-8g内存 swap大小等同内存 8g以上 swap为内存的0.75倍 # df -h /tmp (至少400m可用空间) # df -h /u01 (1.5-3.5g的磁盘空间,视安装类型而异) # grep "model name" /proc/cpuinfo (确保安装文件是当前cpu类型的版本,安装文件是10201_database_linux32.zip) 1.3 安装前工作-软件检查 # cat /etc/issue (查看linux版本) # uname -r (查看内核版本) # rpm -q package_name
对于RHEL5
对于RHEL4,以下packages或更高版本必须安装:
1.4 安装前工作-网络检查 # cat /etc/nsswitch.conf | grep hosts (应包含hosts: files dns) # hostname (OUI需要主机名解析,确保能解析) # domainname (确保无信息) # cat /etc/hosts | grep `eval hostname` (应有ip和主机名的对应,没有则添加) $ export ORACLE_HOSTNAME=node1 (对于多网卡主机,设置ORACLE_HOSTNAME变量,node1是通过hostname命令得到的主机名) 1.5 建操作系统组和用户 # /usr/sbin/usermod -g oinstall -G dba[,oper] oracle (如果用户存在需要修改的话,oper组可选) # id nobody (确保nobody用户存在,是无权限用户,oracle安装后需要用到) # /usr/sbin/useradd nobody (如果不存在就新建)
# mkdir -p /u01/app
# groupadd -g 115 dba # groupadd -g 116 oinstall # useradd -u 116 -g 115 -d /u01/app/oracle -s /bin/bash -c "Oracle Software Owner" -p oracle oracle # chown -R oracle:dba /u01 # passwd oracle # su - oracle 1.6 配置内核参数 (oracle推荐参考,如果实际值高于推荐值则无需修改): Parameter Value File semmsl 250 /proc/sys/kernel/sem semmns 32000 /proc/sys/kernel/sem semopm 100 /proc/sys/kernel/sem semmni 128 /proc/sys/kernel/sem shmall 2097152 /proc/sys/kernel/shmall shmmax 1/2 Memory(bytes) /proc/sys/kernel/shmmax shmmni 4096 /proc/sys/kernel/shmmni file-max 65536 /proc/sys/fs/file-max ip_local_port_range Minimum:1024 /proc/sys/net/ipv4/ip_local_port_range Maximum: 65000 rmem_default 1048576 /proc/sys/net/core/rmem_default rmem_max 1048576 /proc/sys/net/core/rmem_max wmem_default 262144 /proc/sys/net/core/wmem_default wmem_max 262144 /proc/sys/net/core/wmem_max # /sbin/sysctl -a | grep sem (显示信号参数) # /sbin/sysctl -a | grep shm (显示共享内存) # /sbin/sysctl -a | grep file-max (显示文件句柄最大数) # /sbin/sysctl -a | grep ip_local_port_range (显示显示端口号范围) # /sbin/sysctl -a | grep rmem_default # /sbin/sysctl -a | grep rmem_max # /sbin/sysctl -a | grep wmem_default # /sbin/sysctl -a | grep wmem_max 如果要修改以上信息: # 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 = 1048576 net.core.rmem_max = 1048576 net.core.wmem_default = 262144 net.core.wmem_max = 262144 # /sbin/sysctl -p (修改以后让参数生效) 为了提升性能增加oracle用户的shell限制: # vi /etc/security/limits.conf oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 # vi /etc/pam.d/login session required /lib/security/pam_limits.so session required pam_limits.so # vi /etc/profile or /etc/csh.login (65536为最大打开文件描述符的数目,16384为单用户最大可用进程数) if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi # vi /etc/selinux/config (使安全linux标志失效) SELINUX=disabled 1.7 建立软件目录 Oracle Base目录:/mount_point/app/oracle_sw_owner Oracle Inventory目录:oracle_base/oraInventory (OUI建立) Oracle Home目录:oracle_base/product/10.2.0/db_1 (OUI建立) # more /var/opt/oracle/oraInst.loc (确认Oracle Inventory目录是否存在) # more /etc/oratab (确认Oracle Home目录是否存在) 如果Oracle Base目录不存在则建立: # mkdir -p /u01/app/oracle # chown -R oracle:oinstall /u01/app/oracle # chmod -R 775 /u01/app/oracle 确认数据库和恢复文件的存储: 文件系统(RAID或LV且做了stripe-and-mirror-everything即SAME)、ASM、裸设备(不支持存放恢复目录),推荐ASM但本例使用文件系统。 如果使用文件系统,数据库文件和恢复文件最好存放到不同的物理磁盘上; 建立数据库文件目录: # mkdir /u01/oradata # chown oracle:oinstall /u01/oradata # chmod 775 /u01/oradata 建立恢复文件目录(闪存区): # mkdir /orahome/flash_recovery_area # chown oracle:oinstall /orahome/flash_recovery_area # chmod 775 /orahome/flash_recovery_area 1.8 配置oracle用户环境 设置oracle用户环境变量: $ vi .bash_profile 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 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 NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"; export NLS_LANG umask 022 ##以下这段如果在/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 $ . .bash_profile 验证环境变量设置: $ umask $ env | more 2 安装过程 2.1 安装unzip软件并解压oracle压缩文件 # uncompress unzip_lnx.Z 或者 gzip -d unzip_lnx.Z # mv unzip_lnx /usr/local/bin/ # chmod 751 unzip_lnx # su - oracle $ cd /orahome/wangnc (进入软件存放目录) $ unzip_lnx 10201_database_linux32.zip (解压) 2.2 开始安装 $ cd database $ DISPLAY=192.168.41.42:0.0; export DISPLAY (192.168.41.42是使用如xmanager之类仿真终端的PC客户端的ip) $ ./runInstaller (安装原则是:有高级或定制选项就点击进去自己设置,这样加深对数据设置的理解) oracle内存:服务器物理内存的50% oracle进程数:500 连接模式:共享服务器模式 其它设置:默认 按照提示用root用户执行$ORACLE_HOME/root.sh脚本。 2.3 安装后记住 几个J2EE应用配置(node1是主机名): iSQL*Plus URL: http://node1:5560/isqlplus iSQL*Plus DBA URL: http://node1:5560/isqlplus/dba Enterprise Manager 10g Database Control URL: http://node1:1158/em 其中它们的端口信息记录在: $ more $ORACLE_HOME/install/portlist.ini 3 安装后工作 3.1 打patches 到metalink上找该版本的patches并安装。 后续介绍直接升级为10.2.0.4步骤,补丁一次性打齐。 3.2 其它工作(可以忽略) 备份root.sh: $ cd $ORACLE_HOME $ cp root.sh root.sh.enc 编译失效对象: $ sqlplus "/as sysdba" SQL> @?/rdbms/admin/utlrp.sql 生成客户端静态库libclntst10.a备用: $ $ORACLE_HOME/bin/genclntst 设置oracle启动标志为Y,这样oracle自带的dbstart和dbshut才能够发挥作用: $ vi /etc/oratab orcl:/u01/app/oracle/product/10.2.0/db_1:Y 然后通过dbstart/dbshut启停数据库: $ dbstart (位于$ORACLE_HOME/bin下,日志位于$ORACLE_HOME/startup.log) $ dbshut (位于$ORACLE_HOME/bin下,日志位于$ORACLE_HOME/shutdown.log) 建议修改一下dbstart脚本: $ vi dbstart (因为该脚本默认监听目录不是oracle_home,所以没法自动启动监听) ORACLE_HOME_LISTNER=$ORACLE_HOME (日志位于$ORACLE_HOME/listener.log) 安装Companion CD里其它oracle产品: $ unzip_lnx 10201_companion_linux32.zip $ cd companion $ ./runInstaller 注意:HTML DB没法安装,不知道这个伴侣盘是咋做的,安装了Oracle Database 10g Product 10.2.0.1。 Ultra Search URL: http://node1:5620/ultrasearch Ultra Search 管理工具 URL: http://node1:5620/ultrasearch/admin 4. 数据库基本操作 用浏览器登陆企业管理器 http://IP:1158/em/ sys/oracle sysdba 登陆isqlplus http://172.16.1.171:5560/isqlplus system/oracle 登陆isqlplus dba:http://172.16.1.171:5560/isqlplus/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)工具。 1).进入到目录 $ cd $ORACLE_HOME/oc4j/j2ee/isqlplus/application-deployments/isqlplus/ 2).执行以下命令(telnet窗口里,用户名admin,密码welcome): $ $ORACLE_HOME/jdk/bin/java -Djava.security.properties=$ORACLE_HOME/sqlplus/admin/iplus/provider -jar $ORACLE_HOME/oc4j/j2ee/home/jazn.jar -shell RealmLoginModule username: admin RealmLoginModule password:******** JAZN:> 3).新建用户并授予isqlplus DBA的权限 JAZN:> adduser "iSQL*Plus DBA" wangnc iamwangnc JAZN:> grantrole webDba "iSQL*Plus DBA" wangnc 4).其它可选操作 列出用户: JAZN:> listusers iSQL*Plus DBA/admin iSQL*Plus DBA/wangnc 删除用户: JAZN:> remuser "iSQL*Plus DBA" wangnc 修改用户密码: JAZN:> setpasswd "iSQL*Plus DBA" wangnc iamwangnc newpasswd 撤销用户登陆isqlplus DBA的权限 JAZN:> revokerole webDba "iSQL*Plus DBA" wangnc 5).退出JAZN命令环境 JAZN:> exit isqlplus服务在10gR2中无需重启,再进入网址 http://ip:port/isqlplus/dba,在弹出的对话框中输入wangnc和iamwangnc,就可以进入到数据库登陆界面了,此时可以用数据库用户sys或system以sysdba或sysoper身份登陆了。而且以后也不会弹出那个isqlplus应用服务器的用户和密码提示框了。 其实进去后发现和isqlplus普通界面差不多,另外又有个EM可以搞定DBA工作,不知道搞个isqlplus dba有什么用,还不如直接sqlplus登陆管理呢。 5. 安装10gR2(10.2.0.4) Patch Set 3 5.1 更新时区定义 如果当前数据对象里含有TIMESTAMP WITH LOCAL TIME ZONE (TSLTZ) and TIMESTAMP WITH TIME ZONE (TSTZ)这两种数据类型和TZ_OFFSET函数,则需要打此patch、 SQL> SELECT version FROM v$timezone_file; 只要结果不等于4即需要升级。 see OracleMetalink document 553812.1 "Actions for the DSTv4 update in the Release 10.2.0.4 patchset". 5.2 停止相关进程 $ emctl stop dbconsole $ isqlplusctl stop $ lsnrctl stop $ sqlplus '/as sysdba' SQL> shutdown immediate 5.3 备份数据库(推荐) 5.4 开始打软件的patch $ xhost +
$ cd /u01
$ unzip_lnx p6810189_10204_Linux-x86.zip (解压补丁包) $ cd Disk1/ $ ./runInstaller 如果ORACLE_HOME和ORACLE_SID设置没问题,默认安装即可。期间会要求以root身份执行$ORACLE_HOME/root.sh脚本。 5.5 执行dbua升级oracle数据库(xmanager仿真终端里) $ lsnrctl start $ dbua (时间较长) 期间选择备份数据库,并可以修改flash_recovery_area的位置和大小。 5.6 其它升级后工作 如果用到了rman catalog,那么得升级catalog: $ rman catalog username/password@alias RMAN> UPGRADE CATALOG; 运行changePerm.sh放宽新建目录和文件的权限,使其它客户端能访问: $ cd $ORACLE_HOME/install $ ./changePerm.sh
5.7 最后验证你的升级成果,是不是都是10.2.0.4了!
SQL> select comp_name, version, status from sys.dba_registry;
|
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8554499/viewspace-598176/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/8554499/viewspace-598176/