您的位置:首页 > 数据库 > Oracle

linux下用户启用图形安装oracle数据库

2016-07-07 12:44 447 查看
      在linux下安装很多图形软件的时候会遇到很多问题,比如安装oracle11g时候,出现了创建的oracle用户无法启用图形的问题,安装程序会报错。



上面是说oracle用户无法启用图形,安系统无法检查显示器是否支持图形安装oracle11g

一般而言linux下默认root用户已经启用了window图形,可以用xclock来验证下,如果成功则会出现一个小时钟在屏幕上方。

而su到其他的用户后就不一定会支持图形了,这是因为DISPLAY这个环境变量没有设置,由于有限制而无法启用图形。

 

解决方法:为其他用户添加变量,支持图形

1.使用root用户登录,设置变量如下:

                                  export DISPLAY=:0.0         :0.0表示将图形输出到本地

                                  xhost +                     解除所有用户的图形限制

2.su - oracle

                                  export DISPLAY=:0.0

然后可以在oracle用户下使用xclock命令,查看结果。输出小钟表表示环境变量设置成功,可以启动图形。

 

开始安装oracle

检查oracle的安装所需要的软件包

rpm -qa |grep .. 软件包名称

binutils-2.17.50.0.6-2.el5

compat-libstdc++-33-3.2.3-61

elfutils-libelf-0.125-3.el5

elfutils-libelf-devel-0.125

gcc-4.1.1-52

gcc-c++-4.1.1-52

glibc-2.5-12

glibc-common-2.5-12

glibc-devel-2.5-12

glibc-headers-2.5-12

libaio-0.3.106

libaio-devel-0.3.106

libgcc-4.1.1-52

libstdc++-4.1.1

libstdc++-devel-4.1.1-52.el5

make-3.81-1.1

sysstat-7.0.0

unixODBC-2.2.11

unixODBC-devel-2.2.11

 

1.创建Oracle用户和组及安装目录

# groupadd oinstall                   oinstall组是资产组,用于安装方面的操作

# groupadd dba                     dba是数据库管理员操作组,用于连接数据库和操作数据库

# useradd -m -g oinstall -G dba oracle   创建oracle用户加入oinstall和dba组。-G:额外加入组(suse中默认创建用户时不创建宿主目录,-m参数指定创建用户是创建宿主目录)

# passwd oracle                       设置oracle用户的密码为oracle

 

2.为Oracle用户设置Shell限制

# vi /etc/security/limits.conf  --添加下面内容

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 1024

oracle hard nofile 65536

此资源限制为限制cpu使用、文件使用、数据环境使用等限制

# vi /etc/pam.d/login  --添加

session required /lib/security/pam_limits.so

 

3.为Oracle用户设置环境变量(在安装完成后设置)

# vi /home/oracle/.bashrc 



ORACLE_SID为oracle数据库的实例名(这个与创建数据库时候的实力名要一致)

ORACLE_BASE为oracle的根目录(安装oracle的时候自动创建的)

ORACLE_HOME为oracle的安装目录(安装oracle的时候自动创建的,安装时候可以看见)

PATH为oracle脚本文件的路径

CLASSPATH为类的脚本文件路径

DISPLAY为设置oracle用户输出图形界面

export 变量名1 变量名2 变量名n...... 将变量输入进系统

完成后使用source命令

source /home/oracle/.bashrc       在不重启的情况下让系统重新读取这个用户变量文件

 

#etc/profile是全局环境变量,而在用户宿主目录下的.bash_porfile是控制单个用户的环境变量的(suse下默认是.bashrc文件其他linux可用.bash_profile文件)

env 查看所有环境的环境变量 env | grep ORACLE

set 查看当前环境的环境变量 ...

 

4.创建和授权Oracle安装目录

# mkdir  /app                           创建这3个目录

# chmod 755 /app                        权限设置

# chown -R oracle:oinstall /app         更改db目录的属主、属组为oracle用户和oinstall组

 

5.安装

./runinstall

 

安装启动后出现oracle安装界面为乱码的现象,此现象时因为jre字体问题。

解决方法一:改变oracle安装文件的jre,不用它自带的jre,用操作系统的jre即可,在runinstaller后面增加一个参数,改变安装程序读取jre的路径。

例(我用的是ubuntu):语句如下:

./runInstaller -jreLoc /java/jdk1.7.0_15/jre

解决方法二:可以尝试修改语言变量

export LANG="en_US"(语言变量的文件/etc/sysconfig/i18n)

 

6.修改linux内核参数

# vi /etc/sysctl.conf

----------------------------------------------

kernel.shmmax = 2147483648

// 该参数定义了共享内存段的最大尺寸(以字节为单位)。

其值应>=sag_max_size初始化参数的大小,否则SAG由多个内存段构成,效率降低,

还要不小于物理内存的一半,默认情况下在32位x86系统中,Oracle SGA最大不能超过1.7GB.

缺省为32M,对于oracle来说,该缺省值太低了,通常将其设置为2G

这个值我个人觉得 sag的大小通常为内存的75% 当然 大内存可以在增加点

那么 这个参数设置为物理内存的80%应该不错  不会对其他有影响

kernel.shmmni = 4096                      

// 这个内核参数用于设置系统范围内共享内存段的最大数量。该参数的默认值是 4096.

此值也是在系统中可以启动的Oracle实例的最大数量,通常不需要更改,

因为显然在生产环境下,一个服务器上同时启动的实例个数达不到这个数量.

kernel.shmall = 2097152

// 该参数表示系统任意时刻可以分配的所有共享内存段的总和的最大值(以页为单位).  页 = 4K

其值应不小于shmmax/page_size.缺省值就是2097152,如果服务器上运行的所有实例的

SGA总和不超过8GB(通常系统可分配的共享内存的和最大值为8GB),通常不需要修改.

kernel.sem = 250 32000 100 128      // 表示设置的信号量

fs.file-max = 65536                 // 表示一个进程可以打开的文件句柄的最大数量. 为512 乘以 processes (如128个process则为 65536);

net.ipv4.ip_local_port_range = 1024 65000 //专用服务器模式下与用户进程通信时分配给用户的端口区间

net.core.rmem_default=262144        // 默认接收缓冲区大小

net.core.rmem_max=262144            // 接收缓冲区最大值

net.core.wmem_default=262144        // 默认的发送缓冲区大小

net.core.wmem_max=262144            // 发送缓冲区最大值

以上四个值的设置是Oracle安装时推荐的.(应在安装完后把最大值改为524288)

修改好内核参数后,执行如下命令使新的设置生效

# sysctl -p --使设置生效

 

7.创建数据库

创建数据库之前要求创建监听(listen)

su - oracle

netca 创建一个监听,用于其他客户端用户连接访问

然后创建数据库

dbca  创建数据库实例,名称要个ORACLE_SID一致

如果没有dbca说明环境变量设置有误,可使用$ORACLE_HOME/bin/dbca 

 

8.使用Oracle数据库

ps -ef|grep ora  查看数据库进程是否启动

sqlplus /nolog  

conn /as sysdba;    连接数据库

 

8.编写脚本,系统重启后,自动启动服务

# vi /app/oracle/oraclestart.sh
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: