CentOS7系统
- 内存: 4GB及以上
- swap: 8GB(是物理内存的两倍)
- cpu:双核
安装要求:下面对应命令
1. 防火墙的配置选项设置为禁用
2. SELinux设置为禁用
3. 默认安装设置为软件开发
4. 内核选择3.10.0.54.0.1.el7.x86_64及以上版本
命令就这些 下面有详细的 做这些是上面安装的要求
systemctl stop firewalld //禁用
systemctl status firewalld //看状态是否禁用
setenforce 0 //临时关闭selinux模式
cat /proc/version //Linux查看系统版本命令
uname -a //Linux查看系统版本命令
grep MemTotal /proc/meminfo //查看物理内存
grep SwapTotal /proc/meminfo //交换分区大小
df -hT //查看磁盘空间 看/dev/mapper/centos-root
vim /etc/hosts //修改主机名这里不采用因为centos7有更快的方法
hostnamectl set-hostname Oracle //修改主机名为Oracle hostname 查看当前主机名
java //看能不能出来命令
java -version //openjdk version "1.8.0_242"
安装依赖包 如果出现另一个程序正在运行 rm -rf /var/run/yum.pid
vim /etc/sysctl.conf //内核参数调整体现在这个文件中
在里面另起一行删掉#号输入下面内容
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4294967295
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
#重新加载配置文件
system -p
接下来就从##### (4)Oracle用户环境要求这里开始不再这里写了
相关命令:
[root@192 accp]# systemctl stop firewalld.service
[root@192 accp]# systemctl disable firewalld.service
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@192 accp]# setenforce 0
[root@192 accp]#
查看系统版本
Oracle 12c支持centos系列的操作系统,可以通过以下命令查看系统版本:
[root@bogon ~]# cat /etc/centos-release
CentOS Linux release 7.6.1810 (Core)
查看物理内存和交换内存
物理内存:必须高于1G,对于VMware虚拟机建议不少于2GB。
交换空间:物理内存为1-2GB时,交换分区为物理内存的1.5-2倍;物理内存为2-16GB时,交换分区与物理内存大小相同;物理内存超过16GB时,交换分区使用16GB就可以了。
[root@bogon ~]# grep MemTotal /proc/meminfo
MemTotal: 1863224 kB
[root@bogon ~]# grep SwapTotal /proc/meminfo
SwapTotal: 2097148 kB
增加交换分区大小
# 创建交换文件
[root@desktop-dm818pf ~]# touch /swapfile
[root@desktop-dm818pf ~]# dd if=/dev/zero of=/swapfile bs=64M count=16
记录了16+0 的读入
记录了16+0 的写出
1073741824字节(1.1 GB)已复制,3.68447 秒,291 MB/秒
# 格式化交换文件
[root@desktop-dm818pf ~]# mkswap /swapfile
正在设置交换空间版本 1,大小 = 1048572 KiB
无标签,UUID=c2f5a476-22a2-4330-a6fb-3f4962273053
# 激活交换文件
[root@desktop-dm818pf ~]# swapon /swapfile
swapon: /swapfile:不安全的权限 0644,建议使用 0600。
[root@desktop-dm818pf ~]# chmod -R 600 /swapfile
# 查看交换文件
[root@desktop-dm818pf ~]# free
total used free shared buff/cache available
Mem: 1863040 810716 136792 25368 915532 864640
Swap: 3145720 520 3145200
查看磁盘空间的使用情况**
[root@bogon ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 17G 8.4G 8.7G 50% /
devtmpfs devtmpfs 894M 0 894M 0% /dev
tmpfs tmpfs 910M 8.0K 910M 1% /dev/shm
tmpfs tmpfs 910M 11M 900M 2% /run
tmpfs tmpfs 910M 0 910M 0% /sys/fs/cgroup
/dev/sda1 xfs 1014M 179M 836M 18% /boot
tmpfs tmpfs 182M 36K 182M 1% /run/user/0
如果不单独给Oracle创建分区,至少要保证根分区有15G的可用磁盘空间。如果当前磁盘空间不足,可以考虑在虚拟机中添加一块硬盘,格式化为XFS文件系统。同时创建/orc目录,将新创建的分区挂载到/orc目录。还要记得修改/etc/fstab文件,让其开机自动挂载。详见本文中【四、附录:添加新硬盘并格式化分区】。
修改主机名
安装Oracle数据库前,要求规划好主机名和IP。服务器的主机名、IP地址也应提前确定无误,一旦Oracle数据库安装完成,建议不要再修改主机名,否则会导致数据库启动失败。查看主机名可以通过hostname命令实现,秀爱主机名通过配置文件/etc/hosts实现,代码如下:
[root@192 accp]# hostname
192.168.79.158
[root@192 accp]# vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.79.158 Oracle
Oracle 12c的安装过程通常在图形界面中进行,因此建议使用已经安装有GNOME中文桌面环境的centos服务器。软件开发工具当然也是必不可少的,如gcc、glibc、binutils等软件包,建议使用yum工具来安装必要的软件环境,具体操作如下:
[root@bogon ~]# 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
为了确保数据库运行稳定,Oracle 12c针对Linux内核参数、进程会话限制提出了一些要求,其中一部分设置可以在安装过程中自动检测并修复,但并不一定很完整,所以最好的做法是根据安装文档提前进行配置。
内核参数调整体现在/etc/sysctl.conf文件中,主要包括对内存调度、端口范围、打开文件数、I/O请求等相关的一些设置,相关数值不可低于安装要求。修改完毕后通过执行“sysctl -p”命令使新配置立即生效。
[root@192 accp]# vim /etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4294967295
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
#重新加载配置文件
[root@192 accp]# sysctl -p
相关内核参数解释:
fs.aio-max-nr:异步IO请求数目
fs.file-max:系统所有进程一共可以打开的文件数量
kernel.shmmax:定义单个共享内存段的最大值,默认值,大于此值即可
kernel.shmall:控制共享内存页数,默认值,大于此值即可
kernel.shmmni:共享内存段的最大数量
kernel.sem:semaphore为每个进程通讯需要的信号灯或者IPC标志
net.ipv4.ip_local_port_range:向外连接的端口范围
net.core.rmem_default:内核套接字接受缓存区默认的大小
net.core.rmem_max:内核套接字接受缓存区的最大大小
net.core.wmem_default:内核套接字发送缓存区默认的大小
net.core.wmem_max:内核套接字发送缓存区的最大大小
Oracle 12c需要固定的运行用户oracle、安装组oinstall、管理组dba,这些账号应提前建立好。用来存放Oracle程序及数据库文件的基本目录(如/opt/oracle)也应提前创建好。命令如下:
[root@192 accp]# groupadd oinstall #创建安装组 oinstall
[root@192 accp]# groupadd dba #创建管理组 dba
[root@192 accp]# useradd -g oinstall -G dba oracle #创建运行用户
[root@192 accp]# passwd oracle #配置密码(123456)
[root@192 accp]# mkdir -p /orc/app/oracle # 创建基本目录
[root@192 accp]# chown -R oracle:oinstall /orc/app
[root@192 accp]# chmod -R 755 /orc/app/oracle
Oracle 12c的安装任务应以运行用户oracle的身份执行,需适当调整Oracle用户的环境配置以便满足要求。具体操作如下:
[root@oracle ~]# vim /home/oracle/.bash_profile
# 直接加入下面代码
umask 022
ORACLE_BASE=/orc/app/oracle
ORACLE_HOME=/orc/app/oracle/product/12.1.0/dbhome_1
ORACLE_SID=orcl
NLS_LANG="SIMPLIFIED CHINESE_CHINA".UTF8
PATH=$PATH:$ORACLE_HOME/bin
LANG=zh_CN.UTF-8
export PATH LANG NLS_LANG ORACLE_BASE ORACLE_HOME ORACLE_SID
umask 022 # 反掩码
ORACLE_BASE=/orc/app/oracle # 定义基本目录
ORACLE_HOME=/orc/app/oracle/product/12.1.0/dbhome_1 # 定义安装家目录
ORACLE_SID=orcl # 定义数据库实例名
NLS_LANG="SIMPLIFIED CHINESE_CHINA".UTF8 # 确定使用何种语言环境
PATH=$PATH:$ORACLE_HOME/bin #设置系统环境
LANG=zh_CN.UTF-8
export PATH LANG NLS_LANG ORACLE_BASE ORACLE_HOME ORACLE_SID #使环境生效
[root@192 accp]# source /home/oracle/.bash_profile
[root@192 accp]# echo $PATH
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/accp/.local/bin:/home/accp/bin:/root/.local/bin:/root/bin:/root/.local/bin:/root/bin:/orc/app/oracle/product/12.1.0/dbhome_1/bin
进程会话限制可以采用pam_limits认证模块来实现,通过修改登陆程序login的PAM设置以启用该认证,然后修改/etc/security/limits.conf文件,将用户oracle能够打开的进程数、进程使用的文件数加大。具体操作如下:
[root@oracle ~]# vim /etc/pam.d/login
# 省略部分内容
# Oracle用户资源限制
session required /lib/security/pam_limits.so
session required pam_limits.so
[root@oracle ~]# vim /etc/security/limits.conf
# 省略部分内容
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle soft nproc 2047 # 进程数软限制
oracle hard nproc 16384 # 进程数硬限制
oracle soft nofile 1024 # 文件数软限制
oracle hard nofile 65536 # 文件数硬限制
oracle soft stack 10240 # Oracle软堆栈限制
[root@oracle ~]# vim /etc/profile
# 省略部分内容
if [ $USER = "oracle" ]
then
if [ $SHELL = "/bin/ksh" ]
then
ulimit -p 16384 #缓冲区大小
ulimit -p 65536
else
ulimit -u 16384 -n 65536 #进程数 文件数
fi
fi
[root@oracle ~]# source /etc/profile
Oracle用户资源限制部分,不配置也不会影响Oracle数据库的成功安装。但是,若有糟糕的SQL语句对服务器资源的无限占用,导致长时间对用户请求无响应,建议提前限制Oracle用户资源。
注意:准备工作安装完成后重新启动系统
准备工作完成后重启服务器。
[root@oracle ~]# init 6
重新启动以后,再次检查之前的配置是否生效。建议不要做临时配置。
Oracle的中文官方网址为https://www.oracle.com/cn,它提供Oracle 12c安装文件的免费下载(需注册账号)。正确选择所使用的系统平台(如Linux x86),然后分别下载1of2、2of2这两个ZIP压缩包,解压后可获得database文件夹、Oracle的安装脚本、产品手册等文档都位于此文件夹中。
Oracle数据库下载地址:
https://www.oracle.com/database/technologies/oracle-database-software-downloads.html
[root@Oracle ~]# mkdir /tmp/abc
[root@oracle ~]# mv linuxamd64_12102_database_1of2.zip /tmp/abc/
[root@oracle ~]# mv linuxamd64_12102_database_2of2.zip /tmp/abc/
[root@Oracle ~]# cd /tmp/abc/
[root@Oracle abc]# ll
总用量 2625080
-rw-r--r--. 1 root root 1673544724 4月 16 09:11 linuxamd64_12102_database_1of2.zip
-rw-r--r--. 1 root root 1014530602 4月 16 09:11 linuxamd64_12102_database_2of2.zip
[root@Oracle abc]# [root@Oracle abc]# unzip linuxamd64_12102_database_1of2.zip
[root@Oracle abc]# [root@Oracle abc]# unzip linuxamd64_12102_database_2of2.zip
[root@Oracle abc]# ll
总用量 2625080
drwxr-xr-x. 7 root root 117 7月 7 2014 database
-rw-r--r--. 1 root root 1673544724 4月 16 09:11 linuxamd64_12102_database_1of2.zip
-rw-r--r--. 1 root root 1014530602 4月 16 09:11 linuxamd64_12102_database_2of2.zip
[root@Oracle abc]# rm -rf linuxamd64_12102_database_*
[root@Oracle abc]# ll database/
总用量 20
drwxr-xr-x. 4 root root 234 4月 16 09:14 install
drwxrwxr-x. 2 root root 61 7月 7 2014 response
drwxr-xr-x. 2 root root 34 7月 7 2014 rpm
-rwxr-xr-x. 1 root root 8533 7月 7 2014 runInstaller
drwxrwxr-x. 2 root root 29 7月 7 2014 sshsetup
drwxr-xr-x. 14 root root 4096 7月 7 2014 stage
-rwxr-xr-x. 1 root root 500 2月 7 2013 welcome.html
Oracle 12c的安装主要通过runInstaller脚本进行,访问网页welcome.html可以查阅产品手册,其中包括产品说明、发行注记、安装指南等文档,为管理员提供了极为丰富的帮助信息。
所有前置条件都准备好以后,就可以开始正式安装了。如果当前的图形桌面环境是以其他用户的身份(如root)登陆的,则还应添加授权以允许用户oracle使用图形终端。例如,“xhost + oracle@localhost”表示允许用户oracle从本机访问、执行,“xhost +”表示取消所有限制。
以用户oracle的身份登录到centos的图形桌面环境,启动database目录下的runinstaller脚本文件,具体操作如下所示:
[root@Oracle abc]# xhost +
access control disabled, clients can connect from any host
[root@Oracle abc]# su oracle
[oracle@Oracle abc]$ cd database/
[oracle@Oracle database]$ export DISPLAY=:0.0
[oracle@Oracle database]$ ./runInstaller
正在启动 Oracle Universal Installer...
检查临时空间: 必须大于 500 MB。 实际为 30446 MB 通过
检查交换空间: 必须大于 150 MB。 实际为 2047 MB 通过
检查监视器: 监视器配置至少必须显示 256 种颜色。 实际为 16777216 通过
准备从以下地址启动 Oracle Universal Installer /tmp/OraInstall2020-04-16_09-19-43AM. 请稍候...
直接将fallback解压后的fallback文件夹放入/tmp/abc/database/stage/Components/oracle.jdk/1.6.0.75.0/1/DataFiles/filegroup2.jar中即可。
最好重新打开一个终端执行脚本。
配置安全更新
安装选项
系统类
数据库安装选项
安装类型
典型安装配置
创建产品清单
先决条件检查及汇总
安装产品
执行配置脚本
另开一个终端
先su root
[root@Oracle ~]# /orc/app/oraInventory/orainstRoot.sh
[root@Oracle ~]# /orc/app/oracle/product/12.1.0/dbhome_1/root.sh 然后回车走默认 y
RPM包下载地址:https://get.adobe.com/cn/flashplayer/download
[root@Oracle ~]# rpm -vih flash-player-npapi-release.x86_64.rpm
访问EM Database Express平台
在浏览器中输入网址“https://Oracle:5500/em/”访问EM Database Express平台,其中Oracle为安装Oracle数据库的主机名,该名称需要通过hosts解析。
如果浏览器中无内容显示,请检查防火墙设置或将其关闭。在弹出的认证窗口中输入用户名sys,密码为安装时指定的管理口令,勾选“以sysdba身份”复选框。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qhhRqu1f-1595472204448)(img/1587009511728.png)]
登录成功后可以看到EM Database Express界面,如果显示数据库状态正常,无明显错误,则表明Oracle 12c安装成功。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wM3zE4gh-1595472204453)(img/1587009534748.png)]
[oracle@Oracle root]$ sqlplus / as sysdba
SQL*Plus: Release 12.1.0.2.0 Production on 星期四 4月 16 12:06:38 2020
Copyright (c) 1982, 2014, Oracle. All rights reserved.
连接到:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
SQL> startup nomount
ORACLE 例程已经启动。
Total System Global Area 763363328 bytes
Fixed Size 8797440 bytes
Variable Size 608174848 bytes
Database Buffers 138412032 bytes
Redo Buffers 7979008 bytes
SQL> alter database mount;
数据库已更改。
SQL> alter database open;
数据库已更改。
SQL> help index
Enter Help [topic] for help.
@ COPY PASSWORD SHOW
@@ DEFINE PAUSE SHUTDOWN
/ DEL PRINT SPOOL
ACCEPT DESCRIBE PROMPT SQLPLUS
APPEND DISCONNECT QUIT START
ARCHIVE LOG EDIT RECOVER STARTUP
ATTRIBUTE EXECUTE REMARK STORE
BREAK EXIT REPFOOTER TIMING
BTITLE GET REPHEADER TTITLE
CHANGE HELP RESERVED WORDS (SQL) UNDEFINE
CLEAR HISTORY RESERVED WORDS (PL/SQL) VARIABLE
COLUMN HOST RUN WHENEVER OSERROR
COMPUTE INPUT SAVE WHENEVER SQLERROR
CONNECT LIST SET XQUERY
SQL> conn system/123456
已连接。
SQL> show user;
USER 为 "SYSTEM"
sqlplus 用户名/密码
[oracle@Oracle root]$ sqlplus system/123456
SQL> help index
Enter Help [topic] for help.
@ COPY PAUSE SHUTDOWN
@@ DEFINE PRINT SPOOL
/ DEL PROMPT SQLPLUS
ACCEPT DESCRIBE QUIT START
APPEND DISCONNECT RECOVER STARTUP
ARCHIVE LOG EDIT REMARK STORE
ATTRIBUTE EXECUTE REPFOOTER TIMING
BREAK EXIT REPHEADER TTITLE
BTITLE GET RESERVED WORDS (SQL) UNDEFINE
CHANGE HELP RESERVED WORDS (PL/SQL) VARIABLE
CLEAR HOST RUN WHENEVER OSERROR
COLUMN INPUT SAVE WHENEVER SQLERROR
COMPUTE LIST SET XQUERY
CONNECT PASSWORD SHOW
SQL> show user
USER 为 "SYS"
SQL> quit
从 Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options 断开
[root@Oracle ~]# yum install xfsprogs
[root@Oracle ~]# modprobe xfs
[root@Oracle ~]# lsmod |grep xfs
xfs 997127 2
libcrc32c 12644 3 xfs,nf_nat,nf_conntrack
添加硬盘后重启服务器,会发现已经有新的磁盘挂载。
[root@192 ~]# fdisk -l
磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x00023ad3
设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 41943039 19921920 8e Linux LVM
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
parted /dev/sdb
(parted) mklabel gpt
(parted) mkpart xfs 0% 100%
(parted) print
(parted) quit
[root@192 ~]# parted /dev/sdb
GNU Parted 3.1
使用 /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel gpt
(parted) mkpart xfs 0% 100%
(parted) print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name 标志
1 1049kB 21.5GB 21.5GB xfs
(parted) quit
信息: You may need to update /etc/fstab.
[root@192 ~]# mkfs.xfs -f /dev/sdb1
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=1310592 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=5242368, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@192 ~]# vim /etc/fstab
# 省略部分内容
/dev/sdb1 /orl xfs defaults 0 0
[root@192 ~]# mkdir /diskb
[root@192 ~]# mount /dev/sdb1 /orc
[root@192 ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 17G 11G 6.7G 62% /
devtmpfs devtmpfs 894M 0 894M 0% /dev
pfs tmpfs 910M 8.0K 910M 1% /dev/shm
tmpfs tmpfs 910M 11M 900M 2% /run
tmpfs tmpfs 910M 0 910M 0% /sys/fs/cgroup
/dev/sda1 xfs 1014M 179M 836M 18% /boot
tmpfs tmpfs 182M 12K 182M 1% /run/user/42
tmpfs tmpfs 182M 0 182M 0% /run/user/0
/dev/sdb1 xfs 20G 33M 20G 1% /orc
已用% 挂载点
/dev/mapper/centos-root xfs 17G 11G 6.7G 62% /
devtmpfs devtmpfs 894M 0 894M 0% /dev
pfs tmpfs 910M 8.0K 910M 1% /dev/shm
tmpfs tmpfs 910M 11M 900M 2% /run
tmpfs tmpfs 910M 0 910M 0% /sys/fs/cgroup
/dev/sda1 xfs 1014M 179M 836M 18% /boot
tmpfs tmpfs 182M 12K 182M 1% /run/user/42
tmpfs tmpfs 182M 0 182M 0% /run/user/0
/dev/sdb1 xfs 20G 33M 20G 1% /orc