linux安装oracle10g

操作系统:CentOS release 6.5 (Final) 64位

oracle版本:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit

一、下载必须安装包:

# yum -y install binutils compat-libstdc++-33 compat-libstdc++-33.i686 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc.i686 glibc-common glibc-devel glibc-devel.i686 glibc-headers ksh libaio libaio.i686 libaio-devel libaio-devel.i686 libgcc libgcc.i686 libstdc++ libstdc++.i686 libstdc++-devel make sysstat

# yum install libXp

# yum -y install libXp.i686

# yum -y install libXt.i686

# yum -y install libXtst.i686

libXtst此处已有了,无法安装 可以使用下面语句删除重新安装
rpm --erase --nodeps libXtst-1.2.2-2.1.el6.x86_64 yum update "libXtst*" rpm -qa | grep libXtst*
rpm -q binutils compat-libstdc++-33 compat-libstdc++-33.i686 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc.i686 glibc-common glibc-devel glibc-devel.i686 glibc-headers ksh libaio libaio.i686 libaio-devel libaio-devel.i686 libgcc libgcc.i686 libstdc++ libstdc++.i686 libstdc++-devel make sysstat

二、 修改 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

五、 创建相应的用户名和用户组:

# groupadd oinstall

# groupadd dba

# useradd -g oinstall -G dba oracle

修改密码:

# passwd oracle

六、创建oraInst.loc

# vim /etc/oraInst.loc

inventory_loc=/oracle/oraInventory
inst_group=oinstall

**这里要注意inventory_loc复制时 i不要遗漏。当初这个遗漏导致15步报错

更改属组及权限

chown oracle:oinstall /etc/oraInst.loc

chmod 664 /etc/oraInst.loc

七、修改 /etc/profile限制其他用户使用

# 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

八、修改Linux 发行版本.

因为Oracle10G发行的时候, Centos6.5还没有发行. 所以必须修改:

# vim /etc/redhat-release

删除文件本身内容, 重新录入以下内容:

redhat-4

九、创建oralce安装目录和数据存放目录

mkdir -p /oracle/ora10g
chown -R oracle:oinstall /oracle/ora10g/
chmod -R 775 /oracle/ora10g/

十、 配置Oracle用户环境变量:

# vi /home/oracle/.bash_profile

在文件末尾加入以下内容:

#Oracle Settings
export TMP=/tmp; export TMPDIR=$TMP; export ORACLE_BASE=/oracle/ora10g ; export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1; export ORACLE_SID=orcl10g; export ORACLE_TERM=xterm; export PATH=/usr/sbin:$PATH; export PATH=$ORACLE_HOME/bin:$PATH; export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib;

十一、 使配置生效:

# source /home/oracle/.bash_profile

十二、 解压安装文件

将下载的10201_database_linux_x86_64.cpio.gz(数据库安装文件) 复制到 /home/oracle/ora10g/目录下.

# cp /usr/local/src/10201_database_linux_x86_64.cpio.gz /home/oracle/ora10g/

首先解压gz包.

# 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 /oracle/ora10g/database/

十四、编辑安装需要的应答文件

(1) 以root身份登录

(2) 静默模式(Silent)安装必须指定一个应答文件来完成安装过程所须的各类参数。

    在Oracle安装目录的response子目录里有enterprise.rsp、standard.rsp和custom.rsp三个应答文件,分别对应企业版、标准版和定制的安装。

(3) 以enterprise.rsp为例,用任意的文本编辑器打它,修改以下这些项目的值。

配置enterprise.rsp文件

vi /oracle/ora10g/database/response/enterprise.rsp

修改以下值  红色为必须修改项,其他按需要

RESPONSEFILE_VERSION=2.2.1.0.0

UNIX_GROUP_NAME="oinstall"

ORACLE_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 /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) 然后运行

    $ORACLE_HOME/bin/netca /silent /responseFile <应答文件的绝对路径>

 这里我输入的命令为:

