Centos7.5安装oracle12c

特别注意

本文档强烈建议使用windows自带的word打开

本文档非常,非常,非常不建议使用wps打开,
因为使用wps打开本教程,在执行的过程中,会出现意想不到的惊喜,
可能会让你怀疑人生

注意事项(很重要):

1.1 本教程需要服务器网络能够连接外网。


所以在使用本教程之前,
1、一定要确认好服务器网络是否允许连接外网,
2、确认好服务器网络是否可以正常连接外网

1.2 环境问题

1、因为每个人的,或者每台服务器的环境不太可能完全一致,也有可能不小心,遗漏
了本教程中的一个小步骤;所以即使是本教程的撰写人员按照本教程操作,也不一
定能够百分比保证一次就安装成功,不会出现任何错误

2、如果在使用本教程的过程中出现了本教程未记录的问题,请自行百度

1.3 服务器准备

因为在linux安装oracle数据库,可能会出现很多奇葩又无法解决的问题,所以建议如下
1、 使用一台空的服务器安装oracle数据库,
2、 如果要安装Oracle的服务器上有其他服务在跑,以免oracle安装失败,删除Oracle又删不干净,最后不得不重装服务器系统,最后导致因为重装服务器系统导致部分重要数据丢失

说明(重点,重点,重点):

本教程在关键步骤(容易出错的步骤)执行前都会写有,《操作前必看》
强烈建议先看一下关键步骤的《操作前必看》,否则可能会出现各种奇葩问题,
导致进行不下去

1 Oracle简介

1、大型关系型数据库(E-R图)
2、甲骨文(Java)
3、UNIX、Linux、Windows支持4、Oracle发行版5、数据库(软件+数据库)MySQL
6、默认只有一个数据库

2 准备工作:

2.1 软件准备

1、Xmanager-6.0.0175_CandJ_A.exe(不能低于这个版本,建议这个版本)
百度网盘下载地址:
链接:https://pan.baidu.com/s/1oVa45WgdDQ5vjCQUKP-CMg
提取码:17wq
2、Xshell-6.0.0189.exe(不能低于这个版本,建议这个版本)
百度网盘下载地址:
链接:https://pan.baidu.com/s/1b6kOY-xniBGCKBXmRc76hg
提取码:smx6

2.2 系统准备:

1、需要服务器设置静态ip地址(很简单,百度就行)
2、需要服务器设置主机名(很简单,百度就行)
3、RAM(运行内存):
如果一台服务器只安装这一个oracle数据库,建议至少
8G内存,如果还有其他应用,那建议至少16G内存
4、swap交换分区
swap查看命令:free -m
注意:
swap交换分区最好16G以上,否则可能会因为swap小而安装失败
如果swap交换分区在16G以上可以直接跳过第4步的创建swap分区
5、系统:
centos7-3.10.0-514.el7.x86_64 及以上系统版本
CentOS-7-x86_64-Everything-1804.iso百度网盘下载地址
链接:https://pan.baidu.com/s/18HElvDCPuW1EtGVx4PlUBw
提取码:j4sq
6、运行xshell之前先运行Xstart.
7、开启防火墙端口:22,1521(oracle默认端口)
如果服务器已经开启22、1521防火墙端口,可以略过本步骤
开启防火墙命令:
firewall-cmd —zone=public —add-port=1521/tcp —permanent
firewall-cmd —zone=public —add-port=22/tcp —permanent
重新载入:
firewall-cmd —reload
查看所有打开的端口:
firewall-cmd —zone=public —list-ports

3 安装Oracle安装条件

注意:如果服务器已安装桌面环境,则可以忽略本步骤

Oracle软件:
linuxx64_12201_database.zip
百度网盘下载地址
链接:https://pan.baidu.com/s/1yXqpP2aZ2m8MyqZvVfrNbw
提取码:u1po

安装桌面GNOME环境(真实环境建议使用命令安装)
命令:1)
yum -y install gnome-classic-session gnome-terminal nautilus-open-terminal control-center liberation-mono-fonts
出现异常:
cetnos7.5安装oracle12c-2-正式版 - 图15

解决办法:分别执行下面的命令
yum install gnome-packagekit install gnome-software

然后再次执行
yum -y install gnome-classic-session gnome-terminal nautilus-open-terminal control-center liberation-mono-fonts

yum -y groupinstall “X Window System”
cetnos7.5安装oracle12c-2-正式版 - 图16


解决方案:
出现这种情况,说明已经安装过了,不用理会,继续下一步

4 安装依赖包

4.1 修改主机名

vi /etc/hosts
cetnos7.5安装oracle12c-2-正式版 - 图17注:修改完成重启机器

安装依赖软件包
yum -y install binutils compat-libcap1 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat elfutils-libelf-devel compat-libstdc++-33*
cetnos7.5安装oracle12c-2-正式版 - 图18

4.2 关闭防火墙和selinux

注意:不建议关闭防火墙,因为有些服务器不允许关闭 防火墙
1)关闭防火墙
[root@oracle home]# systemctl stop firewalld.service
cetnos7.5安装oracle12c-2-正式版 - 图192)禁止防火墙开机自启 systemctl disable firewalld.service
3)关闭selinux




#红色框出改成 disabled

[root@oracle ~]# vi /etc/sysconfig/selinux
cetnos7.5安装oracle12c-2-正式版 - 图20

5 创建swap分区

如果swap超过16G,或者后面的执行过程中没有因为swap过小而报错,则可以略过

5.1 使用dd命令创建一个swap分区

命令解释#dd if=/dev/zero of=/home/swap bs=1024 count=16400000
注释:of=/home/swap,放置swap的空间; count的大小就是增swap的大小,单位是kb,1024就是每个块的大小,
单位是字节所以总共空间就是count/1024*1024=15.6G
1M=1024KB
1G=1024M

正常情况:dd if=/dev/zero of=/home/swap bs=1024 count=16400000
cetnos7.5安装oracle12c-2-正式版 - 图21

异常情况:如果出现下面的情况,
则说明你输入的命令可能含有中文字符,或者命令格式不对,有可能是wps自动帮你修改了命令的格式
cetnos7.5安装oracle12c-2-正式版 - 图22
解决办法:(3选1)
1、手动输入命令
2、使用windows自带的word打开本教程,再次拷贝并执行命令
3、打开这个连接,拷贝里面相关的命令
https://blog.csdn.net/java_1992/article/details/78697388

5.2 格式化刚才创建的分区

[root@oracle ~]# mkswap /home/swap
cetnos7.5安装oracle12c-2-正式版 - 图23

5.3 再使用swapon命令把这个文件分区变成swap分区

[root@oracle ~]# swapon /home/swap
cetnos7.5安装oracle12c-2-正式版 - 图24
(关闭SWAP分区的命令为:#swapoff /home/swap)
如果出现下面的情况
cetnos7.5安装oracle12c-2-正式版 - 图25
解决办法:
办法1:
[root@oracle ~]# chmod 0600 /home/swap
cetnos7.5安装oracle12c-2-正式版 - 图26

方法2:
参考下面的连接:https://blog.csdn.net/qq_42289214/article/details/104236069

[root@localhost ldy]# dd if=/dev/zero of=/home/swap bs=1M count=1024
记录了1024+0 的读入
记录了1024+0 的写出
1073741824字节(1.1 GB)已复制,10.462 秒,103 MB/秒
[root@localhost ldy]# mkswap /home/swap
正在设置交换空间版本 1,大小 = 1048572 KiB
无标签,UUID=50f8790d-5489-48f1-9657-b2aaaf359137
[root@localhost ldy]# swapon /home/swap
swapon: /home/swap:不安全的权限 0644,建议使用 0600。
swapon: /home/swap:不安全的文件拥有者 600,建议使用 0(root)。
[root@localhost ldy]# chmod 0600 /home/swap
[root@localhost ldy]# swapon /home/swap
swapon: /home/swap:不安全的文件拥有者 600,建议使用 0(root)。
swapon: /home/swap:swapon 失败: 设备或资源忙
[root@localhost ldy]# swapoff /home/swap
[root@localhost ldy]# swapon /home/swap
swapon: /home/swap:不安全的文件拥有者 600,建议使用 0(root)。
swapon: /home/swap:swapon 失败: 设备或资源忙
[root@localhost ldy]# chown root /home/swap
[root@localhost ldy]# swapon /home/swap
swapon: /home/swap:swapon 失败: 设备或资源忙
[root@localhost ldy]# swapoff /home/swap
[root@localhost ldy]# swapon /home/swap
[root@localhost ldy]# vim /etc/fstab
[root@localhost ldy]# mount -a

5.4 再用free -m 查看已经扩容的了swap分区。

[root@oracle ~]# free -m
cetnos7.5安装oracle12c-2-正式版 - 图27

5.5 swap自动挂载,需要修改etc/fstab文件,用

vi /etc/fstab
在文件末尾加上 /home/swap swap swap default 0 0
cetnos7.5安装oracle12c-2-正式版 - 图28
#echo “swapon /home/swap” >> /etc/inittab
cetnos7.5安装oracle12c-2-正式版 - 图29

如果出现下面的情况:则说明此命令格式有误,
有可能是wps修改了命令的格式
cetnos7.5安装oracle12c-2-正式版 - 图30
解决办法:(3选1)
4、手动输入命令
5、使用windows自带的word打开本教程
6、打开这个连接,拷贝里面相关的命令
https://blog.csdn.net/java_1992/article/details/78697388

vi /etc/inittab
最后一行是swapon /home/swap,这样就万事大吉了。
[root@oracle ~]# vi /etc/inittab
cetnos7.5安装oracle12c-2-正式版 - 图31

6 修改内核参数

6.1 编辑内核参数

6.1.1 操作前必看

其中kernel.shmmax = 8329226240为本机运行内存(RAM)的一半,单位为byte。

vi /etc/sysctl.conf
把下面的内容拷贝进去
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4294967296
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 = 1048586
cetnos7.5安装oracle12c-2-正式版 - 图32

6.1.2 验证参数

sysctl -p
cetnos7.5安装oracle12c-2-正式版 - 图33

vi /etc/systemd/logind.conf
1).设置/etc/systemd/logind.conf中RemoveIPC=no
2).重启服务器或者重启systemd-logind
重启systemd-logind:
# systemctl daemon-reload
# systemctl restart systemd-logind

7 创建用户和组

7.1 创建基本组和附加组

