折腾了好久,总结一下分享希望能帮助有需要的童鞋。
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
正常运行时间 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)))
监听程序不支持服务
命令执行成功
再查看状态
[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
正常运行时间 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.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
正常运行时间 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 个处理程序...
命令执行成功
成功了!一个空格的原因!!! 再一次吸取教训!以后遇到不要再折腾浪费时间了!
问题又来了
[oracle@template 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)))’
[oracle@template 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服务文件权限
[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 星期四 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_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 //强制删除 用户和用户下的对象一起删除