macOS搭建Oracle虚拟机环境

软件环境:CentOS7.2 + Oracle11.2.0.1.0 + VMware Fusion8.5 + macOS10.12.4

一、配置CentOS环境

1. 创建用户和用户组

$groupadd oinstall
$groupadd dba   
$useradd -g oinstall -g dba -m oracle
$passwd oracle
$id oracle

2. 创建Oracle安装目录

$mkdir -p /data/oracle
$mkdir -p /data/oraInventory
$mkdir -p /data/database
$chown -R oracle:oinstall /data/oracle
$chown -R oracle:oinstall /data/oraInventory
$chown -R oracle:oinstall /data/database

3. 修改系统标识

$cat /proc/version
$cat /etc/redhat-release
*CentOS Linux release 7.2.1511 (Core) 
$vi /etc/redhat-release
$cat /etc/redhat-release 
*redhat-7 

4. 安装组件依赖

$yum -y install binutils compat-libcap1 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libXi libXtst make sysstat

5. 关闭防火墙

$systemctl status firewalld.service
$systemctl stop firewalld.service   
$systemctl disable firewalld.service

6. 关闭SELinux

$vi /etc/selinux/config
$cat /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#      permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled   #此处修改为disabled
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted 

7. 修改内核参数

$vi /etc/sysctl.conf
$cat /etc/sysctl.conf
添加以下配置:
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.rp_filter = 1
fs.file-max = 6815744
fs.aio-max-nr = 1048576
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= 1048576
$sysctl -p

8. 对oracle用户进行限制

$vi /etc/security/limits.conf
$cat /etc/security/limits.conf
->添加如下配置:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

9. 配置环境变量

$vi /home/oracle/.bash_profile 
$cat /home/oracle/.bash_profile
->添加如下配置:
export ORACLE_BASE=/data/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=orcl
export ORACLE_TERM=xterm
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
$source /home/oracle/.bash_profile

10. 准备安装文件

$cd /usr/local/src
$unzip linux.x64_11gR2_database_1of2.zip -d /data/database/
$unzip linux.x64_11gR2_database_2of2.zip -d /data/database/
$chown -R oracle:oinstall /data/database/database/

二、在CentOS上安装Oracle

1. 切换用户至oracle,执行runInstaller安装程序

$cd /data/database/database/
$./runInstaller -jreLoc /usr/lib/jvm/jre-1.8.0

2. 先决条件检查

安装程序会检查当前系统环境是否满足安装要求,如果相应的依赖包没有安装,yum install package_name安装上即可,如果已安装的版本较高时,Oracle安装程序仍会提示不满足要求,忽视即可

3. 调整SWAP分区

$su root
$free -m
$dd if=/dev/zero of=/home/swap bs=1024 count=1024000
$mkswap /home/swap
$swapon /home/swap
$free -m

4. 安装失败解决方案

安装过程中可能出现错误提示框未正确显示的问题,如果无法根据显示内容跟踪安装情况,可以通过检查安装日志的方法来继续进行,日志保存在/data/oraInventory/logs目录下。如果遇到安装失败的情况,重启虚拟机,先清理之前安装遗留的文件,再进行下一步操作

$su root
$rm -rf /data/oracle/product
$rm -rf /data/oraInvenroty/*

本文操作时遇到的两个情况记录如下:

ins_ctx.mk
INFO: Exception thrown from action: make
Exception Name: MakefileException
Exception String: Error in invoking target 'install' of makefile '/data/oracle/product/11.2.0/dbhome_1/ctx/lib/ins_ctx.mk'. See '/data/oraInventory/logs/installActions2017-05-11_02-20-57PM.log' for details.

- 缺少compat-libstdc++-33-3.2.3-69.el6导致此问题
- 官网手动下载组件对应的rpm包,**http://vault.centos.org/6.3/os/x86_64/Packages/**
- 将依赖包迁移至虚拟机Downloads目录下
- 手动安装rpm包

$pwd
#/home/oracle/Downloads
$ls

#compat-libstdc++-33-3.2.3-69.el6.i686.rpm
#compat-libstdc++-33-3.2.3-69.el6.x86_64.rpm
#glibc-2.12-1.80.el6.i686.rpm
#glibc-2.12-1.80.el6.x86_64.rpm
#glibc-common-2.12-1.80.el6.x86_64.rpm
#glibc-devel-2.12-1.80.el6.i686.rpm
#glibc-devel-2.12-1.80.el6.x86_64.rpm
#glibc-headers-2.12-1.80.el6.x86_64.rpm

$su root
$rpm -ivh --force --nodeps *.rpm
ins_emagent.mk
INFO: Exception thrown from action: make
Exception Name: MakefileException
Exception String: Error in invoking target 'agent nmhs' of makefile '/data/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk'. See '/data/oraInventory/logs/installActions2017-05-12_11-49-32AM.log' for details.

- 调用ins_emagent.mk文件发生错误
- 手动修改ins_emagent.mk文件,然后点击错误提示框的Retry按钮即可

$cat /data/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk
$vi /data/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk
#将$(MK_EMAGENT_NMECTL)修改为$(MK_EMAGENT_NMECTL) -lnnz11

5. 执行脚本

安装完毕后,安装程序出现Successful字样,关闭安装程序,执行两个脚本程序

$su root
$pwd
#/data/oracle/product/11.2.0/db_1
$./root.sh
$cd /data/oraInventory
$./orainstRoot.sh

6. 进行监听服务配置和数据库实例创建

$netca
$lsnrctl start
$lsnrctl status
$dbca

7. 检查是否安装完成

$sqlplus / as sysdba
$startup
$show parameter service_names

$su -oracle
$emctl unsecure dbconsole
#with https
$emctl secure dbconsole
$with http
$emctl start dbconsole

三、在macOS上配置Oracle客户端

Oracle服务端安装完成后,在macOS上可以使用SQLDeveloper/Toad/DataGrip进行连接,现在开始配置在macOS中使用终端+SQLPlus连接服务端Orale

$sqlplus
zsh: sqlplus: command not found...

1. 确定服务端Oracle版本

$sqlplus / as sysdba
SQL> select * from v$version
  2  /

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
PL/SQL Release 11.2.0.1.0 - Production
CORE    11.2.0.1.0  Production
TNS for Linux: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production

2. 客户端文件配置

下载macOS平台适用的对应版本的Oracle客户端,将两个压缩包解压至同一目录

$unzip instantclient-basic-macos.x64-11.2.0.4.0.zip
$unzip instantclient-sqlplus-macos.x64-11.2.0.4.0.zip

# Tuple @ Johnson in /Applications/instantclient_11_2 [11:36:19]
$ cd /Applications/instantclient_11_2

# Tuple @ Johnson in /Applications/instantclient_11_2 [11:36:24]
$ ls
BASIC_README         libclntsh.dylib.11.1 libsqlplus.dylib     uidrvci
SQLPLUS_README       libnnz11.dylib       libsqlplusic.dylib   xstreams.jar
adrci                libocci.dylib.11.1   ojdbc5.jar
genezi               libociei.dylib       ojdbc6.jar
glogin.sql           libocijdbc11.dylib   sqlplus

3.环境变量配置

$vim .bash_profile
->添加如下信息
export ORACLE_HOME=/Applications/instantclient_11_2
export ORACLE_SID=oracent
export DYLD_LIBRARY_PATH=$ORACLE_HOME
export SQLPATH=$ORACLE_HOME
export TNS_ADMIN=$ORACLE_HOME/network/admin
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"
export PATH=$SQLPATH:$PATH

$vim .zshrc
->添加一行
source .bash_profiile

$env

4.配置tnsnames.ora

$mkdir -p Applications/instantclient_11_2/network/admin
vim $ORACLE_HOME/network/admin/tnsnames.ora

->新增如下内容
oracent=
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.31.236)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = oracent)
    )
  )

5.配置hosts文件

$ hostname
#Johnson.local
$sudo vim /etc/hosts
->将localhost修改与hostname一致
$cat /etc/hosts
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1   localhost
255.255.255.255 broadcasthost
::1             Johnson.local

6.使用SQLPlus连接局域网Oracle

$sqlplus scott/jansondors@192.168.31.236/oracent
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,905评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,140评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,791评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,483评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,476评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,516评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,905评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,560评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,778评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,557评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,635评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,338评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,925评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,898评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,142评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,818评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,347评论 2 342

推荐阅读更多精彩内容

  • 背景: 阅读新闻 12C CDB模式下RMAN备份与恢复 [日期:2016-11-29] 来源:Linux社区 作...
    阳屯okyepd阅读 3,332评论 0 7
  • 最近公司购买了一台新的服务器,我负责给这台服务器安装oracle ,磕磕绊绊的终于装好了,但是却花了不少时间,算起...
    testerPM阅读 9,071评论 3 8
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,580评论 18 139
  • 一. 就在昨天,我收到了期盼已久的研究生录取通知书,心里惴惴不安的石头可以落地了,终于可以大声庆祝自己成为女神校的...
    不要黑眼圈的小胖达阅读 527评论 0 0
  • 我大概很经常跟我的朋友提起我妈。我的好朋友都很喜欢她。想起一些小时候的事,到现在也会让她津津乐道。 大概5、6岁的...
    呜七阅读 288评论 1 1