linux操作系统下oracle 11g的安装

1、Oracle11g在Linux系统下的环境检测,检测目前的Linux操作系统是否满足Oracle11g的安装需求

  • 检查基本要求:

内存大小:grep MemTotal /proc/meminfo

交换分区大小:grep SwapTotal /proc/meminfo

查看各个分区的使用情况:df  -h

fdisk -l

  • 检查支持Oracle11g运行的rpm系统是否安装齐全

rpm包如下:

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.e15 #
make-3.81-1.1 #
sysstat-7.0.0 #

unixODBC-devel-2.2.11

unixODBC--2.2.11-7.1 #

  • 检查rpm包是否在系统中已经存在的方法:

rpm -qa | grep binutils

rpm -qa | grep compat

rpm -qa | grep elfutils

rpm -qa | grep gcc

rpm -qa | grep glibc

rpm -qa | grep libaio

rpm -qa | grep libgcc

rpm -qa | grep libstdc

rpm -qa | grep make

rpm -qa | grep sysstat

rpm -qa | grep unixODBC

对窗口中列举出来的rpm项进行一一对照,看是否缺少上面要求的rpm

  • 如果缺少了上面要求的一些rpm,则找到这些rpm(如果使用光盘安装的Linux,最好在Linux光盘中查找这些缺少的rpm),把他们放在同一个文件夹下,如/rpm/Server下(即Linux系统/目录下的rpm文件夹中的Server文件夹),运行命令:

cd /rpm/Server

ls

rpm -ivh *.rpm

至此Oracle11g的运行rpm资源安装完成

2、配置参数和创建Oracle用户与用户组

  • Linux系统网络配置(在菜单“系统-管理-网络”)

双击图6中的某一个网卡进行IP等信息设置

运行ifconfig查看配置好后的IP信息

  • 配置/etc/hosts

运行参数命令vi /etc/hosts(按i键是进行修改功能操作。对修改好的结果进行保持操作的话先按Esc键再输入:x,这样就完成了修改后的保存),添加本机的IP地址和机器名和别名,格式如下(IP地址是根据上面设置得来的):

IP    主机名称主机别名

  • 如果在安装配置Linux操作系统的时候未把SELinux选择为禁用

则要运行命令vi /etc/sysconfig/selinux命令,对SELINUX值进行修改,把SELINUX=enforcing改为SELINUX=disabled

  • 运行命令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

  • 运行命令vim /etc/security/limits.conf,在其中加入:
oracle soft nofile 65536  
oracle hard nofile 65536(可打开的文件描述符的最大数)
oracle soft nproc 16384
oracle hard nproc 16384 (单个用户可用的最大进程数量)  
 soft:软限制  hard 硬限制 (具体含义使用命令查看 man limits.conf)
  • 运行命令vim /etc/pam.d/login,在其中加入:

session required /lib/security/pam_limits.so
session required pam_limits.so

  • 运行命令vim /etc/sysctl.conf,在其中加入:

fs.aio-max-nr=1028576

fs.file-max=6815744

kernel.shmall = 2097152
kernel.shmmax = 536870912

kernel.shmmni = 4096#整个系统共享内存段的最大数目。
kernel.sem = 250 32000 100 128#每个信号对象集的最大信号对象数;系统范围内最大信号对象数;每个信号对象支持的最大操作数;系统范围内最大信号对象集数。
fs.file-max = 65536#系统中所允许的文件句柄最大数目。
net.ipv4.ip_local_port_range= 9000 65500 #应用程序可使用的IPv4端口范围。
net.core.rmem_default = 1048576#套接字接收缓冲区大小的缺省值
net.core.rmem_max = 1048576#套接字接收缓冲区大小的最大值
net.core.wmem_default = 262144#套接字发送缓冲区大小的缺省值
net.core.wmem_max = 1048576#套接字发送缓冲区大小的最大值运行下面的命令使得内核参数生效:

kernel.shmmax

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

官方建议值:

32位linux系统:可取最大值为4GB(4294967296bytes)-1byte,即4294967295。建议值为多于内存的一半,所以如果是32为系统,一般可取值为4294967295。32位系统对SGA大小有限制,所以SGA肯定可以包含在单个共享内存段中。

64位linux系统:可取的最大值为物理内存值-1byte,建议值为多于物理内存的一半,一般取值大于SGA_MAX_SIZE即可,可以取物理内存-1byte。例如,如果为12GB物理内存,可取12*1024*1024*1024-1=12884901887,SGA肯定会包含在单个共享内存段中。 

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子系统故障。

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

表示套接字发送缓冲区大小的最大值。

为使上述配置生效而不重启系统,执行如下命令 /sbin/sysctl -p

  • 创建Oracle11g用户和用户组

