oracle 12c数据库安装centos 7

0、查看Swap分区空间

Linux我们默认使用CentOS 7 x64,对应操作系统我们使用64位的Oracle 11g数据库

Oracle11g需要准备至少:2核CPU、2G内存、8GB的硬盘空间

查看cpu详细信息

lscpu

查看内存详细信息

free -h

free -g
备注:
单位:k m g

查看存储盘详细信息

lsblk

grep SwapTotal /proc/meminfo

1、关闭防火墙

# 关闭防火墙,下次启动时防火墙仍随系统启动而启动 
systemctl stop firewalld.service

# 彻底永久关闭防火墙
systemctl disable firewalld.service

# 查看防火墙状态
systemctl status firewalld.service

2、关闭selinux

关闭SELINUX防火墙,修改/etc/selinux/config配置文件,将“SELINUX=enforcing”改为“SELINUX=disabled”。

sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config

setenforce
0

3、安装各类依赖

什么是Gcc

Linux系统下的Gcc(GNU C Compiler)是GNU推出的功能强大、性能优越的多平台编译器,是GNU的代表作品之一。gcc是可以在多种硬体平台上编译出可执行程序的超级编译器,其执行效率与一般的编译器相比平均效率要高20%~30%。

Gcc编译器能将C、C++语言源程序、汇程式化序和目标程序编译、连接成可执行文件,如果没有给出可执行文件的名字,gcc将生成一个名为a.out的文件。在Linux系统中,可执行文件没有统一的后缀,系统从文件的属性来区分可执行文件和不可执行文件。

上官网GCC官网,找到最新的released GCC点击进入,一步一步的查找,发现GCC隐藏的够深,有两个站点可以下载,一个是GCC mirror sites,一个是GCC svn server。我这里是从镜像站点下载,GCC 的下载地址见:GCC 下载

gcc离线安装包下载地址:https://ftp.gnu.org/gnu/gcc/

阿里:http://mirrors.aliyun.com/centos/7/os/x86_64/Packages/

官网:https://vault.centos.org/7.3.1611/os/x86_64/Packages/

 

下载GCC依赖的四个库: 点击下载:GMP库 或者GMP官网,对应GCC-6.1.0,我下载的是gmp-6.1.1.tar.bz2。 点击下载:MPFR库或者MPFR官网,我下载的是mpfr-3.1.4.tar.gz。 点击下载:MPC库或者MPC官网,我下载的是mpc-1.0.3.tar.gz。 点击下载:[ISL库](ftp://gcc.gnu.org/pub/gcc/infrastructure/ and download),我下载的是isl-0.16.tar.bz2。

关于依赖关系,MPFR依赖GMP,MPC依赖GMP和MPFR,GCC依赖上面四个库,所以推荐的编译安装顺序是:GMP->MPFR->MPC->ISL->GCC

yum -y install binutils* compat-libcap1* compat-libstdc++* gcc* gcc-c++* glibc* glibc-devel* ksh* libaio* libaio-devel* libgcc* libstdc++* libstdc++-devel* libXi* libXtst* make* sysstat* elfutils* unixODBC* unzip lrzsz

首先下载gcc-c++安装包,下载地址:gcc-c++

大家可选择自己对应的系统进行下载。 安装命令如下:

sudo rpm -ivh gcc-c++-6.1.1-3.fc24.x86_64.rpm

结果提示如下错误: gcc = 6.1.1-3.fc24 被 gcc-c++-6.1.1-3.fc24.x86_64 需要 libstdc++ = 6.1.1-3.fc24 被 gcc-c++-6.1.1-3.fc24.x86_64 需要 libstdc++-devel = 6.1.1-3.fc24 被 gcc-c++-6.1.1-3.fc24.x86_64 需要

原来gcc-c++的安装还需要依赖其它的软件包。于是我们下载对应版本的C++库,libstdc++libstdc++-devel。我下载的是libstdc++-6.1.1-3.fc24.x86_64.rpmlibstdc++-devel-6.1.1-3.fc24.x86_64.rpm

现在开始安装libstdc++

sudo rpm -ivh libstdc++-6.1.1-3.fc24.x86_64.rpm

安装完libstdc++再安装libstdc++-devel。这里需要强制安装,不然会提示如下错误:

libstdc++(x86-64) = 6.1.1-3.fc24 被 libstdc++-devel-6.1.1-3.fc24.x86_64 

因为我们已经安装libstdc++,libstdc++-devel依赖libstdc++,但是rpm可能检测不到我们已经安装的libstdc++,所以只要确定我们已经成功安装libstdc++,就可以强制安装了。

sudo rpm -ivh --force --nodeps libstdc++-devel-6.1.1-3.fc24.x86_64.rpm

安装完libstdc++和libstdc++-devel之后,再强制安装gcc-g++。我们强制忽略gcc-g++依赖的gcc,因为我们不需要。我们需要安装的只是C++开发环境,即编译器g++和C++库。

sudo rpm -ivh --force --nodeps gcc-c++-6.1.1-3.fc24.x86_64.rpm

注意:

由于是无网环境,安装较为复杂,可以先不进行这一步,先安装oracle,之后缺依赖会报错的(gcc与g++),到时候缺啥补啥。我在安装过程中只安装了gcc就满足了所有需求(新安装的centos)。

下附离线的gcc安装包:

rpm安装
sudo rpm -ivh --force --nodeps *.rpm

参数:
–force 参数为重复替换 –nodeps 参数为强制安装,忽略依赖

-ivh:安装显示安装进度–install–verbose–hash

-Uvh:升级软件包–Update;

-qpl:列出RPM软件包内的文件信息[Query Package list];

-qpi:列出RPM软件包的描述信息[Query Package install package(s)];

-qf:查找指定文件属于哪个RPM软件包[Query File];

-Va:校验所有的RPM软件包,查找丢失的文件[View Lost];

-e:删除包

 

查询是否安装成功:

使用gcc -v 
或者g++ -v查询

4、修改CentOS系统标识 (由于Oracle默认不支持CentOS)

vim /etc/redhat-release

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

​​​​​​​redhat-7

cat /etc/centos-release

5、创建Oracle用户

需进入 root 用户进行创建

 检测是否安装了Oracle
查看是否有 oracle 的进程
ps -ef | grep ora

检查是否有oracle用户 # 一般安装oracle的时候默认会建一个oracle用户 id oracle

创建用户组:

单实例默认创建oinstall、dba、oper即可,rac数据库需要全部创建

  创建安装oracle程序用户组 

  groupadd oinstall 
  groupadd dba
  groupadd oper

   

   groupadd backupdba
   groupadd dgdba
   groupadd kmdba
   groupadd racdba

 

  集群环境:
  groupadd asmadmin
  groupadd asmdba
  groupadd asmoper

说明:

1、单实例用户:

单机环境(single-instance)中oracle软件拥有者用户(常见的oracle或者orauser),因该同时是oinstall、dba、oper用户组的成员同时该用户的主用户组必须是oinstall。 Oracle Database 11g release 2中选择Privileged Operating System Groups    而在11.2的GI/CRS环境中数据库软件拥有者用户(oracle或orauser)还必须是asmdba用户组的成员。

usermod -g oinstall -G dba,oper,asmdba [oracle|orauser]

id oracle

uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba),701(asmdba),54324(oper)

oinstall:oinstall 组是oracle 推荐操作系统的用户组,该用户组应该具有oracle 软件目录$ORACLE_BAES,$ORACLE_HOME,和 oracle Inventory信息目录仓库,oracle Inventory信息目录记录了系统上安装过的oracle产品的记录。
dba:OSDBA是我们必须要创建的一种系统DBA用户组(dba),若没有该用户组我们将无法安装数据库软件及执行管理数据库的任务。
oper:oper我们可以选择要不要创建该用户组,创建该用户组可以满足让os用户行使某些数据库管理权限(包括SYSOPER角色权限)的目的。注意SYSOPER的权限包括startup和shutdown,所以要小心为该用户组添加成员。

2 集群环境:

