当前位置: 代码迷 >> 综合 >> Oracle 11gR2 For Centos6.3
  详细解决方案

Oracle 11gR2 For Centos6.3

热度:73   发布时间:2023-12-15 17:44:26.0

Oracle 11gR2 For Centos6.3

数据库安装文档

Rockey Hoo 

 

 

 

2013-6-26 

 


目录

 

安装环境 1

Linux软件包选择 1

设置host文件 1

同步时钟 1

设置内核参数 2

设置Limit参数 2

关闭selinux 2

安装软件包 2

创建用户组 3

创建文件路径并赋权 3

设置Oracle用户环境变量 3

上传文件解压安装 4

配置监听和启动数据库 10

Oracle设置自启动 14

创建表空间和数据库 16

 


安装环境 

软件版本信息及账户

VMware8.0

   安装centos时,启动eth0老是出错,后来更改了eth0的网卡地址,使eth0启动失败。

 

Centos6.3

   root|rockey/rockey

   oracle/oracle    

 

Oracle 11g r2

     sys|system|sysman/Qwer1234

     scott/tiger

     hs/123

 

Linux软件包选择 

在安装Linux操作系统的时候注意选择以下软件包

Software Package

    * GNOME Desktop Environment

    * Editors

    * Graphical Internet

    * Text-based Internet

    * Development Libraries

    * Development Tools

    * Server Configuration Tools

    * Administration Tools

    * Base

    * System Tools

    * X Window System

 

设置host文件 

