Linux安装Oracle数据库 您所在的位置:网站首页 oracle安装口令怎么设置 Linux安装Oracle数据库

Linux安装Oracle数据库

#Linux安装Oracle数据库| 来源: 网络整理| 查看: 265

Linux安装Oracle数据库

文章目录 Linux安装Oracle数据库0. 写在前面1. Oracle 数据库1.1 简介1.2 Oracle 与 MySQL 的SQL 区别 2. 前置准备2.1 安装依赖包2.2 配置用户组2.3 上传安装包并解压2.4 修改配置文件 sysctl.conf2.5 修改配置文件 limits.conf2.6 设置环境变量 3. Linux最小化环境安装Oracle(静默安装)3.1 备份db_install.rsp3.2 修改db_install.rsp3.3 执行安装3.4 验证是否安装正确3.5 设置Oracle 监听3.6 静默创建数据库3.7 验证 4. 进入虚拟机图像化页面安装Oracle软件5. 创建数据库实例5.1 查看监听状态5.2. 创建一个普通用户并授权5.3 创建表 6. 参考

0. 写在前面 Linux版本:CentOS7.5Oracle版本:Oracle19c

oracle19c其实就是属于12g版本的

至少预留10G的存储空间 [root@node01 ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 devtmpfs 1.9G 0 1.9G 0% /dev tmpfs 1.9G 0 1.9G 0% /dev/shm tmpfs 1.9G 12M 1.9G 1% /run tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup /dev/sda3 47G 31G 14G 70% / /dev/sda1 976M 142M 768M 16% /boot tmpfs 378M 0 378M 0% /run/user/1000 Oracle 软件的最小本地磁盘存储空间 对于 Linux x86-64: 对于独立服务器安装的 Oracle 网格基础设施,至少为 6.5 GB。 Oracle Database Enterprise Edition 至少为 7.2 GB。 Oracle 数据库标准版 2 至少为 7.2 GB。对于 IBM:System z 上的 Linux: 对于独立服务器安装的 Oracle 网格基础架构,至少为 5.5 GB。 Oracle Database Enterprise Edition 至少为 5.9 GB。 Oracle 数据库标准版 2 至少为 5.9 GB。注意:Oracle 建议您分配大约 100 GB,以便在现有 Oracle 主目录之上留出额外的空间来应用任何未来的修补程序。有关与修补程序相关的特定磁盘空间要求,请参阅修补程序文档。

经过个人最终的实验,建议虚拟机所在的磁盘剩余空间要大于等于30G,再不济,至少20G,低于20G就得考虑扩容。

官网下载地址

https://www.oracle.com/cn/database/technologies/oracle-database-software-downloads.html

阿里云镜像

https://mirrors.aliyun.com/oracle/

SELinux和防火墙

关闭SELinux(SELINUX=disabled)和防火墙「Active: inactive (dead)」

[whybigdata@node01 ~]$ cat /etc/selinux/config # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. #SELINUX=enforcing SELINUX=disabled # SELINUXTYPE= can take one of three two values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted [whybigdata@node01 ~]$ systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: inactive (dead) Docs: man:firewalld(1) 关于版本选择与支持问题可以参考下方链接

https://docs.oracle.com/en/database/oracle/oracle-database/19/ladbi/additional-drivers-and-software-packages-for-linux.html

1. Oracle 数据库 1.1 简介

Oracle Database,又名 Oracle RDBMS,或简称 Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说 Oracle 数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库解决方案。

1.2 Oracle 与 MySQL 的SQL 区别 类型OracleMySQL整型number(N)/integerint/integer浮点型floatfloat/double字符串类型varchar2(N)varchar(N)NULL‘’null 和’'不一样分页rownumlimit""限制很多,一般不让用与单引号一样价格闭源,收费开源,免费主键自动增长×√if not exists×√auto_increment×√create database×√select * from table as t×√ 2. 前置准备 2.1 安装依赖包 yum源安装 yum install -y bc binutils compat-libcap1 compat-libstdc++33 elfutils-libelf elfutils-libelf-devel fontconfig-devel glibc glibc-devel ksh libaio libaio-devel libX11 libXau libXi libXtst libXrender libXrender-devel libgcc libstdc++ libstdc++-devel libxcb make smartmontools sysstat kmod* gcc-c++ compat-libstdc++-33 检查安装结果: rpm -qa bc binutils compat-libcap1 compat-libstdc++33 elfutils-libelf elfutils-libelf-devel fontconfig-devel glibc glibc-devel ksh libaio libaio-devel libX11 libXau libXi libXtst libXrender libXrender-devel libgcc libstdc++ libstdc++-devel libxcb make smartmontools sysstat kmod* gcc-c++ compat-libstdc++-33

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LpMYH0Xx-1675306617404)(./0.jpeg)]

如果compat-libstdc++-33在本地镜像没有,那么需要在线安装或先下载rpm包之后在单独安装

rpm –ivh compat-libstdc++-33-3.2.3-72.el7.x86_64 2.2 配置用户组

Oracle 安装文件不允许通过 root 用户启动,需要为oracle 配置一个专门的用户。此处创建一个名为oracle的用户

