RHEL6.4 x86_64静默安装Oracle 11g r2
1 安装环境
操作系统:CetnOS6.4 x86_64
数据库版本:oracle 11g r2
2 准备工作
root用户登录后
1 2 | unzip linux.x64_11gR2_database_1of2.zip #解压 unzip linux.x64_11gR2_database_2of2.zip |
在/etc/hosts文件中增加主机名(通过hostname获得)到回环IP的映射如下:
1 2 3 | 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.1.150 rhel |
3 安装必须的包
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 | 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 准备安装用户及用户组
1 2 3 4 | groupadd oinstall groupadd dba useradd -g oinstall -G dba -d /home/oracle oracle passwd oracle #设置oracle密码 |
5 修改内核参数配置文件
#vim /etc/sysctl.conf 在文件最后增加
01 02 03 04 05 06 07 08 09 10 11 | 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 |
保存文件。输入命令:
1 2 3 | modprobe bridge lsmod | grep bridge /sbin/sysctl -p #让参数生效 |
6 修改用户的限制文件
#vim /etc/security/limits.conf 在文件后增加
1 2 3 4 5 | oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 oracle soft stack 10240 |
保存文件。
修改/etc/pam.d/login文件,增加如下:
1 2 | session required /lib64/security/pam_limits.so session required pam_limits.so |
修改/etc/profile,增加:
1 2 3 4 5 6 7 8 | if [ \$USER = "oracle" ]; then if [ \$SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi |
7 创建安装目录和设置文件权限
1 2 3 4 5 6 7 8 | 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 编辑静默安装响应文件
1 2 3 4 5 6 7 | 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 |
需要设置的选项如下:
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 | 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 |
配置环境变量
01 02 03 04 05 06 07 08 09 10 11 | # 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
1 2 | cd /home/oracle/database . /runInstaller -silent -responseFile /home/oracle/response/db_install_swonly .rsp |
安装过程中,如果提示[WARNING]不必理会,此时安装程序仍在进行,如果出现[FATAL],则安装程序已经停止了。打开另一个终端,执行
1 | tail -100f /home/oracle/inventory/logs/installActions ......log |
可以实时跟踪查看安装日志,了解安装的进度。
当出现
以下配置脚本需要以 "root" 用户的身份执行。
1 2 3 4 | #!/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 编辑静默建库响应文件
1 2 | cd /home/oracle mv dbca.rsp dbca_hello.rsp #改名为dbca_数据库名.rsp |
11 静默配置监听
1 | netca /silent /responsefile /home/oracle/response/netca .rsp |
正在对命令行参数进行语法分析:
参数"silent" = true
参数"responsefile" = /home/oracle/response/netca.rsp
完成对命令行参数进行语法分析。
Oracle Net Services 配置:
完成概要文件配置。
Oracle Net 监听程序启动:
正在运行监听程序控制:
1 | /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,设置如下:
01 02 03 04 05 06 07 08 09 10 11 | 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 |
静默建库命令如下
1 | dbca -silent -responseFile /home/oracle/database/response/dbca .rsp |
复制数据库文件
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 | 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"。
查看日志文件
1 | cat /opt/oracle/oracle_base/cfgtoollogs/dbca/wilson/wilson .log |
复制数据库文件
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | 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% [code lang= "bash" ] 数据库创建完成。有关详细信息, 请查看以下位置的日志文件: /opt/oracle/oracle_base/cfgtoollogs/dbca/wilson/wilson .log 数据库信息: 全局数据库名:wilson 系统标识符 (SID):wilson 建库后实例检查: [code lang= "bash" ] ps -ef | grep ora_ | grep - v grep | wc -l 21 ps -ef | grep ora_ | grep - v grep |
查看监听状态
1 | lsnrctl status |
13 修改数据库为归档模式(归档模式才能热备份,增量备份)
1 2 3 4 5 6 7 8 9 | $ 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启动配置文件
1 2 | vi /etc/oratab wilson: /home/oracle/oracle_base/product/11 .2.0 /dbhome_1 :Y |
这样就可以通过dbstart 启动此实例,也可以通过dbshut关闭此实例了。
1 | 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的进程关闭,监听器也停止。
1 | 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实例运行,再次查看监听器状态。
1 | lsnrctl status |
15 建立表空间及用户
创建临时表空间
1 2 3 4 5 6 | create temporary tablespace user_temp tempfile '/opt/oracle/oradata/hello/user_temp.dbf' size 50m autoextend on next 50m maxsize 20480m extent management local ; |
创建数据表空间
1 2 3 4 5 6 7 | create tablespace user_data logging datafile '/opt/oracle/oradata/hello/user_data.dbf' size 50m autoextend on next 50m maxsize 20480m extent management local ; |
创建用户并指定表空间
1 2 3 4 | create user test identified by test default tablespace user_data temporary tablespace user_temp account unlock; |
给用户授予权限
1 | grant connect,resource to test ; |
此时在其他机器上可以远程登录这个用户,命令为:
1 | sqlplus test /test @192.168.1.150 /wilson |
16 用新建的用户连接数据库
1 | sqlplus test /test @192.168.1.150 /wilson |
除非注明,戊辰人博客文章均为原创,转载请以链接形式标明本文地址
非常不错,完全可用
如有错误,欢迎指正