Ubuntu 12.04 install oracle 11g

  1. 首先,将系统更新到最新:命令:
    1. sudo apt-get update
    2. sudo apt-get dist-upgrade
  2. 安装依赖包:命令:
    1. sudo apt-get install alien binutils build-essential cpp-4.4 debhelper g++-4.4 gawk gcc-4.4 gcc-4.4-base gettext html2text ia32-libs intltool-debian ksh lesstif2 lib32bz2-dev lib32z1-dev libaio-dev libaio1 libbeecrypt7 libc6 libc6-dev libc6-dev-i386 libdb4.8 libelf-dev libelf1 libltdl-dev libltdl7 libmotif4 libodbcinstq4-1 libodbcinstq4-1:i386 libqt4-core libqt4-gui libsqlite3-0 libstdc++5 libstdc++6 libstdc++6-4.4-dev lsb lsb-core lsb-cxx lsb-desktop lsb-graphics lsb-qt4 make odbcinst pax po-debconf rpm rpm-common sysstat unixodbc unixodbc-dev unzip
  3. 为了预先排除异常先安装些依赖包: 1、Error in invoking target ‘all_no_orcl’ ofmakefile ‘/opt/oracle/product/10.2/rdbms/lib/ins_rdbms.mk’. See ‘/opt/oracle/oraInventory/logs/installActions2007-12-04_02-50-11AM.log’ for details.命令:
    1. aptitude install gcc libaio1 lesstif2 lesstif2-dev make libc6 libc6-i386 libc6-dev-i386 libstdc++6 lib32stdc++6 lib32z1 ia32-libs rpm make binutils binutils-dev binutils-source
    2. 然后:cd/usr/lib
    3. 再执行:ln -s libstdc++.so.6 libstdc++.so.5
  4. 创建用户和组:这里oracle 安装需要两个 unix 用户组和一个运行时的 oracle 用户。命令 :
    1. addgroup oinstall
    2. addgroup dba
    3. addgroup nobody
    4. useradd -g oinstall -G dba -d /home/oracle -s /bin/bash oracle
    5. usermod -g nobody nobody
  5. 创建目录:有很多文档和文件,这里我建议您将oracle 安装到一个独立的分区上面。我这里就安装到/data/oracle下。注意:假设Oracle 的安装目录为/data/oracle。那么至少确保有 3.0G 的可用空间。命令:
    1. mkdir -p /data/oracle
    2. chown -R oracle:oinstall /data/oracle
    3. chmod -R 775 /data/oracle
    4. 这里创建了 oracle 的运行时路径,授写权限赋予 oracle 用户,执行权限给 dba 组。
  6. 创建程序链接:命令:
    1. mkdir /usr/lib64
    2. ln -s /etc /etc/rc.d
    3. ln -s /lib/x86_64-linux-gnu/libgcc_s.so.1 /lib64/
    4. ln -s /usr/bin/awk /bin/awk
    5. ln -s /usr/bin/basename /bin/basename
    6. ln -s /usr/bin/rpm /bin/rpm
    7. ln -s /usr/lib/x86_64-linux-gnu/libc_nonshared.a /usr/lib64/
    8. ln -s /usr/lib/x86_64-linux-gnu/libpthread_nonshared.a /usr/lib64/
    9. ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /lib64/
    10. ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/lib64/
  7. 内核参数/etc/sysctl.conf中增加
    1. fs.aio-max-nr = 1048576
    2. fs.file-max = 6815744
    3. kernel.shmall = 2097152
    4. kernel.shmmax = 536870912
    5. kernel.shmmni = 4096
    6. kernel.sem = 250 32000 100 128
    7. net.ipv4.ip_local_port_range = 9000 65500
    8. net.core.rmem_default = 262144
    9. net.core.rmem_max = 4194304
    10. net.core.wmem_default = 262144
    11. net.core.wmem_max = 1048586
  8. 执行以下命令更新内核参数
    1. sudo sysctl -p
  9. 添加对Oracle用户的内核限制,在/etc/security/limits.conf文件中增加以下数据,其中oracle是在第三步中创建的用户,跳过第三步的话就写当前用户。
    1. oracle soft nproc 2047
    2. oracle hard nproc 16384
    3. oracle soft nofile 1024
    4. oracle hard nofile 65536
    5. oracle soft stack 10240
    6. 查看/etc/pam.d/login,增加以下行(有了就不用添加了)
    7. session required pam_limits.so
    8. 同理检查/etc/pam.d/su,没有就加上
    9. session required pam_limits.so
  10. 配置环境变量
    1. export ORACLE_BASE=/data/oracle
    2. export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
    3. export ORACLE_SID="orcl"
  11. link
    1. sed -i 's/^\(\s*\$(MK_EMAGENT_NMECTL)\)\s*$/\1 -lnnz11/g' /data/oracle/product/11.2.0/dbhome_1/sysman/lib/ins_emagent.mk
    2. sed -i 's/^\(\$LD \$LD_RUNTIME\) \(\$LD_OPT\)/\1 -Wl,--no-as-needed \2/g' /data/oracle/product/11.2.0/dbhome_1/bin/genorasdksh
    3. sed -i 's/^\(\s*\)\(\$(OCRLIBS_DEFAULT)\)/\1 -Wl,--no-as-needed \2/g' /data/oracle/product/11.2.0/dbhome_1/srvm/lib/ins_srvm.mk
    4. sed -i 's/^\(TNSLSNR_LINKLINE.*\$(TNSLSNR_OFILES)\) \(\$(LINKTTLIBS)\)/\1 -Wl,--no-as-needed \2/g' /data/oracle/product/11.2.0/dbhome_1/network/lib/env_network.mk
    5. sed -i 's/^\(ORACLE_LINKLINE.*\$(ORACLE_LINKER)\) \(\$(PL_FLAGS)\)/\1 -Wl,--no-as-needed \2/g' /data/oracle/product/11.2.0/dbhome_1/rdbms/lib/env_rdbms.mk
  12. ORA-28001: the password has expired解决方法
    1. ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED ;去除180天的密码生存周期的限制(Oracle11G的新特性在创建用户时默认密码过期限制是180天(即6个月), 如果超过180天用户密码未做修改则该用户无法登录)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值