修改文件/etc/hosts,增加一条,如下所示(主要hostname /etc/sysconfig/network中的hostname一致

<IP ADDRESS>   <Full-qualified-machine-name>   <Machine-name>

 

Example:

127.0.0.1   localhost.localdomain   oradb

 

同步时钟

yum -y install ntp

ntpdate time.nist.gov
#以下下为计划任务-每过2小时同步一次时间
echo "* */2 * * * /sbin/ntpdate time.nist.gov" >> /etc/crontab

设置内核参数 

修改文件/etc/sysctl.conf,增加下列条目,如下所示设置完成后运行/sbin/sysctl –p 使之生效 

fs.suid_dumpable = 1

fs.aio-max-nr = 1048576

fs.file-max = 6815744

kernel.shmall = 2097152

kernel.shmmax = 536870912

kernel.shmmni = 4096

# semaphores: semmsl, semmns, semopm, semmni

kernel.sem = 250 32000 100 128

net.ipv4.ip_local_port_range = 9000 65500

net.core.rmem_default=4194304

net.core.rmem_max=4194304

net.core.wmem_default=262144

net.core.wmem_max=1048586

 

设置Limit参数 

修改文件/etc/security/limits.conf,增加下列条目,如下所示

oracle              soft    nproc   2047

oracle              hard    nproc   16384

oracle              soft    nofile  1024

oracle              hard    nofile  65536

oracle              soft    stack   10240

 

 

关闭selinux

修改文件/etc/selinux/config,增加下列条目,如下所示

SELINUX=disabled

 

安装软件包

下列软件包在安装光盘的server目录下面,[:32位和64位最好都安装

rpm -Uvh binutils-2.* --nodeps --force //忽略依赖关系,强制安装

rpm -Uvh compat-libstdc++-33*

rpm -Uvh compat-libstdc++-33*.i386.rpm

rpm -Uvh elfutils-libelf*

rpm -Uvh gcc-4.*

rpm -Uvh gcc-c++-4.*

rpm -Uvh glibc-2.* --nodeps --force //忽略依赖关系,强制安装

rpm -Uvh glibc-common-2.* 

rpm -Uvh glibc-devel-2.*

rpm -Uvh glibc-headers-2.*

rpm -Uvh ksh*

rpm -Uvh libaio-0.* --nodeps --force //忽略依赖关系,强制安装

rpm -Uvh libaio-devel-0.*

rpm -Uvh libgomp-4.*

rpm -Uvh libgcc-4.*

rpm -Uvh libstdc++-4.*

rpm -Uvh libstdc++-devel-4.*

rpm -Uvh make-3.*

rpm -Uvh sysstat-7.*

rpm -Uvh unixODBC-2.*

rpm -Uvh unixODBC-devel-2.*

rpm -Uvh numactl-devel-2*

 

Or 直接运行以下

 

yum -y install binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel glibc glibc-common glibc-devel gcc gcc-c++ libaio-devel libaio libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel pdksh numactl-devel glibc-headers

 

创建用户组

使用下列命令,创建用户和用户组

groupadd oinstall

groupadd dba

groupadd oper

groupadd asmadmin

 

useradd -g oinstall -G dba,oper,asmadmin oracle

passwd oracle #oracle

 

创建文件路径并赋权

使用下列命令,创建文件安装路径,并授权

mkdir -p /oracle/app/oracle/product/11.2.0/db_1

chown -R oracle:oinstall /oracle

chmod –R 775 /oracle #cd / 

 

设置Oracle用户环境变量

使用Oracle用户登录,然后vi .bash_profile,增加如下行,执行source .bash_profile让环境变量生效

TMP=/tmp; export TMP

TMPDIR=$TMP; export TMPDIR

 

ORACLE_HOSTNAME=localhost.localdomain; export ORACLE_HOSTNAME

ORACLE_UNQNAME=orcl; export ORACLE_UNQNAME

ORACLE_BASE=/oracle/app/oracle; export ORACLE_BASE

ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1; export ORACLE_HOME

ORACLE_SID=orcl; export ORACLE_SID

PATH=/usr/sbin:$PATH; export PATH

PATH=$ORACLE_HOME/bin:$PATH; export PATH

 

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH

CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH

 

上传文件解压安装

使用ftp软件上传数据库安装文件,然后解压,登录oracle用户进行安装

#上传oracle安装文件到/data/software目录下,并解压
cd /data/software
unzip linux_11gR2_database_1of2.zip
unzip linux_11gR2_database_2of2.zip
xhost +   #(这里使用root用户执行,一定要执行以下2步,如果没有执行,将无法启动图形安装界面有些系统执行会乱码。可以使用英文版安装[LANG=en_US]否则会出现乱
xhost + localhost #(这里有些系统干部支持)
su - oralce
cd /data/software/database

./runInsaller

SecureCRT连接ssh服务器安装时提示:

正在启动 Oracle Universal Installer...

 

检查临时空间必须大于 120 MB。   实际为 32529 MB    通过

检查交换空间必须大于 150 MB。   实际为 8015 MB    通过

检查监视器监视器配置至少必须显示 256 种颜色

    >>> 无法使用命令 /usr/bin/xdpyinfo 自动检查显示器颜色。请检查是否设置了 DISPLAY 变量。    未通过 <<<<

 

未通过某些要求检查。必须先满足这些 要求

 

然后才能继续安装,

 

是否继续? (y/n) [n] y

需要登录到操作系统图形界面,打开终端运行

    ./runInsaller

Exception in thread "main" java.lang.NoClassDefFoundError

 

 

 

 

Oracle的安装界面都是小方块,看不到其他的字符

 

先使用命令 
export LANG=en将环境临时换成英文export LANG=C切换成中文,然后再安装。这个环境变量的修改只是临时的,重启后或者使用oracle用户登录时会自己换回来的。

       密码:Qwer1234

 

提示Failed的软件包都已经有安装但版本稍有不同,选择忽略后继续安装:

 

 

查看oracle字符集

SQL> select userenv('language') from dual;

USERENV('LANGUAGE')

SIMPLIFIED CHINESE_CHINA.UTF8

查看linux系统字符集

[root@ora ~]# env |grep LANG

LANG=zh_CN.UTF-8

GDM_LANG=zh_CN.UTF-8

定义linux系统字符集

[root@ora ~]# export NLS_LANG='SIMPLIFIED CHINESE_CHINA.UTF8'

定义oracle环境字符集

[root@ora ~]# su – oracle

[oracle@ora ~]$ export NLS_LANG='SIMPLIFIED CHINESE_CHINA.UTF8'

[oracle@ora ~]$ !sql

查看结果

SQL> select * from database_properties;

配置监听和启动数据库

1$ netca  #配置监听和网络服务

 

2,设置防火墙

       

3,启动监听 lsnrctl start

 #第一次启动时,失败了,原因是listener.orahostname写的不对,后来改成了127.0.0.1

 

4,(这一步创建orcl了,可以跳过此步骤)使用dbca创建数据库

     

5,启动实例 dbstart/dbshut 

若要实现开机自启动,必须/etc/oratab 存在

[root@localhost /]# find / -name "oratab"

/oracle/app/oracle/product/11.2.0/db_1/install/oratab

[root@localhost /]# cd /oracle/app/oracle/product/11.2.0/db_1/install/

[root@localhost install]# cp oratab /etc

 

 

6, 也可以手工启动

[oracle@dbOracle9i ~]$lsnrctl stop            ----------关闭监听

[oracle@dbOracle9i ~]$ sqlplus / as sysdba"      ------sqlplus

SQL> shutdown immediate;            -------关闭数据库实例

SQL> startup;                 -------重启数据库

SQL> exit                        -------退出sqlplus

[oracle@dbOracle9i ~]$ lsnrctl start                ---------打开监听

 

7,查看数据库 

 

 

-- 查看表空间

Select name from v$datafile;

-- 查看所有用户

Select * from all_users;

--查看当前用户所拥有的权限

select * from user_sys_privs; 

-- 查询用户所拥有的表

Desc all_tables;

select owner,table_name from all_tables where owner='SCOTT';

-- 解锁scott

alter user scott account unlock;

 

8,启动EM

-- 启动em

emctl start dbconsole 启动
emctl stop dbconsole 停止

$ emctl start dbconsole

OC4J Configuration issue. /oracle/app/oracle/product/11.2.0/db_1/oc4j/j2ee/OC4J_DBConsole_oradb.localdomain_orcl not found.

修改hosts 与主机名一致

 

重建em

-- 删除

emca -repos drop

 

SEVERE: Listener is not up or database service is not registered with it. 

修改主机名重启后,问题任然存在

#修改/oracle/app/oracle/product/11.2.0/db_1/network/admin/listener.ora

SID_LIST_LISTENER =  

  (SID_LIST =  

    (SID_DESC =  

      (ORACLE_HOME = /oracle/app/oracle/product/11.2.0/db_1)  

      (SID_NAME = ORCL)  

    )  

  )

最终还是通过netca重新监听,解决问题。

emca -config dbcontrol db -repos create (中间出现了一个问题,sysman用户不存在,只有配置em后才有这个用户)

 

netstat -ntpl |grep 1158

 

https://localhost.localdomain:1158/em 

 

1.Oracle启动时发生如下错误: 

 

解决 方法:

1、查看环境变量.bash_profile文件如下,查看oracle 实例名

[oracle@wpj ~]$ vi ~/.bash_profile

export ORACLE_SID=orcl


2、修改 listener.ora
# listener.ora Network Configuration File: /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora
(SID_NAME = orcl)

http://wangpj.iteye.com/blog/1685554

Oracle设置自启动

使用下列命令,创建开机自启动

 

1Redhat init简介:

Linux启动时,会运行一个init程序,然后由init来启动后面的任务,包括多用户环境(inittab中设定)和网络等。运行级就是当前程序运行的功能级别,这个级别从16,具有不同的功能。这些级别在/etc/inittab(其他发行版这个文件位置不同)中指定,该文件就是init程序寻找的主要文件。最先运行的服务放在/etc/rc.d目录下。

文件以S开头,代表start(启动),后面的数字是启动顺序;文件以K开头,代表kill(结束),同样,后面的数字代表结束顺序。例如:/etc/rc3.d/S55sshd表示它与运行级别3有关,55就是它的启动顺序;/etc/rc3.d/K15nginx表示它与运行级别3有关,15就是它的关闭顺序。

init.d
这个目录中存放了一些服务启动脚本,系统安装时的多个rpm包,这些脚本在执行时可以用来启动,停止和重启这些服务。
rcx.dx0~6
这个目录是启动级别的执行程序链接目录,里面的文件都是指向init.d目录中文件的一些软连接。

2、修改dbstartdbshut启动关闭脚本,使其启动数据库的同时也自动启动监听器(即启动数据库时启动监听器,停止数据库时停止监听器):

# vim /u01/app/oracle/product/11.2.0/db_1/bin/dbstart

找到下面的代码,在实际脚本代码的前面

# First argument is used to bring up Oracle Net Listener
ORACLE_HOME_LISTNER=$1
将此处的 ORACLE_HOME_LISTNER=$1 修改为 ORACLE_HOME_LISTNER=$ORACLE_HOME
if [ ! $ORACLE_HOME_LISTNER ] ; then
echo "ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener"
echo "Usage: $0 ORACLE_HOME"
else
LOG=$ORACLE_HOME_LISTNER/listener.log
同样也修改dbshut脚本:

# vim /u01/app/oracle/product/11.2.0/db_1/bin/dbshut


# The this to bring down Oracle Net Listener
ORACLE_HOME_LISTNER=$1
将此处的 ORACLE_HOME_LISTNER=$1 修改为 ORACLE_HOME_LISTNER=$ORACLE_HOME
if [ ! $ORACLE_HOME_LISTNER ] ; then
echo "ORACLE_HOME_LISTNER is not SET, unable to auto-stop Oracle Net Listener"
echo "Usage: $0 ORACLE_HOME"
else
LOG=$ORACLE_HOME_LISTNER/listener.log

3、新建Oracle服务启动脚本:

# vim /etc/init.d/oracle

新建一个以oracle命名的文件(也可以命名为oracle11g等,自己喜欢啥名改啥名。),并将以下脚本代码复制到文件里(里面的oracle目录路径根据自己的实际安装路径修改):


#!/bin/sh
# chkconfig: 345 61 61
# description: Oracle 11g R2 AutoRun Servimces
# /etc/init.d/oracle
#
# Run-level Startup script for the Oracle Instance, Listener, and
# Web Interface

export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=ORCL
export PATH=$PATH:$ORACLE_HOME/bin

ORA_OWNR="oracle"

# if the executables do not exist -- display error

if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
then
echo "Oracle startup: cannot start"
exit 1
fi

# depending on parameter -- startup, shutdown, restart
# of the instance and listener or usage display

case "$1" in
start)
# Oracle listener and instance startup and em
su - $ORA_OWNR c “$ORACLE_HOME/bin/dbstart &”

su - $ORA_OWNR c “$ORACLE_HOME/bin/lsnrctl start”

su - $ORA_OWNR c “$ORACLE_HOME/bin/emctl start dbconsole”

touch /var/lock/subsys/oracle
echo "Oracle Start Succesful!OK."
;;
stop)
# Oracle listener and instance shutdown and em
su - $ORA_OWNR c “$ORACLE_HOME/bin/dbshut &”

