【Database】虚拟机centos7安装Oracle12c数据库,以及创建用户使用PLSQL或者Navicat连接

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

准备工作

为了方便学习,下面操作都做一下,否则奇奇怪怪的问题会层出不穷。 首先附上我用的Oracle安装包,提取码qwe1: 点击这里

1. 防火墙

  • 关闭防火墙

systemctl stop firewalld.service

  • 禁止防火墙开机启动

systemctl disable firewalld.service

  • 查看防火墙状态

systemctl status firewalld.service

2. 禁用SELINUX

  • 编辑文件

vi /etc/selinux/config 找到指定行修改改行为:SELINUX=disabled

3.依赖安装 直接全部复制粘贴就行

yum install binutils -y
yum install compat-libcap1 -y
yum install compat-libstdc++-33 -y
yum install compat-libstdc++-33.i686 -y
yum install glibc -y
yum install glibc.i686 -y
yum install glibc-devel -y
yum install glibc-devel.i686 -y
yum install ksh -y
yum install libaio -y
yum install libaio.i686 -y
yum install libaio-devel -y
yum install libaio-devel.i686 -y
yum install libX11 -y
yum install libX11.i686 -y
yum install libXau -y
yum install libXau.i686 -y
yum install libXi -y
yum install libXi.i686 -y
yum install libXtst -y
yum install libXtst.i686 -y
yum install libgcc -y
yum install libgcc.i686 -y
yum install libstdc++ -y
yum install libstdc++.i686 -y
yum install libstdc++-devel -y
yum install libstdc++-devel.i686 -y
yum install libxcb -y
yum install libxcb.i686 -y
yum install make -y
yum install nfs-utils -y
yum install net-tools -y
yum install smartmontools -y
yum install sysstat -y
yum install unzip -y
yum install unixODBC* -y
yum install gcc* -y
复制代码

安装完校验一下安装好没有(缺啥补啥),不校验也没关系,装oracle过程中会告诉你缺少啥的。

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
复制代码

最后还可以下执行以下yum update -y更新一下依赖,保证万无一失。

4. 图形配置 因为后面需要用到图形化安装,所以事先准备好XShell的图形化配置。

  • 安装Xmanager (百度安装一下分分钟解决的),装完丢一边,回到xshell执行如下命令。
  • yum install -y xclock
  • yum -y groupinstall "X Window System" "Fonts"
  • export DISPLAY='88.88.88.88:0.0' 将ip换成你自己的ip,windows的IP啊,win+R 输入cmd 再输入ipconfig就能看到
  • 重新连接一下xshell,注意下图的配置

在这里插入图片描述

  • xclock 输入这个命令,弹出如下图样子,说明配置完成了。

在这里插入图片描述 ps: 如果像我一样出现Warning: Missing charsets in String to FontSet conversion警告,执行一下export LANG=C 即可解决。

5. 必要的参数配置

  • 创建系统的oracle用户与组
groupadd -g 54321 oinstall
groupadd -g 54322 dba
groupadd -g 54323 oper
useradd -u 54321 -g oinstall -G dba,oper oracle
passwd oracle
复制代码

整体复制粘贴,输入密码之后使用id oracle即可查看信息。

  • 配置内核参数(这些参数根据你机器的配置不同,有些参数需要再次修改,在安装oralce过程中的check那一步,会给出提示,按要求逐个修改对应的推荐值即可)

    • vi /etc/sysctl.d/98-oracle.conf
    • 粘贴如下内容
      fs.file-max = 6815744
      kernel.sem = 250 32000 100 128
      kernel.shmmni = 4096
      kernel.shmall = 1073741824
      kernel.shmmax = 4398046511104
      kernel.panic_on_oops = 1
      net.core.rmem_default = 262144
      net.core.rmem_max = 4194304
      net.core.wmem_default = 262144
      net.core.wmem_max = 1048576
      net.ipv4.conf.all.rp_filter = 2
      net.ipv4.conf.default.rp_filter = 2
      fs.aio-max-nr = 1048576
      net.ipv4.ip_local_port_range = 9000 65500
      复制代码
    • /sbin/sysctl -p /etc/sysctl.d/98-oracle.conf
  • 配置ulimit参数

    • vi /etc/security/limits.d/oracle-database-server-12cR2-preinstall.conf
    • 粘贴下列内容
      oracle   soft   nofile    1024
      oracle   hard   nofile    65536
      oracle   soft   nproc    16384
      oracle   hard   nproc    16384
      oracle   soft   stack    10240
      oracle   hard   stack    32768
      oracle   hard   memlock    134217728
      oracle   soft   memlock    134217728
      复制代码
  • /opt下创建u01文件夹

    • mkdir /opt/u01
    • chown -R oracle:oinstall /opt/u01
    • chmod -R 775 /opt/u01
    • chmod g+s /opt/u01
    • 重启服务器:reboot

开始安装

1. 上传oracle安装包 在这里插入图片描述 PS: 记得给你的文件夹赋权,不然oracle用户解压不了文件: 我的:chmod 777 oracleZiphere

2. 切换oracle用户,解压你的压缩包,开始安装。 - su - oracle - cd /opt/oracleZiphere - unzip V839960-01.zip - cd database/ - ./runInstaller

在这里插入图片描述 执行./runInstaller可能会出下如下错误,再执行一下下面的命令即可:

export DISPLAY='88.88.88.88:0.0' 将ip换成你自己的ip,windows的IP啊,win+R 输入cmd 再输入ipconfig就能看到。

3. 下面的操作看图说话吧 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

在这里插入图片描述 在这里插入图片描述 这里注意看说明,这个是要你以root登录执行那两个命令的 第一条: 在这里插入图片描述 第二条: 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

4. 配置环境变量

  • su - oracle 这个是切换到oracle用户
  • vi ~/.bash_profile
  • 粘贴下列内容,还是那句话,路径你是按照我的来的,那这里也是和我的一样,不然就自行修改成自己的
    export EDITOR=vi
    export ORACLE_SID=orcl
    export ORACLE_BASE=/opt/u01/oracle/app/oracle
    export ORACLE_HOME=$ORACLE_BASE/product/12.2.0/dbhome_1
    export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
    export PATH=/opt/u01/oracle/app/oracle/product/12.2.0/dbhome_1/bin:/bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin
    export PATH=$ORACLE_HOME/bin:$PATH
    复制代码
  • source ~/.bash_profile

至此安装已完成。

PS: 补充一下你重启服务器后启动oracle的命令

su - oracle   #切换oracle用户
lsnrctl start   #启动监听
sqlplus /nolog   #进入sqlplus
CONNECT / AS SYSDBA  #以sysdba身份进入
STARTUP        #启动oracle
复制代码

开始进行用户创建和创建表空间操作

1. 执行sqlplus /nolog 进入sql页面 在这里插入图片描述 我这边乱码了,解决方式如下:

  • quit退出sql
  • vi ~/.bash_profile
  • 增加:export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
  • source ~/.bash_profile

2.创建外部登录用户以及表空间 创建之前可以先了解一下CDB和PDB的区别:参考这篇文章 其实CDB创建的用户必须带有c##,比如你想创建一个用户zhangsan,那么你得创建c##zhangsan才能成功,而PDB直接zhangsan就可以。所以这里我选择使用PDB的方式创建用户。

  1. 先查看当前是CDB还是PDB: show con_name;

在这里插入图片描述

  1. 切换PDB,首先查看

在这里插入图片描述 这个ORCLPDB是不是很熟悉,安装时的第六张图里有的创建容器数据库就是这个。

  1. 开始切换
  • alter pluggable database orclpdb open;
  • alter session set container=ORCLPDB;

在这里插入图片描述

  1. 创建表空间和用户
    • 创建数据库表空间文件: CREATE TABLESPACE KUSCHZZPTEST LOGGING DATAFILE 'KUSCHZZPTEST.dbf' SIZE 100M AUTOEXTEND ON NEXT 32M MAXSIZE 2048M EXTENT MANAGEMENT LOCAL;
    • 创建数据库临时表空间文件:create temporary TABLESPACE KUSCHZZPTEST_temp tempfile 'KUSCHZZPTEST_TEMP.dbf' SIZE 100M AUTOEXTEND ON NEXT 32M MAXSIZE 2048M EXTENT MANAGEMENT LOCAL;
    • 创建用户,并与表空间建立关系:CREATE USER KUSCHZZP IDENTIFIED BY kuschzzp DEFAULT TABLESPACE KUSCHZZPTEST TEMPORARY TABLESPACE KUSCHZZPTEST_TEMP;
    • 给用户授权:grant connect,resource,dba to KUSCHZZP;grant create session to KUSCHZZP;

在这里插入图片描述

- 补充删除的语句:
```
-- 删除数据库
drop tablespace KUSCHZZPTEST including contents and datafiles;
drop tablespace KUSCHZZPTEST_TEMP including contents and datafiles;

-- 删除用户
drop user kuschzzp cascade;
```
复制代码

此时用户注册好了,我注册的是kuschzzp密码kuschzzp,下面用navicat登录一下看看。 在这里插入图片描述 在这里插入图片描述

PS:有些情况可能会失败,因为orclpdb可能没有创(我是出现过,你看情况吧),所以是连不上的,解决方式如下: 还是以我的路径举例:找到如下路径的文件 在这里插入图片描述

  • cd /opt/u01/oracle/app/oracle/product/12.2.0/dbhome_1/network/admin
  • vi tnsnames.ora

在这里插入图片描述

  • 重启数据库和监听
先停:
su - oracle
lsnrctl stop
sqlplus /nolog
conn / as sysdba
shutdown
启动
startup
quit
lsnrctl start
复制代码
  • 启动后默认是CDB,下面切换PDB
show con_name;
alter pluggable database orclpdb open;
alter session set container=ORCLPDB;
复制代码
  • 最后补充一下Java代码连接oracle数据库的写法:

首先我用的依赖是:

<dependency>
     <groupId>com.oracle.ojdbc</groupId>
     <artifactId>ojdbc8</artifactId>
     <scope>runtime</scope>
 </dependency>
复制代码

我的连接写法是:

spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver
spring.datasource.url=jdbc:oracle:thin:@//192.168.209.134:1521/orclpdb
spring.datasource.username=kuschzzp
spring.datasource.password=kuschzzp
复制代码

关于服务名连接和SID连接写法是有差异的,具体可以看这位大神的文章:这里 我这里总结如下,我觉得也就是冒号和斜杠的区别:

  • 1.使用服务名配置方式:jdbc:oracle:thin:@//192.168.209.134:1521/orclpdb
  • 2.使用SID配置方式:jdbc:oracle:thin:@192.168.209.134:1521:orclpdb

猜你喜欢

转载自juejin.im/post/7087833552426893343