创建 sql 用户组 [root@node01 software]#groupadd sql 创建 oracle 用户并放入 sql 组中 [root@node01 software]#useradd oracle -g sql 修改 oracle 用户登录密码,输入密码后即可使用oracle 用户登录系统(密码设置为123456) [root@node01 software]#passwd oracle 2.3 上传安装包并解压

注意:Oracle19c 需要把软件包直接解压到ORACLE_HOME 的目录下

进入存放Oracle的zip包的目录,解压到指定目录(安装目录)

Note:安装目录需要提前创建,因为解压zip包后的文件是分散的

[root@node01 software]# mkdir -p /home/oracle/app/oracle/product/19.3.0/dbhome_1 [root@node01 software]# unzip LINUX.X64_193000_db_home.zip -d /home/oracle/app/oracle/product/19.3.0/dbhome_1 修改所属用户和组(不要在oracle用户下修改,不成功) [root@node01 dbhome_1]# chown -R oracle:sql /home/oracle/app/ 2.4 修改配置文件 sysctl.conf [root@node01 module]# vim /etc/sysctl.conf

删除或者注释里面的内容,并添加如下内容:

net.ipv4.ip_local_port_range = 9000 65500 fs.file-max = 6815744 kernel.shmall = 10523004 kernel.shmmax = 6465333657 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 net.core.rmem_default=262144 net.core.wmem_default=262144 net.core.rmem_max=4194304 net.core.wmem_max=1048576 fs.aio-max-nr = 1048576

参数解析:

net.ipv4.ip_local_port_range :可使用的 IPv4 端口范围fs.file-max :该参数表示文件句柄的最大数量。文件句柄设置表示在 linux 系统中可以打开的文件数量。kernel.shmall :该参数表示系统一次可以使用的共享内存总量(以页为单位)kernel.shmmax :该参数定义了共享内存段的最大尺寸(以字节为单位)kernel.shmmni :这个内核参数用于设置系统范围内共享内存段的最大数量kernel.sem : 该参数表示设置的信号量。net.core.rmem_default:默认的TCP 数据接收窗口大小(字节)。net.core.wmem_default:默认的TCP 数据发送窗口大小(字节)。net.core.rmem_max:最大的 TCP 数据接收窗口(字节)。net.core.wmem_max:最大的 TCP 数据发送窗口(字节)。fs.aio-max-nr :同时可以拥有的的异步 IO 请求数目。 2.5 修改配置文件 limits.conf [root@node01 module]# vim /etc/security/limits.conf

在文件末尾添加:(使用oracle用户)

oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 2.6 设置环境变量

oracle用户下新建.bash_profile文件

[oracle@node01 dbhome_1]# vim /home/oracle/.bash_profile

添加如下内容:

#ORACLE_HOME export ORACLE_BASE=/home/oracle/app/oracle export ORACLE_HOME=/home/oracle/app/oracle/product/19.3.0/dbhome_1 export PATH=$PATH:$ORACLE_HOME/bin export ORACLE_SID=orcl export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

使环境变量生效

[oracle@node01 ~]$ source /home/oracle/.bash_profile 3. Linux最小化环境安装Oracle(静默安装) 3.1 备份db_install.rsp

进入oracle安装目录下的install/response目录,提前备份一份db_install.rsp

[oracle@node01 response]$ cd $ORACLE_HOME/install/response [oracle@node01 response]$ ll 总用量 20 -rw-r--r-- 1 oracle sql 19932 2月 6 2019 db_install.rsp [oracle@node01 response]$ cp db_install.rsp db_install.rsp.bak [oracle@node01 response]$ ll 总用量 40 -rw-r--r-- 1 oracle sql 19932 2月 6 2019 db_install.rsp -rw-r--r-- 1 oracle sql 19932 1月 10 19:10 db_install.rsp.bak 3.2 修改db_install.rsp

修改db_install.rsp文件

[oracle@node01 response]$ vim db_install.rsp

UNIX_GROUP_NAME=sql INVENTORY_LOCATION=/home/oracle/app/oraInventory ORACLE_HOME=/home/oracle/app/oracle/product/19.3.0/dbhome_1 ORACLE_BASE=/home/oracle/app/oracle/ oracle.install.db.InstallEdition=EE oracle.install.db.OSDBA_GROUP=dba oracle.install.db.OSOPER_GROUP=oper oracle.install.db.OSBACKUPDBA_GROUP=backupdba oracle.install.db.OSDGDBA_GROUP=dgdba oracle.install.db.OSKMDBA_GROUP=kmdba oracle.install.db.OSRACDBA_GROUP=racdba oracle.install.db.rootconfig.executeRootScript=false

参数介绍说明

oracle.install.db.OSDBA_GROUP=dba

为数据库安装创建 OSDBA 组

每个 Oracle 数据库都需要将操作系统组指定为 OSDBA 组。此组的成员被授予管理数据库的 SYSDBA 系统特权。

在以下情况下,您必须创建 OSDBA 组:

OSDBA 组不存在,例如,如果这是系统上首次安装 Oracle 数据库软件存在 OSDBA 组,但您希望为新的 Oracle 数据库安装授予另一组操作系统用户的数据库管理权限

使用组名创建 OSDBA 组,除非已存在具有该名称的组:dba

oracle.install.db.OSOPER_GROUP=oper

为数据库安装创建 OSOPER 组

