阿里云服务器CentOS5.8安装Oracle10g

简介:

oracle安装了至少5、6次,折腾了好多天,现在记录下来,等后续了解更深一步的时候,再补充相关操作。



操作系统:ALI ECS CentOS release 5.8 (Final) 64位
oracle版本:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit

一、下载必须安装包:

# yum -y install binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers ksh libaio libaio-devel  libgcc  libstdc++  libstdc++-devel libXp libXt libXtst make sysstat
# yum clean all
#这里放入了 libXp libXt libXtst ,如果不安装,会提示njni10 getoraclehome错误
#网上教程多写的64位文件为i686,新版实际为x86_64,这点请注意

二、 修改 sysctl.conf 配置文件:
# vim /etc/sysctl.conf
   在文件末尾添加一下内容:
#use for Oracle
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 = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 262144
立即执行修改:
# sysctl -p

三、 修改 limits.conf 配置文件. 此文件用于设置系统资源限制.
# vi /etc/security/limits.conf
在文件末尾加上以下内容:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

四、 编辑 /etc/pam.d/login 文件:
# vi /etc/pam.d/login
在文件末尾加上以下内容:
session required /lib/security/pam_limits.so
session required pam_limits.so

五、创建oraInst.loc
# vim /etc/oraInst.loc
inventory_loc=/home/oracle/ora10g/oraInventory
inst_group=oinstall
#请注意复制的时候,是否inventory_loc完整,如果少一个i,后边安装会提示java heap不足

六、 创建相应的用户名和用户组:
# groupadd oinstall
# groupadd dba
# useradd -g oinstall -G dba oracle
 修改密码:
# passwd oracle

更改属组及权限
chown oracle:oinstall /etc/oraInst.loc
chmod 664 /etc/oraInst.loc

七、 修改 /etc/profile 限制其他用户使用:
# vim /etc/profile
在文件末尾加入以下内容:
if [ USER="oracle"];thenif[SHELL = "/bin/ksh" ]; then
        ulimit -p 16384
        ulimit -n 65536
    else
        ulimit -u 16384 -n 65536
    fi
fi

八、修改Linux 发行版本. 因为Oracle10G发行的时候, Centos6.5还没有发行. 所以必须修改:
# vim /etc/redhat-release
注释文件本身内容, 在下录入以下内容:
redhat-4

九、 创建oralce安装目录以及数据存放目录.
# mkdir -p /home/oracle/ora10g
# mkdir -p  /home/oracle/ora10g/oraInventory
# chown -R oracle:oinstall /home/oracle/ora10g/
# chmod -R 775 /home/oracle/ora10g/

十、 配置Oracle用户环境变量:
# vi /home/oracle/.bash_profile
在文件末尾加入以下内容:
#Oracle Settings
export TMP=/tmp;
export TMPDIR=TMP;exportORACLEBASE=/home/oracle/ora10g;exportORACLEHOME=ORACLE_BASE/product/10.2.0/db_1;
export ORACLE_SID=orcl10g;
export ORACLE_TERM=xterm;
export PATH=/usr/sbin:PATH;exportPATH=ORACLE_HOME/bin:PATH;exportLDLIBRARYPATH=ORACLE_HOME/lib:/lib:/usr/lib;
export CLASSPATH=ORACLEHOME/JRE:ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib;

十一、 使配置生效:
# source /home/oracle/.bash_profile

十二、 解压安装文件
将下载的10201_database_linux_x86_64.cpio.gz(数据库安装文件) 复制到 /home/oracle/ora10g/目录下.
# cp /home/software/10201_database_linux_x86_64.cpio.gz /home/oracle/ora10g
首先解压gz包.
# cd /home/oracle/ora10g
# gzip -d 10201_database_linux_x86_64.cpio.gz
在使用cpio解压出文件.
# cpio -idmv < 10201_database_linux_x86_64.cpio

十三、更改解压出来的database文件件及文件的所有者和用户组为oracle和oinstall.
# chown -R oracle:oinstall /home/oracle/ora10g/database/

