centos6.5安装oracle数据库详细

折腾了好久,总结一下分享希望能帮助有需要的童鞋。

1、官方网站下载http://www.oracle.com/cn/downloads/index.html 安装包,有2个包,大约2GB左右
包名称:

linux.x64_11gR2_database_1of2.zip
linux.x64_11gR2_database_2of2.zip

我是用迅雷下载的存在本地一份再用WinSCP传到服务器上
服务器信息

配置要求什么检查的就不说了,精简详细说明关键步骤

服务器信息

[root@template ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda3        16G  3.5G   12G  24% /
tmpfs            16G     0   16G   0% /dev/shm
/dev/vda1       194M   34M  151M  19% /boot
/dev/vdb        985G  1.4G  933G   1% /data

所以把oracle安装到/data下

预备工作 需要使用到的工具

1.使用root用户登录操作系统
2.yum 安装 unzip 软件,用来解压上传的Oracle安装文件。

[root@CentOS ~]# yum install unzip –y

3.解压Oracle 安装程序
两个压缩包上传到tmp目录下

[root@CentOS ~]# cd /tmp
[root@CentOS tmp]# unzip linux.x64_11gR2_database_1of2.zip && unzip linux.x64_11gR2_database_2of2.zip

等待解压完成后,会在/tmp目录下生产一个database文件夹,里面就Oracle 11g安装文件。

4.关闭selinux

[root@CentOS tmp]# vim /etc/selinux/config

设置SELINUX=disabled

5.关闭防火墙


[root@CentOS tmp]# service iptables stop

6.安装Oracle 11g依赖包

[root@CentOS tmp]# yum install yum install gcc make binutils gcc-c++ compat-libstdc++-33 elfutils-libelf-devel elfutils-libelf-devel-static ksh libaio libaio-devel numactl-devel sysstat unixODBC unixODBC-devel pcre-devel –y

7.添加安装用户和用户组

[root@CentOS tmp]# groupadd oinstall
[root@CentOS tmp]# groupadd dba
[root@CentOS tmp]# useradd -g oinstall -G dba oracle
[root@CentOS tmp]# passwd oracle
[root@CentOS tmp]# id oracle
uid=1001(oracle) gid=1001(oinstall) 组=1001(oinstall),1002(dba)

8.修改内核参数配置文件 (有待验证)
[root@CentOS ~]# vim /etc/sysctl.conf

添加以下内容

fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 1073741824
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576

[root@CentOS ~]# sysctl –p

其中kernel.shmmax = 1073741824为本机物理内存(2G)的一半,单位为byte。

9.修改用户的限制文件


[root@CentOS ~]# 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文件:

[root@CentOS ~]# vim /etc/pam.d/login

添加以下内容:


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

修改/etc/profile文件:

[root@CentOS ~]# 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

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


[root@CentOS ~]# mkdir -p /u01/app/oracle/product/11.2.0
[root@CentOS ~]# mkdir /u01/app/oracle/oradata
[root@CentOS ~]# mkdir /u01/app/oracle/inventory
[root@CentOS ~]# mkdir /u01/app/oracle/fast_recovery_area
[root@CentOS ~]# chown -R oracle:oinstall /u01/app/oracle
[root@CentOS ~]# chmod -R 775 /u01/app/oracle

13.设置oracle用户环境变量

[root@CentOS ~]# su - oracle
[oracle@CentOS ~]$ vim .bash_profile

添加如下内容:

ORACLE_BASE=/data/app/oracle
ORACLE_HOME=$ORACLE_BASE/product/11.2.0
ORACLE_SID=orcl
PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH
~              

14.编辑静默安装响应文件

[oracle@CentOS ~]$ cp -R /tmp/database/response/ .
[oracle@CentOS ~]$ cd response/
[oracle@CentOS response]$ vim db_install.rsp

具体解释

oracle.install.option=INSTALL_DB_SWONLY //29 行 安装类型
ORACLE_HOSTNAME=java-linux-test //37 行 主机名称(自己对应的主机名称,可利用hostname查看)
UNIX_GROUP_NAME=oinstall //42 行 安装组
INVENTORY_LOCATION=/soft/u01/oraInventory //47 行 INVENTORY目录 必须在ORACLE_BASE路径以外
SELECTED_LANGUAGES=en,zh_CN,zh_TW //78 行 选择语言
ORACLE_HOME=/soft/u01/app/oracle/product/11.2.0/db_1 //83 行 oracle_home
ORACLE_BASE=/soft/u01/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行 globalDBName
oracle.install.db.config.starterdb.SID=orcl //170行 SID
oracle.install.db.config.starterdb.memoryLimit=512 //192行 自动管理内存的最小内存(M)(200行)
oracle.install.db.config.starterdb.password.ALL=oracle //233行 设定所有数据库用户使用同一个密码
DECLINE_SECURITY_UPDATES=true //385行 设置安全更新
        具体可查看db_install.rsp文件

特别注意路径的正确性! 楼主就是因为ORACLE_HOME=/soft/u01/app/oracle/product/11.2.0/db_1 **这里多写一个等号折腾了好久 另外 如果出现报错要多查日志

INFO: size estimation for EEinstall is 4397.013998031616
SEVERE: [FATAL] [INS-32015] 为Oracle 主目录位置指定的位置无效。
   原因: 指定的位置不能供Oracle 主目录位置使用。在系统上找不到指定的位置或检测到该位置是一个文件。
   操作: 为Oracle 主目录位置指定有效位置。
WARNING: [WARNING] [INS-32018] 所选 Oracle 主目录位于 Oracle 基目录外部。
   原因: 所选 Oracle 主目录位于 Oracle 基目录外部。
   操作: Oracle 建议在 Oracle 基目录中安装 Oracle 软件。请相应调整 Oracle 主目录或 Oracle 基目录。
SEVERE: [FATAL] [INS-32021] 此卷上用于所选 Oracle 主目录的磁盘空间不足。
   原因: 所选 Oracle 主目录所在的卷上没有足够的磁盘空间。
   操作: 请为 Oracle 主目录选择具有足够空间 (最低 4,397MB) 的位置, 或释放现有卷上的空间。

官网给出的错误信息参考**
http://docs.oracle.com/cd/E11882_01/server.112/e17766/common_errormessages.htm#INS-30001

开始安装了,根据响应文件静默安装Oracle 11g

[oracle@CentOS response]$ cd /tmp/database/
[oracle@CentOS database]$ ./runInstaller -silent -responseFile  -ignorePrereq /oracle/response/db_install.rsp//文件路径

开始Oracle在后台静默安装。安装过程中,如果提示[WARNING]不必理会,此时安装程序仍在后台进行,如果出现[FATAL],则安装程序已经停止了。
可以在以下位置找到本次安装会话的日志:
/u01/app/oracle/inventory/logs/installActions2015-06-08_04-00-25PM.log
可以切换终端执行top命令查看后台进程一直是在安装的,/u01目录也在不断增大,
当出现以下提示时,代表安装成功:

按照要求执行脚本。
打开终端,以root身份登录,执行脚本:
[root@CentOS ~]# sh /u01/app/oracle/inventory/orainstRoot.sh
[root@CentOS ~]# sh /u01/app/oracle/product/11.2.0/root.sh

以下是安装成功界面

./runInstaller -silent -responseFile /oracle/response/db_install.rsp -ignorePrereq
正在启动 Oracle Universal Installer...

检查临时空间: 必须大于 120 MB。   实际为 5234 MB    通过
检查交换空间: 必须大于 150 MB。   实际为 4095 MB    通过
准备从以下地址启动 Oracle Universal Installer /tmp/OraInstall2016-05-24_05-04-22PM. 请稍候...[oracle@template database]$ 可以在以下位置找到本次安装会话的日志:
 /data/app/oraInventory/logs/installActions2016-05-24_05-04-22PM.log
以下配置脚本需要以 "root" 用户的身份执行。
 #!/bin/sh 
 #要运行的 Root 脚本

/data/app/oraInventory/orainstRoot.sh
/data/app/oracle/product/11.2.0/root.sh
要执行配置脚本, 请执行以下操作:
         1. 打开一个终端窗口
         2."root" 身份登录
         3. 运行脚本
         4. 返回此窗口并按 "Enter" 键继续

Successfully Setup Software.


先打个草稿 明天再搞监听
以静默方式配置监听

昨天配监听的时候还报了一个错

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

正在对命令行参数进行语法分析:
参数"silent" = true
参数"responsefile" = /oracle/response/netca.rsp
完成对命令行参数进行语法分析。
Oracle Net Services 配置:
完成概要文件配置。
Caught UnknownHostException: template: template
Caught UnknownHostException: template: template
Caught UnknownHostException: template: template
Caught UnknownHostException: template: template
Caught UnknownHostException: template: template
Caught UnknownHostException: template: template
Caught UnknownHostException: template: template
Caught UnknownHostException: template: template
Caught UnknownHostException: template: template
Caught UnknownHostException: template: template
Caught UnknownHostException: template: template
Caught UnknownHostException: template: template
Caught UnknownHostException: template: template
Caught UnknownHostException: template: template
Caught UnknownHostException: template: template
Caught UnknownHostException: template: template
Caught UnknownHostException: template: template
Caught UnknownHostException: template: template
Caught UnknownHostException: template: template
Oracle Net 监听程序启动:
Caught UnknownHostException: template: template
为该监听程序提供的信息正由此计算机上的其他软件使用。
    未能启动监听程序。
有关详细信息, 请查看跟踪文件: /data/app/oracle/cfgtoollogs/netca/trace_OraDb11g_home1-1605245下午3216.log
Oracle Net Services 配置失败。退出代码是1

日志:

[main] [ 2016-05-24 17:34:19.619 CST ] [ConfigureListener.isPortFree:1051]  No IP address returned for local host.
[main] [ 2016-05-24 17:34:19.620 CST ] [ConfigureListener.isPortFree:1055]  Creating ServerSocket on Port:1521, Local IP Address: /127.0.0.1
[main] [ 2016-05-24 17:34:19.620 CST ] [ConfigureListener.isPortFree:1059]  Created ServerSocket successfully.
[main] [ 2016-05-24 17:34:19.620 CST ] [ConfigureListener.isPortFree:1065]  Creating ServerSocket on Port:1521
[main] [ 2016-05-24 17:34:19.620 CST ] [ConfigureListener.isPortFree:1068]  Created ServerSocket successfully.
[main] [ 2016-05-24 17:34:19.620 CST ] [ConfigureListener.isPortFree:1088]  Returning is Port 1521 free: false


今天一早来再运行这个命令

[root@template ~]# $ORACLE_HOME/bin/netca /silent /responseFile /oracle/response/netca.rsp 
Oracle Net Configuration Assistant cannot be run as root.
[root@template ~]# su oracle
[oracle@template root]$ ^C
[oracle@template root]$ $ORACLE_HOME/bin/netca /silent /responseFile /oracle/response/netca.rsp

正在对命令行参数进行语法分析:
参数"silent" = true
参数"responsefile" = /oracle/response/netca.rsp
完成对命令行参数进行语法分析。
Oracle Net Services 配置:
完成概要文件配置。
监听程序 "LISTENER" 已存在。
成功完成 Oracle Net Services 配置。退出代码是0

居然又可以了 神奇 神奇

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

GDBNAME=”orcl.java-linux-test” //78 行 全局数据库的名字=SID+主机域名
SID=”orcl” //149行 SID
CHARACTERSET=”AL32UTF8” //415行 数据库字符集编码,注意将前面的#号去掉(改为ZHS16GBK待测试)
NATIONALCHARACTERSET=”UTF8” //425行 编码
SYSPASSWORD=”sys”//190行 密码可自己设置
SYSTEMPASSWORE=”system”//200行 密码可自己设置
具体可查看dbca.rsp文件
进行静默安装数据库

[oracle@template root]$ $ORACLE_HOME/bin/dbca -silent -responseFile  /oracle/response/dbca.rsp 
sh: /bin/ksh: No such file or directory
sh: /bin/ksh: No such file or directory
复制数据库文件
1% 已完成
3% 已完成
11% 已完成
18% 已完成
26% 已完成
37% 已完成
正在创建并启动 Oracle 实例
40% 已完成
45% 已完成
50% 已完成
55% 已完成
56% 已完成
60% 已完成
62% 已完成
正在进行数据库创建
66% 已完成
70% 已完成
73% 已完成
85% 已完成
96% 已完成
100% 已完成
有关详细信息, 请参阅日志文件 "/data/app/oracle/cfgtoollogs/dbca/orcl11g/orcl11g.log"

启动监听又遇到问题了


[oracle@template root]$ lsnrctl start

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 25-5月 -2016 10:33:02

Copyright (c) 1991, 2009, Oracle.  All rights reserved.

启动/data/app/oracle/product/11.2.0/bin/tnslsnr: 请稍候...

TNSLSNR for Linux: Version 11.2.0.1.0 - Production
系统参数文件为/data/app/oracle/product/11.2.0/network/admin/listener.ora
写入/data/app/oracle/diag/tnslsnr/template/listener/alert/log.xml的日志信息
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
TNS-12533: TNS: 非法的 ADDRESS 参数
 TNS-12560: TNS: 协议适配器错误
  TNS-00503: 非法的 ADDRESS 参数


监听程序未能启动。请参阅上面的错误消息...

vim /data/app/oracle/product/11.2.0/network/admin/listener.ora查看到

# listener.ora Network Configuration File: /data/app/oracle/product/11.2.0/network/admin/listener.ora
# Generated by Oracle configuration tools.

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(PORT = 1521))
    )
  )