仅当要标识具有一组有限数据库管理权限(SYSOPER 操作员权限)的操作系统用户组时,才创建 OSOPER 组。

对于大多数安装,仅创建 OSDBA 组就足够了。但是,要使用 OSOPER 组,请在以下情况下创建它:

如果 OSOPER 组不存在;例如,如果这是首次在系统上安装 Oracle 数据库软件如果存在 OSOPER 组,但您希望在新的 Oracle 安装中为不同的操作系统用户组授予数据库操作员权限

如果 OSOPER 组不存在,或者需要新的 OSOPER 组,请创建它。使用组名称,除非已存在具有该名称的组。例如:oper

oracle.install.db.OSBACKUPDBA_GROUP=backupdba

为数据库安装创建 OSBACKUPDBA 组

在安装过程中,必须将一个组指定为 OSBACKUPDBA 组。此组的成员被授予使用 RMAN 或 SQL*Plus 执行备份和恢复操作的 SYSBACKUP 权限。

使用组名创建 OSBACKUPDBA 组,除非已存在具有该名称的组:backupdba

oracle.install.db.OSDGDBA_GROUP=dgdba

创建用于数据库安装的 OSDGDBA 组

您必须在以下期间将组指定为 OSDGDBA 组 安装。此组的成员被授予 SYSDG 权限 以执行数据卫士操作。

使用组名称创建 OSDGDBA 组,除非已存在具有该名称的组:dgdba,

oracle.install.db.OSKMDBA_GROUP=kmdba

为数据库安装创建 OSKMDBA 组

在安装过程中,必须将一个组指定为 OSKMDBA 组。此组的成员被授予执行透明数据加密密钥库操作的 SYSKM 特权。

如果需要用于透明数据加密的单独组,请使用组名称创建 OSKMDBA 组,除非已存在具有该名称的组:kmdba

oracle.install.db.OSRACDBA_GROUP=racdba

为数据库安装创建 OSRACDBA 组

在数据库安装过程中,必须将一个组指定为 OSRACDBA 组。此组的成员被授予 SYSRAC 权限,以在 Oracle RAC 集群上执行 Oracle 数据库的日常管理。

使用组名称创建 OSRACDBA 组,除非已存在具有该名称的组:racdba

3.3 执行安装

进入oracle安装目录

[oracle@node01 dbhome_1]$ ./runInstaller -silent -responseFile /home/oracle/app/oracle/product/19.3.0/dbhome_1/install/response/db_install.rsp 正在启动 Oracle 数据库安装向导... [FATAL] [INS-32031] 产品清单位置无效。 操作: 指定有效的产品清单位置。 [FATAL] [INS-32033] 主产品清单位置不可写。 操作: 请确保产品清单位置可以写入。 已将安装会话日志移动到: /home/oracle/app/oraInventory/logs/InstallActions2023-01-10_09-31-27PM

出现Error,查看日志:/tmp下

[oracle@node01 ~]$ cd /tmp/InstallActions2023-01-10_09-31-27PM [oracle@node01 InstallActions2023-01-10_09-31-27PM]$ ll 总用量 612 drwxr-xr-x 3 oracle sql 4096 1月 10 21:31 CVU_19.0.0.0.0_oracle -rw-r--r-- 1 oracle sql 0 1月 10 21:31 installActions2023-01-10_09-31-27PM.err -rw-r--r-- 1 oracle sql 49671 1月 10 21:31 installActions2023-01-10_09-31-27PM.log -rw-r--r-- 1 oracle sql 558102 1月 10 21:31 installActions2023-01-10_09-31-27PM.out -rw-r--r-- 1 oracle sql 138 1月 10 21:31 installerPatchActions_2023-01-10_09-31-27PM.log -rw-r--r-- 1 oracle sql 4072 1月 10 21:31 time2023-01-10_09-31-27PM.log [oracle@node01 InstallActions2023-01-10_09-31-27PM]$ tail -20 installActions2023-01-10_09-31-27PM.log

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tGAwoOsi-1675306617405)(1.png)]

[root@node01 app]# mkdir oraInventory [root@node01 app]# chown -R oracle:sql ./oraInventory/

Error2:[FATAL] [INS-35341] 安装用户不是以下组的成员: [dba, backupdba, dgdba, kmdba, racdba]

[oracle@node01 dbhome_1]$ ./runInstaller -silent -responseFile /home/oracle/app/oracle/product/19.3.0/dbhome_1/install/response/db_install.rsp 正在启动 Oracle 数据库安装向导... [FATAL] [INS-35341] 安装用户不是以下组的成员: [dba, backupdba, dgdba, kmdba, racdba] 原因: 安装用户帐户必须是安装所需的所有组的成员。 操作: 确保安装用户是所选系统权限操作系统组的成员。 已将安装会话日志移动到: /home/oracle/app/oraInventory/logs/InstallActions2023-01-10_09-57-38PM [root@node01 ~]# id oracle uid=1001(oracle) gid=1001(sql) 组=1001(sql)

查看所有用户组:cat /etc/group

[root@node01 ~]# cat /etc/group | grep sql mysql:x:27: sql:x:1001: [root@node01 ~]# cat /etc/group | grep dba [root@node01 ~]# cat /etc/group | grep backupdba [root@node01 ~]# cat /etc/group | grep dgdba [root@node01 ~]# cat /etc/group | grep kmdba [root@node01 ~]# cat /etc/group | grep racdba [root@node01 ~]# 解释说明:

