查看原文
其他

Oracle 12CR2 安装配置与基础学习

JiekeXu之路 JiekeXu DBA之路 2024-03-03

Oracle Database,又名Oracle RDBMS,或简称 Oracle。是甲骨文公司的一款关系数据库管理系统。Oracle 数据库 12c 引入了一个新的多租户架构,使用该架构可轻松部署和管理数据库云。目前最新的版本是 19C(19.3),还有 18C(18.3、18.4)两个版本以及 12C(12.1、12.2两个版本)。本次使用的是 Linux下的 12.2.0.1 版本。


0、软件下载


https://www.oracle.com/database/technologies/oracle-database-software-downloads.html

打开此网站,选择相应的操作系统版本,点击 See  All 便出现如下页面。便可以下载软件了(前提是需要 Oracle 账号登陆才可以)。



1、安装前检查


对内存、交换空间、磁盘空间、临时目录和操作系统版本等进行检查

[root@JiekeXu ~]# free -m total used free shared buff/cache availableMem: 1819 916 94 28 808 640Swap: 2047 0 2047[root@JiekeXu ~]#[root@JiekeXu ~]# df -h /dev/shm/文件系统 容量 已用 可用 已用% 挂载点tmpfs 910M 4.0K 910M 1% /dev/shm
[root@JiekeXu ~]# cat /etc/fstab## /etc/fstab# Created by anaconda on Thu Jul 4 01:57:56 2019## Accessible filesystems, by reference, are maintained under '/dev/disk'# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info#/dev/mapper/centos-root / xfs defaults 0 0UUID=d40ff30e-48ce-4286-8e3f-bc9e30f3a6bb /boot xfs defaults 0 0/dev/mapper/centos-swap swap swap defaults 0 0

[root@JiekeXu ~]# uname -mx86_64[root@JiekeXu ~]# uname -r3.10.0-957.el7.x86_64[root@JiekeXu ~]# cat /etc/sysconfig/network# Created by anaconda[root@JiekeXu ~]# cat /etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4::1 localhost localhost.localdomain localhost6 localhost6.localdomain6[root@JiekeXu ~]# vi /etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4::1 localhost localhost.localdomain localhost6 localhost6.localdomain6192.168.32.66 JiekeXu

Oracle官方建议安装目录最小要求 7.5G 大小,目前安装到根目录便可以使用。

[root@JiekeXu ~]# df -h文件系统 容量 已用 可用 已用% 挂载点/dev/mapper/centos-root 27G 4.2G 23G 16% /devtmpfs 894M 0 894M 0% /devtmpfs 910M 4.0K 910M 1% /dev/shmtmpfs 910M 11M 900M 2% /runtmpfs 910M 0 910M 0% /sys/fs/cgroup/dev/sda1 1014M 180M 835M 18% /boottmpfs 182M 4.0K 182M 1% /run/user/42tmpfs 182M 64K 182M 1% /run/user/0/dev/sr0 4.3G 4.3G 0 100% /run/media/root/CentOS 7 x86_64[root@JiekeXu ~]# df -h /tmp/文件系统 容量 已用 可用 已用% 挂载点/dev/mapper/centos-root 27G 4.2G 23G 16% /
[root@JiekeXu /]# cat /proc/versionLinux version 3.10.0-957.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) ) #1 SMP Thu Nov 8 23:39:32 UTC 2018[root@JiekeXu /]#[root@JiekeXu /]# cat /etc/redhat-releaseCentOS Linux release 7.6.1810 (Core)


1、查看官方文档


oracle 自己也有一份很详细的安装文档可在线查看或下载,例如下,数据库 12.2.0.1 对操作系统版本有严格要求, Red Hat Enterprise Linux 6.4: 2.6.32-358.el6.x86_64 or later、 Red Hat Enterprise Linux 7: 3.10.0-123.el7.x86_64 or later 等等。

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



2、配置 yum 源 安装 RPM 包