ADR_BASE_LISTENER = /data/app/oracle                                                                                                      
~                                                         

修改为

(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))

再执行

[root@template ~]# lsnrctl start

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 25-5月 -2016 10:38:02

Copyright (c) 1991, 2009, Oracle.  All rights reserved.

启动/data/app/oracle/product/11.2.0/bin/tnslsnr: 请稍候...

TNSLSNR for Linux: Version 11.2.0.1.0 - Production
系统参数文件为/data/app/oracle/product/11.2.0/network/admin/listener.ora
写入/data/app/oracle/diag/tnslsnr/template/listener/alert/log.xml的日志信息
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))

正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
LISTENER 的 STATUS
------------------------
别名                      LISTENER
版本                      TNSLSNR for Linux: Version 11.2.0.1.0 - Production
启动日期                  25-5月 -2016 10:38:07
正常运行时间              00 小时 05 秒
跟踪级别                  off
安全性                    ON: Local OS Authentication
SNMP                      OFF
监听程序参数文件          /data/app/oracle/product/11.2.0/network/admin/listener.ora
监听程序日志文件          /data/app/oracle/diag/tnslsnr/template/listener/alert/log.xml
监听端点概要...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
监听程序不支持服务
命令执行成功

再查看状态

[root@template ~]# lsnrctl status

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 25-5月 -2016 10:40:34