十四、编辑安装需要的应答文件
(1) 以root身份登录
(2) 静默模式(Silent)安装必须指定一个应答文件来完成安装过程所须的各类参数。
    在Oracle安装目录的response子目录里有enterprise.rsp、standard.rsp和custom.rsp三个应答文件,分别对应企业版、标准版和定制的安装。
(3) 以enterprise.rsp为例,用任意的文本编辑器打它,修改以下这些项目的值。

配置enterprise.rsp文件
# vi /home/oracle/ora10g/database/response/enterprise.rsp
修改以下值  红色为必须修改项,其他按需要
RESPONSEFILE_VERSION=2.2.1.0.0
UNIX_GROUP_NAME="oinstall"
ORACLE_HOME="/home/oracle/ora10g/product/10.2.0/db_1"
ORACLE_HOME_NAME="OraDb10g_home1"
SHOW_INSTALL_PROGRESS_PAGE= true
RESTART_SYSTEM=false
RESTART_REMOTE_SYSTEM=false
SHOW_END_OF_INSTALL_MSGS= true
COMPONENT_LANGUAGES={"zh_CN"}   默认en
INSTALL_TYPE="EE"
s_nameForDBAGrp= "dba"                         如设置无效组,会出现权限不够错误
s_nameForOPERGrp="dba"
n_configurationOption=3                    安装类型(1为在安装后创建数据库, 2为安装后创建一个自动存储管理实例, 3为只安装服务器软件),这里我选择3。

说明:这几项要视情况而定比如说 UNIX_GROUP_NAME="oinstall" 和s_nameForDBAGrp= "dba" s_nameForOPERGrp="dba"还有环境变量都要参照前面自己定义好的来

十五、开始安装
(1) 用oracle用户登录,然后在Oracle安装目录里执行
    $ ./runInstaller -ignoreSysPrereqs -silent -responseFile <应答文件的绝对路径>
(2) 接下来就是等待安装结束了。
各安装参数的含义如下:
-ignoreSysPrereqs 让Oracle忽略系统检查,因为Oracle官方声明只支持Linux服务器产品,所以要在非服务器产品的Linux上安装就必须指定此参数。
-silent 表示以静默方式安装,不会有任何提示
-force 允许安装到一个非空目录
-noconfig 表示不运行配置助手netca
-responseFile 表示使用哪个响应文件,必需使用绝对路径
在这里我输入:
./runInstaller -silent -ignoreSysPrereqs -responseFile /home/oracle/ora10g/database/response/enterprise.rsp

十六、系统初始化
(1) 以root用户登录
(2) 运行以下两个脚本:
    /home/oracle/ora10g/oraInventory/orainstRoot.sh (当前版本没有这个脚本)   /home/oracle/ora10g/product/10.2.0/db_1/root.sh

十七、安装网络监听器
#vi ./response/netca.rsp
(1) 以oracle登陆
(2) 没有网络监听器,客户端就无法通过网络连接Oralce服务器。要在命令行安装网络监听器,也只能使用静默模式。
(3) 编辑Oracle安装目录里response子目录下的应答文件 netca.rsp, 修改以下项目:
INSTALL_TYPE=""CUSTOM"" 安装的类型,这里我使用默认值
LISTENER_NUMBER=1 监听器数量,这里我使用默认值
LISTENER_NAMES={"LISTENER"} 监听器的名称列表,这里我使用默认值
LISTENER_PROTOCOLS={"TCP;1521"} 监听器使用的通讯协议列表,这里我使用默认值
LISTENER_START=""LISTENER"" 监听器启动的名称,这里我使用默认值
(4) 然后运行
    ORACLEHOME/bin/netca/silent/responseFile<>ORACLE_HOME/bin/netca /silent /responseFile /home/oracle/ora10g/database/response/netca.rsp

十八、修改dbstart
(1) 以oracle身份登录
(2) 打开 ORACLEHOME/bin/dbstartORACLEHOMELISTNER=/ade/vikrkumanew/oracleORACLEHOMELISTNER=ORACLE_HOME
    否则网络监听器可能无法自动启动。