关于uid:0 表示管理员(root),1 - 500 表示系统用户,501 - 65535 表示普通用户

mail : x : 12 : postfix ⬇ ⬇ ⬇ ⬇ Group(用户组) 用户组口令 GID 该用户组包含的用户(user) 新增组:dba、oper、backupdba、dgdba、kmdba、racdba增加dba、oper用户到sql组 # 查看用户 [root@node01 ~]# groups oracle oracle : sql [root@node01 ~]# useradd dba -g sql [root@node01 ~]# useradd oper -g sql [root@node01 ~]# groupadd dba [root@node01 ~]# groupadd oper [root@node01 ~]# groupadd backupdba [root@node01 ~]# groupadd dgdba [root@node01 ~]# groupadd kmdba [root@node01 ~]# groupadd racdba [root@node01 ~]# cat /etc/group | grep dba dba:x:1002: backupdba:x:1004: dgdba:x:1005: kmdba:x:1006: racdba:x:1007: [root@node01 ~]# id oracle uid=1001(oracle) gid=1001(sql) 组=1001(sql) [root@node01 ~]# id dba uid=1002(dba) gid=1001(sql) 组=1001(sql) [root@node01 ~]# id oper uid=1003(oper) gid=1001(sql) 组=1001(sql) # 查看用户 [root@node01 ~]# groups dba dba : sql [root@node01 ~]# groups oper oper : sql # 将oracle用户添加到创建的用户组dba、oper、backupdba、dgdba、kmdba、racdba中 [root@node01 etc]# id oracle uid=1001(oracle) gid=1001(sql) 组=1001(sql) [root@node01 etc]# [root@node01 etc]# usermod -G dba,oper,backupdba,dgdba,kmdba,racdba oracle [root@node01 etc]# id oracle uid=1001(oracle) gid=1001(sql) 组=1001(sql),1002(dba),1003(oper),1004(backupdba),1005(dgdba),1006(kmdba),1007(racdba)

Note:usermod的option-G和-g的区别,useradd和usermod的区别

# 强制使用 group_name 为新主组(-g) usermod -g group_name user_name # useradd是新建一个用户【oracle】并将其添加到sql用户组中,如下所示: [root@node01 ~]# useradd oracle -g sql # 当然,这个方法也应该是可以实现【将oracle用户添加到创建的用户组dba、oper、backupdba、dgdba、kmdba、racdba中】 [root@node01 ~]# useradd oracle -g sql -G dba backupdba dgdba kmdba racdba

Error3:[FATAL] [INS-35341] 安装用户不是以下组的成员: [dba, backupdba, dgdba, kmdba, racdba]

[oracle@node01 dbhome_1]$ ./runInstaller -silent -responseFile /home/oracle/app/oracle/product/19.3.0/dbhome_1/install/response/db_install.rsp 正在启动 Oracle 数据库安装向导... [WARNING] [INS-32047] 为主产品清单指定的位置 (/home/oracle/app/oraInventory) 不为空。 操作: 建议为产品清单提供空位置。 [FATAL] [INS-35341] 安装用户不是以下组的成员: [dba, backupdba, dgdba, kmdba, racdba] 原因: 安装用户帐户必须是安装所需的所有组的成员。 操作: 确保安装用户是所选系统权限操作系统组的成员。 已将安装会话日志移动到: /home/oracle/app/oraInventory/logs/InstallActions2023-01-11_06-04-43PM

还是与Error2一样,当前会话需要断开重连

[oracle@node01 ~]$ id uid=1001(oracle) gid=1001(sql) 组=1001(sql) [oracle@node01 dbhome_1]$ id oracle uid=1001(oracle) gid=1001(sql) 组=1001(sql),1002(dba),1003(oper),1004(backupdba),1005(dgdba),1006(kmdba),1007(racdba) # 断开当前会话重连node01 [oracle@node01 ~]$ id uid=1001(oracle) gid=1001(sql) 组=1001(sql),1002(dba),1003(oper),1004(backupdba),1005(dgdba),1006(kmdba),1007(racdba)

Error4:

