Redhat6.5安装Oracle数据库及其常用操作

时间:2022-04-26 17:12:39

单机安装Oracle

一、安装RedHat

创建分区

Linux系统的Swap分区,即交换区,Swap空间的作用可简单描述为:当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行Swap交换。其实,Swap的调整对Linux服务器,特别是Web服务器的性能至关重要。通过调整Swap,有时可以越过系统性能瓶颈,节省系统升级费用。

(为便于操作,在安装系统过程选用中文,在分配内存过程也可以更好理解)

如下图显示

网上资料显示,安装所需的磁盘分区如下:

 

分区名称

大小(MB)

/boot

128

swap

4096

/

20408

/home

5000

紧接着,完成分区的创建(使用标准分区选项即可)

为/boot 目录分配内存

 

 

为swap分区分配内存

为/home目录分配内存

为根目录分配剩下的内存

完成以上工作即以创建好软件所需要的分区,通过free 或df –h 命令可以查看内存。

 

二、安装前系统准备工作

1.设置IP地址为静态(固定IP地址)

方法一:手动设置

方法二:修改配置文件

修改完重启网卡

servicenetwork restart

 

 

 

2.修改stsctl.conf文件(修改内核参数)

Linux是为小文件设计的,Oracle数据库安装需要占用较多资源,要把各项参数调大。

命令:vi /etc/sysctl.conf

 

fs.aio-max-nr = 1048576

fs.file-max = 6815744

kernel.shmall = 2097152

kernel.shmmax = 2009843712

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

net.ipv4.tcp_wmem = 262144 262144 262144

net.ipv4.tcp_rmem = 4194304 4194304 4194304

注意注释掉

 # Disable netfilter on bridges.

 #net.bridge.bridge-nf-call-ip6tables= 0

 #net.bridge.bridge-nf-call-iptables= 0

 #net.bridge.bridge-nf-call-arptables= 0

使用 /sbin/sysctl –p 可使参数生效,并且检查错误,在修改的时候尽量不要出现空字符,不然也会报错。

 

各参数详解:

kernel.shmmax:是核心参数中最重要的参数之一,用于定义单个共享内存段的最大值。设置应该足够大,能在一个共享内存段下容纳下整个的SGA ,设置的过低可能会导致需要创建多个共享内存段,这样可能导致系统性能的下降。至于导致系统下降的主要原因为在实例启动以及ServerProcess创建的时候,多个小的共享内存段可能会导致当时轻微的系统性能的降低(在启动的时候需要去创建多个虚拟地址段,在进程创建的时候要让进程对多个段进行“识别”,会有一些影响),但是其他时候都不会有影响。

 

kernel.shmall: 该参数控制可以使用的共享内存的总页数。Linux共享内存页大小为4KB,共享内存段的大小都是共享内存页大小的整数倍。一个共享内存段的最大大小是16G,那么需要共享内存页数是16GB/4KB=16777216KB /4KB=4194304(页),也就是64Bit系统下16GB物理内存,设置kernel.shmall = 4194304才符合要求(几乎是原来设置2097152的两倍)。这时可以将shmmax参数调整到16G了,同时可以修改SGA_MAX_SIZE和SGA_TARGET为12G(您想设置的SGA最大大小,当然也可以是2G~14G等,还要协调PGA参数及OS等其他内存使用,不能设置太满,比如16G)

 

kernel.shmmni:该参数是共享内存段的最大数量。shmmni缺省值4096,一般肯定是够用了。

 

fs.file-max:该参数决定了系统中所允许的文件句柄最大数目,文件句柄设置代表linux系统中可以打开的文件的数量。

 

fs.aio-max-nr:此参数限制并发未完成的请求,应该设置避免I/O子系统故障。推荐值是:1048576 其实它等于 1024*1024 也就是 1024K 个。

 

kernel.sem:以kernel.sem = 250 32000 100 128为例:

250是参数semmsl的值,表示一个信号量集合中能够包含的信号量最大数目。

32000是参数semmns的值,表示系统内可允许的信号量最大数目。

100是参数semopm的值,表示单个semopm()调用在一个信号量集合上可以执行的操作数量。

128是参数semmni的值,表示系统信号量集合总数。

 

net.ipv4.ip_local_port_range:表示应用程序可使用的IPv4端口范围。

 

net.core.rmem_default:表示套接字接收缓冲区大小的缺省值。

 

net.core.rmem_max:表示套接字接收缓冲区大小的最大值。

 

net.core.wmem_default:表示套接字发送缓冲区大小的缺省值。

 

net.core.wmem_max:表示套接字发送缓冲区大小的最大值。

 

3.修改用户 SHELL 的限制

命令: vi /etc/security/limits.conf

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

oracle soft nproc  2047

oracle hard nproc  16384

oracle soft nofile 1024

oracle hard nofile 65536

oracle hard stack 10240

此步骤完成后需要重启系统 命令:reboot

 

4.创建用户及用户组

l  创建dba组

