Linux下实现Oracle11g静默安装教程

1.操作系统及Oracle版本

  Linux版本:CentOS release 6.5 (Final)

  Oracle版本:Oracle Database 11g Release 2 (11.2.0.1.0) for Linuxx86-64 (linux.x64_11gR2_database_1of2.ziplinux.x64_11gR2_database_2of2.zip)

2.硬件检测:

  物理内存不少于1G

  硬盘可以空间不少于5G

  swap分区空间不少于2G

  支持256色以上显卡

  cpu主频不小于550mHZ

  cat /etc/issue

  uname -r

  cat /proc/meminfo |grep MemTotal

  cat /proc/meminfo |grep SwapTotal

  cat /proc/cpuinfo |grep "modelname"

  free 

  df -k /tmp 

  df -k

3.检查安装依赖系统包

  操作系统依赖的具体包,请参考官方安装文档

  以下为 Asianux 3, Oracle Linux 5, RedHat Enterprise Linux 5, CentOS 6 操作系统依赖的包

  binutils-2.17.50.0.6

  compat-libstdc++-33-3.2.3

  compat-libstdc++-33-3.2.3 (32 bit)

  elfutils-libelf-0.125

  elfutils-libelf-devel-0.125

  gcc-4.1.2

  gcc-c++-4.1.2

  glibc-2.5-24

  glibc-2.5-24 (32 bit)

  glibc-common-2.5

  glibc-devel-2.5

  glibc-devel-2.5 (32 bit)

  glibc-headers-2.5

  ksh-20060214

  libaio-0.3.106

  libaio-0.3.106 (32 bit)

  libaio-devel-0.3.106

  libaio-devel-0.3.106 (32 bit)

  libgcc-4.1.2

  libgcc-4.1.2 (32 bit)

  libstdc++-4.1.2

  libstdc++-4.1.2 (32 bit)

  libstdc++-devel 4.1.2

  make-3.81

  sysstat-7.0.2

  unixODBC-2.2.11 (32-bit) or later

  unixODBC-devel-2.2.11 (64-bit) orlater

  unixODBC-2.2.11 (64-bit) or later

  检查依赖包命令

  rpm -q binutils compat-libstdc++-33 elfutils-libelfelfutils-libelf-devel gcc gcc-c++ glibc-2.5 glibc-common glibc-develglibc-headers ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel makesysstat unixODBC unixODBC-devel

  如果包有显示is not installed(没安装),就用yum install 命令安装,如:

   yum install compat-libstdc++-33

   yum install compat-libstdc++-33elfutils-libelf-devel glibc-2.5 ksh libaio-devel  unixODBC unixODBC-devel gcc gcc-c++ glibc-2.5libstdc++-devel -y

4.创建所需的操作系统组和用户

  groupadd oinstall ;groupadd dba;useradd-g oinstall -G dba oracle

  设置oracle用户密码

  passwd oracle

5.修改内核参数

  在 vim /sbin/sysctl.conf 文件中,使用文本编辑器或vi命令增加或修改以下参数

  fs.aio-max-nr = 1048576

  fs.file-max = 6815744

  kernel.shmall = 2097152

  kernel.shmmax = 536870912

  kernel.shmmni = 4096

  kernel.sem = 250 32000 100 128

  net.ipv4.ip_local_port_range = 900065500

  net.core.rmem_default = 262144

  net.core.rmem_max = 4194304

  net.core.wmem_default = 262144

  net.core.wmem_max = 1048576

  修改后,使设置生效 若有报错,无视!

  /sbin/sysctl -p

6.修改用户限制

  在vim /etc/security/limits.conf 文件中,使用文本编辑器或vi命令增加或修改以下参数

  oracle soft nproc 2047

  oracle hard nproc 16384

  oracle soft nofile 1024

  oracle hard nofile 65536

  oracle soft stack 10240

  在vim /etc/pam.d/login 文件中,使用文本编辑器或vi命令增加或修改以下内容

  session required/lib/security/pam_limits.so

  session required pam_limits.so

  使用文本编辑器或vi命令增加或修改以下内容

  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