前面已经说过配置 YUM 源的方法了,可查看前一节进行配置,然后安装一下 rpm 包。如果你使用的是 Oracle Linux 7 那么可以去此网址下载 这么一个 oracle-database-server-12cR2-preinstall 包即可。

https://oss.oracle.com/ol7/SRPMS-updates/


也可使用配置好的 yum 源 直接安装以下包即可。

yum install binutils* yum install compat* yum install glibc*yum install ksh*yum install libgcc* yum install libstdc* yum install libaio*yum install make*yum install sysstat*yum install unixODBC*

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


3、修改资源限制


先备份 /etc/security/limits.conf 此文件,然后添加如下 5 行内容

cp /etc/security/limits.conf /etc/security/limits.conf.bakvi /etc/security/limits.conforacle soft nproc 2047oracle hard nproc 16384oracle soft nofile 1024oracle hard nofile 65536oracle soft stack 10240


4、调整内核参数


先备份 /etc/sysctl.conf 此文件,然后添加如下内容,重启操作系统。

vim /etc/sysctl.conf
fs.aio-max-nr = 1048576 #异步IO请求数目 推荐值是:1048576 其实它等于 1024*1024 也就是 1024K 个fs.file-max = 6815744 #打开的文件句柄的最大数量,防止文件描述符耗尽的问题kernel.shmall = 2097152 #共享内存总量 页为单位,内存除以4K所得kernel.shmmax = 4294967295 kernel.shmmni = 4096kernel.sem = 250 32000 100 128 #SEMMSL: 每个信号集的最大信号数量 SEMMNS:用于控制整个 Linux 系统中信号的最大数 SEMOPM:内核参数用于控制每个 semop 系统调用可以执行的信号操作的数量 SEMMNI :内核参数用于控制整个 Linux 系统中信号集的最大数量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 #套接字发送缓冲区大小的最大值


5、创建 Oracle 用户和组

groupadd oinstall #创建基本组 oinstallgroupadd dba #创建附加组 dbagroupadd oper #创建附加组 operuseradd -g oinstall -G dba,oper oracle #创建 用户echo 'Oracle12c' | passwd --stdin oracle #配置密码


6、创建 Oracle安装目录

mkdir -p /u01/app/oracle #创建oracle安装目录chown -R oracle:oinstall /u01/app/oracle #分配属组属主chmod -R 755 /u01/app/oracle/ #分配权限


7、Oracle 用户环境配置

vim /home/oracle/.bash_profile #oracle用户环境配置umask 022 #反掩码ORACLE_BASE=/u01/app/oracle #oracle的基本目录ORACLE_HOME=/u01/app/oracle/product/12.2.0/dbhome_1/ #oracle的家目录ORACLE_SID=JiekeXu #实例名称NLS_LANG="SIMPLIFIED CHINESE_CHINA".UTF8 # 设置语言为中文PATH=$PATH:$HOME/.local/bin:$HOME/bin:$ORACLE_HOME/bin #设置系统环境LANG=zh_CN.UTF-8export PATH LANG NLS_LANG ORACLE_BASE ORACLE_HOME ORACLE_SID #使环境生效

source .bash_profile 使环境变量生效。


8、oracle 用户资源限制


使用 pam_limits 认证模块,通过修改 pam 来达到控制 oracle 的目的

vim /etc/pam.d/login#在其中添加session required /lib/security/pam_limits.sosession required pam_limits.so


9、上传软件并解压


软件上传至 /u01/software/ 并赋权、解压


10、启动 Xmanager - Passive 安装数据库


查看宿主机 VMnet1 的 IP 地址


oracle 用户设置 DISPLAY 将图形化界面显示在宿主机,

export DISPLAY=192.168.32.1:0.0

echo $DISPLAY



如上,执行  ./runInstaller 出现图形化则可安装。由于是个人测试环境,本次使用图形化安装,后面有机会静默安装。