groupadd -g 1000 oinstall

groupadd -g 1100 dba

groupadd -g 1200 oper

useradd -u 1300 -g oinstall -G dba,oper oracle

id oracle

passwd oracle(此处提示输入密码,要输入两次)

如果想删除Oracle11g用户和用户组,命令如下:

groupdel oinstall

groupdel dba

groupdel oper

userdel oracle

这样就能删除上面所创建的用户组和用户

  • 创建Oracle11g安装目录

mkdir -p /opt/oracle(此处/opt/oracle为ORACLE_BASE)

mkdir -p /opt/oracle/product

mkdir -p /opt/oracle/product/OraHome(此处/opt/oracle/product/OraHome为ORACLE_HOME)

mkdir -p /opt/oraInventory

mkdir -p /opt/oracle/oradata

则在想要的目录下建立了上述文件

如果想删除上述创建的目录,命令如下:

rmdir /opt/oracle

rmdir /opt/oracle/product

rmdir /opt/oracle/product/OraHome

rmdir /opt/oraInventory

rmdir/opt/oracle/oradata

  • 修改Oracle11g安装目录权限

chown -R oracle:oinstall /opt/oracle

chown -R oracle:oinstall /opt/oracle/product

chown -R oracle:oinstall /opt/oracle/product/OraHome

chown -R oracle:oinstall /opt/oraInventory

chown -R oracle:oinstall /opt/oracle/oradata

chown -R oracle:dba /opt/oracle

chown -R oracle:dba /opt/oracle/product

chown -R oracle:dba /opt/oracle/product/OraHome

chown -R oracle:dba /opt/oraInventory

chown -R oracle:dba /opt/oracle/oradata

chown -R oracle:oper /opt/oracle

chown -R oracle:oper /opt/oracle/product

chown -R oracle:oper /opt/oracle/product/OraHome

chown -R oracle:oper /opt/oraInventory

chown -R oracle:oper /opt/oracle/oradata

chmod -R 775 /opt/oracle

chmod -R 775 /opt/oracle/product

chmod -R 775 /opt/oracle/product/OraHome

chmod -R 775 /opt/oraInventory

chmod -R 775 /opt/oracle/oradata

  • 修改oracle用户下的.bash_profile文件

²  第一种方法:是在root用户下运行命令vim /home/oracle/.bash_profile

在其中加入命令:

export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/product/OraHome
export ORACLE_SID=db11g(将来装oracle11g要创建的数据库实例名)
export ORACLE_OWNER=oracle
export ORACLE_TERM=xterm
export PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin:$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib
exportCLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$CLASSPATH:$ORACLE_HOME/network/jlib

保存修改后即可

²  第二种方法:注销电脑,用oracle用户登录系统,运行命令vi /home/oracle/.bash_profile,(也可以运行命令vi .bash_profile)加入命令的内容与第一种方法一样。

3、    开始安装Oracle11g

  • 找到软件安装包,把他们考到Linux系统下
  • 解压Oracle11g安装包

假设把Oracle11g安装包放在/Oracle11gPackage路径下,先给/Oracle11gPackage赋权限,在进行解压缩:

chown–R oracle:oinstall /Oracle11gPackage(给Oracle用户赋权限)

chmod–R 775 /Oracle11gPackage

cd /Oracle11gPackage

ls

unzip linux_11gR2_database_1of2.zip

unzip linux_11gR2_database_2of2.zip

解压出来的东西包含在database文件夹下

  • 安装Oracle11g

运行命令:

chown –R oracle:oinstall /Oracle11gPackage/database(给Oracle用户赋权限)

chmod–R 775 /Oracle11gPackage/database

export DISPLAY=:0.0

xhost local:oracle

su oracle

cd /Oracle11gPackage/database

ls

./runInstaller

这里Oracle Base的路径记得要选择的跟/home/oracle/.bash_profile文件里ORACLE_BASE设置的一样;software Location的路径选择的要跟/home/oracle/.bash_profile文件里ORACLE_HOME设置的一样

(说明:此步骤未截图,从网上弄的一个,只为说明情况)

Database Administator(OSDBA)Group:此处应该为上面建立的dba组

Database Operator(OSOPER)Group:此处应为上面建立的oper组

这里的检查就是针对2步骤中的shell参数内核配置的全部设置。

以此图为例:

²  OS Kernel Parameters下列出的是表示:/etc/sysctl.conf问价下的参数设置的不够;

fs.file-max (Actual Value :6553600)实际只为:6553600 而(Expected Value:6815744)系统期望值为:6815744。像这样的则,直接运行命令vi /etc/sysctl.conf,把fs.file-max=6553600改为fs.file-max=6815744即可。其他的net.ipv4.ip_local_port_range、fs.aio-max-nr执行相同的操作

²  Packages下列出的是表示:系统还缺少这些rpm没有安装,那么找到这些缺少的rpm参照1步骤中的说明进行安装

点击“Check Again”进行检测,看是否还有不满足条件的。一般严格上都是要看到Checks列表中无错误信息才能进行下一步

在root用户下,根据其上面的提示运行命令

cd /opt/oraInventory

ls

./orainstRoot.sh

cd /opt/oracle/product/OraHome

ls

./root.sh

运行完成后,点击OK,至此完成了数据库的安装。

4、    创建监听、数据库和进入控制台进行相应的操作

说明,下面的操作都是在以Oracle用户oracle登录Linux系统进行的操作,注销系统,以Oracle用户登录系统

  • 创建监听程序

运行命令:netca

运行命令ps–ef看在出来的结果中是否能找到LISTENER

  • 创建数据库

运行命令:dbca

记住此处的SID与/home/orale/.bash_profile中设置的应该一样

至此数据库创建成功

  • 确定Oracle11g是否安装成功

Linux下的oracle在安装结束后是处于运行状态的,运行命令top –u oracle可以看到oracle用户进行的进程。

在图形化界面下,运行&ORACLE_HOME/sqldeveloper/sqldeveloper.sh可以出现oracle自带的免费oracle管理客户端SQL Developer。试着连接刚才安装的oracle,看是否成功。

重启服务器,看服务器重启后,Oracle是否可以正常启动。以Root用户运行reboot命令可以重启Linux,重启完成后,默认情况下Oracle并不像Windows中的Oracle那样注册成服务,随机器一起启动的,所以需要手动敲入命令来启动。启动方式:以oracle用户登录运行以下语句:

1、      进入sqlplus:

sqlplus /nolog

 

2、      以sysdba的身份连接到数据库,并启动Oracle数据库引擎:

  SQL> conn /as sysdba

SQL> startup

 

3、      退出sqlplus,运行Listener

  SQL> exit

$ lsnrctl start

 

  这样数据库的TNS也启动了,可以通过网络连接数据库了。

  • 进入em控制台

运行命令:emctl start dbconsole

这样就可以通过https://(机器名):1158/em/console来访问EM控制台了。

如果不能够在linux下访问,则可以用装有windows的电脑运行https://(Linux机器IP):1158/em/console来访问EM控制台

其他在网页上的操作与在windows下一样                

  • Oracle网络配置

运行netmgr命令:

5、导入数据

su - oracle                  //切换到oracle用户

sqlplus /nolog               

>conn / as sysdba              

>startup                       // 启动数据库

/*第1步:创建临时表空间 */

create temporary tablespace tempdbs

tempfile '/opt/oracle/oradata/tempdbs.dbf'

size 50m

autoextend on

next 50m maxsize 20480m

extent management local;

/*第2步:创建数据表空间 */

create tablespace datadbs

logging

datafile '/opt/oracle/oradata/datadbs.dbf'

size 50m

autoextend on

next 50m maxsize 20480m

extent management local;

/*第3步:创建用户并指定表空间 */

create user gbase identified   by "134256"

default tablespace datadbs

temporary tablespace tempdbs;

/*第4步:给用户授予权限 */

grant connect,resource,dba to gbase;

orato8a 配置 user的 格式 user/passowrd@host:port/sid

sqlplus gbase/[email protected]:1521/orcl

导入数据

imp gbase/134256@orcl  file=test.dmp FULL=Y

导出数据

exp gbase/134256@orcl full=y file=test.dmp

6、卸载Oracle11g

1、 首先用dbca来把db给卸载掉

2、 删除之前创建的oracle安装目录

3、 删除oracle残留的一些目录

/etc/ora*(以ora开头的文件)

/var/opt/oracle

/usr/local/bin下的3个文件

4、 清空/tmp目录下的内容

卸载其实就简单很多了,步骤就是:关闭数据库和监听、删除oracle用户、删除用户组、删除残留文件。

关闭数据库:shutdown immediate

关闭监听:lsnrctl stop

删除oracle用户:userdel -rf oracle

删除用户组:    groupdeloinstall

                groupdeldba

删除残留文件:  rm -rf /opt/ORCLfmap/

              rm -rf /etc/oraInst.loc

              rm -rf /etc/oratab

              rm -rf /var/tmp/.oracle

              rm -rf /var/tmp/oradiag_oracle

PS:在/etc、/opt、/var/tmp目录下,有和oracle有关的目录或者文件,都可以在卸载的时候删除。

完成以后步骤,就完成oracle的卸载了。

如果不想删除用户,可以使用oracle安装程序进行卸载。

猜你喜欢

转载自www.cnblogs.com/jkin/p/8876540.html