- oracle安装过程
kernel.shmmax = 根据以下参数设置
内存为 2G 时。该值为 2*1024*1024*1024-1 = 2147483647
内存为 4G 时,该值为 4*1024*1024*1024-1 = 4294967296
内存为 12G 时,该值为 12*1024*1024*1024-1 = 12884901887
内存为 16G 时,该值为 16*1024*1024*1024-1 = 17179869183
内存为 32G 时,该值为 32*1024*1024*1024-1 = 34359738367
内存为 64G 时,该值为 64*1024*1024*1024-1 = 68719476735
内存为 128G 时,该值为 128*1024*1024*1024-1 = 137438953471
kernel.shmall = 根据以下参数设置
内存*1024*1024/4
当内存位为2G时,kernerl.shmall = 524288
当内存位为4G时,kernerl.shmall = 1048576
当内存为 12G 时,kernel.shmall = 3145728
当内存为 16G 时,kernel.shmall = 4194304
当内次为 32G 时,kernel.shmall = 8388608
当内存为 64G 时,kernel.shmall = 16777216
当内存为 128G 时,kernel.shmall = 33554432
安装依赖
| yum install -y binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat ksh unixODBC* |
安装依赖2
| yum install -y compat-libstdc++296.i686 glibc.i686 glibc-devel.i686 libgcc.i686 libstdc++.i686 libstdc++-devel.i686 libaio.i686 libaio-devel.i686 unixODBC.i686 unixODBC-devel.i686 |
创建用户、用户组、附加组
| groupadd oinstall groupadd dba useradd -g oinstall -G dba oracle -m echo "arkj1234" | passwd --stdin oracle |
创建Oracle安装目录、授权oracle用户、限定权限
| mkdir -p /opt/ora11/product/11r2 mkdir -p /opt/oraInventory chown -R oracle:oinstall /opt/ora11 chown -R oracle:oinstall /opt/oraInventory chmod -R 755 /opt/ora11 chmod -R 755 /opt/oraInventory |
调整内核参数
| vim /etc/sysctl.conf |
添加内容如下 (kernel.shmmax与kernel.shmall根据内存进行调整)
| kernel.shmmax = 4294967296 kernel.shmall = 1048576 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 9000 65500 fs.file-max = 6815744 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048576 fs.aio-max-nr = 1048576 |
令配置生效
| /sbin/sysctl -p |
添加内容到limits.conf
| vim /etc/security/limits.conf |
内容如下
| #use for oracle oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 |
添加内容到/etc/pam.d/login
| vim /etc/pam.d/login |
内容如下
| session required pam_limits.so |
添加内容到 /etc/profile
| vim /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 |
配置立即生效
| source /etc/profile |
预设置oracle home目录环境
| vim /home/oracle/.bash_profile |
内容如下 (注意修改ORACLE_SID)
| export TMP=/tmp export TMPDIR=$TMP export ORACLE_USER=oracle export ORACLE_BASE=/opt/ora11 export ORACLE_HOME=$ORACLE_BASE/product/11r2 export ORACLE_SID=lxd12345 export ORACLE_TERM=xterm export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib export CLASSPATH=$ORACLE_HOME/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib export PATH=$ORACLE_HOME/bin:/usr/bin:/bin:$HOME/bin:$PATH export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK" |
设置主机IP和主机名
| vim /etc/hosts |
添加内容如下(根据自己的IP和主机名设置)
| 192.168.174.138 lxd |
在/opt目录中创建setup,将oracle包和pdksh-5.2.14-37.el5.x86_64.rpm上传到该目录中
我的oracle包名是p13390677_112040_Linux-x86-64.zip
静默安装:
修改setup权限
| chown -R oracle:install /opt/setup |
解压p13390677_112040_Linux-x86-64.zip
| cd /opt/setup rpm -ivh pdksh-5.2.14-37.el5.x86_64.rpm (装不上先删掉 rpm -e ksh) unzip p13390677_112040_Linux-x86-64.zip |
修改解压出来的文件夹名为oracle
| mv p13390677_112040_Linux-x86-64 oracle |
修改db_install.rsp
| cd /opt/setup/oracle/database/response vim db_install.rsp |
内容如下
注意SID根据情况进行修改,lxd12345只是我的例子,还有globalDBName也是
| 29 oracle.install.option=INSTALL_DB_SWONLY 37 ORACLE_HOSTNAME=oracle 42 UNIX_GROUP_NAME=oinstall 49 INVENTORY_LOCATION=/opt/oraInventory 86 SELECtED_LANGUAGES=en,zh_CN 91 ORACLE_HOME=/opt/ora11/product/11r2 96 ORACLE_BASE=/opt/ora11 107 oracle.install.db.InstallEdition=EE 154 oracle.install.db.DBA_GROUP=dba 160 oracle.install.db.OPER_GROUP=oinstall 189 oracle.install.db.config.starterdb.type=GENERAL_PURPOSE 194 oracle.install.db.config.starterdb.globalDBName=lxd12345 199 oracle.install.db.config.starterdb.SID=lxd12345 229 oracle.install.db.config.starterdb.memoryLimit=1024 262 oracle.install.db.config.starterdb.password.ALL=lxd1234 336 oracle.install.db.config.starterdb.storageType=FILE_SYSTEM_STORAGE 400 DECLINE_SECURITY_UPDATES=true |
安装数据库
| chmod -R 755 /opt/setup cd /opt/setup/oracle/database ./runInstaller -silent -responseFile /opt/setup/oracle/database/response/db_install.rsp |
等待的弹出 需要运行脚本的提示 到root用户下执行
安装监听
| netca /silent /responseFile /opt/setup/oracle/database/response/netca.rsp |
修改dbca.rsp
| vim /opt/setup/oracle/database/response/dbca.rsp |
内容如下
GDBNAME 和SID 要跟之前的一致
| 78 GDBNAME = "lxd12345" 170 SID = "lxd12345" 211 SYSPASSWORD = "lxd1234" 221 SYSTEMPASSWORD = "lxd1234" 360 DATAFILEDESTINATION = /opt/ora11/oradata 370 RECOVERYAREADESTINATION=/opt/ora11/flash_recovery_area 418 CHARACTERSET = "ZHS16GBK" 553 TOTALMEMORY = "1024" |
安装数据库实例
| dbca -silent -responseFile /opt/setup/oracle/database/response/dbca.rsp |
进入sqlplus
| sqlplus / as sysdba |
执行一下sql语句
| select userenv('language') from dual; |
| select * from dba_profiles s WHERe s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME'; |
| ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; |
| select * from dba_profiles s WHERe s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME'; |
| alter system set deferred_segment_creation=false; |
oracle自启动
| vim /etc/oratab |
内如如下
| ar12366:/opt/ora11/product/11r2:Y |
修改dbstart
| vim /opt/ora11/product/11r2/bin/dbstart |
在80行找到ORACLE_HOME_LISTNER=$1并注释它,然后在它下一行加上如下配置
| export ORACLE_HOME_LISTNER=$ORACLE_HOME |
修改dbshut
| vim /opt/ora11/product/11r2/bin/dbshut |
在50行找到ORACLE_HOME_LISTNER=$1并注释它,谭厚在它下一行加上如下配置
| export ORACLE_HOME_LISTNER=$ORACLE_HOME |
创建oracle文件
| vim /etc/rc.d/init.d/oracle |
写入如下信息
| #!/bin/sh # chkconfig:345 99 10 #chkconfig:345 99 10 # description: Oracle auto start-stop script. # /etc/rc.d/init.d/oracle # description: starts the oracle database ORA_HOME=/opt/ora11/product/11r2 ORA_OWNER=oracle case "$1" in start) echo -n "Starting Oracle Databases: " echo "---------------------------------------------------------------------------------" >> /var/log/oracle date +"! %T %a %D : Starting Oracle Databases as part of system up." >> /var/log/oracle echo "---------------------------------------------------------------------------------" >> /var/log/oracle su - $ORA_OWNER -c "$ORA_HOME/bin/dbstart" >> /var/log/oracle echo "Done." echo -n "Starting Oracle Listeners: " su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start" >> /var/log/oracle echo "Done." su - $ORA_OWNER -c "$ORA_HOME/bin/emctl start dbconsole" >> /var/log/oracle echo "Done." echo "" echo "---------------------------------------------------------------------------------" >> /var/log/oracle date +"! %T %a %D : Finished." >> /var/log/oracle echo "---------------------------------------------------------------------------------" >> /var/log/oracle touch /var/lock/subsys/oracle ;; stop) echo -n "Shutting Down Oracle Listeners: " echo "---------------------------------------------------------------------------------" >> /var/log/oracle date +"! %T %a %D : Shutting Down Oracle Databases as part of system down." >> /var/log/oracle echo "---------------------------------------------------------------------------------" >> /var/log/oracle su - $ORA_OWNER -c "$ORA_HOME/bin/emctl stop dbconsole" >> /var/log/oracle echo "Done." su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop" >> /var/log/oracle echo "Done." rm -f /var/lock/subsys/oracle echo -n "Shutting Down Oracle Databases: " su - $ORA_OWNER -c "$ORA_HOME/bin/dbshut" >> /var/log/oracle echo "Done." echo "" echo "---------------------------------------------------------------------------------" >> /var/log/oracle date +"! %T %a %D : Finished." >> /var/log/oracle echo "---------------------------------------------------------------------------------" >> /var/log/oracle ;; restart) echo -n "Restarting Oracle Databases: " echo "---------------------------------------------------------------------------------" >> /var/log/oracle date +"! %T %a %D : Restarting Oracle Databases as part of system up." >> /var/log/oracle echo "---------------------------------------------------------------------------------" >> /var/log/oracle su - $ORA_OWNER -c "$ORA_HOME/bin/dbshut" >> /var/log/oracle su - $ORA_OWNER -c "$ORA_HOME/bin/dbstart" >> /var/log/oracle echo "Done." echo -n "Restarting Oracle Listeners: " su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop" >> /var/log/oracle su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start" >> /var/log/oracle echo "Done." su - $ORA_OWNER -c "$ORA_HOME/bin/emctl stop dbconsole" >> /var/log/oracle su - $ORA_OWNER -c "$ORA_HOME/bin/emctl start dbconsole" >> /var/log/oracle echo "Done." echo "" echo "---------------------------------------------------------------------------------" >> /var/log/oracle date +"! %T %a %D : Finished." >> /var/log/oracle echo "---------------------------------------------------------------------------------" >> /var/log/oracle touch /var/lock/subsys/oracle ;; *) echo "Usage: oracle { start | stop | restart }" exit 1 esac exit 0 |
最后执行如下命令
| chmod 755 /etc/rc.d/init.d/oracle ln -s /etc/rc.d/init.d/oracle /etc/rc.d/rc3.d/S10oracle ln -s /etc/rc.d/init.d/oracle /etc/rc.d/rc4.d/S10oracle ln -s /etc/rc.d/init.d/oracle /etc/rc.d/rc5.d/S10oracle chkconfig --add oracle chkconfig oracle on service oracle restart |
Service oracle restart #是重启oracle 命令