Copyright (c) 1991, 2009, Oracle.  All rights reserved.

正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
LISTENER 的 STATUS
------------------------
别名                      LISTENER
版本                      TNSLSNR for Linux: Version 11.2.0.1.0 - Production
启动日期                  25-5月 -2016 10:38:07
正常运行时间              00 小时 232 秒
跟踪级别                  off
安全性                    ON: Local OS Authentication
SNMP                      OFF
监听程序参数文件          /data/app/oracle/product/11.2.0/network/admin/listener.ora
监听程序日志文件          /data/app/oracle/diag/tnslsnr/template/listener/alert/log.xml
监听端点概要...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
服务摘要..
服务 "orcl11g.us.oracle.com" 包含 1 个实例。
  实例 "orcl", 状态 READY, 包含此服务的 1 个处理程序...
命令执行成功

今天又遇到一个奇葩的事情

在改了ORACLE_SID后启动监听

[oracle@template pfile]$  lsnrctl start

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 25-5月 -2016 16:48:28

Copyright (c) 1991, 2009, Oracle.  All rights reserved.

启动/data/app/oracle/product/11.2.0/bin/tnslsnr: 请稍候...

TNSLSNR for Linux: Version 11.2.0.1.0 - Production
系统参数文件为/data/app/oracle/product/11.2.0/network/admin/listener.ora
写入/data/app/oracle/diag/tnslsnr/template/listener/alert/log.xml的日志信息
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
TNS-01201: 监听程序无法找到可执行的/data/app/oracle/product/11.2.0/bin/orcl11g以用于 SID orcl11g

