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

Red Hat Enterprise Linux 7.0 x86_64下安装Oracle 12c R1

2016-09-02 12:05 956 查看
操作步骤:

一.安装Linux.

    1.系统环境需求


    内存:最小1GB,推荐2GB或以上

    交换空间: 内存大小是1-2GB时,交换空间是内存的1.5倍,内存大小2-16GB时,交   换空间等于内存大小,内存大小16G以上时,交换空间为16GB.

   (CP:由于我的windows系统是8G内存,我给虚拟机2.5G,在装Linux系统时分了三个区:虚拟内存SWAP:4G   安装oracle内存:21G   根目录内存:15G)

    2.安装Linux

    使用安装光盘安装Redhat Enterprise Linux 7.0 x86_64,为方便测试,可以使用VMware Workstation虚拟一台机器,在虚拟机上安装。

    3.设置主机域名解析

    安装Linux后需使用静态IP地址,并在/etc/hosts文件中设置主机域名解析(ip地址主机    名称)

    # vi /etc/hosts

    192.168.1.66 hostname (点击ESC,输入:cq,即可保存退出)

   4.检查内存

   # grep MemTotal /proc/meminfo

   # grep SwapTotal /proc/meminfo

   # free -g

二.配置linux系统下的Oracle环境

1. 检查和更新所需软件包.(方法一中的缺少的包后面安装),如果系统有软件包没有安装,可以在Redhat Enterprise Linux 7.0的光盘Packages目录中找到,安装这些包

  检查方法一: 以root身份登录到linux操作系统,检查和更新需要安装的软件包

   #rpm -q binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libgcc libstdc++ libstdc++-devel

   # rpm -q libaio libaio-devel libXext libXtst libX11 libXau libxcb libXi make sysstat



检查方法二::#rpm -qa binutils compat-libcap1 gcc gcc-c++ glibc glibc-develksh libaio libaio-devel libgcc libstdc++ libstdc++-devellibXi libXtst make sysstat unixODBC unixODBC-devel



# rpm -qabinutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-staticgcc gcc-c++ glibc glibc-common glibc-devel glibc-headers glibc-statickernel-headers pdksh libaio libaio-devel libgcc libgomp libstdc++libstdc++-devel
libstdc++-static make numactl-devel sysstat unixODBCunixODBC-devel



2.如果缺少包就去Redhat EnterpriseLinux 7.0的光盘Packages目录中找到,并且安装。找不到的去(http://rpmfind.net/linux/rpm2html/search.php?query=compat-libstdc++)下载所需要的包,通过WinScP连接虚拟机IP传到linux系统文件夹下(我是传到home文件夹下面),然后点击安装,下面是解决包缺少的效果图



3.一般缺少的包如下(安装失败截图)

 



4.验证系统要求
    查看内存大小

    # grep MemTotal /proc/meminfo

    查看交换空间

    # grep SwapTotal /proc/meminfo (swap要求4G以上)

    查看磁盘空间,Oracle 12c R1 x64企业版的磁盘空间要求6.4GB以上。

    # df –h

5.创建Oracle组和用户帐户

    需要创建以下组和用户:

    The Oracle Inventory group(typically, oinstall)

    The OSDBA group (typically, dba)

    The Oracle software owner(typically, oracle)

    The OSOPER group (optional.Typically, oper)

  

# groupadd oinstall

    # groupadd dba

    # groupadd oper

    # useradd -g oinstall -G dba,operoracle

    # passwd oracle

6..配置内核参数
    以root身份登录系统,根据用户指南配置以下参数:

    修改文件/usr/lib/sysctl.conf,添加以下内容:

    # vi /usr/lib/sysctl.conf

    # for oracle

    fs.aio-max-nr = 1048576

    fs.file-max = 6815744

    kernel.shmall = 2097152

    kernel.shmmax = 2147483648

    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 = 1048586

    执行以下命令时参数生效:

    # /sbin/sysctl -p



  
7. 登录oracle帐号检查资源限制.

    $ ulimit -Sn

    $ ulimit -Hn

    $ ulimit -Su

    $ ulimit -Hu

    $ ulimit -Ss

    $ ulimit -Hs

   修改文件/etc/security/limits.conf,更改资源限制,添加以下内容:

    # vi /etc/security/limits.conf

    # for oracle

    oracle             soft    nproc   2047

    oracle             hard    nproc   16384

    oracle             soft    nofile  1024

    oracle             hard    nofile  65536

    oracle             soft    stack   10240

    oracle             hard    stack   32768



8.创建Oracle Base安装目录:

    # mkdir -p /u01/app/

    # chown -R oracle:oinstall /u01/app/

    # chmod -R 775 /u01/app/

9.编辑Oracle用户环境,编辑.bash_profile文件,配置环境变量
    # su - oracle

    $ vi .bash_profile

    编辑.bash_profile文件,添加以下内容

    # For Oracle

    export DISPLAY=:0.0

    export TMP=/tmp;

    export TMPDIR=$TMP;

    exportORACLE_BASE=/u01/app/oracle;

    exportORACLE_HOME=$ORACLE_BASE/product/12.1.0/db_1;

    export ORACLE_SID=sales;

    export ORACLE_TERM=xterm;

    export PATH=/usr/sbin:$PATH;

    export PATH=$ORACLE_HOME/bin:$PATH;

    exportLD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;

    exportCLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib;

    

    运行命令使配置生效

    $ source .bash_profile



三.安装Oracle软件与数据库

1.通过WinScp将oracle压缩包传到linux系统的Tmp目录下



2.切换用户,以oracle用户登录,在Tmp目录下解压oracle压缩包,进行安装

$ unzip  linuxamd64_12102_database_1of2

 $ unzip  linuxamd64_12102_database_2of2

  以oracle用户身份登录系统安装Oracle12c,为避免出现中文乱码,安装前可以执行export LANG="",显示英文,

    $ export LANG=""

    $ cd database

    $ ./runInstaller

3.运行./runInstaller后出现oracle12c的图形安装界面

步骤截图







这一步我们选择第一个,数据库和oracle软件一起安装















在这一步时,无法继续,因为oracle账户无法创建oraInventory目录,所以必须先创建该用户并授权
[root@getoraclelnx01~]# mkdir -p /u01/app/oraInventory
[root@getoraclelnx01~]# chown -R oracle:oinstall /u01/app/oraInventory
[root@getoraclelnx01~]# chmod -R 775 /u01/app/oraInventory





















验证参数时,fs.file-max设置为65536,但是ORACLE推荐使用68157744,net.core.wmem_max大小为262144,oracle 推荐使用1048576,修改内核参数,运行sysctl -p使之生效。然后重新验证通过





1.提示:安装到大约快80%的时候,会弹出一个窗口,显示两个脚本,复制要执行的脚本,切换到root权限去执行脚本

# /u01/app/oraInventory/orainstRoot.sh

    #/u01/app/oracle/product/12.1.0/db_1/root.sh



 

2.执行完毕后,漫长的等待,30分钟后出现安装100%进度条,点击finesh,即已完成Oracle database的安装



第四步:执行oracle启动服务,监听命令
1.执行以下命令
 
  第一步:打开Oracle监听
  $lsnrctl start
  第二步:进入sqlplus
  $sqlplus /nolog
  SQL》
  第三步:使用sysdab角色登录sqlplus
  SQL》 conn /as sysdba
  第四步:启动数据库
        SQL》startup
问题1:执行到第四步start时提示你不能够打开:/opt/app/oracle/product/12.1.0_1s/initafcsc.ora这个命令

 

 


 
报错解析

报错是因为发现在 /opt/app/oracle/product/12.1.0/db_1/dbs/下找不到initepps.ora文件,于是去/opt/app/oracle/admin/orcl/pfile下,找到文件init.ora.1242014234024,然后将文件拷贝到/opt/app/oracle/product/12.1.0/db_1/dbs/目录下,并重命名为initepps.ora后,重启数据,问题解决!

解决方案:

命令演示如下: 

[oracle@gettestlnx01 dbs]$ cd /opt/app/oracle/admin/orcl/pfile 

[oracle@gettestlnx01 pfile]$ ls 

init.ora.1242014234024

[oracle@gettestlnx01pfile]$ cp init.ora.1242014234024  /opt/app/oracle/product/12.1.0/db_1/dbs/initepps.ora 

SQL> startup 
问题二:当你解决完上面的问题一时,再次启动oracle数据库时,会报以下错误
 MEMORY_TARGET not support  on this  system



 
报错解析:
现象
Oracle 12C数据库修改pfile参数后启动数据库报错ora-00845
SQL> startup
ORA-00845:MEMORY_TARGET not supported on this system
查找资料后发现问题如下,见metalinikID460506.1
在oracle 12C中新增的内存自动管理的参数MEMORY_TARGET,它能自动调整SGA和PGA,这个特性需要用到/dev/shm共享文件系统,而且要求/dev/shm必须大于MEMORY_TARGET,如果/dev/shm比MEMORY_TARGET小就会报错
解决方案
1.初始化参数MEMORY_TARGET或MEMORY_MAX_TARGET不能大于共享内存(/dev/shm),为了解决这个问题,可以增大/dev/shm
如:
# mount -t tmpfsshmfs -o size=7g /dev/shm或者
#mount -o size=1500m-oremount /dev/shm(根据自身系统内核的内存大小设定)
2.为了确保操作系统重启之后能生效,需要修改/etc/fstab文件
shmfs /dev/shmtmpfs size=7g 0
3.如果/dev/shm没有挂载也会报上面的错,所认需要确保已经挂载
oracle@aaaprod-db~]$ df -h
……
tmpfs               16G 8.9G 7.2G 56% /dev/shm
 