去掉对勾,不接收更新。

点击“是” 进行下一步。

选择“仅安装数据库软件”然后进行下一步。

只有一台机器故选择“单实例数据库安装”。

选择“企业版”安装。

Oracle 基目录,不用变,直接下一步。

产品清单,直接下一步。

已授权的操作系统组,直接下一步。

环境检查,发现交换空间不足。


当出现交换空间不足时,需要重新设置 swap 大小,生产环境不建议忽略,设置 swap 也很简单,如下步骤:

查看目前大小

[root@JiekeXu ~]# free -m total used free shared buff/cache availableMem: 2785 913 113 13 1758 1484Swap: 2047 0 2047从 / 下分出 1G 的空间作为 swap 使用[root@JiekeXu ~]# dd if=/dev/zero of=/root/swap bs=1MB count=1024记录了1024+0 的读入记录了1024+0 的写出1024000000字节(1.0 GB)已复制,4.17399 秒,245 MB/秒[root@JiekeXu ~]#[root@JiekeXu ~]# mkswap /root/swap #格式化正在设置交换空间版本 1,大小 = 999996 KiB无标签,UUID=d42d3604-4305-4083-bd8c-3a6978603a06[root@JiekeXu ~]#[root@JiekeXu ~]# swapon /root/swap #激活 swapswapon: /root/swap:不安全的权限 0644,建议使用 0600。[root@JiekeXu ~]#[root@JiekeXu ~]# free -m total used free shared buff/cache availableMem: 2785 913 181 13 1690 1487Swap: 3024 0 3024

如有其它不影响的条件可忽略,选择 "是" 继续安装。

当设置完 swap 交换空间后直接点击“安装”。

则会出现如下图所示的安装进度。

当进度条大于到 95 % 时,出现如下界面,需要使用 root 执行出现的脚本。

使用 root 用户执行第一个脚本

[root@JiekeXu app]# /u01/app/oraInventory/orainstRoot.sh更改权限/u01/app/oraInventory.添加组的读取和写入权限。删除全局的读取, 写入和执行权限。更改组名/u01/app/oraInventory 到 oinstall.脚本的执行已完成。

使用 root 用户执行第二个脚本,然后到 [/usr/local/bin] 时回车,到 Trace File Analyzer (TFA) now ? yes|[no] : 时输入 yes,如下所示:

[root@JiekeXu app]# /u01/app/oracle/product/12.2.0/dbhome_1/root.shPerforming root user operation.The following environment variables are set as: ORACLE_OWNER= oracle ORACLE_HOME= /u01/app/oracle/product/12.2.0/dbhome_1Enter the full pathname of the local bin directory: [/usr/local/bin]: Copying dbhome to /usr/local/bin ... Copying oraenv to /usr/local/bin ... Copying coraenv to /usr/local/bin ...Creating /etc/oratab file...Entries will be added to the /etc/oratab file as needed byDatabase Configuration Assistant when a database is createdFinished running generic part of root script.Now product-specific root actions will be performed.Do you want to setup Oracle Trace File Analyzer (TFA) now ? yes|[no] :Oracle Trace File Analyzer (TFA - User Mode) is available at : /u01/app/oracle/product/12.2.0/dbhome_1/suptools/tfa/release/tfa_home/bin/tfactlOROracle Trace File Analyzer (TFA - Daemon Mode) can be installed by running this script : /u01/app/oracle/product/12.2.0/dbhome_1/suptools/tfa/release/tfa_home/install/roottfa.sh/u01/app/oracle/product/12.2.0/dbhome_1/rdbms/install/rootadd_rdbms.sh: 第 79 行:[: 6815744: 期待二元表达式/u01/app/oracle/product/12.2.0/dbhome_1/rdbms/install/rootadd_rdbms.sh: 第 79 行:[: 参数太多/u01/app/oracle/product/12.2.0/dbhome_1/rdbms/install/rootadd_rdbms.sh: 第 88 行:[: 6815744: 期待一元表达式 [root@JiekeXu app]# /u01/app/oracle/product/12.2.0/dbhome_1/root.shPerforming root user operation.The following environment variables are set as: ORACLE_OWNER= oracle ORACLE_HOME= /u01/app/oracle/product/12.2.0/dbhome_1Enter the full pathname of the local bin directory: [/usr/local/bin]:The contents of "dbhome" have not changed. No need to overwrite.The contents of "oraenv" have not changed. No need to overwrite.The contents of "coraenv" have not changed. No need to overwrite.Entries will be added to the /etc/oratab file as needed byDatabase Configuration Assistant when a database is createdFinished running generic part of root script.Now product-specific root actions will be performed.Do you want to setup Oracle Trace File Analyzer (TFA) now ? yes|[no] :yesInstalling Oracle Trace File Analyzer (TFA).Log File: /u01/app/oracle/product/12.2.0/dbhome_1/install/root_JiekeXu_2019-09-07_23-05-47-800056905.logFinished installing Oracle Trace File Analyzer (TFA)[root@JiekeXu app]#

