乐趣区

关于数据库:Centos76安装Oracle11g

一、环境筹备

1. 查看 Swap 分区空间(不能小于 2G)

[root@VM-8-11-centos ~]# grep SwapTotal /proc/meminfo
SwapTotal:             0 kB                             # 这就示意此刻零碎的替换分区为 0

# 也能够应用 free 命令进行查看分区空间
[root@VM-8-11-centos ~]# free –h
              total        used        free      shared  buff/cache   available
Mem:        3782992      188508     3355240         568      239244     3373784
Swap:             0           0           0            # 同样是显示空间大小为 0 

2. 创立 Swap 分区空间

Oracle 官网倡议 swap 设置规范

  • ORACLE 官网要求最小 1GB 的 RAM,倡议 2GB 或更大
  • SWAP 与 RAM 的大小配置关系
    • RAM 为 1 -2GB 时,SWAP 大小倡议为 RAM 大小的 1.5 倍
    • RAM 为 2 -16GB 时,SWAP 大小倡议与 RAM 大小相等
    • RAM 大于 16GB 时,SWAP 大小倡议为 16GB

应用 dd 命令创立名为 swapfile 的 swap 交换文件(文件名和目录任意):

[root@VM-8-11-centos ~]# dd if=/dev/zero of=/home/swap bs=1M count=2048
2048+0 records in
2048+0 records out
2147483648 bytes (2.1 GB) copied, 8.82882 s, 243 MB/s

if(即输出文件,input file),of(即输入文件,output file)。dev/zero 是 Linux 的一种特殊字符设施 (输出设施),能够用来创立一个指定长度用于初始化的空文件,如长期交换文件,该设施无穷尽地提供 0,能够提供任何你须要的数目。bs=1M 代表减少的模块大小,count=2048 代表是 2048 个模块,也就是 2G 空间大小

  • count 的计算公式:count = size * bs (size 以 MB 为单位)

回车后,会执行 2g 的读写操作,零碎会卡一段时间,急躁期待执行后果。

执行结束,对交换文件格式化并转换为 swap 分区:

[root@VM-8-11-centos ~]# mkswap /home/swap
Setting up swapspace version 1, size = 2097148 KiB
no label, UUID=cb2f5a45-8cd0-4868-8177-02a9328b0aee

挂载并激活分区:

[root@VM-8-11-centos ~]# swapon /home/swap
swapon: /home/swap: insecure permissions 0644, 0600 suggested.

执行以上命令可能会呈现:“不平安的权限 0644,倡议应用 0600”相似提醒,不要缓和,实际上曾经激活了,能够疏忽提醒,也能够服从零碎的倡议批改下权限:

[root@VM-8-11-centos ~]# chmod -R 0600 /home/swap
[root@VM-8-11-centos ~]#

这时候能够用 free –h 或 swapon –s 命令查看新 swap 分区是否失常增加并激活应用。

[root@VM-8-11-centos ~]# free –h
              total        used        free      shared  buff/cache   available
Mem:        3782992      191436     1194972         568     2396584     3341556
Swap:       2097148           0     2097148
[root@VM-8-11-centos ~]# swapon -s
Filename                                Type            Size    Used    Priority
/home/swap                              file    2097148 0       -2

如果须要敞开 swap 分区则执行

  • swapoff /home/swap

批改 fstab 配置,设置开机主动挂载该分区:

[root@VM-8-11-centos ~]# vim  /etc/fstab 

在 fstab 文件开端追加如下内容后:wq! 保留即可:

/home/swap swap swap default 0 0

或间接对 fstab 进行 echo 追加:

echo  "/home/swap   swap  swap  defaults  0  0" >>  /etc/fstab  

至此,Swap 空间筹备实现。

3. 批改 CentOS 零碎标识 (因为 Oracle 默认不反对 CentOS)

[root@VM-8-11-centos ~]# vim /etc/redhat-release

删除 CentOS Linux release 7.6.2009 (Core)(快捷键 dd),改成 redhat-7

redhat-7

4. 服务器挂载硬盘

这里只是举一个例子,具体的挂载目录须要本人定义(依据须要操作、非必要条件)

[root@VM-8-11-centos ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   30G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   29G  0 part 
  ├─centos-root 253:0    0   27G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0   20G  0 disk         
sr0              11:0    1  4.2G  0 rom  
[root@localhost ~]# 

留神:最初这个 mountpoing 的意思是挂载点,如果 type 类型是 disk(硬盘)且没有挂载点。就证实这个硬盘还没有被挂载,须要你先去把硬盘给挂载上,在进行数据库存储门路的配置。

[root@VM-8-11-centos ~]# mkdir /backup   # 新建一个文件夹作为挂载点

[root@VM-8-11-centos ~]# cd /            # 挪动至根目录下

[root@VM-8-11-centos ~]# ls              # 这里曾经有这个文件夹了
backup  bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var  yumiso

[root@VM-8-11-centos ~]# mount /dev/sdb /backup    # 挂载硬盘,上面会报错。是因为没有对硬盘进行格式化。mount: /dev/sdb is write-protected, mounting read-only  
mount: unknown filesystem type '(null)'       # Mount: 未知的文件系统类型 '(null)'

[root@VM-8-11-centos ~]# mkfs.ext4 /dev/sdb      # 对硬盘进行格式化(格局为 ext4)mke2fs 1.42.9 (28-Dec-2013)
/dev/sdb is entire device, not just one partition!
Proceed anyway? (y,n) y                    # 这里选 y
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1310720 inodes, 5242880 blocks
262144 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2153775104
160 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
        4096000

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done   


[root@VM-8-11-centos ~]# mount /dev/sdb /backup   # 这里在执行一次挂载命令就能够了
[root@VM-8-11-centos ~]# blkid /dev/sdb           # 查看挂载硬盘的 UUID,复制以下。写到上面的配置文件中,实现永恒挂载。/dev/sdb: UUID="6384d556-f444-48ee-8f1d-5257f0c350aa" TYPE="ext4" 


用于挂载信息的指定填写格局中,各字段所示意的意义

设施文件    个别为设施的门路 + 设施名称,也能够写惟一识别码(UUID,Universally Unique Identifier)挂载目录    指定要挂载到的目录,需在挂载前创立好
格局类型    指定文件系统的格局,比方 Ext3、Ext4、XFS、SWAP、iso9660(此为光盘设施)等
权限选项    若设置为 defaults,则默认权限为:rw, suid, dev, exec, auto, nouser, async
是否备份    若为 1 则开机后应用 dump 进行磁盘备份,为 0 则不备份
是否自检    若为 1 则开机后主动进行磁盘自检,为 0 则不自检


如果想将文件系统为 Ext4 的硬件设施 /dev/sdb2 在开机后主动挂载到 /backup 目录上,并放弃默认权限
且毋庸开机自检,就须要在 /etc/fstab 文件中写入上面的信息,这样在零碎重启后也会胜利挂载。[root@VM-8-11-centos ~]# vim /etc/fstab

在最初一行减少如下信息
UUID=b8c4a45f-ed74-3089-fcdb-0273de904d6d      /backup    ext4    defaults    0  0

写入到 /etc/fstab 文件中的设施信息并不会立刻失效,须要应用 mount - a 参数进行主动挂载:

[root@VM-8-11-centos ~]# mount -a

df 命令用于查看已挂载的磁盘空间应用状况,英文全称为“disk free”,语法格局为“df -h”。

查看以后零碎中设施的挂载状况,列出零碎中正在应用的设施有哪些。

[root@VM-8-11-centos ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   27G  9.5G   18G  36% /
devtmpfs                 899M     0  899M   0% /dev
tmpfs                    911M     0  911M   0% /dev/shm
tmpfs                    911M  9.6M  902M   2% /run
tmpfs                    911M     0  911M   0% /sys/fs/cgroup
/dev/sda1               1014M  142M  873M  14% /boot
tmpfs                    183M     0  183M   0% /run/user/0
/dev/sdb                  20G   45M   19G   1% /backup    # 当初硬盘就曾经挂在到了挂载点上了。

挂载谬误之后能够应用 umount 命令,进行卸载,而后从新进行挂载。如果是写入到了配置文件中,也须要对配置文件进行批改。

[root@VM-8-11-centos ~]# umount /dev/sdb

5. 上传资源到服务器

  • CentOS-7-x86_64-DVD-1810.iso(因为零碎是 Centos7.6,所以这里抉择的和零碎版本雷同的、其余版本也能够)

因为须要下载一些依赖,内网环境无奈连贯外网。所以须要上传镜像文件,用于配置本地 yum 源。如能够连通网络环境则不须要上传该镜像文件。

  • yum_source_change.sh 一个脚本文件,用于主动创立本地 yum 源配置文件。(如不须要构建本地 yum 源,则不必上传该文件。)
  • compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm centos7 零碎中缺失的依赖
  • linux.x64_11gR2_database_1of2.zip
  • linux.x64_11gR2_database_2of2.zip 这两个都是装置 oracle 所需的资源包

如能够联通网络,则不需执行 6、7 两步。间接跳过。

6. 应用 root 账户给脚本进行赋权操作

否则脚本没有被执行的权限,无奈运行。

chmod u+x *.sh   # 要先进入到脚本的寄存目录下 

7. 运行脚本文件,构建本地 yum 源

./yum_source_change.sh 2  xxxx/centos.iso

阐明: 给两个运行参数 2 示意执行 yum 源装置 xxx/centos.iso 示意镜像文件全门路

例如我的就是:./yum_source_change.sh 2 /backup/CentOS-7-x86_64-DVD-1810.iso 

回车执行,脚本会主动创立本地 yum 源


执行:df -h 进行查看挂载状况

/dev/loop0      4.3G  4.3G     0 100% /yumiso    # 会发现上面多了一条信息,就示意 yum 源曾经构建实现了 

二、装置步骤

1. 下载安装 Oracle 所需的 rpm 依赖包

[root@VM-8-11-centos ~]# 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

查看是否全副装置胜利

[root@VM-8-11-centos ~]#  rpm -q 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 | grep "not installed"

package compat-libstdc++-33 is not installed

# 是因为可能 centos 零碎中短少这个依赖、须要另外装置。进入到该 rpm 包上传的地位。[root@VM-8-11-centos database]# rpm -ivh compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
warning: compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
Preparing...                          ################################# [100%]
        package compat-libstdc++-33-3.2.3-72.el7.x86_64 is already installed
        file /usr/lib64/libstdc++.so.5.0.7 from install of compat-libstdc++-33-3.2.3-72.el7.x86_64 conflicts with file from package compat-libstdc++-33-3.2.3-72.el7.x86_64

2. 批改 sysctl.conf 内核参数

[root@VM-8-11-centos ~]# vim /etc/sysctl.conf     #批改文件

# sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
#
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
#
# For more information, see sysctl.conf(5) and sysctl.d(5).

# 把上面这些参数复制进去
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
kernel.shmall = 2097152
kernel.shmmax = 2147483648
net.ipv4.ip_local_port_range = 9000 65500
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.rp_filter = 1
net.core.rmem_default = 262144
net.core.rmem_max= 4194304
net.core.wmem_default= 262144
net.core.wmem_max= 1048576

批改完后, 启用新的配置

[root@VM-8-11-centos ~]# sysctl -p

3. 创立相应的用户和用户组及相干操作

[root@VM-8-11-centos ~]# groupadd oinstall     # 创立装置 Oracle 程序用户组
[root@VM-8-11-centos ~]# groupadd dba          # 创立 dba 用户组
[root@VM-8-11-centos ~]# useradd -g dba -m oracle   # 创立用户 Oracle 并退出 dba 用户组
[root@VM-8-11-centos ~]# usermod -a -G oinstall oracle   # 将用户 Oracle 退出 oinstall 用户组
[root@VM-8-11-centos ~]# passwd oracle               # 批改 Oracle 用户的明码
Changing password for user oracle.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.

[root@VM-8-11-centos ~]# id oracle           # 查看 oracle 用户的信息 
uid=1001(oracle) gid=1002(dba) groups=1002(dba),1001(oinstall)

4. 创立相应的目录并批改目录权限

 目录地位尽量抉择比拟大的硬盘上,mkdir -p /backup/ocdata/oracle   # 创立 Oracle 主目录

mkdir -p /backup/ocdata/inventory # 创立 Oracle 配置目录

mkdir -p /backup/ocdata/src       # 创立 Oracle 压缩包解压目录

chown -R oracle:oinstall /backup/ocdata/oracle      # 批改目录权限

chown -R oracle:oinstall /backup/ocdata/inventory  

chown -R oracle:oinstall /backup/ocdata/src

5. 查看目录权限

ll /backup/ocdata  

6. 批改 oracle 用户的平安性能设置

vim /etc/security/limits.conf

增加内容如下:oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

7. 批改用户环境变量

vim /home/oracle/.bashrc

增加内容如下:export PATH
export ORACLE_BASE=/backup/ocdata/oracle    # 是下面,创立 Oracle 主目录
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=orcl
export ORACLE_UNQNAME=orcl
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export LANG=C
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

8. 激活 /home/oracle/.bashrc

source /home/oracle/.bashrc     # 从新受权 

9. 解压两个 zip 安装包并受权

unzip linux.x64_11gR2_database_1of2.zip -d /backup/ocdata/src/

unzip linux.x64_11gR2_database_2of2.zip -d /backup/ocdata/src/

chown -R oracle:oinstall /backup/ocdata/src/     # 受权

ll /backup/ocdata/src/    # 查看目录权限 

\# 留神:如果执行 unzip 解压命令的时候报错(未找到命令)

[root@hq009 backup]# unzip linux.x64_11gR2_database_1of2.zip -d /backup/ocdata/src/

-bash: unzip: command not found

\# 这个时候示意零碎外面还没有这个命令,须要先进行装置,再执行解压。

yum install unzip

\# 装置实现后再执行下面的两个解压命令。

10. 敞开 selinux 防火墙

vim /etc/selinux/config

批改 SELINUX=disabled

11. 重启机器

reboot
退出移动版