$ORACLE_HOME/bin/netca /silent /responseFile /oracle/ora10g/database/response/netca.rsp

在这步中遇到了类似以下的报错情况。

解决方法:

vim /etc/hosts

在文件中增加 hostname 即可解决

十八、修改dbstart

(1) 以oracle身份登录

(2) 打开 $ORACLE_HOME/bin/dbstart,将

    ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle

 改为

    ORACLE_HOME_LISTNER=$ORACLE_HOME

    否则网络监听器可能无法自动启动。

十九、安装数据库实例(如果这步没有安装成功。那么会pfile下将没有文件)

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 -silent -responseFile /oracle/ora10g/database/response/dbca.rsp -cloneTemplate
创建数据库实例的时候报了以下错误
ORA-27125:unable to create shared memory segment


解决办法:
[root@rac2 ~]# id oracle

uid=500(oracle) gid=501(oinstall)groups=501(oinstall),502(dba),503(asmadmin),504(oper)

[root@rac2 ~]# more/proc/sys/vm/hugetlb_shm_group

0

 

下面用root执行下面的命令,将dba组添加到系统内核中:

[root@rac2 ~]# echo 502 >/proc/sys/vm/hugetlb_shm_group

--这里的502 是上面的id 命令查看出来的。

[root@rac2 ~]# more /proc/sys/vm/hugetlb_shm_group     
502

 

然后重新DBCA,成功建立实例。 如果遇到实例名以存在的提示,删除/etc/oratab 中对应的记录即可。

二十、修改Oracle启动配置文件:/etc/oratab

(1) 以oracle用户登录

(2) 然后编辑 /etc/oratab

    将<Oracle的SID>:<Oracle的主目录>:N

    修改为ora10g:/app/oracle/10g: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> startup
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/home/oracle/base/11gR2/db/dbs/initora11g.ora'

解决办法:

  1、cd /oracle/base/admin/ORA11g/pfile

  2、cp init.ora.6242017161635 /home/oracle/base/11gR2/db/dbs/initora11g.ora(若是此处没有这个文件,则是19步安装实例存在问题)

  3、重新执行startup启动数据库实例成功。

查看19的日志后发现确实是19步没有安装成功

报错如下:

ORA-27125: unable to create shared memory segment
Cause: shmget() call failed
Action: contact Oracle support

查询了一下,发现问题和linux上的hugetbl有关。
解决方法也很简单,首先检查oracle用户的组信息:

[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

如果遇到plsql连接超时的情况 可以试下以下解决方法

如果在本机可以正常使用,可是到局域网中的其他机器就出现“ORA-12170:TNS:连接超时
解决方法:
1.cmd-----ping ip地址 查看网络问题,看能否ping通
2.cmd-----tnsping ip地址(或者是服务器的实例名SID)如果报“TNS-12535:操作超时”,可能是服务器端防火墙 没有关闭
(这次我就是这个原因)
3.cmd----netstat -na 查看1521端口是否关闭,如果关闭Windows XP中的防火墙设置中将1521端口设为例外
4.cmd----lsnrctl status lsnrctl是listener-control 监听器的缩写,查看监听的状态

修改数据库编码

sqlplus / as sysdba

Oracle Server端字符集查询
SQL> select userenv('language') from dual;
USERENV('LANGUAGE')
----------------------------------------------------
AMERICAN_AMERICA.ZHS16GBK 
由此可以看出字符集为ZHS16GBK

如果startup报错了 可以使用

可以使用  alter database open resetlogs;


Server端字符集修改
将数据库启动到RESTRICTED模式下做字符集更改:
$ sqlplus "/as sysdba"
SQL> conn /as sysdba;
SQL> shutdown immediate;

SQL> startup mount;
SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;
SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;
SQL> alter database open;
SQL> alter database character set INTERNAL_USE UTF8;     或者   alter database character set INTERNAL_USE ZHS16GBK;
SQL> shutdown immediate;
SQL> startup;
SQL> exit;

原文地址:https://www.cnblogs.com/linhongwenBlog/p/10363704.html