错误信息
TNS-01201: 监听程序无法找到可执行的/data/app/oracle/product/11.2.0/bin/orcl11g以用于 SID orcl11g

谷歌了一下
大概说是路径不对
参考这篇这里写链接内容

echo $ORACLE_SID

这个要和文件/data/app/oracle/product/11.2.0/network/admin/listener.ora

中 (ORACLE_HOME=/data/app/oracle/product/11.2.0)
相同
我这里是相同的。那就奇了怪了。想起了以前好像也遇到过这种怀疑是不是有空格的原因。删掉了等号两边的空格 再执行启动

[oracle@template pfile]$  lsnrctl start

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 25-5月 -2016 16:57:22

Copyright (c) 1991, 2009, Oracle.  All rights reserved.

启动/data/app/oracle/product/11.2.0/bin/tnslsnr: 请稍候...

TNSLSNR for Linux: Version 11.2.0.1.0 - Production
系统参数文件为/data/app/oracle/product/11.2.0/network/admin/listener.ora
写入/data/app/oracle/diag/tnslsnr/template/listener/alert/log.xml的日志信息
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))

正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))
LISTENER 的 STATUS
------------------------
别名                      LISTENER
版本                      TNSLSNR for Linux: Version 11.2.0.1.0 - Production
启动日期                  25-5月 -2016 16:57:27
正常运行时间              00 小时 010 秒
跟踪级别                  off
安全性                    ON: Local OS Authentication
SNMP                      OFF
监听程序参数文件          /data/app/oracle/product/11.2.0/network/admin/listener.ora
监听程序日志文件          /data/app/oracle/diag/tnslsnr/template/listener/alert/log.xml
监听端点概要...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
服务摘要..
服务 "orcl11g" 包含 1 个实例。
  实例 "orcl11g", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