[root@oracle home]# groupadd -g 500 oinstall
cetnos7.5安装oracle12c-2-正式版 - 图34

如果出现下面的情况,说明已存在,继续下一步即可
cetnos7.5安装oracle12c-2-正式版 - 图35
[root@oracle home]# groupadd -g 501 dba
cetnos7.5安装oracle12c-2-正式版 - 图36
如果出现下面的情况,说明已存在,继续下一步即可
cetnos7.5安装oracle12c-2-正式版 - 图37

7.2 创建用户

useradd -g oinstall -G dba oracle
出现下图所示,说明oracle这个目录已经存在了,继续下一步
cetnos7.5安装oracle12c-2-正式版 - 图38

7.3 给用户设置密码

echo “oracle123” | passwd —stdin oracle
cetnos7.5安装oracle12c-2-正式版 - 图39

7.4 创建oracle目录和创建oraInventory目录

[root@oracle home]# mkdir -p /home/oracle/app/oracle
cetnos7.5安装oracle12c-2-正式版 - 图40
[root@oracle home]# mkdir /home/oracle/app/oraInventory
cetnos7.5安装oracle12c-2-正式版 - 图41

7.5 创建oracle数据库导入和备份目录

解释:/home/oracle/test #数据库的directory,用来存放数据库文件
[root@oracle ~]# mkdir /home/oracle/test
cetnos7.5安装oracle12c-2-正式版 - 图42
[root@oracle ~]# chown -R oracle /home/oracle/
cetnos7.5安装oracle12c-2-正式版 - 图43
*

7.6 更改Oracle目录权限

[root@oracle home]# chmod 775 /home/oracle/app/oracle
cetnos7.5安装oracle12c-2-正式版 - 图44

7.7 编辑Oracle环境变量

7.7.1 操作前必看

下面红色部分是配置客户端ip,就是你的笔记本或台式机的ip地址,注意每台电脑的ip地址都不一样,不同的电脑使用本教程,首先要修改 DISPLAY,
注意,注意,注意,重要的事情说3遍,只需要修改DISPLAY的ip地址就行,后面的不用修改
vi /home/oracle/.bash_profile
umask 022
export ORACLE_BASE=/home/oracle/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/12/db_1
export ORACLE_SID=orcl
export LANG=en_US.UTF-8
export NLS_LANG=”AMERICAN_AMERICA”.ZHS16GBK
export PATH=$PATH:$ORACLE_HOME
export DISPLAY=192.168.1.170:0.0
cetnos7.5安装oracle12c-2-正式版 - 图45
cetnos7.5安装oracle12c-2-正式版 - 图46

7.7.2 生效配置文件

source /home/oracle/.bash_profile
cetnos7.5安装oracle12c-2-正式版 - 图47
8、编辑Oracle安全认证模块
[root@oracle home]# vi /etc/pam.d/login
把下面两行拷贝到 /etc/pam.d/login中

session required /lib64/security/pam_limits.so
session required pam_limits.so
cetnos7.5安装oracle12c-2-正式版 - 图48
9、编辑Oracle资源限制

[root@oracle ~]# vi /etc/security/limits.conf
把下面几行拷贝到 /etc/security/limits.conf 中
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
cetnos7.5安装oracle12c-2-正式版 - 图49

10、编辑全局环境变量
[root@oracle home]# vi /etc/profile
把下面几行拷贝到 /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
cetnos7.5安装oracle12c-2-正式版 - 图50
#生效配置
[root@oracle home]# source /etc/profile
cetnos7.5安装oracle12c-2-正式版 - 图51

8 安装Oracle数据库

8.1 操作前必看

注意:这一步一定要看,这一步不看,oracle12c图形化界面安装方式很有可能失败
双击自己的笔记本或台式电脑已经安装好的Xmanager 6,一般都放在桌面
cetnos7.5安装oracle12c-2-正式版 - 图52

出现下面的界面

cetnos7.5安装oracle12c-2-正式版 - 图53双击下图所示的位置
cetnos7.5安装oracle12c-2-正式版 - 图54

双击下图所示的位置
cetnos7.5安装oracle12c-2-正式版 - 图55
看一下控制栏有没有出现下图所示的图标,出现了就算成功了
cetnos7.5安装oracle12c-2-正式版 - 图56

8.2 更改属主和属组

[root@oracle home]# chown oracle:oinstall /home/oracle/app/oracle
cetnos7.5安装oracle12c-2-正式版 - 图57
[root@oracle home]# chown oracle:oinstall /home/oracle/app/oraInventory
cetnos7.5安装oracle12c-2-正式版 - 图58

8.3 上传oracle软件包

上传后解压文件
unzip linuxx64_12201_database.zip
cetnos7.5安装oracle12c-2-正式版 - 图59
解压后,有个database目录,里面就是oralce12c的安装文件。

8.4 修改database目录的软件包属主和属组

[root@oracle ~]# chown oracle:oinstall /home/oracle/database
cetnos7.5安装oracle12c-2-正式版 - 图60

8.5 切换为root用户

8.6 授权用户 执行图形化界面的权限