11g release2中oracle建议独立地管理Grid Infrastructure和ASM实例,因此有必要创建更多的os用户组以满足不同的权限分配。 我们在11.2的GI中常用的ASM用户组有以下三个: OSASM(asmadmin)用户组 如果使用ASM,那么我们必须创建osasm(asmadmin)用户组,该OSASM用户组的成员将被赋予SYSASM权限,以满足组成员管理Oracle Clusterware和Oracle ASM的权限需求。 OSDBA for ASM group(asmdba)用户组 OSDBA(asmdba)用户组的成员将被赋予读写访问ASM文件的权限。GI/CRS拥有者用户和所有oracle数据库软件的拥有者必须是该组的成员。同时所有OSDBA(dba)用户组的成员也必须是asmdba组的成员。 OSOPER for ASM(asmoper)用户组 asmoper和osoper类似都是额外的可选择创建的用户组,创建该独立的用户组以满足赋予用户一套受限的ASM实例管理权限(ASM的SYSOPER角色),该权限包括了启动和停止ASM实例,默认情况下OSASM(asmadmin)组成员将拥有所有SYSOPER的ASM管理权限。 在11.2的GI/CRS环境中一般会创建grid或griduser用户来管理GI软件和ASM实例,

以如下方式创建grid用户:

useradd -g oinstall -G asmadmin,asmdba,asmoper grid

id grid

uid=54322(grid) gid=54321(oinstall) groups=54321(oinstall),700(asmadmin),701(asmdba),55000(asmoper)

asmadmin:如果使用ASM,那么我们必须创建osasm(asmadmin)用户组,该OSASM用户组的成员将被赋予SYSASM权限,以满足组成员管理Oracle Clusterware和Oracle ASM的权限需求。

asmdba:OSDBA(asmdba)用户组的成员将被赋予读写访问ASM文件的权限。GI/CRS拥有者用户和所有oracle数据库软件的拥有者必须是该组的成员。同时所有OSDBA(dba)用户组的成员也必须是asmdba组的成员。

asmoper:asmoper和oper类似都是额外的可选择创建的用户组,创建该独立的用户组以满足赋予用户一套受限的ASM实例管理权限(ASM的SYSOPER角色),该权限包括了启动和停止ASM实例,默认情况下OSASM(asmadmin)组成员将拥有所有SYSOPER的ASM管理权限
 

创建用户:

创建用户:
创建oracle用户,所属大组为oinstall,附属组为dba,oper,asmdba,并指定home目录为 -d /home/oracle(可以不用指定,默认即可)
  创建用户oracle 并加入到dba组、oinstall组
  useradd -g oinstall -G dba oracle
  id oracle
  passwd oracle //记得输入密码


grid用户: 在rac数据库中用到: useradd -g oinstall -G asmdba,asmoper,asmadmin,oper,dba,racdba grid id grid passwd grid 设置 oracle 用户的密码: passwd oracle //记得输入密码

参数:

groupadd [-g gid [-o]] [-r] [-f] groupname

-g:指定新建工作组的id;除非使用-o参数不然该值必须是唯一,不可相同。数值不可为负。预设为最小不得小于500而逐次增加。0~999传统上是保留给系统帐号使用。

-r:创建系统工作组,系统工作组的组ID小于500。此参数是用来建立系统帐号。UID会比定义在系统档上/etc/login.defs.的UID_MIN来的小。注意useradd此用法所建立的帐号不会建立使用者目录,也不会在乎纪录在/etc/login.defs.的定义值。如果你想要有使用者目录须额外指定-m参数来建立系统帐号。

-K:覆盖配置文件“/ect/login.defs”;

-o:允许添加组ID号不唯一的工作组。

-f: 新增一个已经存在的群组帐号,系统会出现错误讯息然后结束groupadd。如果是这样的情况,不会新增这个群组(如果是这个情况下,系统不会再新增一次),也可同时加上-g选项当你加上一个gid,此时gid就不用是唯一值,可不加-o参数,建好群组后会显结果。

eg:

groupadd -g 507 oinstall
groupadd -g 502 dba
groupadd -g 503 oper
groupadd -g 504 asmadmin
groupadd -g 505 asmoper
groupadd -g 506 asmdba
useradd -u 502 -g oinstall -G oinstall,dba,asmadmin,oper -s /bin/bash -m oracle

5、配置内核参数与资源限制