下面为一次操作的记录
[root@aaaprod-db~]# cat /etc/fstab | grep tmpfs
tmpfs                 /dev/shm             tmpfs  defaults,size=8g     0 0
[root@aaaprod-db~]#
[root@aaaprod-db~]# mount -o remount,size=16G /dev/shm
[root@aaaprod-db~]#
[root@aaaprod-db~]# cat /etc/fstab | grep tmpfs
tmpfs                 /dev/shm             tmpfs  defaults,size=8g     0 0
[root@aaaprod-db~]# vi /etc/fstab
/dev/rootvg/LogVol02 /                     ext3  defaults      1 1
/dev/rootvg/LogVol01 /tmp                  ext3 defaults      1 2
/dev/rootvg/lvol0   /ebao                 ext3  defaults      1 2
/dev/rootvg/lvol1   /backup               ext3  defaults      1 2
LABEL=/boot           /boot                 ext3  defaults      1 2
tmpfs                 /dev/shm             tmpfs  defaults,size=16g     0 0
devpts               /dev/pts             devpts gid=5,mode=620 0 0
sysfs                 /sys                 sysfs  defaults     0 0
proc                 /proc                 proc  defaults     0 0
/dev/rootvg/LogVol00 swap                  swap defaults      0 0
"/etc/fstab"10L, 769C written
[root@aaaprod-db~]# df -h|grep shm
tmpfs               16G    0 16G  0% /dev/shm
SQL> startup
ORACLE instancestarted.
Total SystemGlobal Area 9420095488 bytes
Fixed Size               2236248 bytes
VariableSize          2315255976 bytes
DatabaseBuffers        7046430720 bytes
RedoBuffers              56172544 bytes
Databasemounted.
Database opened.
SQL> exit

第五步:创建一个oracle数据库的表空间和用户
(CP:创建oracle用户时,经过多次创建,都是无效的用户,失败了,通过了解,发现最新版oracle12c和以往旧版的数据库创建用户时命令有细微的差别在创建用户时要加上C##)
 旧版:create user C## zhangsan identified by password
Oracle12C:create userC## zhangsan identified by password
账号:zhangsan  密码:password
注意:oracle12c创建用户时有两种,一种是以CDM创建的公用用户,这种创建必须以C##开头,否则所创建的用户无效

  如以下就是标准的创建CDM用户:

          表空间:CREATE TABLESPACE AFC datafile '/opt/app/oracle/oradata/orcl/AFC.dbf'

                          size 600M autoextend on next 50m maxsize unlimited;

           用户:CREATE USER C##afcdb IDENTIFIED BY 111111 DEFAULT TABLESPACE AFC;

          赋予权限:grant connect,resource,dba to C##afcdb;


还有一种是创建本地用户,以PDM创建本地用户,和以往旧版的命令一样,要另外安装配置本地用户,这是oracle12c的一个特性。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: