暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【Oracle学习01】Oracle12c图形化安装及问题处理

陶老师运维笔记 2019-11-25
1041

【Oracle学习01】Oracle12c图形化安装及问题处理

   Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系型数据库管理系统。本文介绍在CentOS6下图形化安装Oracle12c。

Oracle官方文档:https://www.oracle.com/index.htmlhttps://docs.oracle.com/en/database/oracle/oracle-database/index.htmlhttps://docs.oracle.com/en/database/oracle/oracle-database/12.2/install-and-upgrade.html

Oracle12c安装要求:硬件: 空闲Disk >8G, 内存>2G,若安装 Oracle Grid>8G。

操作系统: Linux 7.2: 3.10.0-327.el7.s390x or later, Linux 6.6: 2.6.32-504.el6.s390x or later软件包依赖: https://docs.oracle.com/en/database/oracle/oracle-database/12.2/cwlin/supported-red-hat-enterprise-linux-6-distributions-for-x86-64.html#GUID-3B53A308-3EC2-4173-98A0-0FFD68994E90

1. CentOS环境准备

1.1 准备CentOS6环境

准备CentOS6环境,若是没有可以用VirutalBox来创建一台CentOS虚机。

创建步骤见: VirtualBox创建CentOS6.6虚机

OSHostnameIP硬件
CentOS6.6db01192.168.56.1034G内存,磁盘30G(至少内存2G,空闲磁盘>8G)

1.2 Oracle软件下载

下载Oracle12.2.0.1.0版本,选择Linux x86-64安装包。(下载需要Oracle账号)。

下载地址: https://www.oracle.com/database/technologies/oracle12c-linux-12201-downloads.html

检查下载文件:

  1. $cksum oracle_linuxx64_12201_database.zip

  2. 4170261901 3453696911 oracle_linuxx64_12201_database.zip

上面输出信息中校验码为 4170261901 , 文件大小为3453696911,和官方相同。

2. 安装介绍

https://docs.oracle.com/en/database/oracle/oracle-database/12.2/tutorials.htmlhttps://docs.oracle.com/en/database/oracle/oracle-database/12.2/install-and-upgrade.html

2.1 OUI介绍

oracle 安装使用OUI(Oracle Universal Installer )。

OUI介绍:https://docs.oracle.com/cd/E2685401/em.121/e37799/ch1introduction.htm#OUICG107

https://oracle-base.com/articles/misc/oui-silent-installationshttps://www.2cto.com/database/201110/107339.html 深入理解OUI

2.2 安装的三种模式

OUI 三种模式(Modes of Installation):

  • Interactive Mode

  • Suppressed-Interactive Mode

  • Silent Mode

1) OUI图形化安装

Oracle Universal Installer (OUI)图形化安装。Interactive Mode。

2)静默安装

静默安装 Silent Mode 。在无图形界面或命令行批量部署时可静默(Silent Mode)安装 oracle ,用命令行创建db,配置netca等,快速完成oracle部署。

  1. $ORACLE_HOME/runInstaller -h

  2. ./runInstaller [-silent] [-noconfig] -responseFile responsefilename

3)克隆安装

若是有配置相同的机器需要安装,这时可以进行clone安装。

3. 安装的前期准备

安装的前期准备/先决条件。

3.1 配置/etc/hosts文件

检查主机名和网络并且配置/etc/hosts文件,依你真实情况请填写 IP地址 主机名

  1. $hostname #db01

  2. #填写 IP地址 主机名

  3. $vim /etc/hosts

  4. 192.168.56.103 db01

3.2.配置YUM源(可略)

可配置本地yum源或用国内阿里云,163yum源。

配置国内yum源:

参见: 配置国内yum源

配置本地YUM源:

  1. 配置YUM源解决程序依赖的问题

  2. a 挂载光盘镜像

  3. b 进入到光盘镜像中的Package目录中将所有的软件包复制到我们预设的目录下


  4. #把光盘中rpm文件cp到本地

  5. mkdir /yums

  6. cd /media/CentOS_6.6_Final/Packages/

  7. cp * /yums

  8. cd /yums


  9. rpm -ivh deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm

  10. rpm -ivh python-deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm

  11. rpm -ivh createrepo-0.9.9-22.el6.noarch.rpm


  12. ##创建Repo

  13. createrepo .

