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

一、安装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,它能自动调整SGAPGA,这个特性需要用到/dev/shm共享文件系统,而且要求/dev/shm必须大于MEMORY_TARGET,如果/dev/shmMEMORY_TARGET小就会报错

解决方案

1.初始化参数MEMORY_TARGETMEMORY_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

Oracle12Ccreate 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的一个特性。

 

Thinkingcao CSDN认证博客专家 Java Spring Boot 微服务
CSDN2019年度博客之星、博客专家,专注架构、Java、Spring、SpringBoot、SpringCloud、微服务、数据库、分布式、中间件、源码分析、JVM性能调优、K8S等领域
微信搜索公众号:「Thinking曹」,一个执着于架构的JAVA基层码农,每天带你学习新知识。
相关推荐
©️2020 CSDN 皮肤主题: 程序猿惹谁了 设计师:白松林 返回首页
实付 19.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值