命令执行成功

成功了!一个空格的原因!!! 再一次吸取教训!以后遇到不要再折腾浪费时间了!

问题又来了

 [oracle@template pfile]$  sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on 星期三 525 17:04:46 2016

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

已连接到空闲例程。

SQL> select status from v$instance;
select status from v$instance
*
第 1 行出现错误:
ORA-01034: ORACLE not available
进程 ID: 0
会话 ID: 0 序列号: 0

错误信息
ORA-01034: ORACLE not available

启动实例失败

ORA-01078: failure in processing system parameters

SQL> connect sys as sysdba
输入口令: 
已连接到空闲例程。
SQL> startup nomount
ORA-01078: failure in processing system parameters
LRM-00109: ???????????????? '/data/app/oracle/product/11.2.0/dbs/initorcl11g.ora'

谷歌到

这是因为在oracle9i和oracle10g中,数据库默认将使用spfile启动数据库,如果spfile不存在,则就会出现上述错误。
解决方法:
将$ORACLE_BASE/admin/数据库名称/pfile目录下的init.ora.012009233838形式的文件copy到$ORACLE_HOME/dbs目录下initoracle.ora即可。(注:initoracle.ora中的oracle为你的实例名 ORACLE_SID)

没有什么卵用 还是ORA-01078: failure in processing system parameters

猜想是不是复制的时候权限问题,改了权限
chmod 777 initorcl11g.ora

果然 报错不一样了

SQL> startup
ORA-00119: invalid specification for system parameter LOCAL_LISTENER
ORA-00132: syntax error or unresolved network name 'LISTENER_ORCL'

谷歌到这篇

实用很奏效!坚持就是胜利!

[root@template dbs]# su oracle
[oracle@template dbs]$ strings spfileorcl.ora  > initorcl.ora
[oracle@template dbs]$ grep local_liste initorcl.ora 
*.local_listener='LISTENER_ORCL'

修改这个文件

[oracle@template dbs]$ vim initorcl.ora 
  *.local_listener='LISTENER_ORCL' 
  这里改为下面这行
*.local_listener='(ADDRESS_LIST=(Address=(Protocol=TCP)(Host=127.0.0.1)(Port=1521)))'
*.memory_target=13464764416

不容易
startup 加载的是这个文件/data/app/oracle/product/11.2.0/dbs/initorcl11g.ora
修改local_listener值为下面这行

local_listener=’(ADDRESS_LIST=(Address=(Protocol=TCP)(Host=127.0.0.1)(Port=1521)))’

[oracle@template root]$ sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Production on 星期三 525 17:47:11 2016

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

SQL> connect sys as sysdba
输入口令: 
已连接到空闲例程。
SQL> startup
ORA-00119: invalid specification for system parameter LOCAL_LISTENER
ORA-00132: syntax error or unresolved network name 'LISTENER_ORCL'
这里是修改了上面文件之后运行的
SQL> startup nomount pfile='/data/app/oracle/product/11.2.0/dbs/initorcl.ora'
ORACLE 例程已经启动。

Total System Global Area 1.3429E+10 bytes
Fixed Size                  2217992 bytes
Variable Size            6845106168 bytes
Database Buffers         6576668672 bytes
Redo Buffers                4661248 bytes
SQL> 
SQL>  select status from v$instance;

STATUS
------------------------
STARTED

数据库正常启动。

一些奇奇怪怪的问题也遇到不少。后面就没有条理了。只是单纯的纪录过程,有空再来整理一下。

接下来还要弄开机启动
要注意权限问题!

 1.修改/u01/app/oracle/product/11.2.0/bin/dbstart
[oracle@CentOS ~]$ vim /u01/app/oracle/product/11.2.0/bin/dbstart
将ORACLE_HOME_LISTNER=$1修改为ORACLE_HOME_LISTNER=$ORACLE_HOME
2.修改/u01/app/oracle/product/11.2.0/bin/dbshut
[oracle@CentOS ~]$ vim /u01/app/oracle/product/11.2.0/bin/dbshut
将ORACLE_HOME_LISTNER=$1修改为ORACLE_HOME_LISTNER=$ORACLE_HOME
3.修改/etc/oratab文件
[oracle@CentOS ~]$ vim /etc/oratab
将orcl:/u01/app/oracle/product/11.2.0:N中最后的N改为Y,成为orcl:/u01/app/oracle/product/11.2.0:Y
4.输入命令dbshut和dbstart测试
[oracle@CentOS ~]$ dbshut

5.切换到root账户建立自启动脚本
[oracle@CentOS ~]$ su -
[root@CentOS ~]# vim /etc/rc.d/init.d/oracle
添加以下内容(有些值如ORACLE_HOMEORACLE_USER等根据实际情况可以修改):
#!/bin/bash

# oracle: Start/Stop Oracle Database 11g R2
# chkconfig: 345 90 10
# description: The Oracle Database is an Object-Relational Database Management System.
# 
. /etc/rc.d/init.d/functions
LOCKFILE=/var/lock/subsys/oracle
ORACLE_HOME=/data/app/oracle/product/11.2.0
ORACLE_USER=oracle
case "$1" in
'start')
   if [ -f $LOCKFILE ]; then
      echo $0 already running.
      exit 1
   fi 
   echo -n $"Starting Oracle Database:"
   su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl start"
   su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
   su - $ORACLE_USER -c "$ORACLE_HOME/bin/emctl start dbconsole"
   touch $LOCKFILE
   ;;
'stop')
   if [ ! -f $LOCKFILE ]; then
      echo $0 already stopping.
      exit 1
   fi 
   echo -n $"Stopping Oracle Database:"
   su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl stop"
   su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbshut" 
   su - $ORACLE_USER -c "$ORACLE_HOME/bin/emctl stop dbconsole"
   rm -f $LOCKFILE
   ;; 
'restart')
   $0 stop
   $0 start
   ;; 
'status')
   if [ -f $LOCKFILE ]; then
      echo $0 started.
      else 
      echo $0 stopped.
   fi 
   ;;
*) 
   echo "Usage: $0 [start|stop|status]"
   exit 1
esac
exit 0

6.修改/etc/init.d/oracle服务文件权限
[root@CentOS init.d]# chmod 755 /etc/init.d/oracle
7.设置为开机启动
[root@CentOS ~]# chkconfig oracle on
8.进行service oracle start/stop/restart测试

9.Reboot重启查看Oracle监听和实例进程均能自动启动。

本来以为搞定了的 重启之后登陆又报错

[root@template ~]# su oracle
[oracle@template root]$ sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Production on 星期四 526 10:24:27 2016

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