创建yum.local.repo

  1. cd /etc/yum.repos.d/

  2. mkdir backup; mv ./* backup/

  3. #创建yum.local.repo

  4. vi yum.local.repo

  5. [local]

  6. name=yum local repo

  7. baseurl=file:///yums

  8. gpgcheck=0

  9. enable=1


  10. yum clean all

3.3 安装ORACLE依赖软件包

  1. yum install -y bc

  2. yum install -y compat-libcap1*

  3. yum install -y compat-libcap*

  4. yum install -y binutils

  5. yum install -y compat-libstdc++-33

  6. yum install -y elfutils-libelf

  7. yum install -y elfutils-libelf-devel

  8. yum install -y gcc

  9. yum install -y gcc-c++

  10. yum install -y glibc-2.5

  11. yum install -y glibc-common

  12. yum install -y glibc-devel

  13. yum install -y glibc-headers

  14. yum install -y ksh libaio

  15. yum install -y libaio-devel

  16. yum install -y libgcc

  17. yum install -y libstdc++

  18. yum install -y libstdc++-devel

  19. yum install -y make

  20. yum install -y sysstat

  21. yum install -y unixODBC

  22. yum install -y unixODBC-devel

  23. yum install -y binutils*

  24. yum install -y compat-libstdc*

  25. yum install -y elfutils-libelf*

  26. yum install -y gcc*

  27. yum install -y glibc*

  28. yum install -y ksh*

  29. yum install -y libaio*

  30. yum install -y libgcc*

  31. yum install -y libstdc*

  32. yum install -y make*

  33. yum install -y sysstat*

  34. yum install -y libXp*

  35. yum install -y glibc-kernheaders

  36. yum install -y net-tools-*

检查软件包安装情况:

  1. $rpm -q --queryformat "%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n" \

  2. bc compat-libcap1* compat-libcap* binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc-2.5 glibc-common glibc-devel glibc-headers ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel binutils* compat-libstdc* elfutils-libelf* glibc* ksh* libaio* libgcc* libstdc* sysstat* libXp* glibc-kernheaders net-tools-* \

  3. | grep not | grep -v grep | awk '{print "yum install -y " $2 }'


  4. #结果,缺少的软件包就会列出来,如下。

  5. ...

  6. yum install -y glibc-2.5

  7. yum install -y gcc*

3.4 修改LINUX内核文件

  1. vi /etc/sysctl.conf

  2. kernel.shmmax = 277495689510912

  3. kernel.shmmni = 4096

  4. kernel.sem = 250 32000 100 128

  5. net.core.rmem_default = 262144

  6. net.core.rmem_max = 4194304

  7. net.core.wmem_default = 262144

  8. net.core.wmem_max = 1048586

  9. fs.file-max = 6815744

  10. kernel.shmall = 4294967296

  11. net.ipv4.tcp_max_tw_buckets = 6000

  12. net.ipv4.ip_local_port_range = 9000 65500

  13. net.ipv4.tcp_tw_recycle = 0

  14. net.ipv4.tcp_tw_reuse = 1

  15. net.core.somaxconn = 262144

  16. net.core.netdev_max_backlog = 262144

  17. net.ipv4.tcp_max_orphans = 262144

  18. net.ipv4.tcp_max_syn_backlog = 262144

  19. net.ipv4.tcp_synack_retries = 2

  20. net.ipv4.tcp_syn_retries = 1

  21. net.ipv4.tcp_fin_timeout = 1

  22. net.ipv4.tcp_keepalive_time = 30

  23. net.ipv4.tcp_keepalive_probes = 6

  24. net.ipv4.tcp_keepalive_intvl = 5

  25. net.ipv4.tcp_timestamps = 0

  26. fs.aio-max-nr = 1048576

  27. net.ipv4.conf.all.rp_filter = 2

  28. net.ipv4.conf.default.rp_filter = 2


  29. sysctl -p 生成系统参数

3.5 修改limits.conf

添加下列参数到/etc/security/limits.conf

  1. vi /etc/security/limits.conf


  2. oracle soft nofile 1024

  3. oracle hard nofile 65536

  4. oracle soft nproc 16384

  5. oracle hard nproc 16384

  6. oracle soft stack 10240

  7. oracle hard stack 32768

  8. oracle hard memlock 134217728

  9. oracle soft memlock 134217728

3.6 修改/etc/pam.d/login

添加下列条目到/etc/pam.d/login

  1. vim /etc/pam.d/login


  2. session required /lib64/security/pam_limits.so

  3. session required pam_limits.so

3.7 修改环境变量

  1. vim /etc/profile


  2. if [ $USER = "oracle" ]; then

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

  4. ulimit -p 16384

  5. ulimit -n 65536

  6. else

  7. ulimit -u 16384 -n 65536

  8. fi

  9. fi


  10. source /etc/profile

3.8 创建文件目录和用户

  1. groupadd oinstall

  2. groupadd dba

  3. groupadd oper

  4. useradd -g oinstall -G dba,oper oracle


  5. mkdir -p /u01/app/oracle

  6. mkdir -p /u01/oraInventory

  7. chown -R oracle.oinstall /u01

  8. chown -R oracle:oinstall /u01/app/oracle

  9. chmod -R 775 /u01/app/oracle


  10. #设置Linux中oracle用户密码

  11. passwd oracle # oracleoracle


  12. id oracle

  13. #usermod -a -G GroupName UserName

  14. #usermod -a -G oracle oracle

3.9 配置ORACLE用户环境变量

  1. su - oracle


  2. vim .bash_profile


  3. export EDITOR=vi

  4. export TMP=/tmp

  5. export TMPDIR=$TMP

  6. export ORACLE_SID=orcl

  7. export ORACLE_BASE=/u01/app/oracle

  8. export ORACLE_HOME=$ORACLE_BASE/product/12.2.0/db_1

  9. export INVENTORY_LOCATION=/u01/oraInventory

  10. export TNS_ADMIN=$ORACLE_HOME/network/admin

  11. export LD_LIBRARY_PATH=$ORACLE_HOME/lib

  12. export NLS_LANG="American_america.zhs16gbk"

  13. export NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss'

  14. export PATH=$ORACLE_HOME/bin:/bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin:$PATH:$HOME/bin

  15. umask 022


  16. source .bash_profile

3.10 上传软件并且解压

将下载的linuxx6412201database.zip上传到Linux系统/home/oracle目录下解压,解压后目录为database。

  1. cd /u01/

  2. unzip linuxx64_12201_database.zip

4. 图形化安装Oracle

4.1 登录CentOS界面

LINUX用户切换有两种方案,第一种是登出现有用户进行用户切换。第二种很简单 重新启动你的虚拟机 在登录界面选择oracle用户登录即可。(用户oracle,密码是节3中设置的linux下oracle密码。)

4.2 安装Oracle软件

进入database目录,执行runInstaller,图形化安装Oracle软件。

  1. cd /u01/database

  2. ./runInstaller

选择Single instance database installation。

弹出这个后,以root权限执行两个脚本,执行完以后点击ok。

4.3 创建监听

执行netca创建监听,一路next,最后点Finish。

  1. cd database

  2. ./netca

  3. #若是图形出不来,可root登录一个窗口,运行一下语句。

  4. #export DISPLAY=:0.0

察看监听

  1. su - oracle

  2. $lsnrctl stop

  3. $lsnrctl start

  4. $lsnrctl status

  5. $cat /u01/app/oracle/product/12.2.0/db_1/network/admin/listener.ora

  6. $cat /u01/app/oracle/product/12.2.0/db_1/network/admin/tnsnames.ora

4.4 创建数据库

用dbca创建数据库。

  1. $cd database

  2. $dbca

选择Advanced configuration。

密码太简单会提示,可选yes略过。

Finish。

点击close后完成。恭喜你数据库安装成功!!!

5. 检查服务

5.1 检查监听

环境变量

  1. $su - oracle

  2. $env |grep oracle -i

  3. USER=oracle

  4. LD_LIBRARY_PATH=/u01/app/oracle/product/12.2.0/db_1/lib

  5. ORACLE_SID=orcl

  6. ORACLE_BASE=/u01/app/oracle

  7. TNS_ADMIN=/u01/app/oracle/product/12.2.0/db_1/network/admin

  8. MAIL=/var/spool/mail/oracle

  9. PATH=/u01/app/oracle/product/12.2.0/db_1/bin:/bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin:/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oracle/bin:/home/oracle/bin

  10. PWD=/home/oracle

  11. HOME=/home/oracle

  12. LOGNAME=oracle

  13. ORACLE_HOME=/u01/app/oracle/product/12.2.0/db_1

启动监听

  1. $lsnrctl stop

  2. $lsnrctl start

  3. $lsnrctl status

  4. LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 23-NOV-2019 16:07:52

  5. Copyright (c) 1991, 2016, Oracle. All rights reserved.

  6. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.56.103)(PORT=1521)))

  7. STATUS of the LISTENER

  8. ------------------------

  9. Alias LISTENER

  10. Version TNSLSNR for Linux: Version 12.2.0.1.0 - Production

  11. Start Date 23-NOV-2019 10:07:05

  12. Uptime 0 days 6 hr. 0 min. 46 sec

  13. Trace Level off

  14. Security ON: Local OS Authentication

  15. SNMP OFF

  16. Listener Parameter File /u01/app/oracle/product/12.2.0/db_1/network/admin/listener.ora

  17. Listener Log File /u01/app/oracle/diag/tnslsnr/db01/listener/alert/log.xml

  18. Listening Endpoints Summary...

  19. (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.56.103)(PORT=1521)))

  20. (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))

  21. Services Summary...

  22. Service "orcl" has 2 instance(s).

  23. Instance "orcl", status UNKNOWN, has 1 handler(s) for this service...

  24. Instance "orcl", status READY, has 1 handler(s) for this service...

  25. Service "orclXDB" has 1 instance(s).

  26. Instance "orcl", status READY, has 1 handler(s) for this service...

  27. The command completed successfully


  28. #

  29. $nc -z 192.168.56.103 1521

  30. Connection to 192.168.56.103 port 1521 [tcp/ncube-lm] succeeded!

  31. $tnsping ORCL@192.168.56.103

5.2 配置文件

连接oracle可能会出错,很可能是listener.ora配置有问题,正确的如下。

listener.ora文件:

  1. cat /u01/app/oracle/product/12.2.0/db_1/network/admin/listener.ora

  2. SID_LIST_LISTENER =

  3. (SID_LIST =

  4. (SID_DESC =

  5. (GLOBAL_DBNAME = orcl)

  6. (ORACLE_HOME = /u01/app/oracle/product/12.2.0/db_1)

  7. (SID_NAME = orcl)

  8. )

  9. )

  10. LISTENER =

  11. (DESCRIPTION_LIST =

  12. (DESCRIPTION =

  13. (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.103)(PORT = 1521))

  14. )

  15. (DESCRIPTION =

  16. (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))

  17. )

  18. )


  19. ADR_BASE_LISTENER = /u01/app/oracle

tnsnames.ora

  1. LISTENER_ORCL =

  2. (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.103)(PORT = 1521))

  3. ORCL =

  4. (DESCRIPTION =

  5. (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.103)(PORT = 1521))

  6. (CONNECT_DATA =

  7. (SERVER = DEDICATED)

  8. (SERVICE_NAME = orcl)

  9. )

  10. )

6. 访问数据库

6.1 SQLPlus连接 Oracle

  1. #本机

  2. $sqlplus / as sysdba

  3. $

  4. $sqlplus sys/oracle@orcl(网络服务名) as sysdba


  5. SQL> select status from v$instance;


  6. STATUS

  7. ------------------------

  8. OPEN

6.2 Navicat 远程连接oracle

Navicat 可让用户简单地管理 MySQL、MariaDB、MongoDB、SQL Server、SQLite、Oracle 和 PostgreSQL 的数据。

官网: https://www.navicat.com.cn/products/

1)安装Navicat

下载地址:https://www.navicat.com.cn/download/navicat-premium

2)修改Oracle hosts

  1. #IP要和服务器IP一致 ,名称一致

  2. vim /etc/hosts

  3. 192.168.56.103 db01


  4. #有可能mac机器也要配置host,待测试。

  5. #sudo scutil --set HostName TaoMacBookPro

说明:有时Navicat 远程连接失败,一种可能原因是没有配置/etc/host。

3)配置Navicat

mac上的navicat不需要配置tnsnames.ora。

7. 安装问题处理

Q1: 安装oracle图形界面出不来,出错DISPLAY environment variable not set!。

A1: 可能要export DISPLAY=:0.0。

  1. root登录一个窗口,运行一下语句。

  2. #export DISPLAY=:0.0

  3. echo 'export DISPLAY=:0.0'>>/etc/profile

  4. source /etc/profile

  5. #xhost +

  6. #su - oracle

  7. 然后就在这个窗口运行oracle的安装程序。

Q2:runInstaller出错,错误Linux PRVF-0002 : Could not retrieve local nodename

A2:runInstaller 出错,可能是要配置/etc/hosts。

  1. 1. ifconfig 得到ip 192.168.56.103

  2. 2. hostname得到名字db01

  3. $ hostname

  4. db01

  5. 3. 然后设置 自己的 地址:vim /etc/hosts 。为hostname相应的地址

  6. #当前的ip 和hostname

  7. 192.168.56.103 db01

  8. 4. 继续安装

Q3: 监听器没有启动,连接oracle失败。

A3:启动lsnrctl start即可。

  1. 1. su oracle

  2. 2. lsnrctl start

  3. #停止监听器命令

  4. 3. lsnrctl stop

  5. #查看监听器命令.

  6. 4. lsnrctl status

Q4: 远程访问oracle,出错 ORA-12541: TNS:no listener

A4:很可能是 listener.ora配置只配置了hostname,即把db01名字,改为ip。(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.103)(PORT = 1521))

  1. su - oracle

  2. cd /u01/app/oracle/product/12.2.0/db_1/network/admin

  3. cp listener.ora listener.ora.backup

  4. #配置listener 增加IP。开始是hostname

  5. vim listener.ora

  6. #

  7. LISTENER =

  8. (DESCRIPTION_LIST =

  9. (DESCRIPTION =

  10. (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.103)(PORT = 1521))

  11. (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))

  12. )

  13. )

重启lsnrctl:

  1. #重启

  2. lsnrctl stop

  3. lsnrctl start

  4. lsnrctl status

Q5: 远程访问oracle,出错 ORA-12541: TNS:no listener

A5:若listener.ora配置正确,也可能是tnsnames.ora配置不正确。

  1. $nc -z 192.168.56.103 1521

  2. $tnsping ORCL

  3. $tnsping ORCL@192.168.56.103


  4. ##正确的配置类似.

  5. cat tnsnames.ora

  6. LISTENER_ORCL =

  7. (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.103)(PORT = 1521))

  8. ORCL =

  9. (DESCRIPTION =

  10. (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.103)(PORT = 1521))

  11. (CONNECT_DATA =

  12. (SERVER = DEDICATED)

  13. (SERVICE_NAME = orcl)

  14. )

  15. )

也可以用netmgr图形化配置。

  1. su - oracle

  2. netmgr

Q6: 连接oracle,出错ORA-27101: shared memory realm does not exist

A6: 原因常是非正常关停oracle引起,如直接断电关机引起。可尝试强制startup force。

  1. connect / as sysdba

  2. startup force

参考

  • https://docs.oracle.com/en/database/oracle/oracle-database/index.html

  • https://www.navicat.com.cn/products

  • Oracle 网络配置与管理 https://www.cnblogs.com/ios9/p/7594717.htm

  • Oracle网络配置 https://blog.csdn.net/newbie_907486852/article/details/80720084

  • 命令行安装Oracle12c https://blog.csdn.net/sl1992/article/details/80457935#42_255


最后修改时间:2019-12-17 12:28:29
文章转载自陶老师运维笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论