[oracle@node01 dbhome_1]$ ./runInstaller -silent -responseFile /home/oracle/app/oracle/product/19.3.0/dbhome_1/install/response/db_install.rsp 正在启动 Oracle 数据库安装向导... [WARNING] [INS-32047] 为主产品清单指定的位置 (/home/oracle/app/oraInventory) 不为空。 操作: 建议为产品清单提供空位置。 [WARNING] [INS-13014] 目标环境不满足一些可选要求。 原因: 不满足一些可选的先决条件。有关详细信息, 请查看日志。installActions2023-01-11_08-36-29PM.log 操作: 从日志 installActions2023-01-11_08-36-29PM.log 中确定失败的先决条件检查列表。然后, 从日志文件或安装手册中查找满足这些先决条件的适当配置, 并手动进行修复。 可以在以下位置找到此会话的响应文件: /home/oracle/app/oracle/product/19.3.0/dbhome_1/install/response/db_2023-01-11_08-36-29PM.rsp 可以在以下位置找到本次安装会话的日志: /tmp/InstallActions2023-01-11_08-36-29PM/installActions2023-01-11_08-36-29PM.log ^[ ^C[FATAL] 调用 makefile '/home/oracle/app/oracle/product/19.3.0/dbhome_1/ldap/lib/ins_ldap.mk' 的目标 'clientonlyinstall' 时出错。有关详细信息, 请参阅 '/tmp/InstallActions2023-01-11_08-36-29PM/installActions2023-01-11_08-36-29PM.log'。

Error5:

[oracle@node01 dbhome_1]$ ./runInstaller -silent -responseFile /home/oracle/app/oracle/product/19.3.0/dbhome_1/install/response/db_install.rsp 正在启动 Oracle 数据库安装向导... [FATAL] [INS-32035] 为主产品清单指定的位置 (/home/oracle/app/oraInventory) 不为空。 原因: 指定的主产品清单位置由其他安装会话锁定, 或者指定的位置没有日志写入权限。 操作: 为产品清单指定空位置。 已将安装会话日志移动到: /home/oracle/app/oraInventory/logs/InstallActions2023-01-11_08-43-04PM [oracle@node01 dbhome_1]$ ./runInstaller -silent -responseFile /home/oracle/app/oracle/product/19.3.0/dbhome_1/install/response/db_install.rsp 正在启动 Oracle 数据库安装向导... [WARNING] [INS-13014] 目标环境不满足一些可选要求。 原因: 不满足一些可选的先决条件。有关详细信息, 请查看日志。installActions2023-01-11_09-05-44PM.log 操作: 从日志 installActions2023-01-11_09-05-44PM.log 中确定失败的先决条件检查列表。然后, 从日志文件或安装手册中查找满足这些先决条件的适当配置, 并手动进行修复。 可以在以下位置找到此会话的响应文件: /home/oracle/app/oracle/product/19.3.0/dbhome_1/install/response/db_2023-01-11_09-05-44PM.rsp 可以在以下位置找到本次安装会话的日志: /tmp/InstallActions2023-01-11_09-05-44PM/installActions2023-01-11_09-05-44PM.log 以 root 用户的身份执行以下脚本: 1. /home/oracle/app/oraInventory/orainstRoot.sh 2. /home/oracle/app/oracle/product/19.3.0/dbhome_1/root.sh 在以下节点上执行/home/oracle/app/oraInventory/orainstRoot.sh: [node01] 在以下节点上执行/home/oracle/app/oracle/product/19.3.0/dbhome_1/root.sh: [node01] Successfully Setup Software with warning(s). 已将安装会话日志移动到: /home/oracle/app/oraInventory/logs/InstallActions2023-01-11_09-05-44PM

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5sOWlXV6-1675306617406)(1.jpeg)]

根据上述日志提示完成以下步骤 [root@node01 ~]# /home/oracle/app/oraInventory/orainstRoot.sh 更改权限/home/oracle/app/oraInventory. 添加组的读取和写入权限。 删除全局的读取, 写入和执行权限。 更改组名/home/oracle/app/oraInventory 到 sql. 脚本的执行已完成。 [root@node01 ~]# /home/oracle/app/oracle/product/19.3.0/dbhome_1/root.sh Check /home/oracle/app/oracle/product/19.3.0/dbhome_1/install/root_node01_2023-01-11_21-11-18-051196576.log for the output of root script 3.4 验证是否安装正确

命令行输入net,连续按两下Tab键,观察是否有netca,若有则代表Oracle软件安装成功

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GMOwFa4m-1675306617407)(./2.jpeg)]

3.5 设置Oracle 监听

默认监听端口1521

创建监听 [oracle@node01 ~]$ cd /home/oracle/app/oracle/product/19.3.0/dbhome_1/assistants/netca [oracle@node01 netca]$ pwd /home/oracle/app/oracle/product/19.3.0/dbhome_1/assistants/netca [oracle@node01 netca]$ [oracle@node01 netca]$ netca /silent /responseFile /home/oracle/app/oracle/product/19.3.0/dbhome_1/assistants/netca/netca.rsp 正在对命令行参数进行语法分析: 参数"silent" = true 参数"responsefile" = /home/oracle/app/oracle/product/19.3.0/dbhome_1/assistants/netca/netca.rsp 完成对命令行参数进行语法分析。 Oracle Net Services 配置: 完成概要文件配置。 Oracle Net 监听程序启动: 正在运行监听程序控制: /home/oracle/app/oracle/product/19.3.0/dbhome_1/bin/lsnrctl start LISTENER 监听程序控制完成。 监听程序已成功启动。 监听程序配置完成。 成功完成 Oracle Net Services 配置。退出代码是0

要在响应文件模式下运行 Oracle DBCA,请执行以下操作

Warnning:修改响应文件模板并保存文件以供使用时,响应文件可能包含纯文本密码。响应文件的所有权应仅授予 Oracle 软件安装所有者,并且响应文件的权限应更改为 600。Oracle 强烈建议数据库管理员或其他管理员在不使用响应文件时删除或保护它们。

操作如下:

以静默方式创建和配置 Oracle 数据库 使用Oracle DBCA。

[oracle@node01 ~]$ cd /home/oracle/app/oracle/product/19.3.0/dbhome_1/assistants/dbca/ [oracle@node01 dbca]$ ll 总用量 40 -rw-r----- 1 oracle sql 25502 4月 6 2019 dbca.rsp drwxr-xr-x 2 oracle sql 4096 4月 17 2019 doc drwxr-xr-x 2 oracle sql 4096 4月 17 2019 jlib drwxr-xr-x 2 oracle sql 4096 4月 17 2019 template [oracle@node01 dbca]$ cp dbca.rsp dbca.rsp.bak [oracle@node01 dbca]$ vim dbca.rsp

Note:如果未正确配置响应文件,那么 Oracle DBCA 将失败。

添加的内容如下: gdbName=node01gdb sid=node01gdb databaseConfigType=SI templateName=General_Purpose.dbc sysPassword=123456 systemPassword=123456 emConfiguration=DBEXPRESS dbsnmpPassword=123456 datafileDestination=/home/oracle/app/oracle/oradata characterSet=AL32UTF8 totalMemory=1024

totalMemory参数在老版本中默认是800MB

totalMemory:调大内存,一般设置为1.5-2倍的物理内存大小即可

可以通过以下命令检查配置是否正确 [oracle@node01 ~]$ egrep -v "(^#|^$)" /home/oracle/app/oracle/product/19.3.0/dbhome_1/assistants/dbca/dbca.rsp responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v19.0.0 gdbName=node01gdb sid=node01gdb databaseConfigType=SI RACOneNodeServiceName= policyManaged= createServerPool= serverPoolName= cardinality= force= pqPoolName= pqCardinality= createAsContainerDatabase= numberOfPDBs= pdbName= useLocalUndoForPDBs= pdbAdminPassword= nodelist= templateName=General_Purpose.dbc sysPassword=123456 systemPassword=123456 oracleHomeUserPassword= emConfiguration=DBEXPRESS emExpressPort=5500 runCVUChecks= dbsnmpPassword=123456 omsHost= omsPort= emUser= emPassword= dvConfiguration= dvUserName= dvUserPassword= dvAccountManagerName= dvAccountManagerPassword= olsConfiguration= datafileJarLocation= datafileDestination=/home/oracle/app/oracle/oradata recoveryAreaDestination= storageType= diskGroupName= asmsnmpPassword= recoveryGroupName= characterSet=AL32UTF8 nationalCharacterSet= registerWithDirService= dirServiceUserName= dirServicePassword= walletPassword= listeners= variablesFile= variables= initParams= sampleSchema= memoryPercentage= databaseType= automaticMemoryManagement= totalMemory=1024

创建存储Oracle数据的存储路径/home/oracle/app/oracle/oradata

[oracle@node01 oracle]$ cd /home/oracle/app/oracle [oracle@node01 oracle]$ pwd /home/oracle/app/oracle [oracle@node01 oracle]$ mkdir oradata [oracle@node01 oracle]$ ll 总用量 20 drwxr-x--- 3 oracle sql 4096 1月 11 21:29 cfgtoollogs drwxr-xr-x 2 oracle sql 4096 1月 11 21:06 checkpoints drwxrwxr-x 23 oracle sql 4096 1月 11 21:06 diag drwxr-xr-x 2 oracle sql 4096 1月 11 21:44 oradata drwxr-xr-x 3 oracle sql 4096 1月 10 18:39 product 3.6 静默创建数据库

DBCA 静默模式命令语法说明

选择描述-silent指定以静默模式运行 DBCA。-silent在静默模式下,DBCA 使用您指定为命令行选项的值来创建或修改数据库。command options指定 DBCA 命令和该命令的有效选项。`-h-help` 使用以下命令语法以静默方式或响应文件方式运行 Oracle DBCA $ORACLE_HOME/bin/dbca [-silent] -createDatabase -responseFile /local_dir/dbca.rsp

使用响应文件:

[oracle@node01 dbca]$ dbca -silent -createDatabase -responseFile /home/oracle/app/oracle/product/19.3.0/dbhome_1/assistants/dbca/dbca.rsp [WARNING] [DBT-06208] 输入的 'SYS(S)' 口令未遵从 Oracle 建议的标准。 原因: a. Oracle 建议, 输入的口令长度不应少于 8 个字符, 至少包含 1 个大写字符, 1 个小写字符和 1 个数字 [0-9]。 b. 输入的口令是一个关键字, Oracle 建议不要将其用作口令 操作: 指定强口令。如果需要, 请参阅 Oracle 文档以了解相关指南。 [WARNING] [DBT-06208] 输入的 'SYSTEM' 口令未遵从 Oracle 建议的标准。 原因: a. Oracle 建议, 输入的口令长度不应少于 8 个字符, 至少包含 1 个大写字符, 1 个小写字符和 1 个数字 [0-9]。 b. 输入的口令是一个关键字, Oracle 建议不要将其用作口令 操作: 指定强口令。如果需要, 请参阅 Oracle 文档以了解相关指南。 准备执行数据库操作 已完成 10% 复制数据库文件 已完成 40% 正在创建并启动 Oracle 实例 已完成 42% 已完成 46% 已完成 50% 已完成 54% 已完成 60% 正在进行数据库创建 已完成 66% 已完成 70% 执行配置后操作 已完成 100% 数据库创建完成。有关详细信息, 请查看以下位置的日志文件: /home/oracle/app/oracle/cfgtoollogs/dbca/node01gdb。 数据库信息: 全局数据库名:node01gdb 系统标识符 (SID):node01gdb 有关详细信息, 请参阅日志文件 "/home/oracle/app/oracle/cfgtoollogs/dbca/node01gdb/node01gdb.log"。

Note:该步骤考验网络情况,大概10min左右考研完成!

3.7 验证 登录数据库,进入到SQL交互界面即成功!!!

Note:以sqlplus / as sysdba方式登录时,采用的是操作系统验证的方式,所以用户名/密码输入与不输入本质上是没有差别的。

[oracle@node01 dbca]$ sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on Wed Jan 11 22:48:20 2023 Version 19.3.0.0.0 Copyright (c) 1982, 2019, Oracle. All rights reserved. Connected to an idle instance. SQL> show parameter name; ORA-01034: ORACLE not available Process ID: 0 Session ID: 0 Serial number: 0 SQL> 查询数据库状态 SQL> select status from v$instance; select status from v$instance * ERROR at line 1: ORA-01034: ORACLE not available Process ID: 0 Session ID: 0 Serial number: 0 SQL>

出现Error:ORA-01034: ORACLE not available

执行startup命令,根据提示修复上述Error SQL> startup ORA-01078: failure in processing system parameters LRM-00109: could not open parameter file '/home/oracle/app/oracle/product/19.3.0/dbhome_1/dbs/initORCL.ora'

根据startup命令的结果提示,我们需要将$ORACLE_BASE/admin/你设置的数据库名称/pfile目录下的init.ora.xxx形式的文件复制到ORACLE_HOME/dbs目录下initORCL.ora(请注意命名)即可

Note:上述「你设置的数据库名称」指的是在bdbca.rsp文件中参数gdbName的值(此处本人的数据库名称为node01gd)

[oracle@node01 pfile]$ cp init.ora.0112023223752 $ORACLE_HOME/dbs/initORCL.ora [oracle@node01 pfile]$ ll $ORACLE_HOME/dbs 总用量 28 -rw-rw---- 1 oracle sql 1544 1月 11 22:40 hc_node01gdb.dat -rw-r--r-- 1 oracle sql 3079 5月 14 2015 init.ora -rw-r----- 1 oracle sql 2052 1月 12 19:48 initORCL.ora -rw-r----- 1 oracle sql 24 1月 11 22:30 lkHADOOP10 -rw-r----- 1 oracle sql 24 1月 11 22:29 lknode01GDB -rw-r----- 1 oracle sql 2048 1月 11 22:31 orapwnode01gdb -rw-r----- 1 oracle sql 3584 1月 11 22:42 spfilenode01gdb.ora 再次执行startup命令,出现同样的错误

查看$ORACLE_BASE/dbs/init.ora文件中db_name的参数值和环境变量(.bash_profile)中ORACLE_SID的参数值是否一致「注意大小写」

本人确实是大小写不一致的问题,修改.bash_profile中ORACLE_SID为db_name的参数值即可,并重新source一下环境变量 [oracle@node01 pfile]$ cat /home/oracle/.bash_profile ... #ORACLE_HOME export ORACLE_BASE=/home/oracle/app/oracle export ORACLE_HOME=/home/oracle/app/oracle/product/19.3.0/dbhome_1 export PATH=$PATH:$ORACLE_HOME/bin export ORACLE_SID=ORCL export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK ... [oracle@node01 pfile]$ cat $ORACLE_HOME/dbs/init.ora .... db_name='ORCL' memory_target=1G .... [oracle@node01 pfile]$ vim ~/.bash_profile [oracle@node01 pfile]$ source /home/oracle/.bash_profile 依旧执行startup命令,成功打开数据库 [oracle@node01 dbs]$ sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on Thu Jan 12 20:11:07 2023 Version 19.3.0.0.0 Copyright (c) 1982, 2019, Oracle. All rights reserved. Connected to an idle instance. SQL> startup ORACLE instance started. Total System Global Area 1073737800 bytes Fixed Size 8904776 bytes Variable Size 704643072 bytes Database Buffers 352321536 bytes Redo Buffers 7868416 bytes Database mounted. Database opened. SQL> 再次查询数据库状态,可以看到状态为open SQL> select status from v$instance; STATUS ------------------------ OPEN SQL>

简单的示例:查询当前数据库show parameter name,执行结果的最后一行就是当前数据库名