注意:如果服务器已经安装过图形化界面,强烈建议略过本步骤
[root@oracle oracle]# xhost +
cetnos7.5安装oracle12c-2-正式版 - 图61
cetnos7.5安装oracle12c-2-正式版 - 图62
如果出现下面的情况
access control disabled, clients can connect from any host
原因:有可能是Oracle环境变量配置的有问题
解决办法:如下图所示,看一下如下图所示的位置有没有空格
vi /home/oracle/.bash_profile
cetnos7.5安装oracle12c-2-正式版 - 图63

8.7 切换oracle用户

[root@oracle ~]# su - oracle
cetnos7.5安装oracle12c-2-正式版 - 图64

8.8 执行启动文件:

-bash-4.2$ cd /home/oracle/database/
cetnos7.5安装oracle12c-2-正式版 - 图65

-bash-4.2$ export LANG=en_US.UTF-8
cetnos7.5安装oracle12c-2-正式版 - 图66
#自己笔记本电脑的ip地址
export DISPLAY=192.168.1.170:0.0
cetnos7.5安装oracle12c-2-正式版 - 图67

./runInstaller
如果出现多次这样的情况,全都点击是
cetnos7.5安装oracle12c-2-正式版 - 图68

8.9 Oracle12c图形化界面安装步骤




8、取消勾选,不接收安全更新,然后点击【Next】,弹出提示窗口,选择cetnos7.5安装oracle12c-2-正式版 - 图69
cetnos7.5安装oracle12c-2-正式版 - 图70
9、根据自己需求选择即可,我这里选第一个新建数据库,然后点击Next(1) 创建和配置数据库 (2)仅安装数据库软件 (3)升级现有数据库
cetnos7.5安装oracle12c-2-正式版 - 图71
10、因为我们是基于服务器所以选择第二个,然后点击Next(1)桌面类:如果要在笔记本或桌面类系统中安装,则选择此选项,此选项包括启动数据库并允许采用最低配置
(2)服务器类:如果要在服务器类系统中进行安装(如在生产数据中心内部署Oracle时使用的内容),则选择此选项,此选项允许使用更多高级配置选项
cetnos7.5安装oracle12c-2-正式版 - 图72
11、因为我们测试的是数据库,第二个是集群,所以选第一个然后点击Next(1)单实例数据库安装
(2)Real Application Clusters数据库安装
(3)Oracle RAC节点数据库安装
cetnos7.5安装oracle12c-2-正式版 - 图73
12、我们选择第二个,高级配置安装,然后点击Next(1)典型安装:使用基本配置执行完整的Oracle Database安装
(2)高级安装:可以选择高级选项,例如:为SYS、SYSMAN、SYSTEM和DBSNMP账户使用不同口令,选择数据库字符集,产品语言,自动备份,定制安装及备用存储选项(例如自动存储管理)
cetnos7.5安装oracle12c-2-正式版 - 图74
13、因为我们是做企业服务器所以选择第一个,然后点击Next(1)企业版:具有可伸缩性、高性能、高可用性和安全功能的自行管理的数据库,能
满足大多数高标准的关键任务应用程序的需求。
(2)标准版:标准版是寻求低成本解决方案的工作组、部门和中小企业的理想选择。
(3)标准版1:标准版1是寻求低成本解决方案的工作组、部门和中小企业的理想选择。
cetnos7.5安装oracle12c-2-正式版 - 图75
15、使用默认安装目录的路径,或者根据情况更改,然后点击Next
cetnos7.5安装oracle12c-2-正式版 - 图76
16、使用默认安装目录的路径,或者根据情况更改,然后点击Next
cetnos7.5安装oracle12c-2-正式版 - 图77
17、选择配置类型,根据需求自选,这里我选第一个,然后点击Next(1)一般用途/事务处理:为一般用途或高事务处理量应用而设计的启动数据库。
(2)数据仓库:为数据仓库应用程序而优化的启动数据库
cetnos7.5安装oracle12c-2-正式版 - 图78
18、指定Oracel全局数据库名和服务标识符为:orcl,然后点击Next
cetnos7.5安装oracle12c-2-正式版 - 图79
19、在内存页中勾选启用自动内存管理,在字符集页中选择使用Unicode,然
后点击Next
cetnos7.5安装oracle12c-2-正式版 - 图80
cetnos7.5安装oracle12c-2-正式版 - 图81
20、使用默认选择的File system数据库系统即可,然后点击Next
cetnos7.5安装oracle12c-2-正式版 - 图82
21、不使用集中云控制管理,直接点击Next
cetnos7.5安装oracle12c-2-正式版 - 图83
22、选择开启恢复区域存储,默认路径即可,然后点击Next
cetnos7.5安装oracle12c-2-正式版 - 图84
23这里我选择对所有账户使用相同口令oracle123,也可以为不同用户
设置不同密码,然后点击Next
cetnos7.5安装oracle12c-2-正式版 - 图85
cetnos7.5安装oracle12c-2-正式版 - 图86
24、设置数据库管理员组dba,数据库操作组oinstall,然后点击Next
cetnos7.5安装oracle12c-2-正式版 - 图87


如果这一步之后,出现错误,解决办法见本教程后面的《安装及使用的常用错误》
25、若提示有错误,是因为安装软件包的版本不一样或内核参数有问题或少依
赖软件,需要解决报错,然后点击Next(如果与下俩图不符,及为报错)

cetnos7.5安装oracle12c-2-正式版 - 图88
cetnos7.5安装oracle12c-2-正式版 - 图89
把这两句命令到root用户分别执行之后,在点击ok

cetnos7.5安装oracle12c-2-正式版 - 图90
当出现如上截图需要在shell界面用root用户执行这俩个脚本。
命令然后,在回到这个界面点击ok就好了
[root@oracle ~]# /home/oracle/app/oraInventory/orainstRoot.sh
cetnos7.5安装oracle12c-2-正式版 - 图91
继续点击Enter
cetnos7.5安装oracle12c-2-正式版 - 图92
然后继续点击Enter
cetnos7.5安装oracle12c-2-正式版 - 图93
cetnos7.5安装oracle12c-2-正式版 - 图94

然后
cetnos7.5安装oracle12c-2-正式版 - 图95
cetnos7.5安装oracle12c-2-正式版 - 图96


cetnos7.5安装oracle12c-2-正式版 - 图97
注:centos7上Oracle12c的安装完成!

9 创建表空间存放的目录

切换到root用户
[root@oracle ~]# mkdir /home/oracle/app/oracle/oradata/jeesite
cetnos7.5安装oracle12c-2-正式版 - 图98

#修改jeesite目录的属主和属组
[root@oracle ~]# chown oracle:oinstall /home/oracle/app/oracle/oradata/jeesite
#下图的
cetnos7.5安装oracle12c-2-正式版 - 图99

10 配置环境变量

10.1 操作前必看

下面红色部分是配置客户端ip,就是你的笔记本或台式机的ip地址,注意每台电脑的ip地址都不一样,不同的电脑使用本教程,首先要修改 DISPLAY,注意,注意,注意,重要的事情说3遍,只需要修改DISPLAY的ip地址就行,后面的不用修改

#编辑配置文件
vi /home/oracle/.bash_profile

#然后把下面的内容拷贝进去
umask 022
export EDITOR=vi
export ORACLE_BASE=/home/oracle/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/12/db_1
export ORACLE_SID=orcl
export LANG=en_US.UTF-8
export NLS_LANG=”AMERICAN_AMERICA”.ZHS16GBK
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
export PATH=$ORACLE_HOME/bin:/bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin
export PATH=$ORACLE_HOME/bin:$PATH
export TNS_ADMIN=/home/oracle/app/oracle/product/12/db_1/network/admin


#生效配置
# source /home/oracle/.bash_profile

11 Oracle linux 下启动 ,停止

切换至oracle用户
[root@oracle ~]# su - oracle
cetnos7.5安装oracle12c-2-正式版 - 图100

11.1 查看启动状态

lsnrctl status
出现下图所示的,说明oracle安装成功
cetnos7.5安装oracle12c-2-正式版 - 图101

11.2 停止监听

lsnrctl stop
cetnos7.5安装oracle12c-2-正式版 - 图102

11.3 查看oracle状态

lsnrctl status
出现下图所示,说明监听已经关闭
cetnos7.5安装oracle12c-2-正式版 - 图103
如果出现下面的情况,说明oracle的环境变量配置的有问题
cetnos7.5安装oracle12c-2-正式版 - 图104
解决办法:参考第10步 环境变量

如果出现下面的情况,说明监听未启动
cetnos7.5安装oracle12c-2-正式版 - 图105

11.4 启动监听

[oracle@oracle ~]$ lsnrctl start
cetnos7.5安装oracle12c-2-正式版 - 图106

出现上图所示的情况,说名oracle数据库还没有启动,
解决办法:参考步骤15.1.1 最好重启一下数据库

12 配置pdb数据库服务名

cd /home/oracle/app/oracle/product/12/db_1/network/admin
vi tnsnames.ora

ORCLPDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME =ORCLPDB)
)
)

13 创建用户

13.1 方式1:pdb方式创建用户

注意:本步骤是在pdb方式下创建的用户及表空间,这里要和普通方式创建用户
及表空间区别好,这里主要研究pdb方式,暂不研究普通方式

13.1.1 登录

使用oracle用户登录后执行下面语句:

#sys是用户名,oracle123 是数据库密码
sqlplus sys/oracle123 as sysdba
cetnos7.5安装oracle12c-2-正式版 - 图107

13.1.2 查看pdb连接名

SQL> show pdbs;

CON_ID CON_NAME OPEN MODE RESTRICTED
————— ——————————————— ————— —————
2 PDB$SEED READ ONLY NO
3 ORCLPDB READ WRITE NO
SQL>
cetnos7.5安装oracle12c-2-正式版 - 图108
如果出现下面的情况
cetnos7.5安装oracle12c-2-正式版 - 图109
解决办法:
SQL> startup
cetnos7.5安装oracle12c-2-正式版 - 图110

切换到ORCLPDB服务;

  1. SQL> alter session set container=ORCLPDB;

cetnos7.5安装oracle12c-2-正式版 - 图111`<br /> <br />打开名称为ORCLPDB的pdb服务`

  1. SQL> alter pluggable database ORCLPDB open;
  1. #下面的大概意思是ORCLPDB已经开启过了,不用管,继续下一步

cetnos7.5安装oracle12c-2-正式版 - 图112
创建表空间:
SQL> create tablespace jeesiteTs datafile ‘/home/oracle/app/oracle/oradata/jeesite/jeesiteTs.dbf’ size 10240M autoextend on next 1024M maxsize unlimited;
cetnos7.5安装oracle12c-2-正式版 - 图113

创建新用户:
SQL> create user jeesite identified by jeesite default tablespace jeesiteTs;
cetnos7.5安装oracle12c-2-正式版 - 图114
grant dba,connect to jeesite;
cetnos7.5安装oracle12c-2-正式版 - 图115

GRANT`ALL PRIVILEGES TO `jeesite;

13.1.3 授权用户使用目录权限

第1步:(如果已经创建则跳过这一步)
SQL> create directory jeesite as ‘/home/oracle/test’;
cetnos7.5安装oracle12c-2-正式版 - 图116

第2步:
jeesite 是目录
jeesite 是oracle用户
SQL> grant read,write on directory jeesite to jeesite;
cetnos7.5安装oracle12c-2-正式版 - 图117
commit;
cetnos7.5安装oracle12c-2-正式版 - 图118
退出,重新登录。

14 用客户端Navicat Premium 15测试连接

看看能否连接成功
cetnos7.5安装oracle12c-2-正式版 - 图119

cetnos7.5安装oracle12c-2-正式版 - 图120

15 oracle数据库开机启动设置

15.1 设置CDB、PDB开机启动(必须)

准备工作:
1、必须保证oracle监听和服务已经启动
具体步骤参考:步骤11 Oracle linux 下启动 ,停止

在服务器切换至oracle用户—>用系统管理员登陆oracle
[root@oracle ~]# su - oracle
cetnos7.5安装oracle12c-2-正式版 - 图121

#用系统管理员登陆oracle
[oracle@oracle ~]$ sqlplus sys/1 as sysdba
cetnos7.5安装oracle12c-2-正式版 - 图122





#设置pdb开机启动
SQL>CREATE TRIGGER open_all_pdbs
AFTER STARTUP
ON DATABASE
BEGIN
EXECUTE IMMEDIATE ‘alter pluggable database all open’;
END open_all_pdbs;
/

cetnos7.5安装oracle12c-2-正式版 - 图123

退出数据库
SQL> exit
cetnos7.5安装oracle12c-2-正式版 - 图124

15.1.1 最好重启一下数据库

15.1.1.1 切换到oracle用户

[root@oracle admin]# su - oracle
cetnos7.5安装oracle12c-2-正式版 - 图125

15.1.1.2 登录oracle数据库

[oracle@oracle ~]$ sqlplus sys/1 as sysdba
cetnos7.5安装oracle12c-2-正式版 - 图126
SQL> startup;
ORA-01081: cannot start already-running ORACLE - shut it down first
cetnos7.5安装oracle12c-2-正式版 - 图127
SQL> shutdown immediate
cetnos7.5安装oracle12c-2-正式版 - 图128
SQL> startup;
cetnos7.5安装oracle12c-2-正式版 - 图129
#退出oracle数据库
SQL> exit
cetnos7.5安装oracle12c-2-正式版 - 图130
[oracle@oracle ~]$ lsnrctl status
cetnos7.5安装oracle12c-2-正式版 - 图131
到此,pdb已经设置好开机启动

15.2 修改dbstart

将ORACLE_HOME_LISTNER=$1修改为ORACLE_HOME_LISTNER=$ORACLE_HOME
[root@oracle ~]# vi /home/oracle/app/oracle/product/12/db_1/bin/dbstart
cetnos7.5安装oracle12c-2-正式版 - 图132

15.3 修改dbshut

[root@oracle ~]# vi /home/oracle/app/oracle/product/12/db_1/bin/dbshut
# 将ORACLE_HOME_LISTNER=$1修改为ORACLE_HOME_LISTNER=$ORACLE_HOME
cetnos7.5安装oracle12c-2-正式版 - 图133

15.4 修改/etc/oratab文件

[root@oracle bin]# vi /etc/oratab
cetnos7.5安装oracle12c-2-正式版 - 图134

将orcl:/home/u01/app/oracle/product/11.2.0:N中最后的N改为Y,成为orcl:home/u01/app/oracle/product/11.2.0:Y

15.5 输入命令dbshut和dbstart测试

[root@oracle ~]# su - oracle
cetnos7.5安装oracle12c-2-正式版 - 图135
[oracle@oracle ~]$ dbshut
cetnos7.5安装oracle12c-2-正式版 - 图136
[oracle@oracle ~]$ lsnrctl status
cetnos7.5安装oracle12c-2-正式版 - 图137
Oracle监听停止,进程消失。
[oracle@oracle ~]$ dbstart
cetnos7.5安装oracle12c-2-正式版 - 图138
[oracle@oracle ~]$ lsnrctl status
cetnos7.5安装oracle12c-2-正式版 - 图139
ps -ef | grep ora_ | grep -v grep
cetnos7.5安装oracle12c-2-正式版 - 图140
cetnos7.5安装oracle12c-2-正式版 - 图141
Oracle监听启动,进程启动。

15.6 修改启动文件

切换到 root用户
[root@oracle bin]# vi /etc/rc.d/rc.local
cetnos7.5安装oracle12c-2-正式版 - 图142

添加 如下命令
要注意:要根据实际情况修改路径
su oracle -lc /home/oracle/app/oracle/product/12/db_1/bin/dbstart

15.7 给rc.local启动文件授权

[root@audit ~]# cd /etc/rc.d/
cetnos7.5安装oracle12c-2-正式版 - 图143
rc.local文件要有 可读可写可执行的权限
[root@oracle rc.d]# ll -ls
cetnos7.5安装oracle12c-2-正式版 - 图144
[root@oracle rc.d]# chmod 777 rc.local
cetnos7.5安装oracle12c-2-正式版 - 图145
rc.local已经具有可读可写,可执行的权限

[root@oracle rc.d]# ll -ls rc.local
cetnos7.5安装oracle12c-2-正式版 - 图146

15.8 重启服务器,验证是否配置成功

重启服务器
[root@oracle rc.d]# reboot -f

#切换到oracle用户
[root@oracle ~]# su - oracle
cetnos7.5安装oracle12c-2-正式版 - 图147
#查看oracle监听启动状态
[oracle@oracle ~]$ lsnrctl status
出现下图所示,说明监听启动成功

[oracle@audit ~]$ ps -ef | grep ora_ | grep -v grep
出现下图所示,说明oracle服务启动成功
cetnos7.5安装oracle12c-2-正式版 - 图148

15.9 用客户端工具(Navicat)测试连接:

此时还不算完,这个时候需要用oracle客户端工具试一下,看看能否连接成功,

如果用客户端工具连接时,提示如下的错误:
oracle initiallization or shutdown in progress
Process ID:0
Session ID:0 Serial number:0
说明设置pdb之后,oracle数据库没有重启

解决办法:
参考,15.1.1中 的最好重启一下数据库
然后再次重启服务器,等服务器启动成功之后,再次用客户端工具连接,此时如果没有意外,客户端工具就可以连接成功了

如果此时客户端还是无法连接,那就尝试重复15.1的步骤
如果oracle客户端工具可以连接成功
至此,oracle开机自动启动已经配置成功

16 Oracle数据库自动 备份设置

16.1 准备工作:

1、 tnsnames.ora 必须配置pdb的服务名和主机名(host和linux主机名一致)
cetnos7.5安装oracle12c-2-正式版 - 图149

16.2 编写备份脚本

在Linux下Oracle的备份需要借助crontab 指令,crontab 能够自动执行系统定时任务,
通过配置crontab 指向Oracle定时备份指令完成数据的定时备份。


cd /home/oracle
vi ordatabak.sh

1、编写数据库备份脚本文件(ordatabak.sh)

#!/bin/sh
export ORACLEBASE=/home/oracle/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/12/db_1
export ORACLE_SID=orclpdb #oracle12c 的pdb服务名
export ORACLE_TERM=xterm
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.ZHS16GBK

#以上代码为Oracle数据库运行账号oracle的系统环境变量设置,必须添加,否则crontab任务计划不能执行。
# oracle用户的系统环境变量路径:/home/oracle/.bash_profile
date=`date +%Y
%m%d` #获取系统当前日期时间
days=7 #设置删除7天之前的备份文件
orsid=orclpdb #Oracle数据库服务器IP、端口、SID
orowner=jeesite #备份此用户下面的数据
bakuser=jeesite #用此用户来执行备份,必须要有备份操作的权限
bakpass=jeesite #执行备注的用户密码
bakdir=/home/oracle/test #备份文件路径,需要提前创建好
bakdata=$orowner”
“$date.dmp #备份数据库名称
baklog=$orowner”“$date.log #备份执行时候生成的日志文件名称
ordatabak=$orowner”
“$date.tar.gz #最后保存的Oracle数据库备份文件

cd $bakdir #进入备份目录
#mkdir -p $orowner #按需要备份的Oracle用户创建目录
#cd $bakdir #进入目录
#exp $bakuser/$bakpass@$orsid grants=y owner=$orowner file=$bakdir/$orowner/$bakdata log=$bakdir/$orowner/$baklog
#192.168.124.5 为oracle数据库服务器地址,注意修改
expdp $bakuser/$bakpass@192.168.124.5/orclpdb dumpfile=$bakdata directory=jeesite logfile=$baklog
tar -zcvf $ordatabak $bakdata $baklog #压缩备份文件和日志文件
find $bakdir -type f -name “.log” -exec rm {} \; #删除备份文件
find $bakdir -type f -name “
.dmp” -exec rm {} \; #删除日志文件
find $bakdir -type f -name “*.tar.gz” -mtime +$days -exec rm {} \; #删除7天前的备份(注意:{} \中间有空格)

#备注:执行脚本的用户得拥有对应的文件目录权限

16.3 编辑脚本文件为可执行文件

chown -R oracle:oinstall /home/oracle/*
chmod 777 ordatabak.sh

16.4 编写定时任务crontab脚本

[root@localhost data]# crontab -e
insert

00 01 * /home/oracle/ordatabak.sh

ESC
:wq

#每天的01点00分自动执行脚本文件,执行完成之后,系统自动发送一封执行邮寄到root文件里面(/var/spool/mail/root)
#清空root文件内容的命令,如果需要清理文件内容
true > /var/spool/mail/root

16.5 跟踪执行结果

tail -f /var/log/cron #跟踪查询定时任务是否执行
下图所示,
cetnos7.5安装oracle12c-2-正式版 - 图150
cat /var/spool/cron/root #查询root下有那些定时任务
cetnos7.5安装oracle12c-2-正式版 - 图151

16.6 待续问题

crontab执行完成可以发送Email,该功能的具体配置,还没研究….

17 导入导出数据库

用数据泵impdp导入,expdp导出

17.1.1 注意:

本步骤一定要在tnsnames.ora 监听文件中配置 pdb的服务,参考第12步 配置服务名

17.1.2 impdp导入(windows也同理)

注意:
1、 此命令必须要linux 服务器oracle用户下执行
2、 此命令执行前,必须要保证
步骤7.5 创建oracle数据库导入和备份目录执->步骤13.3授权用户使用目录权限执行完毕
3、此命令执行前,需要配置pdb服务名,参考本教程第12步 配置pdb数据库服务名

方式1:
新旧数据库,用户名,表空间都一致的情况下
impdp matech/matech0102@orcl directory=kangjiaDirectory dumpfile=matech_2019_01_23.dmp full= y table_exists_action=append logfile=data.log TRANSFORM=segment_attributes:n transform=OID:N

impdp 语句解释:数据库用户名(schema)/数据库用户密码(schema)@数据库的实例名 directory=目录 dumpfile=数据库文件(放到directory=matech下的) logfile=data.log(导入的日志)


方式2:当新旧数据库,用户名,密码,表空间都不一致的情况下

impdp jeesite/jeesite@orclpdb directory=jeesite dumpfile=matech_2019_05_21.dmp remap_schema=matech:jeesite remap_tablespace=matech:jeesiteTs remap_tablespace=matech_temp:jeesite_temp full= y table_exists_action=append logfile=import.log TRANSFORM=segment_attributes:n transform=OID:N


impdp 语句解释:

数据库用户名(schema)/数据库用户密码(schema)@数据库的实例名
如果是pdb用户,数据库的实例名则是 pdb的名字
directory就是:步骤7.5创建oracle数据库导入和备份目录
directory=目录
dumpfile=备份的数据库文件(放到directory= jeesite目录下的)
logfile=data.log(导入的日志)
remap_schema=旧的oracle用户名:新的oracle数据库用户名
remap_tablespace=旧的表空间:新的表空间
full= y
ignore=y
logfile=data.log
TRANSFORM=segment_attributes:n
transform=OID:N

17.1.3 expdp导出(windows也同理)

注意:
1、此命令必须要linux 服务器oracle用户下执行
2、此命令执行前,必须要保证
步骤7.5 创建oracle数据库导入和备份目录执->步骤13.3授权用户使用目录权限执行完毕
3、此命令执行前,需要配置pdb服务名,参考本教程第12步 配置服务名

#解释
expdp oracle用户名/oracle用户密码@数据库实例 directory=创建用户时创建的目录 dumpfile=导出的文件名 logfile=导出的日志 version=指定被导入 数据库的版本
directory就是:步骤7.5创建oracle数据库导入和备份目录
如果是pdb用户,数据库实例则是pdb的名字

expdp jeesite/jeesite@orclpdb directory=jeesite dumpfile=jeesite_2020.03.07.dmp logfile=jeesite_2020.03.07_expdp.log version=11.2.0.1.0

出现下图所示,说明oracle数据库已经导出成功
cetnos7.5安装oracle12c-2-正式版 - 图152

18 安装及使用的常用错误

18.1 错误1:

This is a prerequisite condition to test whether the OS kernel parameter “shmmax” is properly set
错误提示:
This is a prerequisite condition to test whether the OS kernel parameter “shmmax” is properly set
Expected Value
: 16565633024
Actual Value
: Current=1073741824; Configured=8329226240
cetnos7.5安装oracle12c-2-正式版 - 图153


解决方式:
1.设置系统参数shmmax
#cat /proc/sys/kernel/shmmax
#echo 4101355520 > /proc/sys/kernel/shmmax

注意红色部分,应设置为expected value 的值。

2.修改sysctl.conf 文件的kernel.shmmax选项
cetnos7.5安装oracle12c-2-正式版 - 图154
值设置为expected value.



3.加载参数
cetnos7.5安装oracle12c-2-正式版 - 图155
# sysctl -p
#修改完之后加载系统参数

18.2 错误2:

错误如下:
This is a prerequisite condition to test whether the OS kernel parameter “shmall” is properly set
cetnos7.5安装oracle12c-2-正式版 - 图156

修改sysctl.conf 文件的kernel.shmmll选项
cetnos7.5安装oracle12c-2-正式版 - 图157
# sysctl -p
#修改完之后加载系统参数

18.3 错误 3

Package: smartmontools-6.2-4 - This is a prerequisite condition to test whether the package “smartmontools-6.2-4” is available on the system.
Expected Value
: smartmontools-6.2-4
Actual Value
: missing
Details:
-
PRVF-7532 : Package “smartmontools” is missing on node “oracle” - Cause: A required package is either not installed or, if the package is a kernel module, is not loaded on the specified node. - Action: Ensure that the required package is installed and available.

大致意思是缺少smartmontools-6.2-4这个包
解决方案:
另开一个xhell窗口
[root@oracle ~]# yum install smartmontools*
cetnos7.5安装oracle12c-2-正式版 - 图158

18.4 错误4

oracle initiallization or shutdown in progress
Process ID:0
Session ID:0 Serial number:0
解决方案:
参考本文档13.1设置CDB、PDB开机启动(必须)