vi /etc/sysctl.conf 注意这只是官方要求的最低要求,可根据需要进行增大。

fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
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

---或者执行命令添加----------------
echo "fs.aio-max-nr = 1048576" >> /etc/sysctl.conf
echo "fs.file-max = 6815744" >> /etc/sysctl.conf
echo "kernel.shmall = 2097152" >> /etc/sysctl.conf
echo "kernel.shmmax = 68719476736" >> /etc/sysctl.conf
echo "kernel.shmmni = 4096" >> /etc/sysctl.conf
echo "kernel.sem = 250 32000 100 128" >> /etc/sysctl.conf
echo "net.ipv4.ip_local_port_range = 9000 65000" >> /etc/sysctl.conf
echo "net.core.rmem_default=262144" >> /etc/sysctl.conf
echo "net.core.rmem_max=4194304" >> /etc/sysctl.conf
echo "net.core.wmem_default=262144" >> /etc/sysctl.conf
echo "net.core.wmem_max=1048576" >> /etc/sysctl.conf


# 使参数生效 sysctl
-p

6、修改系统配置(Shell限制)

修改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 hard stack 32768
oracle hard memlock 134217728
oracle soft memlock 134217728

---或者执行命令添加------
echo "oracle soft nproc 2047" >> /etc/security/limits.conf
echo "oracle hard nproc 16384" >> /etc/security/limits.conf
echo "oracle soft nofile 1024" >> /etc/security/limits.conf
echo "oracle hard nofile 65536" >> /etc/security/limits.conf
echo "oracle soft stack 10240" >> /etc/security/limits.conf
e
cho "
oracle hard stack 32768" >> /etc/security/limits.conf
echo "oracle hard memlock 134217728" >> /etc/security/limits.conf

echo "oracle soft memlock 134217728" >> /etc/security/limits.conf
 

7、创建 oracle 目录

创建根目录需要注意权限的问题,最简单的是在linux根目录重新开一个分支。如下所示:

# Oracle 根目录
mkdir -p /u01
# 用户oracle赋权读写这个文件夹
chown -R oracle:oinstall /u01
# 安装目录
mkdir -p /u01/app/oracle
mkdir -p /u01/app/oracle/product/11.2.0/dbhome_1

mkdir /u01/app/oracle/{oradata,inventory,fast_recovery_area}

  设置目录所有者为oinstall用户组的oracle用户:

         chown -R oracle:oinstall /u01/app

         chown -R oracle:oinstall /u01/app/oracle

         chown -R oracle:oinstall /u01/app/oracle/oradata

          chown -R oracle:oinstall /u01/app/oracle/inventory

 

  再输入:chown -R oracle:oinstall /u01/app/oracle/fast_recovery_area

  再输入:chown -R oracle:oinstall /u01/app/oracle/product/11.2.0/dbhome_1

 

解压后的目录结构如下:

  oracle数据库安装目录:mkdir -p /u01/app/oracle

  oracle数据库配置文件目录:mkdir -p /u01/app/inventory

  oracle数据库软件包解压目录:mkdir -p /u01/app/oracle/product/11.2.0/dbhome_1

8、修改环境变量

修改 Root 环境变量
vim /etc/profile
在最后添加如下代码: #FOR ORACLE
export ORACLE_BASE
=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1 export ORACLE_SID=orcl export ORACLE_UNQNAME=$ORACLE_SID export NLS_LANG=.AL32UTF8 export PATH=${PATH}:${ORACLE_HOME}/bin/:$ORACLE_HOME/lib
使环境变量生效:source
/etc/profile

修改 oracle 账户环境变量 vim
/home/oracle/.bash_profile 在最后添加如下代码:
export ORACLE_BASE
=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1 export ORACLE_SID=orcl export ORACLE_UNQNAME=$ORACLE_SID export NLS_LANG=.AL32UTF8 export PATH=${PATH}:${ORACLE_HOME}/bin/:$ORACLE_HOME/lib
使环境变量生效:
source /home/oracle/.bashrc



参数说明:
export EDITOR=vi                                  #默认的编辑器是vi 
export TMP=/tmp #ORACLE 默认的临时目录是/tmp
export TMPDIR=$TMP #临时目录生成
export ORACLE_SID=orcl #ORACLE 实例名称是orcl
export ORACLE_BASE=/u01/app/oracle #ORACLE 的基本目录
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1 #ORACLE 数据库的HOME目录
export INVENTORY_LOCATION=/u01/app/inventory #ORACLE 安装时的inventory
export TNS_ADMIN=$ORACLE_HOME/network/admin #ORACLE 的网络主目录
export LD_LIBRARY_PATH=$ORACLE_HOME/lib #ORACLE 的库文件目录
export NLS_LANG="AMERICAN_AMERICA.AL32UTF8" #ORACLE 的字符集 不过我们弃用 因为我们使用UTF8
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS" #ORACLE 的日期格式 我们使用会话的方式修改弃用
export PATH=$ORACLE_HOME/bin:/bin:/usr
export PATH=$ORACLE_HOME/bin:/bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin:$PATH:$HOME/bin
umask 022

修改hosts文件

root> vi /etc/hosts
 
#文件最后一行追加
172.22.105.133 oracledb #监听配置文件中 host=oracledb

9、上传软件并解压

Oracle 官网:

https://www.oracle.com/cn/database/

https://www.oracle.com/database/technologies/

https://docs.oracle.com/en/database/oracle/oracle-database

参考:
https://docs.oracle.com/en/database/oracle/oracle-database/19/ladbi/running-rpm-packages-to-install-oracle-database.html

Oracle11.2.0安装包上传成功之后,进行解压


cd /u01/app/oracle/product/11.2.0/dbhome_1
unzip *.zip

10、补充

该补充说明部分可以先不执行。在安装Oracle11.2.0软件时,在先决条件检查时可能会出现相应警告提示,出现的情况也各不一样,不必过分拘泥。

这里需要补充的是11.2.0比12c多了三个软件包需要安装,需要将下列的软件包上传到/root目录下。

  • compat-libstdc+±33-3.2.3-72.el7.x86_64.rpm
  • kmod-20-21.el7.x86_64.rpm
  • kmod-libs-20-21.el7.x86_64.rpm

然后在/root目录下,以root用户执行以下命令安装软件包:

rpm -ivh kmod-20-21.el7.x86_64.rpm
rpm -ivh kmod-libs-20-21.el7.x86_64.rpm
rpm -ivh compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm

11、配置安装脚本

在压缩包解压后的 database 目录下新建安装脚本:

# 编辑数据库安装文件db_install.rsp 
 cd $ORACLE_HOME/install/response
 vim db_install.rsp

以下的脚本需要注意 Oracle 路径:

#修改以下参数配置 
oracle.install.option=INSTALL_DB_SWONLY #安装类型
ORACLE_HOSTNAME=oracledb #主机名称 host=oracledb
UNIX_GROUP_NAME=oinstall #安装组
INVENTORY_LOCATION=/u01/app/oracle/inventory #INVENTORY目录
SELECTED_LANGUAGES=en,zh_CN #选择语言
ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 #oracle_home
ORACLE_BASE=/u01/app/oracle #oracle_base
oracle.install.db.InstallEdition=EE #oracle版本
oracle.install.db.isCustomInstall=true oracle.install.db.DBA_GROUP=dba #dba用户组
oracle.install.db.OPER_GROUP=dba #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.memoryLimit=1024 #自动管理内存的最小内存(M)
oracle.install.db.config.starterdb.password.ALL=oracle #设定所有数据库用户使用同一个密码
DECLINE_SECURITY_UPDATES=true #设置安全更新

 

:set number 显示行号

:set nu 显示行号
:set nu! 取消显示行号

10、安装

执行安装脚本后,中途可能会报错,此时可以根据提示的日志位置,去查看日志,并进行解决。如果之前没有安装依赖,会在这里报错,可以去日志里看看缺啥。反正我安装了 gcc之后就不再报错了。对了,如果磁盘啥的空间不足也会在这里报错。

日志文件中需要关注 WARNING 和 FATAL

cd $ORACLE_HOME

静默安装

./runInstaller -silent -responseFile /u01/app/oracle/product/11.2.0/dbhome_1/install/response/db_install.rsp

时间稍长,精心等待。

10.1 根据提示使用root用户执行脚本完成安装

 

以 root 用户的身份执行以下脚本:

[root@localhost ~]# sh /u01/app/oraInventory/orainstRoot.sh
[root@localhost ~]# sh /u01/app/oracle/product/11.2.0/dbhome_1/root.sh

 

                  -----------备注,静默安装文件路径-------------------------------------------
    软件:/u01/app/oracle/product/11.2.0/dbhome_1/install/response/db_install.rsp
    监听:cd /u01/app/oracle/product/11.2.0/dbhome_1/assistants/netcanetca.rsp
    建库:/u01/app/oracle/product/11.2.0/dbhome_1/assistants/dbca/dbca.rsp

3.2.10 创建监听

[oracle@oracle dbhome_1]$ cd /assistants/netca
[oracle@oracle netca]$ cp netca.rsp netca.rsp.bak
[oracle@oracle netca]$ netca /silent /responseFile /u01/app/oracle/product/11.2.0/dbhome_1/assistants/netca/netca.rsp


查看监听:

  [oracle@localhost ~]$ lsnrctl status

启动监听报错

 

解决方法:
因只修改了机器的主机名,但host和listener.ora文件并没有修改,因此需要修改host和监听listener.ora
修改host文件

HOST=oracledb       

vi /etc/hosts
 
#127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 #::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.10.10 oracledb

修改listener.ora文件

$ vi /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora

# listener.ora Network Configuration File: /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracledb)(PORT = 1539))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME = orcl)
)
)

修改tnsnames.org

  vim /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora
# tnsnames.ora Network Configuration File: /opt/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = oracledb)(PORT = 1539))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

重启机器即可

reboot

如果机器里有tnsnames.ora这个文件的HOST也需要修改,但是这个文件建议使用IP地址。

 

3.2.11 创建数据库实例

[oracle@oracledb netca]$ cd $ORACLE_HOME/assistants/dbca
[oracle@oracledb dbca]$ cp dbca.rsp dbca.rsp.bak
[oracle@oracledb dbca]$ vim dbca.rsp
-------------主要修改以下参数----------------------------------
gdbName=orcl                            //32行
sid=orcl                              //42行
databaseConfigType=SI                       //52行
templateName=General_Purpose.dbc                  //223行
sysPassword=Oracle123456                    //233行
systemPassword=Oracle123456                    //243行
emConfiguration=NONE                        //262行
dbsnmpPassword=Oracle123456                       //295行
datafileDestination=/u01/app/oracle/oradata         //411行
recoveryAreaDestination=/u01/app/oracle/flash_recovery_area      //421行
storageType=FS                            //431行
characterSet=ZHS16GBK                       //468行
nationalCharacterSet=AL16UTF16                    //478行
sampleSchema=true                         //565行
totalMemory=2048                          //604行


# 如果要创建容器数据库,则还需要配置以下参数,如果是多个pdb则以pdbname为前缀 createAsContainerDatabase=true //162行 numberOfPDBs=1 //172行 pdbName=yhggi //182行 pdbAdminPassword=password //203行


备注:
OPERATION_TYPE ="createDatabase" GDBNAME ="orcl" #数据库的名字 SID ="orcl" #对应的实例名字 TEMPLATENAME ="General_Purpose.dbc" ##建库用的模板文件 SYSPASSWORD ="oracle" #SYS管理员密码 SYSTEMPASSWORD ="oracle" #SYSTEM管理员密码 SYSMANPASSWORD= "oracle" DBSNMPPASSWORD= "oracle" DATAFILEDESTINATION =/u01/app/oracle/oradata #数据文件存放目录 RECOVERYAREADESTINATION=/u01/app/oracle/flash_recovery_area #恢复数据存放目录 CHARACTERSET ="ZHS16GBK" #字符集 TOTALMEMORY ="2048" #根据机器内存大小设置
 

执行建库脚本后如果提示输入密码,手动输入密码。长度至少8字符,至少一个大写字母、一个小写字母、一个数字

[oracle@oracledb dbca]$ dbca -silent -createDatabase -responseFile /u01/app/oracle/product/11.2.0/dbhome_1/assistants/dbca/dbca.rsp

 备注:

此处若报错

#直接创建只有cdb的数据库(不需要模板文件)

 dbca -silent -createDatabase -templateName General_Purpose.dbc -gdbname orcl -sid orcl -responseFile NO_VALUE -characterSet AL32UTF8 -memoryPercentage 30 -emConfiguration LOCAL


dbca -silent -createDatabase -responseFile
 dbca -silent -createDatabase -responseFile /u01/app/oracle/product/11.2.0/dbhome_1/assistants/dbca/dbca.rsp

服务验证及SQLPLUS验证:

[oracle@oracledb dbca]$ lsnrctl status  # 查看监听状态
[oracle@oracledb dbca]$ lsnrctl restart # 重启监听
[oracle@oracledb dbca]$ lsnrctl stop  # 停止监听
[oracle@oracledb dbca]$ lsnrctl start # 启动监听

检查

[oracle@oracledb dbca]$ sqlplus / as sysdba
# 关闭监听器
oracle> lsnrctl stop

# sqlplus登入数据库
oracle> sqlplus /nolog
sql> conn / as sysdba

# 修改参数,并停止oracle服务
sql> alter system set LOCAL_LISTENER='(DESCRIPTION_LIST =  (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))))';
sql> alter system register;
sql> shutdown immediate #立即停止oracle服务

# 启动oracle服务,并退出
sql> startup;
oracle> exit;

# 启动监听器
>oracle lsnrctl start;

 

 

 

 

 

 

 

 

 

 

 

11、相关问题与解决方案

(1)bash: sqlplus: command not found
在 oracle 用户中无法运行 sqlplus。sqlplus是位于 $ORACLE_HOME/bin 目录下的可执行文件。有如下两个方向排查问题:

a. 查看 oracle 用户下的 $ORACLE_HOME 环境变量路径是否正确。本次安装过程中该路径地址为:

[oracle@localhost home]$ echo $ORACLE_HOME
/u01/app/oracle/product/11.2.0.3/dbname
[oracle@localhost home]$ echo $ORACLE_BASE/
/u01/app/oracle/

b. 添加 sqlplus 执行文件软连接到 /usr/bin 中(root 用户下)

ln -s $ORACLE_HOME/bin/sqlplus /usr/bin

(2)runinstaller: line 97 /db/database/install/.oui: cannot execute binary file
权限问题,不要将 oracle 的安装目录放在子目录中,即使将 oracle 用户对该目录赋权了,oracle用户也没有权限通过父目录找到子目录。具体做法参考 第七节 目录的创建。

(3)Insufficient disk space on this volume for the selected Oracle home.
额,没解决,重装系统了。如果对自己有信心,且时间充足,可以尝试解决。其实思路也不难,增加centos主机额外的磁盘,之后进行分区扩展磁盘空间(但我没成功,系统直接崩了,也没想细想,不如重装系统快些,主要也还是我的centos上啥也没有,嘿嘿)

参考:
Linux_虚拟机增加一块新磁盘并设置磁盘挂载_大数据面试宝典的博客-CSDN博客_linux虚拟机新加一块硬盘
https://blog.csdn.net/weixin_43893397/article/details/102599330

(4)bash: lsnrctl: command not found
解决方法同(1)

(5)ORA-01031: insufficient privileges
原因:无权限。正常本地登陆的时候应该不需要授权的,检查sqlnet.ora文件,文件路径为$ORACLE_HOME/network/admin/sqlnet.ora。在linux下,在 SQLNET.AUTHENTICATION_SERVICES 的值设置为ALL,或者不设置的情况下,OS验证才能成功;

ORA-01031: insufficient privileges问题解决办法 - 博客 - 编程圈 (bianchengquan.com)
https://www.bianchengquan.com/article/192189.html

 

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 =/home/oracle/app/oracle11g/oradata #数据文件存放目录 RECOVERYAREADESTINATION=/home/oracle/app/oracle11g/flash_recovery_area #恢复数据存放目录 CHARACTERSET ="ZHS16GBK" #字符集 TOTALMEMORY ="2048" #根据机器内存大小设置
posted @ 2022-09-30 14:59  O波V步  阅读(636)  评论(0编辑  收藏  举报