SQL> show parameter name; NAME TYPE ------------------------------------ ---------------------- VALUE ------------------------------ cdb_cluster_name string cell_offloadgroup_name string db_file_name_convert string db_name string hadoop10 db_unique_name string NAME TYPE ------------------------------------ ---------------------- VALUE ------------------------------ node01gdb global_names boolean FALSE instance_name string ORCL lock_name_space string log_file_name_convert string NAME TYPE ------------------------------------ ---------------------- VALUE ------------------------------ pdb_file_name_convert string processor_group_name string service_names string node01gdb 4. 进入虚拟机图像化页面安装Oracle软件 5. 创建数据库实例 5.1 查看监听状态 命令行输入lsn,连续按下两次「Tab」键即可查看到lsnsrctl命令 [oracle@node01 dbhome_1]$ lsn lsnodes lsnrctl lsns 查看状态 [oracle@node01 dbhome_1]$ lsnrctl status LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 12-JAN-2023 19:23:22 Copyright (c) 1991, 2019, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=node01)(PORT=1521))) TNS-12541: TNS:no listener TNS-12560: TNS:protocol adapter error TNS-00511: No listener Linux Error: 111: Connection refused Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521))) TNS-12541: TNS:no listener TNS-12560: TNS:protocol adapter error TNS-00511: No listener Linux Error: 111: Connection refused [oracle@node01 dbhome_1]$ lsnrctl start LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 12-JAN-2023 19:23:34 Copyright (c) 1991, 2019, Oracle. All rights reserved. Starting /home/oracle/app/oracle/product/19.3.0/dbhome_1/bin/tnslsnr: please wait... TNSLSNR for Linux: Version 19.0.0.0.0 - Production System parameter file is /home/oracle/app/oracle/product/19.3.0/dbhome_1/network/admin/listener.ora Log messages written to /home/oracle/app/oracle/diag/tnslsnr/node01/listener/alert/log.xml Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=node01)(PORT=1521))) Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=node01)(PORT=1521))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production Start Date 12-JAN-2023 19:23:36 Uptime 0 days 0 hr. 0 min. 2 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /home/oracle/app/oracle/product/19.3.0/dbhome_1/network/admin/listener.ora Listener Log File /home/oracle/app/oracle/diag/tnslsnr/node01/listener/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=node01)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) The listener supports no services The command completed successfully 5.2. 创建一个普通用户并授权 创建用户 [oracle@node01 dbs]$ sqlplus SQL*Plus: Release 19.0.0.0.0 - Production on Thu Jan 12 21:20:56 2023 Version 19.3.0.0.0 Copyright (c) 1982, 2019, Oracle. All rights reserved. Enter user-name: system Enter password: Last Successful login time: Thu Jan 12 2023 21:18:48 +08:00 Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.3.0.0.0 SQL> create user whybigdata identified by 123456; User created. SQL> 授权 SQL> grant create session,create table,create view,create sequence,unlimited tablespace to whybigdata; Grant succeeded. 5.3 创建表

Note:student表的创建实在system用户下创建的

创建表student SQL> create TABLE student(id INTEGER,name VARCHAR2(20)); Table created. SQL> insert into student values (1,'zhangsan'); 1 row created. SQL> select * from student; ID NAME ---------- ---------------------------------------- 1 zhangsan SQL> 在其他会话窗口(虚拟机终端工具)查询不到表student的数据

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qGXu4kcl-1675306617408)(2.png)]

原因:在当前会话(创建表的会话)中需要提交(commit)才可以在终端(其他会话)查询到表插入的数据

SQL> commit; Commit complete. 虚拟机终端再次查询表数据

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Oi18BRXA-1675306617410)(3.png)]

切换到上述创建的普通用户whybigdata中,查询不到表student的数据 [oracle@node01 dbs]$ sqlplus SQL*Plus: Release 19.0.0.0.0 - Production on Thu Jan 12 21:28:38 2023 Version 19.3.0.0.0 Copyright (c) 1982, 2019, Oracle. All rights reserved. Enter user-name: whybigdata Enter password: Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.3.0.0.0 SQL> select * from student; select * from student * ERROR at line 1: ORA-00942: table or view does not exist

原因:Oracle是按照用户来隔离的,每个用户所属的表空间是不一样的

注意:安装完成后重启机器可能出现 ORACLE not available 错误,解决方法如下:

[oracle@node01 ~]$ sqlplus / as sysdba SQL>startup SQL>conn whybigdata Enter password: 6. 参考 https://www.cnblogs.com/charelee/p/13866895.htmlCreating Operating System Privileges Groups (oracle.com)https://docs.oracle.com/en/database/oracle/oracle-database/19/ladbi/installing-the-oracle-database-software.htmlhttps://docs.oracle.com/en/database/oracle/oracle-database/19/ladbi/completing-preinstallation-tasks-manually.htmlhttps://docs.oracle.com/en/database/oracle/oracle-database/19/ladbi/configuring-operating-systems-for-oracle-database-on-linux.htmlhttps://docs.oracle.com/en/database/oracle/oracle-database/19/ladbi/Chunk72467155.htmlhttps://community.oracle.com/mosc/discussion/3997981/ins-35341-while-installing-11g-and-12cRunning Oracle DBCA Using Response Fileshttps://docs.oracle.com/en/database/oracle/oracle-database/21/multi/dbca-reference.htmlhttps://docs.oracle.com/en/database/oracle/oracle-database/18/rilin/editing-a-response-file-template.htmlhttp://www.dba-oracle.com/sf_ora_01034_oracle_not_available.htmhttps://www.techiepage.net/how-to-fix-ora-01034-oracle-not-available-error/https://asktom.oracle.com/pls/apex/asktom.search?tag=ora-01034-oracle-not-availablehttps://blog.sina.com.cn/s/blog_4b5bc0110101d310.htmlhttps://community.oracle.com/tech/developers/discussion/4488389/ora-01078-failure-in-processing-system-parameters-lrm-00109-could-not-open-parameter-filehttps://ittutorial.org/ora-01078-failure-in-processing-system-parameters/


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有