7.创建安装目录(可根据情况,选择比较多空间的目录创建)

  mkdir -p /opt/Oracle/app/ ;mkdir -p/opt/Oracle/app/oracle;chown -R oracle:oinstall /opt/Oracle/app/;chmod -R 775 /opt/Oracle/app/

8.创建vim /etc/oraInst.loc文件,内容如下

  inventory_loc=/opt/Oracle/app/oracle/oraInventory

  inst_group=oinstall

  更改文件的权限

  chown oracle:oinstall/etc/oraInst.loc ;chmod 664 /etc/oraInst.loc

9.设置oracle环境变量

  su - oracle

  vim ~/.bash_profile

  在最后加上以下内容

  export ORACLE_BASE=/opt/Oracle/app/oracle

  export ORACLE_SID=orcl

  注意,除了ORACLE_BASEORACLE_SID,( /etc/profile.bash_profile)不设置任何oracle相关环境变量(ORACLE_HOME,PATH, LD_LIBRARY_PATH)

 使设置生效

  source /home/oracle/.bash_profile

 检查环境变量:

  env

10.解压oracle安装文件

  unziplinux.x64_11gR2_database_1of2.zip ;unzip linux.x64_11gR2_database_2of2.zip

11.复制响应文件模板

  mkdir etc ;cp/解压后文件database路径/response/* /home/oracle/etc/

  设置响应文件权限

  su - root

  chmod 700 /home/oracle/etc/*.rsp

12.静默安装Oracle软件

  su - oracle

 修改安装Oracle软件的响应文件

  vim /home/oracle/etc/db_install.rsp 

  oracle.install.option=INSTALL_DB_SWONLY//29 行 安装类型

  ORACLE_HOSTNAME=localhost.localdomain //37行 主机名称

  UNIX_GROUP_NAME=oinstall //42 行 安装组

  INVENTORY_LOCATION=/opt/Oracle/app/oracle/oraInventory//47 INVENTORY目录

  SELECTED_LANGUAGES=en,zh_CN,zh_TW//78 行选择语言

  ORACLE_HOME=/opt/Oracle/app/oracle/product/11.2.0/db_1//83 oracle_home

  ORACLE_BASE=/opt/Oracle/app/oracle //88 oracle_base

  oracle.install.db.InstallEdition=EE//99 oracle版本

  oracle.install.db.isCustomInstall=true//108行 自定义安装

  oracle.install.db.DBA_GROUP=dba//142 dba用户组

  oracle.install.db.OPER_GROUP=oinstall//147 oper用户组

  oracle.install.db.config.starterdb.type=GENERAL_PURPOSE//160据库类型

  oracle.install.db.config.starterdb.globalDBName=orcl//165

  oracle.install.db.config.starterdb.SID=orcl//170 SID

  oracle.install.db.config.starterdb.memoryLimit=512//200行 自动管理内存的最小内存(M)

  oracle.install.db.config.starterdb.password.ALL=oracle//233行 设定所有数据库用户使用同一个密码

  DECLINE_SECURITY_UPDATES=true //385行 设置安全更新

 进行静默安装Oracle软件 

  cd database(在oracle用户下进行)

  ./runInstaller -silent -force-responseFile /home/oracle/etc/db_install.rsp -ignorePrereq

 安装中,如果提示[WARNING]不必理会,此时安装程序仍在进行,如果出现[FATAL],则安装程序已经停止了。

 查看安装日志信息了解安装进度

  cd $ORACLE_BASE/oraInventory/logs

  tail -100f installActions*.log

 出现类似如下提示表示安装完成:

  #-------------------------------------------------------------------

  ...

  /opt/Oracle/app/oracle/product/11.2.0/db_1/root.sh

  To execute the configurationscripts:

  1. Open a terminal window 

  2. Log in as "root" 

  3. Run the scripts 

  4. Return to this window and hit"Enter" key to continue

  Successfully Setup Software.

  #-------------------------------------------------------------------

 使用root用户执行root.sh

 su root

 /opt/Oracle/app/oracle/product/11.2.0/db_1/root.sh

 增加oracle环境变量

 su - oracle

 vi ~/.bash_profile

 在最后加上以下内容

  exportORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1

  exportTNS_ADMIN=$ORACLE_HOME/network/admin

  exportPATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin

  exportPATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin

  export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/lib

  exportLD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib

  exportLD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib

  exportCLASSPATH=${CLASSPATH}:$ORACLE_HOME/JRE

  export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/JRE/lib

  exportCLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib

  exportCLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib

  exportCLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib

  exportLIBPATH=${CLASSPATH}:$ORACLE_HOME/lib:$ORACLE_HOME/ctx/lib

  export ORACLE_OWNER=oracle

  export SPFILE_PATH=$ORACLE_HOME/dbs

  exportORA_NLS10=$ORACLE_HOME/nls/data

 使设置生效

  source /home/oracle/.bash_profile

13.静默配置网络

  $ORACLE_HOME/bin/netca /silent/responseFile /home/oracle/etc/netca.rsp

14.静默安装数据库

  修改仅安装数据库的响应文件vim /home/oracle/etc/dbca.rsp

  GDBNAME="orcl.localhost.localdomai"//78 行 全局数据库的名字=SID+主机域名

  SID="orcl" //149 SID

  CHARACTERSET="AL32UTF8"//415行 编码

  NATIONALCHARACTERSET="UTF8"//425行 编码

 进行静默安装数据库

  $ORACLE_HOME/bin/dbca -silent-responseFile /home/oracle/etc/dbca.rsp  

 建库后实例检查

  ps -ef | grep ora_ | grep -v grep |wc -l

  ps -ef | grep ora_ | grep -v grep

 建库后监听检查

  lsnrctl status

 如果出现以下错误

  lsnrctl: error while loading sharedlibraries: /opt/Oracle/app/oracle/product/11.2.0/db_1/lib/libclntsh.so.11.1: cannotrestore segment prot after reloc: Permission denied

解决办法:在root用户下执行以下命令

  su - root

  setenforce 0

15.修改oracle启动配置文件

  su - oracle

  vi /etc/oratab

  racl:/opt/Oracle/app/oracle/product/11.2.0/db_1:Y//把“N”改成“Y

 这样就可以通过dbstart 启动此实例,监听器。

  dbstart $ORACLE_HOME

 此时所有oracle的进程关闭,监听器也停止。

  dbshut $ORACLE_HOME

 再次查看监听器状态。

  lsnrctl status

 如果使用归档日志

  sqlplus / as sysdba

  SQL> shutdown immediate;

  SQL> startup mount;

  SQL> alter database archivelog;

  SQL> alter database flashback on;(如果要启用数据库闪回功能则执行)

  SQL> alter database open;

  SQL> execute utl_recomp.recomp_serial();(重新编译所有可能失效对象)

  SQL> alter system archive logcurrent; (手工归档测试)

 设置linux数据库编码

  echo 'export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"'>>/etc/profile;

 查询数据库字符集

  select* from nls_database_parameters

 数据库字符集在创建后原则上不能更改。不过有2种方法可行。
  1.
如果需要修改字符集,通常需要导出数据库数据,重建数据库,再导入数据库数据的方式来转换。
  2.
通过ALTER DATABASE CHARACTER SET语句修改字符集,但创建数据库后修改字符集是有限制的,只有新的字符集是当前字符集的超集时才能修改数据库字符集,例如UTF8US7ASCII 的超集,修改数据库字符集可使用ALTER DATABASE CHARACTER SET UTF8

 

linux 系统装Oracle数据库最后的时候报ORA-12547TNSlostcontact,并且给出两个选项lgnore Abort

  检查ulimit没有修改,修改limits参数文件,添加如下内容
   vi /etc/security/limits.conf
   oracle soft nproc 2047
   oracle hard nproc 16384
   oracle soft nofile 1024
   oracle hard nofile 65536

  禁用SELinux

   root用户登录系统执行 setenforce 0   (不需要重启)
  
修改/etc/selinux/config文件中的SELINUX="" disabled ,需要重启

  检查libaio是否安装:

   rpm -qa |grep libaio

  没装的话装上


 

你可能感兴趣的:(Linux相关)