执行完脚本后,可直接点击“确定”。

然后就完成了,点击关闭即可。


11、netca 配置监听


继续调用图形化, netca 一路 下一步、下一步即可完成。

[oracle@JiekeXu database]$ export DISPLAY=192.168.32.1:0.0[oracle@JiekeXu database]$ netca


lsnrctl status 查看监听状态


当然,以上图形化配置监听,则是生成上图中的 listener.ora 配置文件,也可直接修改此文件即可。内容以及路径如下:

[oracle@JiekeXu admin]$ more listener.ora# listener.ora Network Configuration File: /u01/app/oracle/product/12.2.0/dbhome_1/network/admin/listener.ora# Generated by Oracle configuration tools.LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = JiekeXu)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) )


12、dbca 建库


一般我们会在 DBCA 建库前先打补丁,但由于补丁的查找与下载比较麻烦,限于篇幅放到后面再说吧。
[oracle@JiekeXu database]$ export DISPLAY=192.168.32.1:0.0[oracle@JiekeXu database]$ dbca

创建模式中选择第二个“高级配置”。

选择 单实例数据库,“一般用途或事务处理”

这里需要勾选如下图中所示的“创建为容器数据库”

默认勾选第一项,“为数据库存储属性使用模板文件”

暂时不开启归档不指定闪回区

使用之前配置好的监听程序

Oracle Database Vault 选择默认,不启用

选择 自动内存管理 大小 800M

调整大小里面默认连接数300不变,字符集如下默认即可。

连接模式默认选择“专用服务器模式(D)”,后面示例方案勾选即可。

配置 EM 端口默认为 5500

统一设置密码为 Oracle12c

勾选创建数据库开始下一步

点击完成,则会出现如下进度条进行数据库实例的创建。到 47% 时间比较久,耐心等待即可。

进度条完成后直接点击关闭即可。

查看相关进程

简单查看主机资源使用情况以及数据库情况

[oracle@JiekeXu admin]$ df -h文件系统 容量 已用 可用 已用% 挂载点/dev/mapper/centos-root 27G 21G 6.3G 78% /devtmpfs 1.4G 0 1.4G 0% /devtmpfs 1.4G 484M 909M 35% /dev/shmtmpfs 1.4G 12M 1.4G 1% /runtmpfs 1.4G 0 1.4G 0% /sys/fs/cgroup/dev/sr0 4.3G 4.3G 0 100% /mnt/centos/dev/sda1 1014M 180M 835M 18% /boottmpfs 279M 12K 279M 1% /run/user/42tmpfs 279M 0 279M 0% /run/user/0[oracle@JiekeXu admin]$ free -m total used free shared buff/cache availableMem: 2785 826 490 489 1467 1170Swap: 3024 48 2976[oracle@JiekeXu admin]$ cd /u01/app/oracle/[oracle@JiekeXu oracle]$ ll总用量 0drwxr-x---. 3 oracle oinstall 21 9月 8 00:08 admindrwxr-x---. 3 oracle oinstall 21 9月 8 00:12 auditdrwxr-xr-x. 5 oracle oinstall 47 9月 8 00:18 cfgtoollogsdrwxr-xr-x. 2 oracle oinstall 6 9月 7 23:12 checkpointsdrwxrwxr-x. 21 oracle oinstall 254 9月 7 23:01 diagdrwxr-x---. 3 oracle oinstall 21 9月 8 00:08 oradatadrwxr-xr-x. 3 oracle oinstall 20 9月 7 22:49 productdrwxr-xr-x. 5 root root 73 9月 7 23:07 tfa[oracle@JiekeXu oracle]$ du -sh *1.7M admin0 audit20M cfgtoollogs0 checkpoints5.4M diag3.4G oradata7.2G product[oracle@JiekeXu oracle]$ ls -lh /u01/app/oracle/oradata/JiekeXu/总用量 2.0G-rw-r-----. 1 oracle oinstall 18M 9月 8 00:36 control01.ctl-rw-r-----. 1 oracle oinstall 18M 9月 8 00:36 control02.ctldrwxr-x---. 2 oracle oinstall 104 9月 8 00:28 JiekeXupdbdrwxr-x---. 2 oracle oinstall 111 9月 8 00:13 pdbseed-rw-r-----. 1 oracle oinstall 201M 9月 8 00:25 redo01.log-rw-r-----. 1 oracle oinstall 201M 9月 8 00:35 redo02.log-rw-r-----. 1 oracle oinstall 201M 9月 8 00:25 redo03.log-rw-r-----. 1 oracle oinstall 471M 9月 8 00:35 sysaux01.dbf-rw-r-----. 1 oracle oinstall 801M 9月 8 00:32 system01.dbf-rw-r-----. 1 oracle oinstall 34M 9月 8 00:27 temp01.dbf-rw-r-----. 1 oracle oinstall 71M 9月 8 00:31 undotbs01.dbf-rw-r-----. 1 oracle oinstall 5.1M 9月 8 00:25 users01.dbf


[oracle@JiekeXu oracle]$ sqlplus / as sysdbaSQL*Plus: Release 12.2.0.1.0 Production on 星期日 9月 8 00:40:38 2019Copyright (c) 1982, 2016, Oracle. All rights reserved.连接到:Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit ProductionSQL> col name for a20SQL> select name,open_mode from v$pdbs;NAME OPEN_MODE-------------------- ------------------------------PDB$SEED READ ONLYJIEKEXUPDB READ WRITE


打开宿主机浏览器输入 https://IP:5500/em/login

注意:需要先运行 flash 以及远程 Linux 关闭防火墙和 SeLinux



13、建库后相关配置

sqlplus 命令提示符

[oracle@JiekeXu ~]$ cd $ORACLE_HOME/sqlplus/admin[oracle@JiekeXu admin]$ vi glogin.sqlset linesize 120set pagesize 999define _editor=viset sqlprompt "_user'@'_connect_identifier> "


配置 tnsnames.ora 增加 JIEKEXUPDB

[oracle@JiekeXu ~]$ cd $ORACLE_HOME/network/admin[oracle@JiekeXu admin]$ cat tnsnames.ora# tnsnames.ora Network Configuration File: /u01/app/oracle/product/12.2.0/dbhome_1/network/admin/tnsnames.ora# Generated by Oracle configuration tools.
JIEKEXU = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = JiekeXu)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = JiekeXu) ) )
LISTENER_JIEKEXU = (ADDRESS = (PROTOCOL = TCP)(HOST = JiekeXu)(PORT = 1521))
JIEKEXUPDB = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = JiekeXu)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = JIEKEXUPDB) ) )


sqlplus 历史命令 rlwrap


上传 rlwrap 包至 /u01/software 解压,然后编译(./configure)、安装(make&&make install).


[root@JiekeXu rlwrap-0.37]# which rlwrap/usr/local/bin/rlwrap


配置 alias

编辑 oracle 用户.bash_profile 文件 追加两行配置,然后 source 使之生效,sqlplus 登陆测试。

[oracle@enmoedu1 ~]$ vi .bash_profilealias sqlplus='/usr/local/bin/rlwrap sqlplus'alias rman='/usr/local/bin/rlwrap rman'


设置密码永不过期

SYS@JiekeXu> col PROFILE for a20SYS@JiekeXu> col RESOURCE_NAME for a20SYS@JiekeXu> col LIMIT for a20SYS@JiekeXu> set linesize 300SYS@JiekeXu> select * from dba_profiles where resource_name ='PASSWORD_LIFE_TIME' and profile='DEFAULT';PROFILE RESOURCE_NAME RESOURCE_TYPE LIMIT COMMON INHERITED IMPLICIT-------------------- -------------------- ------------------------ -------------------- --------- --------- ---------DEFAULT PASSWORD_LIFE_TIME PASSWORD 180 NO NO NOSYS@JiekeXu> alter profile default limit password_life_time unlimited;配置文件已更改SYS@JiekeXu> select * from dba_profiles where resource_name ='PASSWORD_LIFE_TIME' and profile='DEFAULT';PROFILE RESOURCE_NAME RESOURCE_TYPE LIMIT COMMON INHERITED IMPLICIT-------------------- -------------------- ------------------------ -------------------- --------- --------- ---------DEFAULT PASSWORD_LIFE_TIME PASSWORD UNLIMITED NO NO NO

修改脚本 pdb 中创建 scott 用户

[oracle@JiekeXu ~]$ cd $ORACLE_HOME/rdbms/admin/[oracle@JiekeXu admin]$ cp utlsampl.sql utlsampl2.sql[oracle@JiekeXu admin]$ vi utlsampl2.sqlCONNECT SCOTT/tiger@JIEKEXUPDB #找到这一行,写上自己上面 tns 中配置的服务名
SYS@JIEKEXUPDB> @?/rdbms/admin/utlsampl2.sql[oracle@JiekeXu admin]$ sqlplus scott/tiger@JIEKEXUPDB


解锁 HR 用户

SYS@JiekeXu> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 JIEKEXUPDB READ WRITE NOSYS@JiekeXu> alter session set container=JIEKEXUPDB;  #切换到 PDB会话已更改。SYS@JiekeXu> alter user hr identified by hr account unlock;用户已更改。SYS@JiekeXu> conn hr/hr@JIEKEXUPDB已连接。HR@JIEKEXUPDB> select table_name from user_tables;TABLE_NAME--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------REGIONSCOUNTRIESLOCATIONSDEPARTMENTSJOBSEMPLOYEESJOB_HISTORY已选择 7 行。

文章比较长,还有一部分补丁下载及更新的放后面在介绍吧,花费一个国庆小长假断断续续整理而成的,希望对你有帮助,更希望看到这里的你能点一个“在看”,便是对我最大的支持咯。


80%


推荐阅读:

Linux Oracle 11.2.0.4 单机数据库升级至最新补丁安装指北

万字详解Oracle架构、原理、进程,学会世间再无复杂架构

Linux | CentOS6.X/7.X 忘记超级用户 root 密码该怎么办?

模拟真实环境下超简单超详细的 MySQL 5.7 安装

CentOS6.7安装PostgreSQL10.9详细教程

Linux CentOS 7 安装教程

Linux RHEL7 安装教程


长按添加微信公众号,更多精彩内容不错过!

继续滑动看下一个

Oracle 12CR2 安装配置与基础学习

JiekeXu之路 JiekeXu DBA之路
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存