oracle19c其实就是属于12g版本的
[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
- 对于 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=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 daemonLoaded: 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
Oracle Database,又名 Oracle RDBMS,或简称 Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说 Oracle 数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库解决方案。
类型 | Oracle | MySQL |
---|---|---|
整型 | number(N)/integer | int/integer |
浮点型 | float | float/double |
字符串类型 | varchar2(N) | varchar(N) |
NULL | ‘’ | null 和’'不一样 |
分页 | rownum | limit |
"" | 限制很多,一般不让用 | 与单引号一样 |
价格 | 闭源,收费 | 开源,免费 |
主键自动增长 | × | √ |
if not exists | × | √ |
auto_increment | × | √ |
create database | × | √ |
select * from table as t | × | √ |
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
如果
compat-libstdc++-33
在本地镜像没有,那么需要在线安装或先下载rpm包之后在单独安装
rpm –ivh compat-libstdc++-33-3.2.3-72.el7.x86_64
Oracle 安装文件不允许通过 root 用户启动,需要为oracle 配置一个专门的用户。此处创建一个名为oracle的用户
[root@node01 software]#groupadd sql
[root@node01 software]#useradd oracle -g sql
[root@node01 software]#passwd oracle
注意:Oracle19c 需要把软件包直接解压到ORACLE_HOME 的目录下
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
[root@node01 dbhome_1]# chown -R oracle:sql /home/oracle/app/
[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
参数解析:
[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
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
进入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
修改
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
参数介绍说明
为数据库安装创建 OSDBA 组
每个 Oracle 数据库都需要将操作系统组指定为 OSDBA 组。此组的成员被授予管理数据库的 SYSDBA 系统特权。
在以下情况下,您必须创建 OSDBA 组:
- OSDBA 组不存在,例如,如果这是系统上首次安装 Oracle 数据库软件
- 存在 OSDBA 组,但您希望为新的 Oracle 数据库安装授予另一组操作系统用户的数据库管理权限
使用组名创建 OSDBA 组,除非已存在具有该名称的组:
dba
为数据库安装创建 OSOPER 组
仅当要标识具有一组有限数据库管理权限(SYSOPER 操作员权限)的操作系统用户组时,才创建 OSOPER 组。
对于大多数安装,仅创建 OSDBA 组就足够了。但是,要使用 OSOPER 组,请在以下情况下创建它:
- 如果 OSOPER 组不存在;例如,如果这是首次在系统上安装 Oracle 数据库软件
- 如果存在 OSOPER 组,但您希望在新的 Oracle 安装中为不同的操作系统用户组授予数据库操作员权限
如果 OSOPER 组不存在,或者需要新的 OSOPER 组,请创建它。使用组名称,除非已存在具有该名称的组。例如:
oper
为数据库安装创建 OSBACKUPDBA 组
在安装过程中,必须将一个组指定为 OSBACKUPDBA 组。此组的成员被授予使用 RMAN 或 SQL*Plus 执行备份和恢复操作的 SYSBACKUP 权限。
使用组名创建 OSBACKUPDBA 组,除非已存在具有该名称的组:
backupdba
创建用于数据库安装的 OSDGDBA 组
您必须在以下期间将组指定为 OSDGDBA 组 安装。此组的成员被授予 SYSDG 权限 以执行数据卫士操作。
使用组名称创建 OSDGDBA 组,除非已存在具有该名称的组:
dgdba,
为数据库安装创建 OSKMDBA 组
在安装过程中,必须将一个组指定为 OSKMDBA 组。此组的成员被授予执行透明数据加密密钥库操作的 SYSKM 特权。
如果需要用于透明数据加密的单独组,请使用组名称创建 OSKMDBA 组,除非已存在具有该名称的组:
kmdba
为数据库安装创建 OSRACDBA 组
在数据库安装过程中,必须将一个组指定为 OSRACDBA 组。此组的成员被授予 SYSRAC 权限,以在 Oracle RAC 集群上执行 Oracle 数据库的日常管理。
使用组名称创建 OSRACDBA 组,除非已存在具有该名称的组:
racdba
进入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
[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.sh2. /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
[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
命令行输入net,连续按两下
Tab
键,观察是否有netca
,若有则代表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=SItemplateName=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
DBCA 静默模式命令语法说明
选择 | 描述 |
---|---|
-silent | 指定以静默模式运行 DBCA。-silent 在静默模式下,DBCA 使用您指定为命令行选项的值来创建或修改数据库。 |
command options | 指定 DBCA 命令和该命令的有效选项。 |
`-h | -help` |
$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左右考研完成!
Note:以sqlplus / as sysdba方式登录时,采用的是操作系统验证的方式,所以用户名/密码输入与不输入本质上是没有差别的。
[oracle@node01 dbca]$ sqlplus / as sysdbaSQL*Plus: Release 19.0.0.0.0 - Production on Wed Jan 11 22:48:20 2023
Version 19.3.0.0.0Copyright (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: 0SQL>
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: 0SQL>
出现Error:ORA-01034: ORACLE not available
startup
命令,根据提示修复上述ErrorSQL> 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
查看
$ORACLE_BASE/dbs/init.ora
文件中db_name的参数值和环境变量(.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
[oracle@node01 dbs]$ sqlplus / as sysdbaSQL*Plus: Release 19.0.0.0.0 - Production on Thu Jan 12 20:11:07 2023
Version 19.3.0.0.0Copyright (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
------------------------
OPENSQL>
简单的示例:查询当前数据库show parameter name,执行结果的最后一行就是当前数据库名
SQL> show parameter name;NAME TYPE
------------------------------------ ----------------------
VALUE
------------------------------
cdb_cluster_name stringcell_offloadgroup_name stringdb_file_name_convert stringdb_name string
hadoop10
db_unique_name stringNAME TYPE
------------------------------------ ----------------------
VALUE
------------------------------
node01gdb
global_names boolean
FALSE
instance_name string
ORCL
lock_name_space stringlog_file_name_convert stringNAME TYPE
------------------------------------ ----------------------
VALUE
------------------------------
pdb_file_name_convert stringprocessor_group_name stringservice_names string
node01gdb
lsnsrctl
命令[oracle@node01 dbhome_1]$ lsn
lsnodes lsnrctl lsns
[oracle@node01 dbhome_1]$ lsnrctl statusLSNRCTL for Linux: Version 19.0.0.0.0 - Production on 12-JAN-2023 19:23:22Copyright (c) 1991, 2019, Oracle. All rights reserved.Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=node01)(PORT=1521)))
TNS-12541: TNS:no listenerTNS-12560: TNS:protocol adapter errorTNS-00511: No listenerLinux Error: 111: Connection refused
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
TNS-12541: TNS:no listenerTNS-12560: TNS:protocol adapter errorTNS-00511: No listenerLinux Error: 111: Connection refused
[oracle@node01 dbhome_1]$ lsnrctl startLSNRCTL for Linux: Version 19.0.0.0.0 - Production on 12-JAN-2023 19:23:34Copyright (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
[oracle@node01 dbs]$ sqlplusSQL*Plus: Release 19.0.0.0.0 - Production on Thu Jan 12 21:20:56 2023
Version 19.3.0.0.0Copyright (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:00Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0SQL> 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.
Note:student表的创建实在system用户下创建的
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 zhangsanSQL>
原因:在当前会话(创建表的会话)中需要提交(commit)才可以在终端(其他会话)查询到表插入的数据
SQL> commit;Commit complete.
[oracle@node01 dbs]$ sqlplusSQL*Plus: Release 19.0.0.0.0 - Production on Thu Jan 12 21:28:38 2023
Version 19.3.0.0.0Copyright (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.0SQL> 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:
上一篇:spring加载bean流程解析