十九、安装数据库实例
#vi ./response/dbca.rsp
修改配置
OPERATION_TYPE = "createDatabase"
GDBNAME = "oracle10g"
SID = "orcl10g"
TEMPLATENAME = "General_Purpose.dbc"   如不设置会出现“静默DBCA创建数据库时遭遇模板不存在问题”
 SYSPASSWORD = "oracle"
SYSTEMPASSWORD = "oracle"
CHARACTERSET = "ZHS16GBK"
运行以下命令安装实例
$ORACLE_HOME/bin/dbca -cloneTemplate -silent –responseFile /home/oracle/ora10g/database/response/dbca.rsp

二十、修改Oracle启动配置文件:/etc/oratab
(1) 以oracle用户登录
(2) 然后编辑 /etc/oratab
    将<Oracle的SID>:<Oracle的主目录>:N
    修改为ora10g:/app/oracle/10g:Y
orcl10g:/home/oracle/ora10g/product/10.2.0/db_1:Y
    使数据库实例能够自动启动。

二十一、 启动和关闭监听
启动监听:lsnrctl start
关闭监听:lsnrctl stop
    检查监听:lsnrctl status

二十二、启动Oracle实例
#su - oracle
#export ORACLE_SID=orcl10g
以sysdba身份登入数据库,输入:
#sqlplus '/ as sysdba'
SQL> startup
就可以正常的启动数据库了。
备注:也可以用$ORACLE_HOME/bin/dbstart启动数据库实例

二十三、关闭数据库实例
SQL> shutdown immediate
备注:也可以用 $ORACLE_HOME/bin/dbstart 启动数据库实例

二十四、创建用户
create user test identified by test account unlock;
grant resource,connect to test;

二十五、其他
#创建表空间
create TEMPORARY TABLESPACE AFINITOR_TEMP TEMPFILE '/u01/app/oracle/oradata/orcl/AFINITOR_TEMP.ORA' SIZE 32M AUTOEXTEND ON NEXT 32M MAXSIZE 2048M EXTENT MANAGEMENT LOCAL;
#创建临时表空间
create TABLESPACE AFINITOR LOGGING DATAFILE '/u01/app/oracle/oradata/orcl/AFINITOR.DBF' SIZE 32M AUTOEXTEND ON NEXT 32M MAXSIZE 2048M EXTENT MANAGEMENT LOCAL;
#创建用户
create user afinitor identified by afinitor default tablespace AFINITOR temporary tablespace AFINITOR_TEMP;
#给用户授权
grant resource,connect,EXP_FULL_DATABASE,IMP_FULL_DATABASE,CREATE SESSION to afinitor;
grant dba to afinitor;
 #授权导入导出
GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW ,DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,DBA,CONNECT,RESOURCE,CREATE SESSION TO afinitor;

#数据导入
cd /home
wget –c http://nadmin.haott.com/afinitor_db.dmp (此处是在另一服务器下载所需要的数据库dmp文件)
su – oracle
imp afinitor/afinitor@orcl file=/home/afinitor_data_20131206.dmp full=y ignore=y #导入命令

#监听文件
 [oracle@localhost admin]$  cat listener.ora
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = orcl10g)
      (ORACLE_HOME = /home/oracle/ora10g/product/10.2.0/db_1)
#      (PROGRAM = extproc)           要注释掉,否则会出现“ORA-28547:连接服务器失败,可能是Net8管理错误”         
    )
  )
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    )
  )

#tnsnames文件
[oracle@localhost admin]$ cat tnsnames.ora
EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = oracle10g)
    )
  )

二十六、安装排障总结
故障一
ORA-01078: failure in processing system parameters
LRM-00123: invalid character 0 found in the input file
LRM-00109: could not open parameter file '/home/oracle/app/oracle/product/11.2.0/dbhome_1/dbs/initorcl.ora
    经查:pfile目录下无参数文件,SORACLE_HOME/dbs下无密码文件,flash_recovery_area下无相关实例文件
   解决:实例未创建成功,dbca重新创建实例即可,如果有实例情况下,则拷贝pfile下参数文件到dbs下并命名即可。

故障二
     ORA-01031: insufficient privileges
     原因一:组配置错误
[oracle@wz_oracle2 ~]catenterprise.rsp|egrepi"grp|group"UNIXGROUPNAME="dba"snameForDBAGrp="oracle"snameForOPERGrp="oracle"[oracle@wzoracle2 ] cat ORACLE_HOME/rdbms/lib/config.c  /*  SS_DBA_GRP defines the UNIX group ID for adminstrative access.  */  /*  Refer to the Installation and User's Guide for further information.  */  #define SS_DBA_GRP "oracle"  /* 改成 dba */  #define SS_OPER_GRP "oracle"  /* 改成 dba */  char *ss_dba_grp[] = {SS_DBA_GRP, SS_OPER_GRP};  然后  [oracle@wz_oracle2 ~] relink all

故障三
 ORA-01031: insufficient privileges
 原因:system无法登陆,sys和其他普通登陆能正常登陆,经查是登陆验证问题
 解决:cat /home/oracle/ora10g/product/10.2.0/db_1/network/admin/sqlnet.ora
      SQLNET.AUTHENTICATION_SERVICES   不设置即可

故障四
使用Oracle 10g的dbca.rsp文件静默创建数据库的时候遭遇模板不存在的问题
[oracle@newadm database]dbcasilentresponseFile/home/oracle/database/response/dbca.rspTemplateGeneralPurposedoesnotexist.Pleasespecifyanexistingtemplatefordatabasecreation.dbca.rspGeneralPurposeGeneralPurpose.dbcTEMPLATENAME="GeneralPurpose.dbc"ORA27125:unabletocreatesharedmemorysegmentlinuxhugetbloracle[oracle@yans1 ] id oracle
uid=500(oracle) gid=502(oinstall) groups=502(oinstall),501(dba)
[oracle@yans1 ~]$ more /proc/sys/vm/hugetlb_shm_group
0
下面用root执行下面的命令,将dba组添加到系统内核中:
# echo 501 > /proc/sys/vm/hugetlb_shm_group
然后启动数据库,问题消失。
但以上这种方式在重启操作系统后失效, /proc/sys/vm/hugetlb_shm_group又变为了0,建议采用以下方式解决:
加入vm.hugetlb_shm_group = 501 到/etc/sysctl.conf中来解决:
# vi /etc/sysctl.conf
加入如下的内容,其中501为dba组号,需要根据你实际的情况进行改变。
vm.hugetlb_shm_group = 501
# sysctl -p

故障六
远程客户端连接oracle出现错误:ORA-28547:连接服务器失败,可能是Net8管理错误
将listener.ora中的(PROGRAM = extproc)这句注释掉就可以了