groupadd dba

tail /etc/group   #查看是否创建

l  创建oracle用户并添加到dba组

useradd oracle

usermod -g dba oracle       #将oracle用户添加到dba组

passwd oracle               #给oracle用户添加密码

tail /etc/group

 

tail /etc/passwd             #测试操作是否成功

注意:(有些教程是这样的)选用

/usr/sbin/groupadd oinstall

/usr/sbin/groupadd dba

/usr/sbin/groupadd oper

/usr/sbin/useradd -g oinstall -G dba,oper oracle

添加了多个多个用户组

修改 oracle 密码

passwd oracle

5.为Oracle安装创建目录

#oracle 的基目录

mkdir -p /oracle/app

chown -R oracle:oinstall /oracle/app

chmod -R 775 /oracle/app #oracle 的主目录

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

chown -R oracle:oinstall /oracle/app/product/11.2.0/db_1

chmod -R 775 /oracle/app/product/11.2.0/db_1 #oracle 的日志目录

mkdir -p /oracle/oraInventory

chown -R oracle:oinstall /oracle/oraInventory

chmod -R 775 /oracle/oraInventory #oracle 的数据文件目录

mkdir -p /oracle/oradata

chown -R oracle:oinstall /oracle/oradata

chmod -R 775 /oracle/oradata #oracle 的闪回区目录

mkdir -p /oracle/flash_recovery_area

chown -R oracle:oinstall /oracle/flash_recovery_area

chmod -R 775 /oracle/flash_recovery_area

 

 

 

 

6.编辑login 文件

输入命令:vi  /etc/pam.d/login

# for oracle setting 在文档内加入以下内容

session required /lib/security/pam_limits.so

session required pam_limits.so

 

7.编辑 profile 文件

vi /etc/profile      # for oraclesetting 在文档内加入以下内容

if [ $USER = "oracle" ]; then

if [ $SHELL = "/bin/ksh" ]; then

ulimit -p 16384

ulimit -n 65536

else

ulimit -u 16384 -n 65536

fi

fi

8. 修改 oracle 帐户的用户环境,需要在 oracle 用户下实现,其他设置均在 root 帐户下完成

 

su oracle

vi .bash_profile # for oracle setting 在文档内加入以下内容, ORACLE_SID 实例名称自己想好了替换掉

export PATH

export ORACLE_BASE=/oracle/app

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1

export ORACLE_SID=oral

export umask=022

export PATH=$PATH:$ORACLE_HOME/bin

测试用户环境命令为: env ,然后用 su –退回到root 账户下进行其他操作。

 

三、安装Oracle软件

l  在根目录下建议 oraclesoft 目录,用于存放数据库应用程序

mkdir /oraclesoft

l  上传软件

使用 SecureCRT 软件的文件 / 连接 SFTP标签页,实现数据库程序的上传

cd /oraclesoft,将 linux 当前目录指向新建目录,可以用 pwd 来测试当前目录 lcd X:/oraclesoft ,引导到 windows 电脑的 oracle 源程序目录上,目录最好是英文的且没有空格。可以用 lpwd 来测试当前目录及用 ls 命令显示目录内容。将,

linux.x64_11gR2_database_1of2.zip

linux.x64_11gR2_database_2of2.zip

上传完毕后,断开 SFTP 的连接,进入 linux 系统的 /oraclesoft 目录下,确认 oracle 源文件是否上传成功。

l  解压软件

解压/oraclesoft 下的 oracle 数据库文件到默认目录,解压完成后会生成/oraclesoft/database 目录。(名字记得替换掉)

unzip –o –d /oracle/oraclesoft linux.x64_11gR2_database_1of2.zip

unzip –o –d /oracle/oraclesoft linux.x64_11gR2_database_2of2.zip

l  配置display

在 root 帐户的桌面上打开终端程序后输入命令: xhost +

l  安装软件

使用 oracle 帐户进入安装 linux 的服务器,直接到物理机上安装,而不是通过 SSH 方式进行,执行如下命令:

su oracle

export LANG=en_US /export LANG=en_US.UTF-8(中稳版本需要加utf-8)

export DISPLAY=127.0.0.1:0.0

cd /oraclesoft/database

./runInstaller

四、安装软件

Display显示问题

安装可能会遇见display显示问题,即显示不出安装界面或者安装界面显示不出英文界面,解决办法如下:

1、 以root用户登录

在执行xhost +命令(使得所有客户都可以访问)

若返回信息为:

access control disabled,clients can connect fromany host  

表示xhost +可执行直接切换至oracle用户运行安装oracle

 

如果xhost +不能执行,

第一步:用root登陆linux,启动vnc服务;

第二步:根据vnc起来的端口,设置export DISPLAY=:1(1表示vnc在第一个tty上启动的),vnc的启动信息见下文的linux操作日志;

第三步:xhost + ip (ip为主机ip地址)

 

2、以oracle用户登录

那么在该oracle用户下执行一下export DISPLAY=:1.0

