戊辰人博客

青,取之于蓝而青于蓝;冰,水为之而寒于水。

RHEL6.4 x86_64静默安装Oracle 11g r2

日期:2015年01月11日 作者: 分类:数据库 阅读:1,336

1 安装环境

操作系统:CetnOS6.4 x86_64

数据库版本:oracle 11g r2

2 准备工作

root用户登录后

unzip linux.x64_11gR2_database_1of2.zip #解压
unzip linux.x64_11gR2_database_2of2.zip

在/etc/hosts文件中增加主机名(通过hostname获得)到回环IP的映射如下:

 127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4  
 ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6 
 192.168.1.150    rhel

3 安装必须的包

 yum install gcc
 yum install make
 yum install binutils
 yum install gcc-c++
 yum install compat-libstdc++-33
 yum install elfutils-libelf-devel
 yum install elfutils-libelf-devel-static
 yum install ksh
 yum install libaio
 yum install libaio-devel
 yum install numactl-devel
 yum install sysstat
 yum install unixODBC
 yum install unixODBC-devel
 yum install pcre-devel

4 准备安装用户及用户组

 groupadd oinstall
 groupadd dba
 useradd -g oinstall -G dba -d /home/oracle oracle
 passwd oracle    #设置oracle密码

5 修改内核参数配置文件

#vim /etc/sysctl.conf 在文件最后增加

 fs.aio-max-nr = 1048576
 fs.file-max = 6553600
 kernel.shmall = 2097152
 kernel.shmmax = 2147483648
 kernel.shmmni = 4096
 kernel.sem = 250 32000 100 128
 net.ipv4.ip_local_port_range = 1024 65000
 net.core.rmem_default = 262144
 net.core.rmem_max = 4194304
 net.core.wmem_default = 262144
 net.core.wmem_max = 1048586

保存文件。输入命令:

modprobe bridge
lsmod | grep bridge
/sbin/sysctl -p #让参数生效

6 修改用户的限制文件

#vim /etc/security/limits.conf 在文件后增加

 oracle           soft    nproc           2047
 oracle           hard    nproc           16384
 oracle           soft    nofile          1024
 oracle           hard    nofile          65536
 oracle           soft    stack           10240

保存文件。

修改/etc/pam.d/login文件,增加如下:

 session     required      /lib64/security/pam_limits.so
 session     required      pam_limits.so

修改/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

7 创建安装目录和设置文件权限

 mkdir /home/oracle/oracle_base
 mkdir /home/oracle/oracle_base/product/11.2.0/dbhome_1   #数据库系统安装目录
 mkdir /home/oracle/oracle_base/oradata    #数据库数据安装目录
 mkdir /home/oracle/oracle_base/flash_recovery_area   #数据备份目录
 mkdir /home/oracle/oraInventory #清单目录
 chown -R oracle:oinstall /home/oracle/oracle_base
 chown -R oracle:oinstall /home/oracle/oraInventory
 chmod -R 775 /home/oracle/oracle_base

8 编辑静默安装响应文件

 su - oracle
 #复制一份模板 
 cp -R /opt/database/response /home/oracle   cd /home/oracle
 #因为下面的安装是只安装软件不安装启动数据库实例,所以改个名字以提示自己 
 mv db_install.rsp db_install_swonly.rsp 
 #开始修改这个安装响应文件 
 vim db_install_swonly.rsp

需要设置的选项如下:

 oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0 //系统生成的
 oracle.install.option=INSTALL_DB_SWONLY //只安装软件,不安装启动数据库
 ORACLE_HOSTNAME=rhel     //通过hostname命令获得
 UNIX_GROUP_NAME=oinstall
 INVENTORY_LOCATION=/home/oracle/oraInventory
 SELECTED_LANGUAGES=en,zh_CN
 ORACLE_HOME=/home/oracle/oracle_base/product/11.2.0/dbhome_1
 ORACLE_BASE=/home/oracle/oracle_base
 oracle.install.db.InstallEdition=EE
 oracle.install.db.isCustomInstall=false
 oracle.install.db.customComponents=oracle.server:11.2.0.1.0,         //保持系统默认值
 oracle.sysman.ccr:10.2.7.0.0,oracle.xdk:11.2.0.1.0,oracle.rdbms.oci:11.2.0.1.0,
 oracle.network:11.2.0.1.0,oracle.network.listener:11.2.0.1.0,oracle.rdbms:11.2.0.1.0,
 oracle.options:11.2.0.1.0,oracle.rdbms.partitioning:11.2.0.1.0,
 oracle.oraolap:11.2.0.1.0,oracle.rdbms.dm:11.2.0.1.0,
 oracle.rdbms.dv:11.2.0.1.0,orcle.rdbms.lbac:11.2.0.1.0,
 oracle.rdbms.rat:11.2.0.1.0
 
 oracle.install.db.DBA_GROUP=dba
 oracle.install.db.OPER_GROUP=dba
 DECLINE_SECURITY_UPDATES=true                 //一定要设置为true