相关实践学习
快速体验PolarDB开源数据库
本实验环境已内置PostgreSQL数据库以及PolarDB开源数据库:PolarDB PostgreSQL版和PolarDB分布式版,支持一键拉起使用,方便各位开发者学习使用。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
目录
相关文章
|
2月前
|
弹性计算 JavaScript 前端开发
一键安装!阿里云新功能部署Nodejs环境到ECS竟然如此简单!
Node.js 是一种高效的 JavaScript 运行环境,基于 Chrome V8 引擎,支持在服务器端运行 JavaScript 代码。本文介绍如何在阿里云上一键部署 Node.js 环境,无需繁琐配置,轻松上手。前提条件包括 ECS 实例运行中且操作系统为 CentOS、Ubuntu 等。功能特点为一键安装和稳定性好,支持常用 LTS 版本。安装步骤简单:登录阿里云控制台,选择扩展程序管理页面,安装 Node.js 扩展,选择实例和版本,等待创建完成并验证安装成功。通过阿里云的公共扩展,初学者和经验丰富的开发者都能快速进入开发状态,开启高效开发之旅。
|
16天前
|
存储 固态存储 网络协议
YashanDB安装前服务器准备
本文档源自YashanDB官网,详细介绍了YashanDB的安装前准备与部署配置要求。内容涵盖服务器配置(操作系统、CPU、内存、硬盘等推荐及最低标准)、共享存储配置、部署规模(单机主备、分布式、共享集群等场景)以及各类部署示例的服务器列表。特别提示,在虚拟机环境中需将硬盘设置为独立-永久模式以避免数据损坏。此文档为用户根据实际需求选择合适的部署方案提供了全面指导。
|
1月前
|
SQL 分布式计算 关系型数据库
基于云服务器的数仓搭建-hive/spark安装
本文介绍了在本地安装和配置MySQL、Hive及Spark的过程。主要内容包括: - **MySQL本地安装**:详细描述了内存占用情况及安装步骤,涉及安装脚本的编写与执行,以及连接MySQL的方法。 - **Hive安装**:涵盖了从上传压缩包到配置环境变量的全过程,并解释了如何将Hive元数据存储配置到MySQL中。 - **Hive与Spark集成**:说明了如何安装Spark并将其与Hive集成,确保Hive任务由Spark执行,同时解决了依赖冲突问题。 - **常见问题及解决方法**:列举了安装过程中可能遇到的问题及其解决方案,如内存配置不足、节点间通信问题等。
207 1
基于云服务器的数仓搭建-hive/spark安装
|
18天前
|
JSON JavaScript 前端开发
怎么安装JSON服务器?JSON服务器最新安装教程
JSON Server是一款轻量级工具,基于Node.js运行,可通过单个JSON文件快速模拟RESTful API,适用于开发与测试场景。其支持CRUD操作、自定义路由及高级功能如排序、搜索、分页等,同时允许通过中间件扩展功能。为确保安全性,建议在受控环境中使用,并避免处理敏感数据。此外,还有Mirage JS、Mockoon、WireMock和Postman等替代方案,可根据项目需求选择合适的工具。
46 0
|
1月前
|
弹性计算 运维 Ubuntu
在阿里云ECS云服务器上安装、配置及高效使用Docker与Docker Compose
本文介绍了在阿里云ECS上使用Ubuntu系统安装和配置Docker及Docker Compose的详细步骤。通过这些工具,可以快速部署、弹性扩展和高效管理容器化应用,满足开发和运维需求。内容涵盖Docker的安装、镜像源配置、创建Web程序镜像以及使用Docker Compose部署WordPress等实际操作,并分享了使用体验,展示了阿里云实例的高性能和稳定性。
392 4
|
1月前
|
消息中间件 分布式计算 资源调度
基于云服务器的数仓搭建-集群安装
本文介绍了大数据集群的安装与配置,涵盖Hadoop、Zookeeper、Kafka和Flume等组件。主要内容包括: 1. **数据模拟** 2. **Hadoop安装部署**:详细描述了HDFS和YARN的配置,包括NameNode、ResourceManager的内存分配及集群启动脚本。 3. **Zookeeper安装**:解压、配置`zoo.cfg`文件,并创建myid文件 4. **Kafka安装**:设置Kafka环境变量、配置`server.properties` 5. **Flume安装**:配置Flume采集日志到Kafka,编写启动脚本进行测试。
107 1
|
2月前
|
安全 数据建模 应用服务中间件
SSL证书怎么获得?获得后如何安装到服务器?
在当今互联网时代,SSL证书是保障网站安全的重要工具,实现HTTPS加密和身份认证,防止数据劫持或篡改,提升SEO效果。获取SSL证书需选择可信的CA机构、选择证书类型、生成CSR、验证域名及企业信息并获取证书。安装SSL证书到服务器(如Nginx)涉及上传证书文件、配置Nginx并重启服务。具体步骤可参考详细教程。 简介:SSL证书对网站安全至关重要,涵盖获取与安装流程,包括选择CA、生成CSR、验证信息、配置服务器等关键步骤。
|
Oracle 关系型数据库 数据库
|
SQL Oracle 关系型数据库
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等