SQL> connect sys as sysdba
输入口令: 
已连接到空闲例程。
SQL> startup
ORA-00845: MEMORY_TARGET not supported on this system

ORA-00845: MEMORY_TARGET not supported on this system网上大致是说
1.初始化参数MEMORY_TARGET或MEMORY_MAX_TARGET不能大于共享内存(/dev/shm),为了解决这个问题,可以增大/dev/shm
如:
mount -t tmpfs shmfs -o size=7g /dev/shm
2.为了确保操作系统重启之后能生效,需要修改/etc/fstab文件
shmfs /dev/shm tmpfs size=26g 0
3.如果/dev/shm没有挂载也会报上面的错,所认需要确保已经挂载

加到到26G

UUID=bad70c1b-a5ed-44c3-8915-dc97715cec5b /                       ext4    defaults        1 1
UUID=042dbbac-8779-48bc-b146-440d2b08e1e8 /boot                   ext4    defaults        1 2
UUID=d493e650-ec82-4b48-89fb-62656bf52f40 swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults,size=26g         0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0

/dev/vdb                /data                   ext3    defaults        0 0 
~                   

到此终于搞定了。重启了两次测试了也没问题。2016年5月26日11:28:46 纪念一下!
总结回顾一下。
因为第一次装走了很多弯路。各种报错各种折腾,抱着不放弃的信仰终于还是被我搞定了。
第一步:修改系统配置文件,为安装做准备。解压好安装包。
第二步:编辑应答文件命令进行安装。
第三步:数据库配置,静默方式配置监听。这里是折腾最久的。创建实例数据库ORACLE_HOME和ORACLE_SID各个地方要统一。不然很麻烦。 权限问题要注意!
第四步:测试了。
比较乱,有时间再来整理一下

主要参考到这篇

附件:

  2、oracle启动,windows下通常在服务里启动oracle,一般情况下同时启动相关实例,但也可以设置启动oracle时,不

启动任何指定实例,这样oracle的启动速度相当快。

  3、设定我们需要启动的相关实例。在console窗口中,输入 set oracle_sid=xxx (unix环境下用export命令)

  4、用/nolog方式,进入sqlplus。 在console窗口中,输入 sqlplus /nolog ,然后回车,则进入sqlplus环境。

  5、输入命令 connect sys as sysdba 回车后,提示输入口令,直接回车,则以sysdba的角色连接到oracle的空闲实例

。

  6、输入命令 startup nomount 回车,则启动了xxx实例,由set oracle_sid=xxx设置。

  7、输入命令 alter database mount 回车,则将相应的数据库挂接到xxx实例。

  8、输入命令 alter database open 回车,则打开了相应数据库。

  9、输入命令 shutdown,则关闭数据库、卸载数据库、关闭实例。
---------------------------------------------
oracle操作系统不同的启动顺序:
linux\Unix 下oracle的启动过程
           lsnrctl start
           //sqlplus sys/oracle as sysdba;
           sqlplus /nolog 
           conn sys/oracle as sysdba
           startup

windows   下oracle的启动过程
           lsnrctl start;
           oradim -startup -sid orcl;
--------------------------------------
ora_dba 默认组
sqlplus sys/oracle as sysdba;
sys密码丢失
orapwd;
Usage:orapwd file=(fname) password=(password) entried=(users) force=(y/n)
orapwd file=D:\oracle\product\10.2.0\db_2\database\PWDorcl.ora password=123456 entries=10
select * from v$pwfile_users;//特权用户
---------------------------------------
数据库用户登录:
connect scott/tiger;
connect system/manager
connect sys/change_on_install as sysdba;//最高权限

create user abc
2 identified by abc
3 default tablespace users   //存放用户数据
4 Temporary Tablespace Temp  //临时数据放入Temp  临时表空间不能有限额.
5 Quota 50M on users
6 ;

alter user 用户名 Account Lock      //用户加锁
alter user 用户名 Account Unlocak   //用户解锁
alter User 用户名 Password Expire   //用户口令即刻失效
Drop user 用户名 cascade //强制删除 用户和用户下的对象一起删除

你可能感兴趣的:(我的笔记,服务器linux,数据库,服务器)