su - $ORA_OWNR c “$ORACLE_HOME/bin/lsnrctl stop”

su - $ORA_OWNR c “$ORACLE_HOME/bin/emctl stop dbonsole”

rm -f /var/lock/subsys/oracle
echo "Oracle Stop Succesful!OK."
;;
reload|restart)
$0 stop
$0 start
;;
*)
echo $"Usage: `basename $0` {start|stop|reload|reload}"
exit 1
esac
exit 0

保存退出!

4、赋予启动脚本执行权限并链接好:

# chmod 755 /etc/init.d/oracle 

需要在关机或重启之前停止数据库,做如下操作

# ln -s /etc/init.d/oracle /etc/rc0.d/K01oracle 

# ln -s /etc/init.d/oracle /etc/rc6.d/S01oracle

5、把oracle启动脚本添加到系统服务里并设置自启动:

# chkconfig --add oracle 

# chkconfig --level 345 oracle on

6.修改oratab

修改/etc/oratab

[root@localhost etc]# vi oratab 

orcl:/oracle/app/oracle/product/11.2.0/db_1:Y

 

sh oracle start

reboot重启系统看看效果吧

创建表空间和数据库

Linux下创建用户,数据库和表空间

 1、登录linux,以oracle用户登录(如果是root用户登录的,登录后用 su - oracle命令切换成oracle用户)

 2、以sysdba方式来打开sqlplus,命令如下: sqlplus "/as sysdba"

 3、查看我们常规将用户表空间放置位置:执行如下sql

select name from v$datafile;

 上边的sql一般就将你的用户表空间文件位置查出来了。

 4、创建用户表空间:

CREATE TABLESPACE hs_data_file01 DATAFILE '/oracle/app/oracle/oradata/orcl/hs_data_file01.dbf' SIZE 200M AUTOEXTEND ON EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;

5、创建用户,指定密码和上边创建的用户表空间

CREATE USER hs IDENTIFIED BY hs123 DEFAULT TABLESPACE hs_data_file01;

6、赋予权限

grant connect,resource to hs;
grant unlimited tablespace to hs;
grant create database link to hs;
grant select any sequence,create materialized view to hs;

经过以上操作,我们就可以使用hs/123登录指定的实例,创建我们自己的表

 

 

 

 

 

 

 

 

  相关解决方案