此文档是应用于在没有图形界面Linux下Oracle 11g安装方式。
一、环境配备
1.oracle 11g R2 安装包一份,在官网下载会有两个安装包,分别为linux.x64_11gR2_database_1of2.zip、linux.x64_11gR2_database_2of2.zip两个文件。此链接为11.2.0.1.0版本的Oracle。
2.Linux主机一台。本实验采用最小化安装的Centos 6.8系统。
二、安装Oracle 11g R2
1.依赖包安装
1 |
yum -y install binutils* compat* gcc* glibc* ksh* libgcc* libstdc* libaio* make sysstat* |
2.修改/etc/sysctl.conf 文件并添加如下内容:
1 2 3 4 5 6 7 8 9 10 11 |
fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 2097152 kernel.shmmax = 48719476736 kernel.shmmni = 4096 kernel.sem = 250 32000 200 200 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.core.wmem_default = 262144 net.core.wmem_max = 1048586 net.core.rmem_max = 4194304 |
执行以下命令,使命令生效。
1 |
/sbin/sysctl -p |
3.修改/etc/security/limits.conf 添加如下内容:
1 2 3 4 |
oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 |
4.修改 /etc/pam.d/login 添加如下内容:
1 |
session required pam_limits.so |
5.修改 /etc/profile
1 2 3 4 5 6 7 8 9 |
if [ $USER = "oracle" ] ; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi umask 022 fi |
6.创建oracle属组并添加oracle 用户
1 2 3 4 5 6 |
groupadd -g 501 oinstall groupadd -g 502 dba groupadd -g 601 asmadmin groupadd -g 602 asmdba groupadd -g 603 asmoper useradd -u 1101 -g oinstall -G dba oracle |
7.创建oracle软件安装目录以及安装文件存放目录,并挂载光盘,复制安装文件至安装存放目录。
1 2 3 4 5 6 7 8 |
mkdir -p /u01/app/oracle chown -R oracle:oinstall /u01/app chmod -R 775 /u01 mkdir /oracle_install_file mount /dev/sr0 /media cp -R /media/* /oracle_install_file chown -R oracle:oinstall /oracle_install_file chmod -R 755 /oracle_install_file |
8.将以下内容添加至/home/oracle/.bash_profile文件中。
1 2 3 4 5 |
export ORACLE_SID=orcl export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db export PATH=$ORACLE_HOME/bin:$PATH umask 022 |
9.vi /etc/oraInst.loc
1 2 |
inventory_loc=/u01/app/oraInventory inst_group=oinstall |
10.根据实际情况编辑/etc/hosts文件,使主机与IP对应
1 |
192.168.75.3 a.wlzs.cn |
11.静默安装 11.2.0.1 采用 debug模式安装 ,如果有异常则更容易发现错误原因。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
su oracle source /home/oracle/.bash_profile ./runInstaller -silent -debug -force -noconfig -IgnoreSysPreReqs \ oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0 \ oracle.install.option=INSTALL_DB_SWONLY \ DECLINE_SECURITY_UPDATES=true \ UNIX_GROUP_NAME=oinstall \ INVENTORY_LOCATION=/u01/app/oraInventory \ SELECTED_LANGUAGES=en,zh_CN,zh_TW \ ORACLE_HOME=/u01/app/oracle/product/11.2.0/db \ ORACLE_BASE=/u01/app/oracle \ oracle.install.db.InstallEdition=EE \ oracle.install.db.isCustomInstall=false \ oracle.install.db.DBA_GROUP=dba \ oracle.install.db.OPER_GROUP=dba |
附上oracle软件静默安装的参数含义如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
-silent 表示以静默方式安装,不会有任何提示 -force 表示允许安装到一个非空目录 -noconfig 表示不运行配置助手netca -responseFile 表示使用哪个响应文件,必需使用绝对路径 oracle.install.responseFileVersion 响应文件模板的版本,该参数不要更改 oracle.install.option 安装模式选项,本例只安装oracle软件,该参数不要更改 DECLINE_SECURITY_UPDATES 是否需要在线安全更新,设置为false,该参数不要更改 UNIX_GROUP_NAME oracle 用户用于安装软件的组名 INVENTORY_LOCATION oracle 产品清单目录 SELECTED_LANGUAGES oracle 运行语言环境,一般包括引文和简繁体中文 ORACLE_HOME oracle安装目录 ORACLE_BASE oracle基础目录 oracle.install.db.InstallEdition 安装版本类型,一般是企业版 oracle.install.db.isCustomInstall 是否定制安装,默认Partitioning,OLAP,RAT都选上。根据自己的需要选择组件。 oracle.install.db.customComponents 定制安装组件列表:除了以上默认的,可加上Label Security和Database Vault oracle.install.db.DBA_GROUP oracle 用户用于授予osdba权限的组名 oracle.install.db.OPER_GROUP oracle 用户用于授予osoper权限的组名 |
如果安装成功,将会出现以下提示。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
以下配置脚本需要以 "root" 用户的身份执行。 #!/bin/sh #要运行的 Root 脚本 /u01/app/oracle/product/11.2.0/db/root.sh 要执行配置脚本, 请执行以下操作: 1. 打开一个终端窗口 2. 以 "root" 身份登录 3. 运行脚本 4. 返回此窗口并按 "Enter" 键继续 Successfully Setup Software. copying /u01/app/oraInventory/logs/oraInstall2016-08-19_01-11-31PM.err to /u01/app/oracle/product/11.2.0/db/cfgtoollogs/oui/oraInstall2016-08-19_01-11-31PM.err copying /u01/app/oraInventory/logs/oraInstall2016-08-19_01-11-31PM.out to /u01/app/oracle/product/11.2.0/db/cfgtoollogs/oui/oraInstall2016-08-19_01-11-31PM.out copying /u01/app/oraInventory/logs/installActions2016-08-19_01-11-31PM.log to /u01/app/oracle/product/11.2.0/db/cfgtoollogs/oui/installActions2016-08-19_01-11-31PM.log |
使用root用户执行以上提示的命令。
1 |
sh /u01/app/oracle/product/11.2.0/db/root.sh |
12.静默安装DB
安装完成oracle软件之后还没创建db,我们可以继续使用静默方式创建数据库。
编辑db.rsp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
[GENERAL] RESPONSEFILE_VERSION = "11.2.0" OPERATION_TYPE = "createDatabase" [CREATEDATABASE] GDBNAME = "orcl" SID = "orcl" TEMPLATENAME = "New_Database.dbt" SYSPASSWORD = "126.com" SYSTEMPASSWORD = "126.com" SYSMANPASSWORD = "126.com" DBSNMPPASSWORD = "126.com" DATAFILEDESTINATION ="/u01/app/oracle/oradata" STORAGETYPE=FS CHARACTERSET = "AL32UTF8" DATABASETYPE = "MULTIPURPOSE" AUTOMATICMEMORYMANAGEMENT = "FALSE" TOTALMEMORY =8192 |
创建完成后执行以下命令。根据实际情况更改。
1 |
dbca -silent -responseFile db.rsp |
静默安装过程如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
1% 已完成 正在创建并启动 Oracle 实例 2% 已完成 3% 已完成 5% 已完成 正在创建数据库文件 9% 已完成 正在创建数据字典视图 10% 已完成 11% 已完成 12% 已完成 13% 已完成 14% 已完成 15% 已完成 17% 已完成 18% 已完成 19% 已完成 20% 已完成 21% 已完成 正在添加 Oracle JVM 26% 已完成 32% 已完成 37% 已完成 39% 已完成 正在添加 Oracle Text 40% 已完成 41% 已完成 42% 已完成 添加 Oracle XML DB 44% 已完成 45% 已完成 46% 已完成 49% 已完成 50% 已完成 正在添加 Oracle Multimedia 51% 已完成 61% 已完成 正在添加 Oracle OLAP 62% 已完成 63% 已完成 64% 已完成 正在添加 Oracle Spatial 65% 已完成 66% 已完成 67% 已完成 72% 已完成 添加 Enterprise Manager 资料档案库 74% 已完成 75% 已完成 添加 Oracle Application Express 79% 已完成 82% 已完成 添加 Oracle Warehouse Builder 86% 已完成 90% 已完成 正在进行数据库创建 91% 已完成 92% 已完成 93% 已完成 96% 已完成 100% 已完成 有关详细信息, 请参阅日志文件 "/u01/app/oracle/cfgtoollogs/dbca/orcl/orcl1.log"。 |
13.配置网络监听
vi /u01/app/oracle/product/11.2.0/db/network/admin/listener.ora
根据实际情况进行编辑
1 2 3 4 5 6 7 8 9 10 11 12 13 |
SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = orcl) (SID_NAME = orcl) ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.75.3)(PORT = 1521)(IP = FIRST)) ) ) |
设置完成后,执行以下命令。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
[oracle@a admin]$ lsnrctl start LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 20-AUG-2016 04:55:59 Copyright (c) 1991, 2009, Oracle. All rights reserved. Starting /u01/app/oracle/product/11.2.0/db/bin/tnslsnr: please wait... TNSLSNR for Linux: Version 11.2.0.1.0 - Production System parameter file is /u01/app/oracle/product/11.2.0/db/network/admin/listener.ora Log messages written to /u01/app/oracle/diag/tnslsnr/a/listener/alert/log.xml Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.75.3)(PORT=1531))) Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.75.3)(PORT=1531)(IP=FIRST))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production Start Date 20-AUG-2016 04:55:59 Uptime 0 days 0 hr. 0 min. 0 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /u01/app/oracle/product/11.2.0/db/network/admin/listener.ora Listener Log File /u01/app/oracle/diag/tnslsnr/a/listener/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.75.3)(PORT=1531))) Services Summary... Service "orcl" has 1 instance(s). Instance "orcl", status UNKNOWN, has 1 handler(s) for this service... The command completed successfully |
14.登录数据库
1 2 3 4 5 6 7 8 9 10 11 12 |
[oracle@a admin]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.1.0 Production on Sat Aug 20 04:59:01 2016 Copyright (c) 1982, 2009, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> |
15.启动数据库
1 2 3 4 5 6 7 8 9 10 |
SQL> startup ORACLE instance started. Total System Global Area 308981760 bytes Fixed Size 2212896 bytes Variable Size 104860640 bytes Database Buffers 197132288 bytes Redo Buffers 4775936 bytes Database mounted. Database opened. |
16.设置Oracle开机自动启动
vi /etc/oratab
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# # This file is used by ORACLE utilities. It is created by root.sh # and updated by the Database Configuration Assistant when creating # a database. # A colon, ':', is used as the field terminator. A new line terminates # the entry. Lines beginning with a pound sign, '#', are comments. # # Entries are of the form: # $ORACLE_SID:$ORACLE_HOME:: # # The first and second fields are the system identifier and home # directory of the database respectively. The third filed indicates # to the dbstart utility that the database should , "Y", or should not, # "N", be brought up at system boot time. # # Multiple entries with the same $ORACLE_SID are not allowed. # # orcl:/u01/app/oracle/product/11.2.0/db:N 将此处的N改为Y |
说明:orcl为实例名;/u01/app/oracle/product/11.2.0/db为oracle安装目录;会因安装的情况不同而有所不同。
vi /etc/rc.d/rc.local 添加以下内容,根据实际路径添加
1 2 |
su oracle -lc "/u01/app/oracle/product/11.2.0/db/bin/lsnrctl start" su oracle -lc /u01/app/oracle/product/11.2.0/db/bin/dbstart |
三、遇到的问题
1.LRM-00109: could not open parameter file '/u01/app/oracle/product/11.2.0/db/dbs/initorcl.ora'
1 2 3 |
SQL> startup ORA-01078: failure in processing system parameters LRM-00109: could not open parameter file '/u01/app/oracle/product/11.2.0/db/dbs/initorcl.ora' |
解决方案:
1 |
cp /u01/app/oracle/admin/orcl/pfile/init.ora.719201614651 /u01/app/oracle/product/11.2.0/db/dbs/initorcl.ora |
2.ORA-01102: cannot mount database in EXCLUSIVE mode
1 2 3 4 5 6 7 8 9 |
SQL> startup ORACLE instance started. Total System Global Area 308981760 bytes Fixed Size 2212896 bytes Variable Size 104860640 bytes Database Buffers 197132288 bytes Redo Buffers 4775936 bytes ORA-01102: cannot mount database in EXCLUSIVE mode |
解决方案:
1 |
kill -9 `ps -ef|grep ora |awk '{print $2}'` |
3.The listener supports no services
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
[oracle@a admin]$ lsnrctl start LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 28-AUG-2016 07:46:14 Copyright (c) 1991, 2009, Oracle. All rights reserved. Starting /u01/app/oracle/product/11.2.0/db/bin/tnslsnr: please wait... TNSLSNR for Linux: Version 11.2.0.1.0 - Production System parameter file is /u01/app/oracle/product/11.2.0/db/network/admin/listener.ora Log messages written to /u01/app/oracle/diag/tnslsnr/a/listener/alert/log.xml Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=a.wlzs.cn)(PORT=1521))) Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521)) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production Start Date 28-AUG-2016 07:46:14 Uptime 0 days 0 hr. 0 min. 0 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /u01/app/oracle/product/11.2.0/db/network/admin/listener.ora Listener Log File /u01/app/oracle/diag/tnslsnr/a/listener/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=a.wlzs.cn)(PORT=1521))) <strong>The listener supports no services</strong> The command completed successfully |
解决方案:
查看/u01/app/oracle/product/11.2.0/db/network/admin/listener.ora文件是否存在,本案例中,在检查文件时,发现复制的配置文件里面出现格式错误,情况如下:
正确的格式为:
二〇一六年八月二十七日 13:28:13