配置环境变量

# Oracle 11g r2 config
export ORACLE_SID=wilson
export ORACLE_UNQNAME=wilson
export ORACLE_BASE=/home/oracle/oracle_base
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:ORACLE_HOME/lib
export ORACLE_HOME=/home/oracle/oracle_base/product/11.2.0/dbhome_1
export ORACLE_HOME_LISTNER=$ORACLE_HOME
export NLS_LANG="AMERICAN.AL32UTF8"
PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
umask 022
export PATH

9 根据响应文件安装oracle

 cd /home/oracle/database
 ./runInstaller -silent -responseFile /home/oracle/response/db_install_swonly.rsp

安装过程中,如果提示[WARNING]不必理会,此时安装程序仍在进行,如果出现[FATAL],则安装程序已经停止了。打开另一个终端,执行

tail -100f /home/oracle/inventory/logs/installActions......log

可以实时跟踪查看安装日志,了解安装的进度。
当出现
以下配置脚本需要以 “root” 用户的身份执行。

#!/bin/sh
#要运行的 Root 脚本
/home/oracle/oraInventory/orainstRoot.sh
/home/oracle/oracle_base/product/11.2.0/dbhome_1 /root.sh

要执行配置脚本, 请执行以下操作:
1. 打开一个终端窗口
2. 以 “root” 身份登录
3. 运行脚本
4. 返回此窗口并按 “Enter” 键继续
Successfully Setup Software.
表示安装成功了。按照其提示操作。

10 编辑静默建库响应文件

 cd /home/oracle
 mv dbca.rsp dbca_hello.rsp   #改名为dbca_数据库名.rsp

11 静默配置监听

netca /silent /responsefile /home/oracle/response/netca.rsp

正在对命令行参数进行语法分析:
参数”silent” = true
参数”responsefile” = /home/oracle/response/netca.rsp
完成对命令行参数进行语法分析。
Oracle Net Services 配置:
完成概要文件配置。
Oracle Net 监听程序启动:
正在运行监听程序控制:

/opt/oracle/11.2.0/bin/lsnrctl start LISTENER

监听程序控制完成。
监听程序已成功启动。
监听程序配置完成。
成功完成 Oracle Net Services 配置。退出代码是0

成功运行后,在/opt/oracle/11.2.0/network/admin目录下生成sqlnet.ora和listener.ora两个文件。

通过netstat -tlnp 命令,看到
tcp  0   0 :::1521        :::*      LISTEN      5477/tnslsnr
说明监听器已经在1521端口上开始工作了。

12 静默建立新库(同时也建立一个对应的实例)

修改/home/oracle/database/response/dbca.rsp,设置如下:

 RESPONSEFILE_VERSION = "11.2.0"  //不能更改
 OPERATION_TYPE = "createDatabase"
 GDBNAME = "wilson"  //数据库的名字
 SID = "wilson"    //对应的实例名字
 TEMPLATENAME = "General_Purpose.dbc" //建库用的模板文件
 SYSPASSWORD = "l1997628"   //SYS管理员密码
 SYSTEMPASSWORD = " l1997628 "  //SYSTEM管理员密码
 DATAFILEDESTINATION = /home/oracle/oracle_base/oradata //数据文件存放目录
 RECOVERYAREADESTINATION= /home/oracle/oracle_base/flash_recovery_area  //恢复数据存放目录
 CHARACTERSET = "AL32UTF8"   //字符集,重要!!! 建库后一般不能更改,所以建库前要确定清楚。
 TOTALMEMORY = "5120"    //oracle内存5120MB

