🔻 一、安装前规划
规划项: | (本环境) 描述: |
---|---|
操作系统版本 | Red Hat Enterprise Linux Server release 4.6 (Santiago) |
主机名 | langtest |
数据库版本 | Oracle 19c |
IP规划 | 10.10.10.164 |
服务器空间要求 | 根据实际要求 |
数据库名/实例名 | orcl |
数据库块大小 | oracle建库一般设置数据库块大小8192K |
数据库使用字符集 | 这里用AL32UTF8 字符集 |
UFT8与GBK的区别:
区别主要是他们占用的字节不同(汉字),UTF8占用三个字节,而GBK占用两个字节如varchar2(30)类型,
如果是utf8,只能输入10汉字;
而gbk则可以输入15个汉字。
一般生产环境服务器空间规划要求(可根据业务量自行调整)
/
------100G
数据库安装目录(如:/u01
) ------100G
数据存储目录(如:/oradata
) ------500G
归档目录(如:/archive
) ------500G(一般和数据目录一致)
备份目录(如:/backup
) ----------1.5T(一般是数据目录3倍左右)
🔻 二、安装前准备一(系统参数修改)
⛳ 2.1 内核版本、系统版本查看
拓展:普通用户切换到root用户
出现这种原因是因为在 /etc/sudoers 文件中没有配置
1、使用root用户登录
2、编辑 /etc/sudoers 文件
-- root用户登录,编辑 /etc/sudoers 文件 [root@langtest ~]# vi /etc/sudoers-- 末行加入 -- NOPASSWD:ALL 表示切换到时候不需要输入密码 oracle ALL=(ALL) NOPASSWD:ALL-- 然后 :wq! 保存退出
3、查看修改结果
-- 系统的硬件架构 [oracle@langtest ~]$ uname -m x86_64 [oracle@langtest ~]$ -- 查看内核版本 [oracle@langtest ~]$ cat /proc/version Linux version 2.6.32-504.el6.x86_64 (mockbuild@x86-023.build.eng.bos.redhat.com) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-11) (GCC) ) #1 SMP Tue Sep 16 01:56:35 EDT 2014 [oracle@langtest ~]$ -- 所有可用的系统信息 [oracle@langtest ~]$ uname -a Linux langtest 2.6.32-504.el6.x86_64 #1 SMP Tue Sep 16 01:56:35 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux [oracle@langtest ~]$ -- 查看系统版本 [oracle@langtest ~]$ cat /etc/redhat-release Red Hat Enterprise Linux Server release 4.6 (Santiago) [oracle@langtest ~]$
⛳ 2.2 修改主机名-重启生效
1、域名主机名映射
-- 域名--主机名 映射 [oracle@langtest ~]$ vi /etc/hosts-- 末行增加 10.10.10.164 langtest
2、主机名
-- 修改主机名 [oracle@langtest ~]$ vi /etc/hostname-- 增加 langtest
⛳ 2.3 关闭selinux
关闭selinux可以提高系统的性能,因为 selinux会对系统进行安全检查,这会消耗一定的系统资源。
[oracle@langtest ~]$ vi /etc/selinux/config
-- 将SELINUX= enforcing
修改为SELINUX=disabled
拓展:防火墙有关命令
-- 关闭防火墙 [oracle@langtest ~]$ systemctl stop firewalld-- 开启防火墙 [oracle@langtest ~]$ systemctl start firewalld-- 重启防火墙 [oracle@langtest ~]$ systemctl restart firewalld-- 防火墙状态查看 [oracle@langtest ~]$ systemctl status firewalld-- 禁止开机启动 [oracle@langtest ~]$ systemctl disable firewalld-- 设置开机启动 [oracle@langtest ~]$ systemctl enable firewalld
⛳ 2.4 防火墙设置1521端口开放
-- 设置1521端口开放 [oracle@langtest ~]$ firewall-cmd --zone=public --add-port=1521/tcp --permanent success [oracle@langtest ~]$ -- 重启防火墙,查看开放端口列表 [oracle@langtest ~]$ firewall-cmd --list-ports 1521/tcp [oracle@langtest ~]$
⛳ 2.5 系统相关配置检查
-- 查看磁盘占用的空间 [root@langtest ~]# df -h -- 查看内存总量 [root@langtest ~]# grep MemTotal /proc/meminfo -- 查看空闲内存量 [root@langtest ~]# grep MemFree /proc/meminfo
安装oracle 11g对于共享内存(/dev/shm)要求/dev/shm空间不能小于分配给oracle使用内存的大小
。
我这里大小已经够用了,就不需要增加了 !!!!!!!!!
拓展:修改/dev/shm 大小 (/dev/shm空间不能小于分配给oracle使用内存的大小)
将/dev/shm 增加到4G
[root@langtest ~]# vi /etc/fstab-- 文本末添加内容 tmpfs /dev/shm tmpfs defaults size=4096M 0 0
-- 重新挂载/dev/shm,然后df -h /dev/shm查看挂载情况 [root@langtest ~]# mount -o remount /dev/shm
2.5.1 🍁 /tmp(临时文件存储空间) >1G
2.5.2 🍁 /u01(软件安装目录) >2.5G
2.5.3 🍁 内核需求
安装数据库19c操作系统 内核需求 On Oracle Linux 4 and Red Hat Enterprise Linux 4 2.6.9 or later On Oracle Linux 5 Update 5 2.6.32-100.0.19 or later On Oracle Linux 5 Update 2 2.6.18 or later (with Red Hat Compatible Kernel) On Oracle Linux 6 2.6.32-100.28.5.el6.x86_64 or later On Oracle Linux 6 2.6.32-71.el6.x86_64 or later (with Red Hat Compatible Kernel)
Oracle 19c要求OS至少为RHEL4.7,内核为Kernel 2.6.9
。
⛳ 2.6 系统光盘镜像文件挂载—配置本地yum源
一般生产环境无法访问外网,在内网环境可以使用系统ISO镜像文件作为本地yum源,在服务器上挂载DVD的 iso 文件。
2.6.1 🍁 上传iso镜像文件并挂载到 /mnt/dvd/ 下
1、创建挂载镜像文件目录
-- 创建镜像文件挂载目录/mnt/dvd [root@langtest ~]# mkdir -p /mnt/dvd-- 查看创建情况 [root@langtest ~]# ls -lrt /mnt/dvd total 0 [root@langtest ~]#
2、
上传rhel-server-7.9-x86_64-dvd.iso
文件到/usr/local/src
下通过 sftp 将镜像上传到 /usr/local/src 下
3、挂载ISO文件
-- 挂载iso文件(只能读,不可写) [root@langtest ~]# mount -t iso9660 -o loop /usr/local/src/rhel-server-7.9-x86_64-dvd.iso /mnt/dvd-- 重新以可读可写的方式挂载 [root@langtest ~]# mount -o remount,rw /
4、开机自动挂载本地镜像文件
-- 设置开机自动挂载本地镜像文件 [root@langtest ~]# vi /etc/fstab-- 末行添加内容 /usr/local/src/rhel-server-7.9-x86_64-dvd.iso /mnt/dvd iso9660 loop 0 0
5、查看挂载情况
[root@langtest ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_root-lv_root99G 38G 57G 40% / tmpfs 2.0T 28K 2.0T 1% /dev/shm /dev/sda1 190M 33M 147M 19% /boot /dev/mapper/vg_root-lv_oracle99G 56G 39G 59% /u01 /dev/mapper/vg_root-lv_backup99G 69G 26G 74% /backup /dev/mapper/vg_root-lv_onlbak99G 2.4G 91G 3% /onlbak /dev/mapper/vg_root-lv_test99G 41G 54G 43% /oracle /dev/mapper/vg_faredata-lv_faredata776G 553G 184G 76% /fare_data /dev/mapper/vg_rptbak-lv_rptbak739G 343G 358G 49% /rptbak /dev/mapper/vg_oradata-lv_oradata792G 717G 35G 96% /oradata /dev/mapper/vg_oradata02-lv_oradata02970G 131G 790G 15% /oradata02 /dev/mapper/vg_amrbak-lv_amrbak650G 3.6G 613G 1% /amrbak /dev/mapper/vg_postgres-lv_postgres99G 403M 93G 1% /postgres /usr/local/src/rhel-server-7.9-x86_64-dvd.iso4.3G 4.3G 0 100% /mnt/dvd [root@langtest ~]#
2.6.2 🍁 备份yum源文件
[root@langtest ~]# cd /etc/yum.repos.d/ [root@langtest ~]# more redhat.repo
-- 备份yum源文件 [root@langtest yum.repos.d]# cp redhat.repo redhat.repo-bak
2.6.3🍁 本地yum源配置
1、编辑 /etc/yum.repos.d/redhat.repo 文件
[root@langtest yum.repos.d]# cd /etc/yum.repos.d/ [root@langtest yum.repos.d]# ls cobbler-config.repo local.repo redhat.repo redhat.repo-bak rhel-source.repo.bak [root@langtest yum.repos.d]# vi redhat.repo
2、增加如下内容
[root@langtest yum.repos.d]# vi redhat.repo-- 末行增加# 标识符 [redhat]# 名称 name=Red Hat Enterprise Linux 7.9 # 本地yum源地址 baseurl=file:///mnt/dvd# 下载的rpm不进行校验 gpgcheck=0#启用状态 enabled=1
2.6.4🍁 验证本地yum源配置
1、清除yum缓存
###清除yum缓存 [root@langtest ~]# yum clean all
2、缓存本地yum源中的软件包信息
-- 缓存本地yum源中的软件包信息 [root@langtest ~]# yum makecache
3、查询仓库中的所有软件包
-- 查询仓库中的所有软件包 [root@langtest ~]# yum list
⛳ 2.7 Orange19c有关依赖包检查及安装
1、检查19c相关的依赖包
-- Orange19c有关依赖包检查 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 \ | grep "not installed"
----提前安装有关依赖
1、
安装有关依赖
-- 安装有关依赖 [root@langtest ~]# yum install gcc* binutils* compat* glibc* ksh* libgcc* libstdc* libaio* make* sysstat* unixODBC* -y
拓展:
-- 手动上传安装compat-libstdc++
[root@langtest ~]# rpm -ivh compat-libstdc++-8-3.3.4.2.x86_64.rpm --force --nodeps warning: compat-libstdc++-8-3.3.4.2.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 4f2a6fd2: NOKEY Preparing... ################################# [100%] Updating / installing...1:compat-libstdc++-8-3.3.4.2 ################################# [100%] [root@langtest ~]#
2、有关依赖包再次检查
-- 有关依赖包再次检查 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 \ | grep "not installed"
⛳ 2.8 修改资源限制参数并使其生效
对oracle用户做资源的限制,主要是出于性能上的考虑,防止oracle用户过渡消耗有限资源,使系统变得臃肿缓慢。
1、编辑 /etc/security/limits.conf 文件
-- 备份limits.conf 文件,limits.conf只针对于单个会话。 [root@langtest ~]# cd /etc/security/ [root@langtest security]# ls access.conf console.apps console.perms group.conf limits.d namespace.d opasswd pam_winbind.conf time.conf chroot.conf console.handlers console.perms.d limits.conf namespace.conf namespace.init pam_env.conf sepermit.conf [root@langtest security]# cp /etc/security/limits.conf /etc/security/limits.conf-bak [root@langtest security]# vi /etc/security/limits.conf-- 末行添加 # Oracle oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 65536 oracle hard nofile 65536 oracle soft stack 10240 oracle soft memlock unlimited oracle hard memlock unlimited
注意:
资源限制参数分为软限制和硬限制
。
nproc ----进程最大数目
nofile ----进程打开文件的最大数目
stack ----最大栈大小
memlock ----最大锁定内存地址空间(要比实际内存小,如内存4G,设置3G最大锁定内存地址空间,则为3x1024x1024=3145728)
--------其他配置项
-------
core ----限制内核文件的大小
data ----最大数据大小
fsize ----最大文件大小
rss ---- 最大持久设置大小
cpu ---- 以分钟为单位的最多 CPU 时间
as ---- 地址空间限制
maxlogins ---- 此用户允许登录的最大数目
2、使 limits.conf 文件配置生效
-- 使 limits.conf 文件配置生效,必须要确保 pam_limits.so 文件被加入到启动文件中。vi /etc/pam.d/login 文件,文末添加内容:[root@langtest ~]# vi /etc/pam.d/login-- 末行增加 session required /lib64/security/pam_limits.so
⛳ 2.9 系统内核参数修改
1、备份、编辑内核参数文件sysctl.conf
[root@langtest ~]# cp /etc/sysctl.conf /etc/sysctl.conf-bak [root@langtest ~]# vi /etc/sysctl.conf-- 末行增加 fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 65892823 kernel.shmmax = 215917602406 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
系统内核参数详解,关注该四个:
1、kernel.shmmax ----单个共享内存段的最大值(如系统内存4G,则oracle 内存为0.8x4G=3.2G(SGA=0.8x3.2G+PGA=0.2x3.2G)) >= SGA的值,则最终值应该>=0.8x3.2Gx1024x1024x1024 2、kernel.shmall -----控制共享内存页数(kernel.shmmax/PAGESIZE)-- PAGESIZE—页数查看 [oracle@langtest ~]$ getconf PAGESIZE 4096 [oracle@langtest ~]$ 3、kernel.shmmni -----共享内存段的最大数量 = 4096(和每页大小一致即可)4、vm.nr_hugepages -----大页,直接分配并保留对应大小的内存区域(SGA/2M稍微大一点,加200M左右),如(0.8x3.2Gx1024x1024x1024)/(1024x1024)
2、使内核参数文件sysctl.conf生效
-- 使内核参数文件sysctl.conf生效,重新加载配置文件 [oracle@langtest ~]$ sysctl -p fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 65892823 kernel.shmmax = 215917602406 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 [oracle@langtest ~]$
⛳ 2.10 用户创建进程数的限制
nproc是操作系统级别对每个用户创建进程数的限制.
-- 设置每个用户创建进程最大数为1024 [root@langtest ~]# echo "* soft nproc 1024 " > /etc/security/limits.d/90-nproc.conf [root@langtest ~]# cat /etc/security/limits.d/90-nproc.conf * soft nproc 1024 [root@langtest ~]#
拓展:
1、
查看所有用户创建的进程数
,使用命令:[root@langtest ~]# ps h -Led -o user | sort | uniq -c | sort -n1 ntp2 postfix7 zabbix12 postgres28 mysql412 oracle4216 root [root@langtest ~]#
2、
查看某个用户创建的进程数
,使用命令: (进程太多,只取了一部分)[root@langtest ~]# ps -o nlwp,pid,lwp,args -u root | sort -n1 547 547 [migration/136]1 548 548 [stopper/136]1 549 549 [ksoftirqd/136]1 550 550 [watchdog/136]1 5509 5509 [edac-poller]1 551 551 [migration/137]1 552 552 [stopper/137]1 553 553 [ksoftirqd/137]1 554 554 [watchdog/137]1 555 555 [migration/138]1 55 55 [migration/13]1 556 556 [stopper/138]1 557 557 [ksoftirqd/138]1 558 558 [watchdog/138]1 559 559 [migration/139]1 5 5 [stopper/0]1 560 560 [stopper/139]1 561 561 [ksoftirqd/139]1 562 562 [watchdog/139]1 563 563 [migration/140]1 564 564 [stopper/140]1 565 565 [ksoftirqd/140]1 56 56 [stopper/13]1 566 566 [watchdog/140]1 567 567 [migration/141]1 568 568 [stopper/141]1 569 569 [ksoftirqd/141]1 570 570 [watchdog/141]1 571 571 [migration/142] [root@langtest ~]#
🔻 三、安装前准备二(创建用户、用户组以及安装目录)
注:在安装任何软件设置的用户和用户密码都要做好记录
⛳ 3.1 创建用户组
-- 创建oinstall用户组—控制软件安装,补丁安装 [oracle@langtest ~]$ /usr/sbin/groupadd -g 600 dba-- 创建dba用户组—控制数据库创建、管理 [oracle@langtest ~]$ /usr/sbin/groupadd -g 601 oinstall-- 创建oper用户组—数据库操作员 [oracle@langtest ~]$ /usr/sbin/groupadd -g 603 oper [oracle@langtest ~]$
拓展:
-- 删除用户组 [oracle@langtest ~]$ groupadd test [oracle@langtest ~]$ useradd -g test -G dba test [oracle@langtest ~]$ groupdel test groupdel: cannot remove the primary group of user ‘test’ [oracle@langtest ~]$-- 如果组里面有用户需要先删除用户或移动用户,才能删除组 [oracle@langtest ~]$ userdel test ###删除用户
⛳ 3.2 创建oracle用户和设置密码
-- 创建oracle用户—编号为600,默认组为dba ,并添加到oinstall组,主要是dba组发生作用 [oracle@langtest ~]$ useradd -u 600 -g dba -G oinstall oracle
-- passwd oracle
----设置oracle用户密码
(Or@cle2024)[oracle@langtest ~]$ passwd oracle Changing password for user oracle. New password: Retype new password: passwd: all authentication tokens updated successfully. [oracle@langtest ~]$
-- 检查创建的oracle用户
[oracle@langtest ~]$ id uid=600(oracle) gid=600(dba) groups=600(dba),601(oinstall) [oracle@langtest ~]$
⛳ 3.3 创建安装目录
-- 创建oracle安装目录 [oracle@langtest ~]$ mkdir -p /u01/app/oracle-- 更改/u01目录用户组 [oracle@langtest ~]$ chown -R oracle:dba /u01-- 更改oracle目录权限 [oracle@langtest ~]$ chmod -R 775 /u01/app/oracle
⛳ 3.4 设置oracle用户环境变量
-- 切换至oracle用户,编辑 profile19c 文件 [oracle@langtest ~]$ vi profile19c-- 增加如下内容# Get the aliases and functions if [ -f ~/.bashrc ]; then. ~/.bashrc fi# User specific environment and startup programsPATH=$PATH:$HOME/.local/bin:$HOME/binexport PATH export ORACLE_SID=orcl export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/19.3/db_1 export TNS_ADMIN=$ORACLE_HOME/network/admin export LD_LIBRARY_PATH=$ORACLE_HOME/lib export PATH=$ORACLE_HOME/bin:/bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin export TEMP=/tmp export TMP=/tmp export LC_ALL=en_US.UTF-8 export LANG=en_US.UTF-8 export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 umask 022 stty erase ^H
使配置文件生效
:-- 使环境变量生效 [oracle@langtest ~]$ source profile19c-- 安装目录 [oracle@langtest ~]$ echo $ORACLE_BASE /u01/app/oracle-- 家目录 [oracle@langtest ~]$ echo $ORACLE_HOME /u01/app/oracle/product/19.3/db_1-- 环境路径 [oracle@langtest ~]$ echo $PATH /u01/app/oracle/product/19.3/db_1/bin:/bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin-- 实例名 [oracle@langtest ~]$ env | grep ORACLE_SID ORACLE_SID=orcl [oracle@langtest ~]$
⛳ 3.5 创建oracle安装文件所在目录
1、创建安装文件目录
-- 创建安装文件所在目录 [root@langtest ~]# mkdir -p /u01/app/oracle/product/19.3/db_1 [root@langtest ~]# ls -lrt /u01/app/oracle/product/19.3/db_1 total 0 [root@langtest ~]#
2、上传oracle19c安装包
将下载好的19c数据库安装包上传到 /u01/app/oracle/product/19.3/db_1目录下
1.官网下载
2.百度网盘提取oracle19c
3、解压oracle19c安装包
[oracle@langtest ~]$ cd /u01/app/oracle/product/19.3/db_1 [oracle@langtest db_1]$ ls -lrt total 2988000 -rw------- 1 oracle dba 3059705302 Jul 9 18:20 LINUX.X64_193000_db_home.zip [oracle@langtest db_1]$ unzip LINUX.X64_193000_db_home.zip
4、更改oracle安装文件所在目录的用户组
[root@langtest ~]# chown -R oracle:dba /u01/app/oracle/product/19.3/db_1 [root@langtest ~]#
5、更改oracle安装文件的操作权限
[oracle@langtest db_1]$ chmod +x runInstaller
🔻 四、安装数据库软件、配置监听、建库
拓展:关于oracle的响应文件
db_install.rsp
----安装响应文件dbca.rsp
----实例响应文件netca. rsp
----监听响应文件
⛳ 4.1 编辑静默安装响应文件
1、以oracle用户进入安装包解压后的 /u01/app/oracle/product/19.3/db_1/install/response/ 目录下
-- 进入到安装响应文件目录下 [oracle@langtest ~]$ cd /u01/app/oracle/product/19.3/db_1/install/response/ [oracle@langtest response]$ ls db_install.rsp [oracle@langtest response]$
2、备份安装响应文件 (修改前养成备份的习惯)
-- 备份安装响应文件 [oracle@langtest response]$ cp db_install.rsp db_install.rsp_bak [oracle@langtest response]$ ls db_install.rsp db_install.rsp_bak [oracle@langtest response]$
3、编辑db_install.rsp文件
-- 编辑 安装响应文件 [oracle@langtest response]$ vi db_install.rsp-- 修改如下内容 oracle.install.option=INSTALL_DB_SWONLY UNIX_GROUP_NAME=dba INVENTORY_LOCATION=/u01/app/oraInventory ORACLE_HOME=/u01/app/oracle/product/19c/db_1 ORACLE_BASE=/u01/app/oracle oracle.install.db.InstallEdition=EE oracle.install.db.OSDBA_GROUP=dba oracle.install.db.OSOPER_GROUP=dba oracle.install.db.OSBACKUPDBA_GROUP=dba oracle.install.db.OSDGDBA_GROUP=dba oracle.install.db.OSKMDBA_GROUP=dba oracle.install.db.OSRACDBA_GROUP=dba oracle.install.db.rootconfig.executeRootScript=false
编辑完,:wq 保存
拓展:关于oracle的安装响应文件db_install.rsp参数详解
🍀1、安装类型:
oracle.install.option=INSTALL_DB_SWONLY
1、 INSTALL_DB_SWONLY ----仅安装数据库软件
2、 INSTALL_DB_AND_CONFIG ----安装和配置数据库
🍀2、安装组:UNIX_GROUP_NAME=dba
🍀3、INVENTORY清单目录:INVENTORY_LOCATION=/u01/app/oraInventory
该目录主要存储数据库的控制文件、数据文件、重做日志文件。
🍀4、oracle产品目录:ORACLE_HOME=/u01/app/oracle/product/19c/db_1
🍀5、oracle基目录:ORACLE_BASE=/u01/app/oracle
🍀6、安装版本:oracle.install.db.InstallEdition=EE
1、EE : Enterprise Edition ----企业版
2、SE2 : Standard Edition ----标准版2
🍀7、要授予SYSDBA权限的操作系统组:oracle.install.db.OSDBA_GROUP=dba
🍀8、SYSOPER权限的操作系统组:oracle.install.db.OPER_GROUP=dba
🍀9、SYSBACKUP权限的操作系统组oracle.install.db.OSBACKUPDBA_GROUP=dba
🍀10、SYSDG权限的操作系统组
oracle.install.db.OSDGDBA_GROUP=dba
🍀11、SYSKM权限的操作系统组
oracle.install.db.OSKMDBA_GROUP=dba
🍀12、SYSRAC权限的操作系统组
oracle.install.db.OSRACDBA_GROUP=dba
🍀13、指定脚本执行模式:true:使用适当的配置方法自动执行根脚本。false:手动执行根脚本
oracle.install.db.rootconfig.executeRootScript=false
🍀14、自动执行脚本的配置方法 root 或者 sudo
oracle.install.db.rootconfig.configMethod=root
🍀15、sudo程序的绝对路径
oracle.install.db.rootconfig.sudoPath=
🍀16、指定sudoers列表中的用户的名称。
#仅当选择SUDO配置方法时适用。
#注意:对于单实例数据库安装,sudo用户名必须是安装数据库的用户的用户名。oracle.install.db.rootconfig.sudoUserName=
🍀17、群集节点名称
oracle.install.db.CLUSTER_NODES=
———
仅安装数据库软件配置如上参数即可,如果选择安装和配置数据库还需配置下面参数
———🍀18、创建的数据库的类型
1.GENERAL_PURPOSE :为通用或事务繁重的应用程序设计的入门数据库
2.DATA_WAREHOUSE :一个为数据仓库应用程序优化的入门数据库oracle.install.db.config.starterdb.type=
🍀19、全局数据库名称
oracle.install.db.config.starterdb.globalDBName=
🍀20、数据库实例名:
oracle.install.db.config.starterdb.SID=
🍀21、指定是否应将数据库配置为容器数据库。
1.true :是2.false 或者空 :否
oracle.install.db.ConfigureAsContainerDB=
🍀22、在容器数据库中指定可插入数据库名称
oracle.install.db.config.PDBName=
🍀23、数据库字符集
oracle.install.db.config.starterdb.characterSet=AL32UTF8
🍀24、是否自动内存管理
1.true
2.false
oracle.install.db.config.starterdb.memoryOption=
🍀25、指定数据库的总内存分配。值(MB)应为 ,至少256 MB,并且不应超过可用的物理内存总量
oracle.install.db.config.starterdb.memoryLimit=
🍀26、是否将示例架构加载到启动器数据库。
1.true
2.false
oracle.install.db.config.starterdb.installExampleSchemas=
🍀27、启动数据库通用密码
oracle.install.db.config.starterdb.password.ALL=
🍀28、启动器数据库的SYS密码
oracle.install.db.config.starterdb.password.SYS=
🍀29、启动器数据库的SYSTEM密码
oracle.install.db.config.starterdb.password.SYSTEM=
🍀30、启动器数据库的DBSNMP密码,仅适用于oracle.install.db.config.starterdb.managementOption=CLOUD_CONTROL
oracle.install.db.config.starterdb.password.DBSNMP=
🍀31、在容器数据库中创建可插入数据库所需的PDBADMIN密码
oracle.install.db.config.starterdb.password.PDBADMIN=
🍀32、管理数据库的管理方法
1.CLOUD_CONTROL:使用Enterprise Manager CLOUD CONTROL和database Express管理数据库
2.DEFAULT:使用默认的database Express选项管理数据库
oracle.install.db.config.starterdb.managementOption=
🍀33、连接到云服务主机IP,仅适用于oracle.install.db.config.starterdb.managementOption=CLOUD_CONTROL
oracle.install.db.config.starterdb.omsHost=
🍀34、连接到云服务主机端口,仅适用于oracle.install.db.config.starterdb.managementOption=CLOUD_CONTROL
oracle.install.db.config.starterdb.omsPort=
🍀35、连接到云服务主机用户名,仅适用于oracle.install.db.config.starterdb.managementOption=CLOUD_CONTROL
oracle.install.db.config.starterdb.emAdminUser=
🍀36、连接到云服务主机密码,仅适用于oracle.install.db.config.starterdb.managementOption=CLOUD_CONTROL
oracle.install.db.config.starterdb.emAdminPassword=
🍀37、是否需要数据库恢复
1.true
2.false
oracle.install.db.config.starterdb.enableRecovery=
🍀38、数据库存储:
1、FILE_SYSTEM_STORAGE ----文件系统
2、ASM_STORAGE -----ASM存储
oracle.install.db.config.starterdb.storageType=FILE_SYSTEM_STORAGE
🍀39、
指定数据库文件位置,该位置是数据文件的目录,控件文件,重做日志。
oracle.install.db.config.starterdb.storageType
#仅当=FILE_SYSTEM_STORAGE时适用
oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=
🍀40、
指定恢复位置
oracle.install.db.config.starterdb.storageType
#仅当=FILE_SYSTEM_STORAGE时适用
oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=
🍀41、
指定要用于存储的现有ASM磁盘组
oracle.install.db.config.starterdb.storageType
#仅当=ASM_STORAGE时适用
oracle.install.db.config.asm.diskGroup=
🍀42、
ASM实例的ASMSNMP用户的密码
#仅当
oracle.install.db.config.starterdb.storageType=ASM_STORAGE时适用
oracle.install.db.config.asm.ASMSNMPPassword=
⛳ 4.2 使用db_install.rsp
响应文件开始安装数据库软件
1、进入oracle解压目录 /u01/app/oracle/product/19.3/db_1
[oracle@langtest ~]$ cd /u01/app/oracle/product/19.3/db_1 [oracle@langtest db_1]$ ls -lrt total 292 -rw-r--r-- 1 oracle dba 852 Aug 18 2015 env.ora -rw-r--r-- 1 oracle dba 2927 Oct 14 2016 schagent.conf -rwxr-x--x 1 oracle dba 1783 Mar 8 2017 runInstaller drwxr-x--- 14 oracle dba 4096 Apr 12 2019 OPatch drwxr-x--- 7 oracle dba 4096 Apr 17 2019 xdk drwxr-xr-x 3 oracle dba 4096 Apr 17 2019 wwg drwxr-xr-x 4 oracle dba 4096 Apr 17 2019 usm drwxr-xr-x 5 oracle dba 4096 Apr 17 2019 suptools drwxr-xr-x 6 oracle dba 4096 Apr 17 2019 srvm drwxr-xr-x 3 oracle dba 4096 Apr 17 2019 sqlj drwxr-xr-x 4 oracle dba 4096 Apr 17 2019 sqldeveloper drwxr-xr-x 3 oracle dba 4096 Apr 17 2019 slax -rw-r----- 1 oracle dba 10 Apr 17 2019 root.sh.old.1 drwxr-xr-x 3 oracle dba 4096 Apr 17 2019 relnotes drwxr-xr-x 4 oracle dba 4096 Apr 17 2019 racg drwxr-xr-x 5 oracle dba 4096 Apr 17 2019 R drwxr-xr-x 5 oracle dba 4096 Apr 17 2019 perl drwxr-xr-x 4 oracle dba 4096 Apr 17 2019 owm drwxr-xr-x 3 oracle dba 4096 Apr 17 2019 oss drwxr-xr-x 6 oracle dba 4096 Apr 17 2019 ord drwxr-xr-x 4 oracle dba 4096 Apr 17 2019 oracore drwxr-xr-x 7 oracle dba 4096 Apr 17 2019 opmn drwxr-xr-x 5 oracle dba 4096 Apr 17 2019 olap drwxr-xr-x 5 oracle dba 4096 Apr 17 2019 nls drwxr-xr-x 4 oracle dba 4096 Apr 17 2019 mgw
2、执行安装
[oracle@langtest oracle]$ ./runInstaller -silent -ignoreInternalDriverError -responseFile /u01/app/oracle/product/19.3/db_1/install/response/db_install.rsp-- 参数说明 -silent 对于无提示模式下的操作, 输入内容可以是一个响应文件, 也可以是命令行变量值对的列表。 -ignorePrereq 忽略运行先决条件检查。 -ignoreSysPrereqs 忽略系统先决条件检查的结果。 -showProgress 用于在控制台上显示安装进度。仅在无提示安装下才支持此选项。 -responseFile <Path> 指定要使用的响应文件和路径。
说明:
1.如果安装的时候报错:/software/oracle/perl/bin/perl: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /software/oracle/perl/bin/perl)
可以参考:https://zhuanlan.zhihu.com/p/529548252 我按照这个步骤操作,再次安装的时候不报这个错误了
2.安装好GLIBC_2.14 后,ssh 登录报如下错误
-- 登录的时候报这个错误 -bash: warning: setlocale: LC_CTYPE: cannot change locale (en_US.UTF-8): No such file or directory -bash: warning: setlocale: LC_COLLATE: cannot change locale (en_US.UTF-8): No such file or directory -bash: warning: setlocale: LC_MESSAGES: cannot change locale (en_US.UTF-8): No such file or directory -bash: warning: setlocale: LC_NUMERIC: cannot change locale (en_US.UTF-8): No such file or directory -bash: warning: setlocale: LC_TIME: cannot change locale (en_US.UTF-8): No such file or directory [oracle@langtest ~]$[oracle@langtest ~]$ locale locale: Cannot set LC_CTYPE to default locale: No such file or directory locale: Cannot set LC_MESSAGES to default locale: No such file or directory locale: Cannot set LC_COLLATE to default locale: No such file or directory造成原因:升级libc后导致中文乱码 解决方法: 1、如果这时你没有删除glibc的编译目录,则进入glibc的编译目录,也就是build目录 [root@langtest build]# make localedata/install-locales 上面命令执行结束,再次执行 locale 这时应该已经正常了 [root@langtest build]# locale2、如果你已经删除了编译glibc的build目录或者不知道build的目录在哪里 · 查看 libc.so.6 软连接指向 [root@langtest ~]# ls -la /lib64/libc.so.6 [root@langtest ~]# /lib64/libc.so.6 -> libc-2.14.so· 查看 locale-archive 归档文件目录 [root@langtest ~]# strings libc-2.14.so | grep locale-archive [root@langtest ~]# /usr/local/glibc-2.14/lib/locale/locale-archive 上面这个目录是在升级libc的时候build的目录· 添加软链接 [root@langtest ~]# ls -la /usr/local/glibc-2.14/lib/locale/locale-archive 发现文件并不存在 那么 [root@langtest ~]# ln -s /usr/lib/locale/locale-archive /usr/local/glibc-2.14/lib/locale/locale-archive重新执行 locale 已经正常了 ! [root@langtest ~]# locale
安装过程:
✅—— 等待安装即可,出现
Successfully Setup Software.
则代表成功——
3、新建窗口,root用户执行
[root@langtest ~]# /u01/app/oracle/product/19.3/db_1/root.sh Check /u01/app/oracle/product/19.3/db_1/install/root_langtest_2024-07-10_09-01-18-037231095.log for the output of root script [root@langtest ~]#
✅—— 至此安装成功,接下来配置监听——
⛳ 4.3 oracle用户登录使用netca.rsp配置监听 (这里建议先创建数据库,然后再配置监听)
1、执行监听响应文件netca.rsp配置监听
[oracle@langtest netca]$ netca /silent /responseFile /u01/app/oracle/product/19.3/db_1/assistants/netca/netca.rsp Parsing command line arguments:Parameter "silent" = trueParameter "responsefile" = /u01/app/oracle/product/19.3/db_1/assistants/netca/netca.rsp Done parsing command line arguments. Oracle Net Services Configuration: Profile configuration complete. Listener started at port:1523 Oracle Net Listener Startup:Running Listener Control: /u01/db/bin/lsnrctl start LISTENERListener Control complete.Listener started successfully. Listener configuration complete. Default local naming configuration complete. Oracle Net Services configuration successful. The exit code is 0[oracle@langtest netca]$
监听配置成功后,会在/u01/app/oracle/product/19.3/db_1/network/admin 中生成listener.ora和sqlnet.ora两个文件。
2、编辑监听文件 vi listener.ora
[oracle@langtest admin]$ vi listener.oraLISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))(ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.164)(PORT = 1521)))) #配置静态监听 SID_LIST_LISTENER=(SID_LIST=(SID_DESC=(GLOBAL_DBNAME=orcl)(ORACLE_HOME=/u01/app/oracle/product/19.3/db_1)(SID_NAME=orcl)))ADR_BASE_LISTENER = /u01/app/oracle
🍁 4.3.1 监听有关命令
1、监听状态查看
[oracle@langtest admin]$ lsnrctl statusLSNRCTL for Linux: Version 19.0.0.0.0 - Production on 10-JUL-2024 09:35:57Copyright (c) 1991, 2019, Oracle. All rights reserved.Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production Start Date 10-JUL-2024 09:34:15 Uptime 0 days 0 hr. 1 min. 41 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /u01/app/oracle/product/19.3/db_1/network/admin/listener.ora Listener Log File /u01/app/oracle/diag/tnslsnr/langtest/listener/alert/log.xml Listening Endpoints Summary...(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.211.129.164)(PORT=1521))) Services Summary... Service "amronlinecd" has 1 instance(s).Instance "amronline", status READY, has 1 handler(s) for this service... Service "amronlinecd_XPT" has 1 instance(s).Instance "amronline", status READY, has 1 handler(s) for this service... Service "fareinlan_cd" has 1 instance(s).Instance "tdpfareinlan", status READY, has 1 handler(s) for this service... Service "fareintl_cd" has 1 instance(s).Instance "tdpfareintl", status READY, has 1 handler(s) for this service... Service "orcl" has 1 instance(s).Instance "orcl", status UNKNOWN, has 1 handler(s) for this service... Service "tdpfareinlanXDB" has 1 instance(s).Instance "tdpfareinlan", status READY, has 1 handler(s) for this service... Service "tdpfareintlXDB" has 1 instance(s).Instance "tdpfareintl", status READY, has 1 handler(s) for this service... The command completed successfully
2、监听停止
[oracle@langtest admin]$ lsnrctl stop
3、监听开启
[oracle@langtest admin]$ lsnrctl start
4、重新启动监听
[oracle@langtest admin]$ lsnrctl reload
⛳ 4.4 oracle用户登录使用实例响应文件dbca.rsp
建库&建立实例
创建实例也可以参考:Linux下创建Oracle数据库的实例_linux创建oracle数据库实例-CSDN博客
dbca.rsp
----实例响应文件
🍁 4.4.1 编辑监听响应文件
1、进入到实例响应文件目录 :/u01/app/oracle/product/19.3/db_1/assistants/dbca
[oracle@langtest ~]$ cd /u01/app/oracle/product/19.3/db_1/assistants/dbca [oracle@langtest dbca]$ ls dbca.rsp doc jlib templates [oracle@langtest dbca]$
2、备份实例响应文件
[oracle@langtest dbca]$ cp dbca.rsp dbca.rsp_bak [oracle@langtest dbca]$ ls dbca.rsp dbca.rsp_bak doc jlib templates [oracle@langtest dbca]$
3、编辑dbca.rsp 文件,修改以下参数,其中字符可以选择AL32UTF8 ,或者ZHS16GBK(这里和安装规划时保持一致)
[oracle@langtest dbca]$ vi dbca.rsp-- 修改如下: gdbName=orcl sid=orcl databaseConfigType=SI templateName=General_Purpose.dbc sysPassword=AFuwd7_5K^sys systemPassword=AFuwd7_5K^system emConfiguration=DBEXPRESS dbsnmpPassword=AFuwd7_5K^dbsnmp datafileDestination=/oradata02/orcl/ recoveryAreaDestination=/amrbak/flash_recovery_area/ORCL/ characterSet=AL32UTF8 nationalCharacterSet=UTF8 listeners=LISTENER initParams=processes=800 totalMemory=6144
🍁 4.4.2 使用oracle用户开始建库&建立实例
1、执行实例响应dbca.rsp文件,建库&建立实例:
[oracle@langtest dbca]$ dbca -silent -createDatabase -responseFile /u01/app/oracle/product/19.3/db_1/assistants/dbca/dbca.rsp
2、
建库&建立实例过程:
报了一个错误,内存不够,加一个参数,取消内存检查:-J-Doracle.assistants.dbca.validate.ConfigurationParams=false
最终创建实例的命令:
[oracle@langtest dbca]$ dbca -silent -createDatabase -J-Doracle.assistants.dbca.validate.ConfigurationParams=false -responseFile /u01/app/oracle/product/19.3/db_1/assistants/dbca/dbca.rsp
✅—— 100%就代表建库成功,接下来即可登录使用oracle数据库——
🔻 五、数据库简单使用
⛳ 5.1 连接数据库
[oracle@langtest ~]$ source /home/oracle/profile19c
[oracle@langtest ~]$ ps -ef |grep smon
oracle 81346 1 0 02:04 ? 00:00:00 ora_smon_orcl
oracle 88485 1 0 02:21 ? 00:00:00 ora_smon_amronline
oracle 91814 85628 0 02:31 pts/1 00:00:00 grep smon
oracle 189476 1 0 2023 ? 00:06:06 ora_smon_tdpfareinlan
oracle 192090 1 0 2023 ? 00:06:00 ora_smon_tdpfareintl
[oracle@langtest ~]$ export ORACLE_SID=orcl
[oracle@langtest ~]$ sqlplus / as sysdbaSQL*Plus: Release 19.0.0.0.0 - Production on Thu Jul 11 02:32:13 2024
Version 19.3.0.0.0Copyright (c) 1982, 2019, Oracle. All rights reserved.Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0SQL> show user;
USER is "SYS"
SQL>
⛳ 5.2 启动或关闭数据库
[oracle@langtest ~]$ source /home/oracle/profile19c
[oracle@langtest ~]$ export ORACLE_SID=orcl
[oracle@langtest ~]$ sqlplus / as sysdbaSQL*Plus: Release 19.0.0.0.0 - Production on Thu Jul 11 02:33:25 2024
Version 19.3.0.0.0Copyright (c) 1982, 2019, Oracle. All rights reserved.Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL>
SQL>
SQL>
SQL> startup
ORACLE instance started.Total System Global Area 4831835720 bytes
Fixed Size 8906312 bytes
Variable Size 889192448 bytes
Database Buffers 3607101440 bytes
Redo Buffers 326635520 bytes
Database mounted.
Database opened.
SQL>
⛳ 5.3 查看监听状态
-- 停监听
[oracle@langtest ~]$ lsnrctl stop-- 启动监听
[oracle@langtest ~]$ lsnrctl start-- 监听状态
[oracle@langtest ~]$ lsnrctl status
⛳ 5.4 查看数据库版本
[oracle@langtest ~]$ sqlplus / as sysdbaSQL*Plus: Release 19.0.0.0.0 - Production on Thu Jul 11 02:45:05 2024
Version 19.3.0.0.0Copyright (c) 1982, 2019, Oracle. All rights reserved.Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0SQL> set linesize 132
SQL> select * from v$version;BANNER
--------------------------------------------------------------------------------
BANNER_FULL
------------------------------------------------------------------------------------------------------------------------------------
BANNER_LEGACY CON_ID
-------------------------------------------------------------------------------- ----------
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production 0SQL>
⛳ 5.5 查看数据实例名、状态、版本
SQL> select instance_name,status,VERSION from v$instance;INSTANCE_NAME STATUS VERSION
---------------- ------------ -----------------
orcl OPEN 19.0.0.0.0SQL>
⛳ 5.6 查看所有用户
-- 检索用户信息。可检索系统用户(SystemUser)、外部用户(ExternalUser)、和内部用户(CommonUser)的所有信息
SQL> select * from dba_users;-- 可以通过该功能来获取全部数据库用户的信息,查出被授权的所有Oracle用户的角色,账户名等信息。
SQL> select * from all_users;-- 描述当前用户下所有用户信息的视图
SQL> select * from user_users;
⛳ 5.7 查看用户、角色的权限(直接赋值给用户或角色的权限)
SQL> select * from dba_sys_privs;
⛳ 5.8 当前用户所拥有的系统权限
SQL> select * from user_sys_privs;
⛳ 5.9 查看角色权限((只能查看登陆用户拥有的角色权限)
sql> select * from role_sys_privs;
⛳ 5.10 查看所有角色
sql> select * from dba_roles;
⛳ 5.11 查看用户对象权限
sql> select * from user_tab_privs;
sql> select * from dba_tab_privs;
sql> select * from all_tab_privs;
⛳ 5.12 查看哪些用户有DBA权限
SQL> select * from dba_role_privs where granted_role='DBA';GRANTEE GRA ADM DEL DEF COM INH
-------------------------------------------------------------------------------------------------------------------------------- --- --- --- --- --- ---
SYS DBA YES NO YES YES YES
SYSTEM DBA NO NO YES YES YESSQL>
⛳ 5.12 创建用户
SQL> create user cmdb identified by "CMDB^Pw8";
⛳ 5.13 授权
GRANT:赋予一个用户,一个组或所有用户访问权限
GRANT 语法:
GRANT privilege [, ...] ON object [, ...] TO { PUBLIC | GROUP group | username }如:
SQL> grant select, insert, update, delete on apm.table178 to cmdb;
⛳ 5.14 回收权限
SQL> revoke select, insert, update, delete on apm.table178 to cmdb;