然后再执行xdpyinfo命令,如果能出现信息说明你已经成功了

这样估计就可以解决linux下安装oracle出现的xhost问题

 

依赖包安装问题

联系安装软件过程按照典型安装,进行单机安装,并且安装桌面版方便操作,上一次安装服务器版开启问题还没解决。

由于依赖关系存在,报了一下几个依赖包缺失

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


因此进行yum配置,通过yum 安装缺少的依赖。

 

挂载镜像配置yum 源

 

 


使用vmware时,在虚拟机设置里,设置CD/DVD为系统镜像,挂载时,有时会有找不到介质或者no medium found之类的提示。

根本原因是iso镜像并没有加载到虚拟机系统内。

解决办法:

 

临时解决办法:在虚拟机下部的状态栏内,找m到CD/DVD图标(一个光盘图标),此时一般显示为灰色,鼠标点一下,即可启动CD/DVD,此时CD/DVD即可加载到虚拟机系统内

 

 

 


永久解决办法:在虚拟机的CD/DVD设置里,将“已连接”和“打开电源时连接”两个选项,选中,确定即可。如下图所示:

 

 

 

 

 

 

 

 


此时再执行mount命令,即可成功挂载光盘。

mkdir /mnt/cdrom

mount -t iso9660 /dev/cdrom /mnt

 

 

 


配置yum源

Vi /etc/yum.repos.d/local.repo

 

 

 

 

 


在执行以下操作

 

 

 

 


然后将依赖包一个个安装即可,pdshk 这个依赖包安装不了,没有影响。同时内核参数也报了异常,修改成系统建议的参数就可以了。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


安装成功!!

 

五、数据库建库

在oracle用户的图形界面oracle用户中,新开启一个终端,直接输入命令dbca会弹出如下界面。我们这里采用定制数据库。

 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


由于目录权限问题,我改了下安装路径

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


sqlplus / as sysdba 弹出对话框

ps ax /-ef|grep pmon 搜索进程

select open_mode from v$database

select instance_name from v$instance

六、配置监听及本地网络服务

部分转载自http://www.jb51.net/article/53769.htm

 

注意:

 

1、Linux oracle数据库listener.ora存放路径

cd /home/oracle/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora

2、Linux oracle数据库tnsnames.ora存放路径

cd/home/oracle/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora

 

3、ORACLE启动监听器

(1)切换至oracle安装用户(一般为oracle)

su - oracle

(2)启动监听器

lsnrctl start

(3)停止监听器

lsnrctl stop

 

4、启动测试oracle:

[oracle@oracle ~]$ sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Production on Fri Jul 27 02:12:12 2012

Copyright (c) 1982, 2009, Oracle. All rights reserved.

SQL> quit

测试的另一种方法:找一台windows平台电脑,telnet oracle主机IP地址:1521,通的话,会出现一个黑屏,光标一闪一闪。

 

5、Linux开放1521端口允许网络连接Oracle Listener

症状:

(1)TCP/IP连接是通的。可以用ping 命令测试。

(2)服务器上Oracle Listener已经启动。

lsnrctl status 查看listener状态

lsnrctl start 启动Oracle listener

(3)客户端得到的错误信息通常是:ORA-12170: TNS:连接超时

这时,我们基本可以肯定是服务器没有开放1521端口(假设你用默认设置)

 

解决方法:

(1)假如你是在一个局域网环境,配置了防火墙。那么可以关闭Linux的防火墙。

sudo service iptables stop

(2)编辑iptables, 开放1521端口:

sudo vi /etc/sysconfig/iptables

-A INPUT -p tcp -m state --state NEW -m tcp --dport 1521 -j ACCEPT

:wq

 

重启防火墙

sudo service iptables restart

保存配置,以便linux重启后依然有效

sudo service iptables save

查看防火墙规则:

sudo iptables -L –n

 

6、linux下创建oracle用户表空间

 

就是在已有的数据库实例上创建一个新的帐号,访问一些新的表

操作步骤如下:

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

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

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

select name from v$datafile

(4)创建用户表空间:

CREATE TABLESPACE NOTIFYDB DATAFILE'/home/oracle/app/oradata/orcl/scsdb.dbf' SIZE 200M AUTOEXTEND ON EXTENTMANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;

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

CREATE USER scs IDENTIFIED BY scs DEFAULT TABLESPACE NOTIFYDB;

(6)赋予权限

grant connect,resource to scs;

grant unlimited tablespace to scs;

grant create database link to scs;

grant select any sequence,create materialized view to scs;

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

总结:

l  先开启数据库后开启数据库实例:

l  Su oracle       //切换到oracle

l  lsnrctl start     //开启oracle监听

l  sqlplus /nolog  //进入sqlplus

 

 

 

 


startup         //开启数据库

 

 

 

 


l  用sys账户以sysdba的身份登录

 

 

 


l  输入startup

 

 

 

 

 

 

 


可以看到数据库还有数据库实例都在运行了