admin管理员组

文章数量:1566354

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

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依赖包

[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.修改内核参数配置文件 (有待验证)

[[email protected] ~]# 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

其中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) 的位置, 或释放现有卷上的空间。

开始安装了,根据响应文件静默安装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身份登录,执行脚本:

[[email protected] ~]# sh /u01/app/oracle/inventory/orainstRoot.sh

[[email protected] ~]# 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. 请稍候...[[email protected] 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"。

启动监听又遇到问题了

[[email protected] 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))

再执行

[[email protected] ~]# 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

正常运行时间 0 天 0 小时 0 分 5 秒

跟踪级别 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)))

监听程序不支持服务

命令执行成功

再查看状态

[[email protected] ~]# 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

正常运行时间 0 天 0 小时 2 分 32 秒

跟踪级别 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" 包含 1 个实例。

实例 "orcl", 状态 READY, 包含此服务的 1 个处理程序...

命令执行成功

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

在改了ORACLE_SID后启动监听

[[email protected] 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)

相同

我这里是相同的。那就奇了怪了。想起了以前好像也遇到过这种怀疑是不是有空格的原因。删掉了等号两边的空格 再执行启动

[[email protected] 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

正常运行时间 0 天 0 小时 0 分 10 秒

跟踪级别 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 个处理程序...

命令执行成功

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

问题又来了

[[email protected] pfile]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on 星期三 5月 25 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)))’

[[email protected] root]$ sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Production on 星期三 5月 25 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_HOME和ORACLE_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服务文件权限

[[email protected] init.d]# chmod 755 /etc/init.d/oracle

7.设置为开机启动

[[email protected] ~]# 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 星期四 5月 26 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