- 一、环境准备
- 二、安装步骤
- 注意:如果执行unzip解压命令的时候报错(未找到命令)
- 这个时候表示系统里面还没有这个命令,需要先进行安装,再执行解压。
- 安装完成后再执行上面的两个解压命令。
- 10.关闭selinux防火墙
- 11.重启机器
- 12.进入Oracle用户
- 13.编辑数据库安装文件
- 主机名称可以用hostnamectl set-hostname
进行修改 - 15.安装oracle
- 16.在另一个窗口输入命令如下:
- 执行完后,再回到之前窗口按下回车!!!!!!
- 17.编辑监听配置文件
- 18.按esc,输入/+参数名(例如INSTALL_TYPE),根据以下值修改(要细心,一个也不能错!!!)
- 19.执行以下命令
- 20.编辑数据库实例文件
- 21.按esc,输入/+参数名(例如RESPONSEFILE_VERSION),根据以下值修改(要细心,一个也不能错!!!)
- 22.执行以下命令
- 23.查看实例是否运行
- 24.修改启动和关闭实例的程序
- 25.将ORACLE_HOME_LISTNER=$1修改为ORACLE_HOME_LISTNER=/data/oracle/product/11.2.0/db_1
- 26.修改/etc/oratab
- 27.启动实例
- 28.开机启动Oracle(以下命令都是在root用户下!!!也就是第27步双击打开的窗口)
- 29.oracle用户窗口输入以下命令,进入oracle数据库
- 30.最后使用Navicat或者DataGrip连接的时候用户名为sys as sysdba
一、环境准备
1. 挂载硬盘(这里只是举一个例子,具体的挂载目录需要自己定义)
数据库存储路径这里,要按照 服务器本身存储路径,一般情况下服务器的硬盘是已经被挂载上的。但是为了防止硬盘没有挂载,也为了查看各个目录存储空间的大小。可以使用下面这个命令进行查看。
[root@localhost ~]# 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@localhost ~]# mkdir /backup # 新建一个文件夹作为挂载点
[root@localhost ~]# cd / # 移动至根目录下
[root@localhost /]# ls # 这里已经有这个文件夹了
backup bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var yumiso
[root@localhost /]# mount /dev/sdb /backup # 挂载硬盘,下面会报错。是因为没有对硬盘进行格式化。
mount: /dev/sdb is write-protected, mounting read-only
mount: unknown filesystem type '(null)' # Mount:未知的文件系统类型'(null)'
[root@localhost /]# 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@localhost /]# mount /dev/sdb /backup # 这里在执行一次挂载命令就可以了
[root@localhost /]# 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@localhost ~]# vim /etc/fstab
在最后一行增加如下信息
UUID=b8c4a45f-ed74-3089-fcdb-0273de904d6d /backup ext4 defaults 0 0
写入到/etc/fstab文件中的设备信息并不会立即生效,需要使用mount -a参数进行自动挂载:
[root@localhost /]# mount -a
df命令用于查看已挂载的磁盘空间使用情况,英文全称为“disk free”,语法格式为“df -h”。
查看当前系统中设备的挂载情况,列出系统中正在使用的设备有哪些。
[root@localhost /]# 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命令,进行卸载,然后重新进行挂载。如果是写入到了配置文件中,也需要对配置文件进行修改。
umount /dev/sdb
2. 把下面的资源上传到服务器,因为文件有点大。时间可能会久一点、
CentOS-7-x86_64-DVD-1810.iso (因为系统是Centos7.6,所以这里选择的和系统版本相同的、其他版本也可以)
因为需要下载一些依赖,内网环境无法连接外网。所以需要上传镜像文件,用于配置本地yum源。
yum_source_change.sh 一个脚本文件,用于自动创建本地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所需的资源包
3. 使用root账户给脚本进行赋权操作(否则脚本没有被执行的权限,无法运行)。
chmod u+x *.sh # 要先进入到脚本的存放目录下
4. 运行脚本文件,构建本地yum源
```shell ./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源已经构建完成了
<a name="I5rbz"></a>
#### 5. 下载安装Oracle所需的rpm依赖包
```shell
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
检查是否全部安装成功
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 -ivh compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
6.查看Swap分区空间(不能小于2G)
在添加swap分区之前我们可以了解下当前系统swap是否存在,可用:
free –h
7.添加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交换文件(文件名和目录任意):
dd if=/dev/zero of=/home/swap bs=1M count=2048
if(即输入文件,input file),of(即输出文件,output file)。dev/zero是Linux的一种特殊字符设备(输入设备),可以用来创建一个指定长度用于初始化的空文件,如临时交换文件,该设备无穷尽地提供0,可以提供任何你需要的数目。 bs=1M代表增加的模块大小,count=2048代表是2048个模块,也就是2G空间大小
- count的计算公式: count = size * bs (size以MB为单位)
回车后,会执行2g的读写操作,系统会卡一段时间,耐心等待执行结果。
执行完毕,对交换文件格式化并转换为swap分区:
mkswap /home/swap
挂载并激活分区:
swapon /home/swap
执行以上命令可能会出现:“不安全的权限 0644,建议使用 0600”类似提示,不要紧张,实际上已经激活了,可以忽略提示,也可以听从系统的建议修改下权限:
chmod -R 0600 /home/swap
这时候可以用 free –h 或 swapon –s命令查看新swap分区是否正常添加并激活使用。
如果需要关闭swap分区则执行
- swapoff /home/swap
修改 fstab 配置,设置开机自动挂载该分区:
vim /etc/fstab
在fstab文件末尾追加如下内容后:wq!保存即可:
/home/swap swap swap default 0 0
或直接对fstab进行echo追加:
echo "/home/swap swap swap defaults 0 0" >> /etc/fstab
8.修改CentOS系统标识 (由于Oracle默认不支持CentOS)
vim /etc/redhat-release
删除CentOS Linux release 7.6.2009 (Core)(快捷键dd),改成redhat-7
redhat-7
9.修改sysctl.conf内核参数
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
修改完后,启用新的配置
sysctl -p
二、安装步骤
1. 创建相应的用户和用户组
groupadd oinstall # 创建安装Oracle程序用户组
groupadd dba # 创建dba用户组
useradd -g dba -m oracle # 创建用户Oracle并加入dba用户组
usermod -a -G oinstall oracle # 将用户Oracle加入oinstall用户组
2. 修改用户Oracle的密码
passwd oracle
3.查看用户oracle的信息
id oracle
uid=1000(oracle) gid=1001(dba) groups=1001(dba),1000(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
12.进入Oracle用户
su oracle
13.编辑数据库安装文件
vim /backup/ocdata/src/database/response/db_install.rsp # 根据实际路径
14.按esc,输入/+参数名(例如oracle.install.option),根据以下值修改(要细心,一个也不能错!!!)
注意:按esc,输入/+参数名搜索不到可能是空格问题!参数输入时也要注意空格!!!
oracle.install.option=INSTALL_DB_SWONLY # 安装类型
ORACLE_HOSTNAME=hq009 # 主机名称,用hostname查看主机名
UNIX_GROUP_NAME=oinstall # 安装组
INVENTORY_LOCATION=/backup/ocdata/inventory # INVENTORY目录
SELECTED_LANGUAGES=en,zh_CN # 选择语言
ORACLE_HOME=/backup/ocdata/oracle/product/11.2.0/db_1 # oracle_home
ORACLE_BASE=/backup/ocdata/oracle # oracle_base
oracle.install.db.InstallEdition=EE # oracle版本
oracle.install.db.DBA_GROUP=dba # dba用户组
oracle.install.db.OPER_GROUP=oinstall # oper用户组
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE # 数据库类型
oracle.install.db.config.starterdb.globalDBName=orcl # globalDBName
oracle.install.db.config.starterdb.SID=orcl # SID
oracle.install.db.config.starterdb.characterSet=AL32UTF8 # 默认数据库编码
oracle.install.db.config.starterdb.memoryLimit=800 # 自动管理内存的最小内存(M)
oracle.install.db.config.starterdb.password.ALL=oracle # 设定所有数据库用户使用同一个密码
DECLINE_SECURITY_UPDATES=true # 设置安全更新
主机名称可以用hostnamectl set-hostname
进行修改 不放心的话,还可以修改vi /etc/sysconfig/network文件
15.安装oracle
以实际路径为准
/backup/ocdata/src/database/runInstaller -silent -responseFile /backup/ocdata/src/database/response/db_install.rsp -ignorePrereq
16.在另一个窗口输入命令如下:
/backup/ocdata/oracle/product/11.2.0/db_1/root.sh
执行完后,再回到之前窗口按下回车!!!!!!
出现下面的内容就表示安装成功了。
The following configuration scripts need to be executed as the "root" user.
#!/bin/sh
#Root scripts to run
/backup/ocdata/inventory/orainstRoot.sh
/backup/ocdata/oracle/product/11.2.0/db_1/root.sh
To execute the configuration scripts:
1. Open a terminal window
2. Log in as "root"
3. Run the scripts
4. Return to this window and hit "Enter" key to continue
Successfully Setup Software.
17.编辑监听配置文件
vim /backup/ocdata/src/database/response/netca.rsp
18.按esc,输入/+参数名(例如INSTALL_TYPE),根据以下值修改(要细心,一个也不能错!!!)
INSTALL_TYPE=""custom"" # 安装的类型
LISTENER_NUMBER=1 # 监听器数量
LISTENER_NAMES={"LISTENER"} # 监听器的名称列表
LISTENER_PROTOCOLS={"TCP;1521"} # 监听器使用的通讯协议列表
LISTENER_START=""LISTENER"" # 监听器启动的名称
19.执行以下命令
/backup/ocdata/oracle/product/11.2.0/db_1/bin/netca /silent /responseFile /backup/ocdata/src/database/response/netca.rsp
20.编辑数据库实例文件
vim /backup/ocdata/src/database/response/dbca.rsp
21.按esc,输入/+参数名(例如RESPONSEFILE_VERSION),根据以下值修改(要细心,一个也不能错!!!)
RESPONSEFILE_VERSION ="11.2.0" // 不要变哦
OPERATION_TYPE ="createDatabase" // 操作为创建实例
GDBNAME ="orcl" // 数据库实例名
SID ="orcl" // 实例名字
TEMPLATENAME = "General_Purpose.dbc" // 建库用的模板文件
SYSPASSWORD = "oracle" // SYS管理员密码
SYSTEMPASSWORD = "oracle" // SYSTEM管理员密码
SYSMANPASSWORD= "oracle"
DBSNMPPASSWORD= "oracle"
DATAFILEDESTINATION =/backup/ocdata/oracle/oradata // 数据文件存放目录
RECOVERYAREADESTINATION=/backup/ocdata/oracle/flash_recovery_area // 恢复数据存放目录
CHARACTERSET ="AL32UTF8" // 字符集
NATIONALCHARACTERSET= "AL16UTF16" // 字符集
TOTALMEMORY ="1638" // 1638MB,物理内存2G*80%
22.执行以下命令
/backup/ocdata/oracle/product/11.2.0/db_1/bin/dbca -silent -responseFile /backup/ocdata/src/database/response/dbca.rsp
23.查看实例是否运行
ps -ef | grep ora_ | grep -v grep
24.修改启动和关闭实例的程序
vim /backup/ocdata/oracle/product/11.2.0/db_1/bin/dbstart
25.将ORACLE_HOME_LISTNER=$1修改为ORACLE_HOME_LISTNER=/data/oracle/product/11.2.0/db_1
/backup/ocdata/oracle/product/11.2.0/db_1
vim /backup/ocdata/oracle/product/11.2.0/db_1/bin/dbshut
33.2.同上,将ORACLE_HOME_LISTNER=$1修改为ORACLE_HOME_LISTNER=/data/oracle/product/11.2.0/db_1
/backup/ocdata/oracle/product/11.2.0/db_1
26.修改/etc/oratab
vim /etc/oratab
27.启动实例
/backup/ocdata/oracle/product/11.2.0/db_1/bin/dbstart
28.开机启动Oracle(以下命令都是在root用户下!!!也就是第27步双击打开的窗口)
chmod +x /etc/rc.d/rc.local
vim /etc/rc.d/rc.local
在文件最后追加以下内容:
su oracle -lc "/backup/ocdata/oracle/product/11.2.0/db_1/bin/lsnrctl start"
su oracle -lc "/backup/ocdata/oracle/product/11.2.0/db_1/bin/dbstart"
29.oracle用户窗口输入以下命令,进入oracle数据库
sqlplus / as sysdba