静默建库命令如下

dbca -silent -responseFile /home/oracle/database/response/dbca.rsp

复制数据库文件

 1% 已完成
 3% 已完成
 11% 已完成
 18% 已完成
 26% 已完成
 37% 已完成
 正在创建并启动 Oracle 实例
 40% 已完成
 45% 已完成
 50% 已完成
 55% 已完成
 56% 已完成
 60% 已完成
 62% 已完成
 正在进行数据库创建
 66% 已完成
 70% 已完成
 73% 已完成
 85% 已完成
 96% 已完成
 100% 已完成

有关详细信息, 请参阅日志文件 “/opt/oracle/oracle_base/cfgtoollogs/dbca/wilson/wilson.log”。

查看日志文件

cat /opt/oracle/oracle_base/cfgtoollogs/dbca/wilson/wilson.log

复制数据库文件

 DBCA_PROGRESS : 1%
 DBCA_PROGRESS : 3%
 DBCA_PROGRESS : 11%
 DBCA_PROGRESS : 18%
 DBCA_PROGRESS : 26%
 DBCA_PROGRESS : 37%
 正在创建并启动 Oracle 实例
 DBCA_PROGRESS : 40%
 DBCA_PROGRESS : 45%
 DBCA_PROGRESS : 50%
 DBCA_PROGRESS : 55%
 DBCA_PROGRESS : 56%
 DBCA_PROGRESS : 60%
 DBCA_PROGRESS : 62%
 正在进行数据库创建
 DBCA_PROGRESS : 66%
 DBCA_PROGRESS : 70%
 DBCA_PROGRESS : 73%
 DBCA_PROGRESS : 85%
 DBCA_PROGRESS : 96%
 DBCA_PROGRESS : 100%

数据库创建完成。有关详细信息, 请查看以下位置的日志文件:
/opt/oracle/oracle_base/cfgtoollogs/dbca/wilson/wilson.log
数据库信息:
全局数据库名:wilson
系统标识符 (SID):wilson

建库后实例检查:

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

查看监听状态

lsnrctl status

13 修改数据库为归档模式(归档模式才能热备份,增量备份)

 $ 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 log current;
 SQL> exit

14 修改oracle启动配置文件

 vi /etc/oratab
 wilson:/home/oracle/oracle_base/product/11.2.0/dbhome_1:Y

这样就可以通过dbstart 启动此实例,也可以通过dbshut关闭此实例了。

dbshut /home/oracle/oracle_base/product/11.2.0/dbhome_1

Processing Database instance "wilson": log file  /home/oracle/oracle_base/product/11.2.0/dbhome_1/shutdown.log
此时所有oracle的进程关闭,监听器也停止。

dbstart /home/oracle/oracle_base/product/11.2.0/dbhome_1

Processing Database instance "wilson": log file  /home/oracle/oracle_base/product/11.2.0/dbhome_1 /startup.log

此时监听器工作,wilson实例运行,再次查看监听器状态。

lsnrctl status

15 建立表空间及用户

创建临时表空间

 create temporary tablespace user_temp 
 tempfile '/opt/oracle/oradata/hello/user_temp.dbf' 
 size 50m 
 autoextend on 
 next 50m maxsize 20480m 
 extent management local;

创建数据表空间

 create tablespace user_data 
 logging 
 datafile '/opt/oracle/oradata/hello/user_data.dbf'
 size 50m 
 autoextend on 
 next 50m maxsize 20480m 
 extent management local;

创建用户并指定表空间

 create user test identified by test
 default tablespace user_data 
 temporary tablespace user_temp
 account unlock;

给用户授予权限

grant connect,resource to test;

此时在其他机器上可以远程登录这个用户,命令为:

sqlplus test/test@192.168.1.150/wilson

16 用新建的用户连接数据库

sqlplus test/test@192.168.1.150/wilson

 

 

标签:

除非注明,戊辰人博客文章均为原创,转载请以链接形式标明本文地址

本文地址:https://wanglu.info/182.html

2条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注