红帽oracle安装说明


资源需要: 至少1024 MB物理内存 1024-2048 需1.5倍的交互空间 2048-8192 需1倍的交互空间 8192- 需0.75倍的交互空间 至少400 MB /tmp 临时目录空间 oracle软件需要1.5 GB 到 3.5 GB 磁盘空间 默认数据库需要1.2 GB 查看系统资源相关语句: cat /etc/issue uname -r grep MemTotal /proc/meminfo grep SwapTotal /proc/meminfo grep "model name" /proc/cpuinfo free df -k /tmp df -k 安装前的检查和准备工作: p4198954_21_linux.zip 在运行 runInstaller 之前打. rpm -ivh compat-oracle-rhel4-1.0-5.i386.rpm (p4198954_21_linux.zip) (不打PATH也可以) 安装 libaio-0.3.102-1.i386.rpm 和libaio-devel0.3.102-1.i386.rpm 在Red Hat Enterprise Linux 介质的第三张 CD 以 root 用户身份运行以下命令: rpm -ivh /mnt/cdrom/RedHat/RPMS/ libaio-0.3.102-1.i386.rpm 创建数据库安装的准备工作: 1,创建user/group; groupadd dba groupadd oinstall useradd oracle -g oinstall -G dba passwd oracle 如果nobody用户不存在(id nobody命令查看),则创建: useradd nobody 2,建立oracle安装文件夹(sample); mkdir -p /opt/oracle/product/10g mkdir /opt/oracle/database chown -R oracle.oinstall /opt/oracle chmod 755 -R /opt/oracle 2, 配置环境变量; 要使用 Oracle 产品,应该或必须设置几个环境变量。 如果您在同一服务器上安装了多个 Oracle 产品或数据库,则 ORACLE_HOME、ORACLE_SID 和 PATH 变量可 能会更改。 ORACLE_BASE 变量不应更改,并可以在需要时在您的登录配置文件中设置它。Oracle 提供了一个称作 oraenv 的实用程序来设置其他变量。 对于数据库服务器,建议设置以下环境变量: 使用Oracle用户登陆: su oracle vi ~/.bash_profile 以下是配置文件的内容 export ORACLE_BASE=/opt/oracle/ Oracle10g安装1 2011年2月28日 22:55 分区 Oracle 的第 1 页 export ORACLE_BASE=/opt/oracle/ export ORACLE_HOME=/opt/oracle/product/10g export ORACLE_SID=ge01 export PATH=$ORACLE_HOME/bin:$PATH # 安装好后再取消屏蔽这些环境变量设置 # export TNS_ADMIN=$ORACLE_HOME/network/admin #export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK #export LANG=AMERICAN_AMERICA.ZHS16GBK 配置好后用 source .bash_profile 命令使配置生效 4, 设置系统参数; Oracle 数据库 10g 需要以下所示的内核参数设置。 其中给出的是最小值,因此如果您的系统使用的值较大,则不要更改它。 切换到root用户: su root a) 修改/etc/sysctl.conf(vi /etc/sysctl.conf), 添加: kernel.shmmax = 2147483648 kernel.shmmni = 4096 kernel.shmall = 2097152 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 修改后运行"/sbin/sysctl -p"命令使得内核改变立即生效; B) 设置oracle对文件的要求: 编辑文件: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 解压缩Oracle10G的安装文件 : 1. Oracle (1) 简化过程(以oracle登录,释放安装文件,使用更少的磁盘空间,速度更快) 在/tmp下解压缩10201_database_linux32.zip: unzip 10201_database_linux32 开始安装oracle (一)开始安装: 1.以oracle用户登录系统,进行Oracle的安装: cd /tmp/database (或者你解压缩安装程序包的目录) ./runInstaller 过一会儿就会出现Oracle的安装界面 注意: 1、选择advance install 2、数据库home设置为/opt/oracle/product/10g 3、数据库全局名称设置为ge01 4、数据库字符集选Simplified Chinese ZHS16GBK 2.其他用默认设置! 注意:安装过程中会提示以root用户登陆执行一些脚本 ,执行后再按“ok”按钮继续安装。 分区 Oracle 的第 2 页 注意:安装过程中会提示以root用户登陆执行一些脚本 ,执行后再按“ok”按钮继续安装。 3、登陆并启动数据库的操作。 [oracle@oracle oracle]$ lsnrctl start [oracle@oracle oracle]$ sqlplus /nolog SQL*Plus: Release 9.2.0.0 - Production on Sat Mar 12 22:58:53 2005 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. SQL> connect / as sysdba Connected. SQL> shutdown immediate 关闭数据库 (OR "dbshut" command) Database closed. Database dismounted. ORACLE instance shut down. SQL> startup; 启动数据库 ORACLE instance started. Total System Global Area 236000356 bytes Fixed Size 451684 bytes Variable Size 201326592 bytes Database Buffers 33554432 bytes Redo Buffers 667648 bytes Database mounted. Database opened. 4, dbstart脚本修改 数据库创建完成后,修改vi /etc/oratab,把orcl:/opt/oracle/oracle/product/10g:N那一行最后的N改成Y, 然后执行dbstart启动数据库数据库可能无法启动,报告Can’t find init file …的错误,需要复制一个初始化文件: cp /opt/oracle/admin/ge01/pfile/init.ora.* /opt/oracle/product/10.2.0/dbs/initge01.ora 重新执行dbstart就可以了。 修改vi /opt/oracle/product/10g/bin/dbstart中ORACLE_HOME_LISTNER=/opt/oracle/oracle/product/10g/ vi /etc/rc.local 加入下面一行 起动ORACLE ON system boot /opt/oracel/product/10g/bin/dbstart 5. 编写启动脚本(OPTION) 为了方便管理,可以写一个启动脚本ora10g: 以root身份进入,编写以下脚本: #!/bin/bash # # chkconfig: 2345 91 19 # description: starts the oracle listener and instance status() { pid=`ps -ef | grep ora_pmon | grep -v grep | awk '{print $8}'` if [ "X$pid" = "X" ] then echo "oracle10g is not running." exit 1 else echo "oracle10g is running." exit 0 fi } case "$1" in start) #startup the listener and instance echo -n "oracle begin to startup: " su - oracle -c "lsnrctl start" su - oracle -c dbstart echo "oracle10g started" ;; stop) # stop listener, apache and database echo -n "oracle begin to shutdown:" 分区 Oracle 的第 3 页 echo -n "oracle begin to shutdown:" su - oracle -c "lsnrctl stop" su - oracle -c dbshut echo "oracle10g shutdowned" ;; reload|restart) $0 stop $0 start ;; 'status') status ;; *) echo "Usage: ora10g [start|stop|reload|restart]" exit 1 esac exit 0 存为ora10g后,然后 chmod a+x ora10g ln -s /opt/oracle/product/10.2.0/bin/ora10g /etc/rc.d/init.d/ 即可在以后以root身份运行/etc/rc.d/init.d/ora10g start |stop 来管oracle的启动和停止了。 如果要将这个脚本加入到系统中使其可开机运行,那么要运行以下命令: chkconfig --level 345 ora10g on 或者可在/etc/rc.d/rc.local中加入如下: su - oracle -c "lsnrctl start" su - oracle -c "dbstart" 6, 关于数据库删除重新安装的问题: 把ORACLE安装目录删除及/etc/ora*.*删除就行了 #rm –f /etc/ora*.* 7.修改Oracle10g数据库字符集 SQL> connect sys/oracle as sysdba SQL> startup mount SQL> alter session set sql_trace=true; Session altered. SQL> alter system enable restricted session; System altered. SQL> alter system set job_queue_processes=0; System altered. SQL> alter system set aq_tm_processes=0; System altered. SQL> alter database open; Database altered. SQL> set linesize 120; SQL> alter database character set zhs16gbk; alter database character set zhs16gbk * ERROR at line 1: ORA-12712: new character set must be a superset of old character set SQL> ALTER DATABASE character set INTERNAL_USE zhs16gbk; # 使用INTERNAL_USE可以跳过超集的检 查,ALTER DATABASE character set INTERNAL_USE Database altered. SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. SQL> STARTUP SQL> select name,value$ from props$ where name like '%NLS%'; NLS_CHARACTERSET ZHS16GBK 8. oracle database备份 (1)vi bachupDb.sh 分区 Oracle 的第 4 页 (1)vi bachupDb.sh #!/bin/sh #oracle用户下 #crontab -e 增加 "35 4 * * * /home/oracle/dbbackup/backupDb.sh",保存后自动安装 #或echo "35 4 * * * /home/oracle/dbbackup/backupDb.sh" > backupDb.cron #crontab backupDb.cron ############# #@tip 修改为本机数据库home目录 export ORACLE_HOME=/opt/oracle/product/10g export PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin # 注意字符集必须和数据库的字符集一致,以避免字符集转化失败 export NLS_LANG=AMERICAN_AMERICA.zhs16gbk #@tip 125修改为要备份的oracle的ip地址的最后一段 dmpfile="`echo ~/`dbbackup/gedb_`date +%w`.dmp" logfile="`echo ~/`dbbackup/gedb_`date +%w`.log" if [ -w $dmpfile ] then echo "rm -f $dmpfile" rm -f "$dmpfile" fi #@tip ip地址修改为要备份的oracle的主机地址 exp USERID=gedb/gedb@10.248.1.5/ge01 file=$dmpfile log=$logfile owner=gedb grants=y (2)copy bachupDb.sh 到slave oracle srever 相应目录, chown oracle.oinstall bachupDb.sh chmod 744 bachupDb.sh vi bachupDb.sh 以符合安装情况 (3)以oracle user role crontab -e 35 4 * * * /home/oracle/dbbackup/backupDb.sh 9. restore oracle backup su - oracle imp USERID=gedb/gedb file=gedb_6.dmp log=implogfile commit=y grants=y full=y 源文档 分区 Oracle 的第 5 页 1.安装JDK http://java.sun.com (1) 下载后的BIN文件可以直接执行 # chmod 755 jdk-1.6.0_23-linux-i586.rpm.bin # ./ jdk-1.6.0_23-linux-i586.rpm.bin 此步完成后,会生成jdk-1.6.0_23-linux-i586.rpm的文件 默认安装到了/usr/java/jdk1.6.0_23 (2) /etc/profile 设置环境变量 增加如下内容: JAVA_HOME=/usr/java/jdk1.6.0_23 JRE_HOME=/usr/java/jdk1.6.0_23/jre PATH=$PATH:$JAVA_HOME/bin:JRE_HOME/bin CLASSPATH=.:$JAVA_HOME/lib/jt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib export JAVA_HOME JRE_HOME PATH CLASSPATH 按Esc,然后:wq保存退出 使环境变量生效 source /etc/profile 查看: echo $JAVA_HOME (会显示JDK所在目录) ******************************************************************************************* **************** 2.检查安装包 make-3.79.1 gcc-3.2.3-34 glibc-2.3.2-95.20 glibc-devel-2.5-12.i386.rpm glibc-headers-2.5-12.i386.rpm compat-db-4.0.14-5 compat-gcc-7.3-2.96.128 compat-gcc-c++-7.3-2.96.128 compat-libstdc++-7.3-2.96.128 compat-libstdc++-devel-7.3-2.96.128 libXpm-3.5.5-3.i386.rpm libXp openmotif21-2.1.30-8 setarch-1.3-1 libgomp-4.1.1-52.el5.i386.rpm 查询所需安装包是否完整 rpm -q gcc make binutils openmotif setarch compat-db compat-gcc compat-gcc-c++ compat-libstdc++ compat- libstdc++-devel libXp 由于缺失的包之间有严格的依赖关系,所以必须按照如下顺序安装缺失的包 rpm -Uvh compat-db-4* rpm -Uvh libaio-0* rpm -Uvh compat-libstdc++-33-3* rpm -Uvh glibc-headers-2.5-12.i386.rpm rpm -Uvh glibc-devel-2.5-12.i386.rpm rpm -Uvh compat-gcc-34-3* rpm -Uvh compat-gcc-34-c++-3* rpm -Uvh libXp-1* rpm -Uvh openmotif-2* rpm -Uvh gcc-4* rpm -Uvh glibc-2.5-12.i686.rpm rpm -Uvh libgomp-4.1.1-52.el5.i386.rpm rpm -Uvh gcc-4.1.1-52.el5.i386.rpm 安装完成后仍然提示部分包没有安装,不过不影响使用 package compat-gcc is not installed Oracle10g安装2 2011年2月28日 22:56 分区 Oracle 的第 6 页 package compat-gcc is not installed package compat-gcc-c++ is not installed package compat-libstdc++ is not installed package compat-libstdc++-devel is not installed 另一种说法: 查询所需安装包是否完整 rpm -q gcc make binutils openmotif setarch libXp 而对于需要安装的包,按如下关键字搜索和安装即可 compat -> libXp -> openmotif 全部安装完毕即可(我是这样 做的) ******************************************************************************************* **************** 3.增加Oracle安装和使用的用户 (1) 新增组和用户 groupadd oinstall groupadd dba groupadd oper useradd -g oinstall -G dba oracle passwd oracle (2) 创建Oracle的安装目录,并把权限付给oracle用户,其实创建用户后就已经有该文件了 mkdir -p /home/oracle/ chown -R oracle:oinstall /home/oracle chmod -R 775 /home/oracle ******************************************************************************************* **************** 4.修改配置文件 (1) /etc/sysctl.conf 行末添加以下内容,已有的修改 kernel.shmall = 2097152 kernel.shmmax = 2147483648 kernel.shmmni = 4096 # semaphors: 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 运行下面的命令使得内核参数生效 /sbin/sysctl -p (2) /etc/security/limits.conf 行末添加以下内容 #use for oracle * soft nproc 2047 * hard nproc 16384 * soft nofile 1024 * hard nofile 65536 (3) /etc/pam.d/login 行末添加以下内容 session required pam_limits.so (4) /etc/selinux/config 更改 SELINUX=disabled 关闭防火墙,必须的 (5) /etc/redhat-release Linux版本信息,5不支持Oracle,安装后可以改回去 Red Hat Enterprise Linux AS release 3 (Taroon) 分区 Oracle 的第 7 页 Red Hat Enterprise Linux AS release 3 (Taroon) 或Red Hat Enterprise Linux AS release 4 (Nahant Update 4) (6) gedit /etc/profile 就是增加JDK配置的文件,在增加JDK配置后紧接着增加如下内容 if [ $USER = "oracle" ];then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi (6) bash_profile 在创建用户后在用户的目录下有一个.bash_profile(使用Oracle用户) 并在文件中增加如下内容 (ORACLE_BASE是最重要的,他代表Oracle的安装路径) (在安装时就可以创建数据库,如果安装完毕重启,则再启动监听时无法启动,则要注意ORACLE_HOME在数据库 安装后要根据实际路径进行修改) ORACLE_BASE=/home/oracle/oracle ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1 ORACLE_SID=CUI PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH LD_LIBRARY_PATH ******************************************************************************************* **************** 5.解压(使用Oracle用户) unzip 10201_database_linux32.zip -d /tmp/oracle 改权限 chown oracle /tmp/oracle chmod -R 755 /tmp/oracle 安装 到根目录下:./runInstaller (如果安装时不创建数据库,可以在Oracle_HOME/bin 下运行 dbca 来创建和管理数据库) ******************************************************************************************* **************** 6.配置Oracle在Linux下的命令 (1) 修改Rehhat版本信息 /etc/redhat-release 将版本改为原来版本 (2) 启动数据库与监听 /etc/oratab SID名字:/Oracle/app/product/10.2.0/db_1:N为 oracle:/Oracle/app/product/10.2.0/db_1:Y $Oracle_HOME/bin/dbstart 把其中的Oracle_HOME_LISTNER=什么东西,注释掉 加上 Oracle_HOME_LISTNER=$Oracle_HOME 修改/增加配置文件,起名字叫oracle,添加下面的script (如果.bash_profile文件中配置过的话,就把export注销) 分区 Oracle 的第 8 页 (如果.bash_profile文件中配置过的话,就把export注销) ===== Script ==== #!/bin/bash # # chkconfig: 35 95 1 # description: init script to start/stop oracle database 10g, TNS listener, EMS # match these values to your environment: export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1 export ORACLE_TERM=xterm export PATH=/u01/app/oracle/bin:$ORACLE_HOME/bin:$PATH export ORACLE_SID=oracle export DISPLAY=localhost:0 export ORACLE_USER=oracle # see how we are called: case $1 in start) su -"$ORACLE_USER"< connect / as sysdba SQL> shutdown [immediate] SQL> exit 2)停止Listener 分区 Oracle 的第 9 页 2)停止Listener $ lsnrctl stop 3)停止HTTP服务 $ $ORACLE_HOME/Apache/Apache/bin/apachectl stop 4)用su或者重新登录到root (1)运行 $ORACLE_HOME/bin/localconfig delete (2)# rm -rf $ORACLE_BASE/* (3)# rm -f /etc/oraInst.loc /etc/oratab (4)# rm -rf /etc/oracle (5)# rm -f /etc/inittab.cssd (6)# rm -f /usr/local/bin/coraenv (7)# rm -f /usr/local/bin/dbhome (8)# rm -f /usr/local/bin/oraenv (9)删除oracle用户和组 userdel –r oracle groupdel oinstall groupdel dba (10)将启动服务删除 chkconfig --del dbora 附(二):正常模式启动和关闭数据库 9i 之后已经没有 svrmgrl 了,所有的管理工作都通过 sqlplus 来完成 启动数据库步骤如下: 注:$ORACLE_HOME为oracle的安装路径 1,以oracle用户登录 su oracle 2,启动TNS监听器 $ORACLE_HOME/bin/lsnrctl start 3,用sqlplus启动数据库 $ORACLE_HOME/bin/sqlplus /nolog SQL> connect system/change_on_install as sysdba SQL> startup 出现如下显示,表示Oracle已经成功启动 ORACLE instance started. Total System Global Area 205520896 bytes Fixed Size 778392 bytes Variable Size 74456936 bytes Database Buffers 130023424 bytes Redo Buffers 262144 bytes Database mounted. Database opened. 4,用sqlplus停止数据库 $ORACLE_HOME/bin/sqlplus /nolog SQL> connect system/change_on_install as sysdba SQL> shutdown 注:shutdown可加关闭选项,从最温和到最粗暴的行为选项为(shutdown、shutdown transactional、shutdown immediate、shutdown abort) 命令解释如下 shutdown:关闭,等待每个用户退出系统戓被取消后退出关闭数据库 shutdown transactional:事务性关闭,等待每个用户提交戓回退当前的事务,然后oracle取消对话,在所有用户退 出系统后执行关闭 shutdown immediate:直接关闭,取消所有用户对话(促使回退),执行正常的关闭程序 shutdown abort:终止关闭,关闭数据库时没有自动检查点戓日志开关 出现如下显示,表示oracle已经停止 Database closed Database dismounted ORACLE instance shut down 源文档 分区 Oracle 的第 10 页 源文档 -------------------------------------------------------------------------------------------------------------------------------------------- ----------------- 1 首先安装必要工具包 mount /dev/cdrom /media/ 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 编辑 /etc/hosts。文件应当包含类似以下的文本: 127.0.0.1 localhost.localdomain localhost 192.168.203.11 stctestbox01.us.oracle.com stctestbox01 2 更改修改/etc/redhat-release文件,因为Oracle10g数据库暂不支持RHEL5: # vi /etc/redhat-release # Red Hat Enterprise Linux Server release 5.2 (Tikanga) redhat-4 3 Oracle数据库必须在Oracle用户下才能安装。故,建立相应的用户群组、用户,以及设置相应的目录属主 、目录权限。切记,要给Oracle用户设置密码哦,同时,密码要符合复杂性要求,譬如:weiguo520.。 groupadd oinstall groupadd dba groupadd oper useradd -g oinstall -G dba oracle mkdir -p /opt/oracle/or10g chown -R oracle.oinstall /opt/oracle chmod -R 775 /opt/oracle passwd oracle 4 配置内核相关参数,以便支持Oracle数据库。 # 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 的第 11 页 5 设置Oracle用户Shell limit。 # vim /etc/security/limits.conf # For Oracle oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 6 在/etc/pam.d/login file文件末端添加相关内容,如果它已经存在则退出。 # vim /etc/pam.d/login # For Oracle session required /lib/security/pam_limits.so 7 修改Oracle用户语言环境,注销掉root用户,以oracle用户登录系统。 $ touch .i18n $ vi .i18n export LC_CTYPE="US_en" 也可以不执行。但是在安装过程中在命令行执行export LC_CTYPE="US_en" 8 配置Oracle用户环境变量,以便支持Oracle数据库安装以及今后的操作、维护。 $ vim .bash_profile # For Oracle TMP=/tmp; export TMP TMPDIR=$TMP; export TMPDIR ORACLE_BASE=/opt/oracle; export ORACLE_BASE #自己的路径oracle安装路径的上级路径 ORACLE_HOME=$ORACLE_BASE/or10g; export ORACLE_HOME #自己的oracle安装路径 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 9 启动安装,首先运行xhost hostname命令启动X-Windows安装界面,如下图所示: $ xhost mail.weiguo.com $ unzip 10201_database_linux32.zip $ cd database 分区 Oracle 的第 12 页 $ cd database $ ./runInstaller 10 修改dbstart 找到ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle这行, 修改成: ORACLE_HOME_LISTNER=/u01/app/product/10.2.0/db_1 或者直接修改成: ORACLE_HOME_LISTNER=$ORACLE_HOME 测试运行 oracle$dbshut oracle$dbstart 看能否启动或关闭oracle 服务及listener服务 oracle$ ps -efw | grep ora_ oracle$ lsnrctl status oracle$ ps -efw | grep LISTEN | grep -v grep 11 自启动 首先使用root用户修改: 编辑/etc/oratab,(将N该为Y) orcl:/oracle/app/product/10.2.0/db_1:N (将N该为Y) 在root下/etc/init.d/路径中建立oracle #!/bin/bash # chkconfig:345 99 10 # description: Startup Script for oracle Databases export ORACLE_BASE=/opt/oracle export ORACLE_HOME=/opt/oracle/or10g export ORACLE_SID=orcl export PATH=$ORACLE_HOME/bin:$PATH case "$1" in start) # #oracle10g start # echo -n "Starting Oracle" su - oracle -c "$ORACLE_HOME/bin/dbstart" su - oracle -c "$ORACLE_HOME/bin/emctl start dbconsole" su - oracle -c "$ORACLE_HOME/bin/lsnrctl start" su - oracle -c "$ORACLE_HOME/bin/isqlplusctl start" ;; stop) # #oracle stop # echo -n "Shutdown Oracle." su - oracle -c "$ORACLE_HOME/bin/emctl stop dbconsole" 分区 Oracle 的第 13 页 su - oracle -c "$ORACLE_HOME/bin/emctl stop dbconsole" su - oracle -c "$ORACLE_HOME/bin/isqlplusctl stop" su - oracle -c "$ORACLE_HOME/bin/dbshut" su - oracle -c "$ORACLE_HOME/bin/lsnrctl stop" ;; restart) # #oracle restart # $0 stop $0 start ;; *) echo "Oracle10g start|stop|restart" exit 1 esac exit 0 12 加入服务 #service oracle start 测试oracle能不能启动 #chkconfig --add oracle #chkconfig --level 345 oracle on #chkconfig --list oracle 看运行情况 dbua中文运行方法: 前提安装了JDK1.5或者更高的版本。 修改dbua文件 找到 JRE_DIR文件修改为 $JAVA_HOME/jre就可以运行中文环境了。 13 打补丁 停止一切oracle。然后运行运行补丁程序 修改 dbstart dbshut中让ORACLE_HOME_LISTNER=$1改为 ORACLE_HOME_LISTNER=$ORACLE_HOME dbua 重新启动 14、清理日志文件。(解决非正常关闭数据库引起的数据库无法启动) alter database clear unarchived logfile group 2; 分区 Oracle 的第 14 页 alter database clear unarchived logfile group 2; alter database open; 源文档 分区 Oracle 的第 15 页 首先安装Linux系统,根据Oracle官方文档的建议,在机器内存小于1G的情况下,swap分区 大小应该设置为内存的2倍大,若内存大于2G则swap分区设置为与内存大小一样。 其实Linux系统的swap分区大小设置是很有讲究的,如果哪位读者有兴趣,可以参考我的另 外一篇文章——《如何合理设置Linux系统的swap分区大小》。 在系统安装的过程中,一定选择安装所有开发包,建议不要安装SELinux或者安装后在系统 中禁止SELinux运行,否则会出现一些莫名其妙的问题。 为防止Oracle安装过程中出现乱码,建议使用英文作为系统语言,进行Oracle的安装工作 一、安装系统 1.检查需要的软件包 可以使用rpm -qa|grep 软件包关键词命令进行检测,一般情况下会需要手动安装如下的软 件包: From RedHat AS5 Disk 1(32 Bit) # rpm -Uvh setarch-2* # rpm -Uvh make-3* # rpm -Uvh glibc-2* # rpm -Uvh libaio-0* From RedHat AS5 Disk 2(32 Bit) # 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* From RedHat AS5 Disk 3(32 Bit) # rpm -Uvh openmotif-2* # rpm -Uvh compat-db-4* 如果使用DVD安装介质的话,会很方便。 2.修改Linux发行版本信息 由于Oracle 10g发行的时候,RedHat Enterprise Linux 5没有发行,所以Oracle 10g并没 有对RedHat Enterprise Linux 5确认支持,我们有两种方法可以让Oracle 10g支持RedHat Enterprise Linux 5。 方法一: 我们需要手工修改Linux的发行注记,让Oracle 10g支持RedHat Enterprise Linux 5。 编辑/etc/redhat-release文件 # vi /etc/redhat-release 将其中的内容Red Hat Enterprise Linux Server release 5 (Tikanga)修改为Red Hat Enterprise Linux AS release 4 (Nahant Update 4) 方法二: 还有文章说修改Oracle安装包中install/oraparam.ini文件的内容,也可以让Oracle 10g支 持RedHat Enterprise Linux 5,修改方法如下: # vi install/oraparam.ini 在其中的Certified Versions段落增加redhat-5 #[Certified Versions] Linux=redhat-3,SuSE-9,redhat-4,redhat-5,UnitedLinux-1.0,asianux-1,asianux-2] 再添加 [Linux-redhat-5.0-optional] TEMP_SPACE=80 SWAP_SPACE=150 MIN_DISPLAY_COLORS=256 经我测试,发现方法二在安装之前的系统检测过程可以通过,但是在安装过程中的系统支持 二、安装Oracle前的系统准备工作 Oracle10g安装3 2011年3月1日 23:11 分区 Oracle 的第 16 页 经我测试,发现方法二在安装之前的系统检测过程可以通过,但是在安装过程中的系统支持 检测无法通过,不知道是不是我设置的有问题,希望有高手可以给我点提示。 3.修改系统内核参数 # vi /etc/sysctl.conf kernel.shmall = 2097152 // 该参数表示系统一次可以使用的共享 内存总量(以页为单位)。缺省值就是2097152,通常不需要修改kernel.shmmax = 2147483648 // 该参数定义了共享内存段的最大尺寸(以字节为单位)。缺省 为32M,对于oracle来说,该缺省值太低了,通常将其设置为2G kernel.shmmni = 4096 // 这个内核参数用于设置系统范围内共 享内存段的最大数量。该参数的默认值是 4096 。通常不需要更改 kernel.sem = 250 32000 100 128 // 表示设置的信号量 fs.file-max = 65536 // 表示文件句柄的最大数量。文件 句柄设置表示在linux系统中可以打开的文件数量 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 // 发送窗口的最大大小 修改好内核参数后,执行如下命令使新的设置生效 # /sbin/sysctl -p 4.创建Oracle用户、组、安装目录 在这里我只讨论单主机环境,不考虑RAC环境的配置,在以后我会专门写一篇如何配置 Oracle RAC环境的文章。 (1) 创建Oracle用户组 # groupadd oinstall # groupadd dba (2) 创建Oracle用户 # useradd -m -g oinstall -G dba oracle (3) 设置Oracle用户口令 # passwd oracle (4) 创建Oracle安装目录以及数据存放目录 # mkdir -p /DBSoftware/app/oracle # mkdir -p /DBData/oradata (5) 修改目录权限 # chown -R oracle:oinstall /DBSoftware/app/oracle/ /DBData/oradata/ # chmod -R 755 /DBSoftware/app/oracle/ /DBData/oradata/ 5.添加以下内容到/etc/security/limits.conf # vi /etc/security/limits.conf oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 6.添加以下内容到/etc/pam.d/login # vi /etc/pam.d/login session required /lib/security/pam_limits.so session required pam_limits.so 7.添加以下内容到/etc/profile # vi /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 8.配置Linux主机 分区 Oracle 的第 17 页 8.配置Linux主机 检查/etc/hosts文件中是否有localhost的记录(指向127.0.0.1即可),若没有的话,在后 面配置Oracle监听的时候会出现一些问题,导致无法启动监听,在此手工添加此记录即可。 9.配置oracle用户环境变量 # su - oracle $ vi ~/.bash_profile 增加如下内容: export ORACLE_BASE=/DBSoftware/app/oracle // 上面创建的Oracle安装文件夹 export ORACLE_SID=orcl export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1 export PATH=$PATH:$ORACLE_HOME/bin export LD_LIBARY_PATH=$ORACLE_HOME/lib export PATH umask 022 保存后使用如下命令,使设置生效: $ source ~/.bash_profile 1.解压缩安装文件 Oracle的安装包有这样几种格式: (1) zip 这种格式最好解压缩,直接使用命令unzip 文件名即可 (2) cpio.gz 这种格式有这样几种解压缩方式 a. # zcat XXXX.cpio.gz | cpio -idmv b. # gunzip XXXX.cpio.gz解压出XXXX.cpio文件然后再 # cpio -idvm < XXXX.cpio 解压缩完成后,设置oracle帐户可以操作安装文件所在的目录 chown -R oracle:oinstall 安装文件所在目录 2. 用oracle帐户进入安装文件所在目录,执行如下命令即可看到安装界面: $ ./runInstaller 如果无法看到安装界面,请使用root帐户执行如下命令后再运行安装程序: # export DISPLAY=:0.0 # xhost + $ ./runInstaller 出现安装界面后,根据界面提示进行相关的设置,我的建议是在安装过程中不创建数据库, 只安装程序,监听和创建数据库等安装完成后再进行相关的操作。 安装过程中,需要使用root权限执行两个脚本。 3. 安装完成后,将/etc/redhat-release文件中的内容修改回Red Hat Enterprise Linux Server release 5 (Tikanga) 4.创建监听以及创建数据库 (1) 创建监听程序 使用Oracle提供的NET CONFIGURATION ASSISTANT创建TNS监听 $ netca 基本上就是一直Next就可以了,当然你也可以在这期间修改TNS的监听端口号 TNS监听创建完成后可以使用如下命令进行检查: # netstat -atln 检查监听端口是否打开 $ lsnrctl status 检查TNS监听状态 确认监听已经成功启动后,即可执行Database Configure Assistant进行数据库的创建,执 行命令如下: $ dbca 在创建数据库的过程中,建议将数据库的字符集设置为Unicode UTF-8,防止出现乱码。 三、安装Oracle,并进行相关设置 # vi /etc/rc.d/init.d/oracle ================================ Script File Start ================================ #!/bin/bash # # chkconfig: 35 95 1 四、数据库的启动脚本(转载自[url]http://82584.blog.51cto.com/72584/110131[/url]) 分区 Oracle 的第 18 页 # chkconfig: 35 95 1 # description: init script to start/stop oracle database 10g, TNS listener, EMS # match these values to your environment: export ORACLE_BASE=/DBSoftware/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1 export PATH=/u01/app/oracle/bin:$ORACLE_HOME/bin:$PATH export ORACLE_SID=orcl export ORACLE_USER=oracle # see how we are called: case $1 in start) su -"$ORACLE_USER"<<EOO lsnrctl start sqlplus /nolog<<EOS connect / as sysdba startup EOS emctl start dbconsole EOO touch /var/lock/subsys/$scriptname ;; stop) su -"$ORACLE_USER"<<EOO lsnrctl stop sqlplus /nolog<<EOS connect / as sysdba shutdown immediate EOS emctl stop dbconsole EOO rm -f /var/lock/subsys/scriptname ;; *) echo "Usage: $0 {start|stop}" ;; esac ================================ Script File End ================================ 授权 :chown root.root /etc/rc.d/init.d/oracle 修改文件属性:chmod 755 /etc/rc.d/init.d/oracle 以后启动/关闭Oracle可以使用如下命令操作: # service oracle start // 启动监听、数据库以及em # service oracle stop // 关闭监听、数据库以及em 当然你也可以把Oracle作为系统服务,随系统启动等等。 源文档 分区 Oracle 的第 19 页 1.修改/etc/oratab内容 ORACLE_SID:/u01/app/oracle/product/10.2.0/db_1:N改为如下内容 # add below content #$ORACLE_SID:$ORACLE_HOME:Y demo:/u01/app/oracle/product/9.2.0:Y 2.修改/etc/rc.local文件加以下内容 #################################### location :/etc/rc.local #################################### !/bin/sh This script. will be executed *after* all the other init scripts. You can put your own initialization stuff in here if you don't want to do the full Sys V style. init stuff. touch /var/lock/subsys/local add below content su - oracle -c "/bin/sh /home/oracle/dbstart.sh" 3 new file dbstart.sh vi /home/oracle/dbstart.sh的内容 export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=/u01/app/oracle/product/9.2.0 export ORACLE_SID=demo start the listener /u02/oracle/ora/bin/lsnrctl start #start the db sqlplus "/as sysdba" < ------------------------------------------------------------------------------------------------------------------------------------------- 在Oracle 1gR2或更高版本下使用RAC或ASM时,Oracle Clusterware会自动启动和停止Oracle 数据库实例,因此下面的过程不是必需的,对于其他情况,你就可以使用下面描述的方法了。 Oracle开机启动 2011年3月3日 0:36 分区 Oracle 的第 20 页 数据库实例,因此下面的过程不是必需的,对于其他情况,你就可以使用下面描述的方法了。 ◆su命令 下面的描述是Oracle建议采用的自动启动和关闭Oracle 9i实例的方法。 一旦实例创建好后,标记/etc/oratab文件设置每个实例的重启标志为“Y”: TSH1:/u01/app/oracle/product/9.2.0:Y 接下来,作为root用户登陆创建一个叫做/etc/init.d/dbora的文件,包括下面的内容: #!/bin/sh # chkconfig: 345 99 10 # description: Oracle auto start-stop script. # # Set ORA_HOME to be equivalent to the $ORACLE_HOME # from which you wish to execute dbstart and dbshut; # # Set ORA_OWNER to the user id of the owner of the # Oracle database in ORA_HOME. ORA_HOME=/u01/app/oracle/product/9.2.0 ORA_OWNER=oracle if [ ! -f $ORA_HOME/bin/dbstart ] then echo "Oracle startup: cannot start" exit fi case "$1" in 'start') # Start the Oracle databases: # The following command assumes that the oracle login # will not prompt the user for any values su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start" 分区 Oracle 的第 21 页 su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start" su - $ORA_OWNER -c $ORA_HOME/bin/dbstart ;; 'stop') # Stop the Oracle databases: # The following command assumes that the oracle login # will not prompt the user for any values su - $ORA_OWNER -c $ORA_HOME/bin/dbshut su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop" ;; esac 使用chmod命令设置权限为750: chmod 750 /etc/init.d/dbora 使用下面的命令配合适当的运行级别设置dbora服务自动启动: chkconfig --level 345 dbora on 这样有关的实例就会随系统的启动而启动了。 这个方法仍然适用于Oracle10g和11g,使用正确的路径对ORA_HOME变量做一下改动,并将其 添加到dbstart和dbshut末尾的行,在Oracle10gR2下可以移除启动和停止监听器的行了,因此 dbstart命令包括启动监听器。 #!/bin/sh # chkconfig: 345 99 10 # description: Oracle auto start-stop script. # # Set ORA_HOME to be equivalent to the $ORACLE_HOME 分区 Oracle 的第 22 页 # Set ORA_HOME to be equivalent to the $ORACLE_HOME # from which you wish to execute dbstart and dbshut; # # Set ORA_OWNER to the user id of the owner of the # Oracle database in ORA_HOME. ORA_HOME=/u01/app/oracle/product/10.2.0/db_1 #ORA_HOME=/u01/app/oracle/product/11.1.0/db_1 ORA_OWNER=oracle if [ ! -f $ORA_HOME/bin/dbstart ] then echo "Oracle startup: cannot start" exit fi case "$1" in 'start') # Start the Oracle databases: # The following command assumes that the oracle login # will not prompt the user for any values su - $ORA_OWNER -c "$ORA_HOME/bin/dbstart $ORA_HOME" ;; 'stop') # Stop the Oracle databases: # The following command assumes that the oracle login # will not prompt the user for any values su - $ORA_OWNER -c "$ORA_HOME/bin/dbshut $ORA_HOME" ;; esac ◆rsh命令 在Oracle10g中,Oracle推荐使用rsh命令而不是以前推荐的su命令了,在Oracle10gR2中, dbstart命令可以自动启动监听器,因此在这两个版本之间有些不同之处,下面的说明更适合 Oracle10g。 一旦实例创建完毕,编辑/etc/oratab文件设置每个实例的重启标志为“Y”: 分区 Oracle 的第 23 页 TSH1:/u01/app/oracle/product/9.2.0:Y 接下来,作为root用户创建一个叫做/etc/init.d/dbora的文件,包括下面的内容: #!/bin/sh # chkconfig: 345 99 10 # description: Oracle auto start-stop script. # # Change the value of ORACLE_HOME to specify the correct Oracle home # directory for your installation. ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1 # # Change the value of ORACLE to the login name of the # oracle owner at your site. # ORACLE=oracle PATH=${PATH}:$ORACLE_HOME/bin HOST=`hostname` PLATFORM=`uname` export ORACLE_HOME PATH # if [ ! "$2" = "ORA_DB" ] ; then if [ "$PLATFORM" = "HP-UX" ] ; then remsh $HOST -l $ORACLE -n "$0 $1 ORA_DB" exit else rsh $HOST -l $ORACLE $0 $1 ORA_DB exit fi fi # case $1 in 'start') $ORACLE_HOME/bin/dbstart $ORACLE_HOME 分区 Oracle 的第 24 页 $ORACLE_HOME/bin/dbstart $ORACLE_HOME ;; 'stop') $ORACLE_HOME/bin/dbshut $ORACLE_HOME ;; *) echo "usage: $0 {start|stop}" exit ;; esac # exit 使用chmodml设置权限为750: chmod 750 /etc/init.d/dbora 使用下面的命令配合适当的运行级别设置dbora服务自动启动: chkconfig --level 345 dbora on 现在相关的实例应该随系统的启动而自动启动了。 这个方法依赖于RSH服务器,它需要额外的软件包和配置: # Install the rhs and rsh-server packages from the OS CD/DVD. rpm -Uvh --force rsh-* # Enable rsh and rlogin. chkconfig rsh on chkconfig rlogin on service xinetd reload 在FC5和FC6下尝试这个方法时有问题,rsh是不被支持的,结果,我宁愿使用su命令。 这个方法也可以用于没有使用ASM或RAC的11g数据库。 ◆已知问题的解决 分区 Oracle 的第 25 页 ◆已知问题的解决 在Oracle10gR2中使用时,调用dbstart可能会产生下面的错误消息: Failed to auto-start Oracle Net Listener using /ade/vikrkuma_new/oracle/bin/tnslsnr 这是由于在dbstart脚本中使用了硬编码路径,要解决这个问题,编辑 $ORACLE_HOME/bin/dbstart脚本,用 ORACLE_HOME_LISTNER=$ORACLE_HOME 替换 ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle //(大概在78行附近) 现在dbstart在启动监听器时应该就没有问题了。 源文档 分区 Oracle 的第 26 页
还剩25页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 6 金币 [ 分享pdf获得金币 ] 2 人已下载

下载pdf

pdf贡献者

whwstar

贡献于2013-03-04

下载需要 6 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf