🔻 一、安装前规划
规划项: | (本环境) 描述: |
---|---|
操作系统版本 | 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 文件
java-- root用户登录,编辑 /etc/sudoers 文件 [root@langtest ~]# vi /etc/sudoers -- 末行加入 -- NOPASSWD:ALL 表示切换到时候不需要输入密码 oracle ALL=(ALL) NOPASSWD:ALL -- 然后 :wq! 保存退出
3、查看修改结果
java-- 系统的硬件架构 [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、域名主机名映射
java-- 域名--主机名 映射 [oracle@langtest ~]$ vi /etc/hosts -- 末行增加 10.10.10.164 langtest
2、主机名
java-- 修改主机名 [oracle@langtest ~]$ vi /etc/hostname -- 增加 langtest
⛳ 2.3 关闭selinux
关闭selinux可以提高系统的性能,因为 selinux会对系统进行安全检查,这会消耗一定的系统资源。
java[oracle@langtest ~]$ vi /etc/selinux/config
-- 将
SELINUX= enforcing
修改为SELINUX=disabled
拓展:防火墙有关命令
java-- 关闭防火墙 [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端口开放
java-- 设置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 系统相关配置检查
java-- 查看磁盘占用的空间 [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
java[root@langtest ~]# vi /etc/fstab -- 文本末添加内容 tmpfs /dev/shm tmpfs defaults size=4096M 0 0
java-- 重新挂载/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、创建挂载镜像文件目录
java-- 创建镜像文件挂载目录/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文件
java-- 挂载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、开机自动挂载本地镜像文件
java-- 设置开机自动挂载本地镜像文件 [root@langtest ~]# vi /etc/fstab -- 末行添加内容 /usr/local/src/rhel-server-7.9-x86_64-dvd.iso /mnt/dvd iso9660 loop 0 0
5、查看挂载情况
java[root@langtest ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_root-lv_root 99G 38G 57G 40% / tmpfs 2.0T 28K 2.0T 1% /dev/shm /dev/sda1 190M 33M 147M 19% /boot /dev/mapper/vg_root-lv_oracle 99G 56G 39G 59% /u01 /dev/mapper/vg_root-lv_backup 99G 69G 26G 74% /backup /dev/mapper/vg_root-lv_onlbak 99G 2.4G 91G 3% /onlbak /dev/mapper/vg_root-lv_test 99G 41G 54G 43% /oracle /dev/mapper/vg_faredata-lv_faredata 776G 553G 184G 76% /fare_data /dev/mapper/vg_rptbak-lv_rptbak 739G 343G 358G 49% /rptbak /dev/mapper/vg_oradata-lv_oradata 792G 717G 35G 96% /oradata /dev/mapper/vg_oradata02-lv_oradata02 970G 131G 790G 15% /oradata02 /dev/mapper/vg_amrbak-lv_amrbak 650G 3.6G 613G 1% /amrbak /dev/mapper/vg_postgres-lv_postgres 99G 403M 93G 1% /postgres /usr/local/src/rhel-server-7.9-x86_64-dvd.iso 4.3G 4.3G 0 100% /mnt/dvd [root@langtest ~]#
2.6.2 🍁 备份yum源文件
java[root@langtest ~]# cd /etc/yum.repos.d/ [root@langtest ~]# more redhat.repo
java-- 备份yum源文件 [root@langtest yum.repos.d]# cp redhat.repo redhat.repo-bak
2.6.3🍁 本地yum源配置
1、编辑 /etc/yum.repos.d/redhat.repo 文件
java[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、增加如下内容
java[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缓存
java###清除yum缓存 [root@langtest ~]# yum clean all
2、缓存本地yum源中的软件包信息
java-- 缓存本地yum源中的软件包信息 [root@langtest ~]# yum makecache
3、查询仓库中的所有软件包
java-- 查询仓库中的所有软件包 [root@langtest ~]# yum list
⛳ 2.7 Orange19c有关依赖包检查及安装
1、检查19c相关的依赖包
java-- 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、
安装有关依赖
java-- 安装有关依赖 [root@langtest ~]# yum install gcc* binutils* compat* glibc* ksh* libgcc* libstdc* libaio* make* sysstat* unixODBC* -y
拓展:
--
手动上传安装compat-libstdc++
java[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、有关依赖包再次检查
java-- 有关依赖包再次检查 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 文件
java-- 备份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 文件配置生效
java-- 使 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
java[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
系统内核参数详解,关注该四个:
java1、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生效
java-- 使内核参数文件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是操作系统级别对每个用户创建进程数的限制.
java-- 设置每个用户创建进程最大数为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、
查看所有用户创建的进程数
,使用命令:
java[root@langtest ~]# ps h -Led -o user | sort | uniq -c | sort -n 1 ntp 2 postfix 7 zabbix 12 postgres 28 mysql 412 oracle 4216 root [root@langtest ~]#
2、
查看某个用户创建的进程数
,使用命令: (进程太多,只取了一部分)
java[root@langtest ~]# ps -o nlwp,pid,lwp,args -u root | sort -n 1 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 创建用户组
java-- 创建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 ~]$
拓展:
java-- 删除用户组 [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用户和设置密码
java-- 创建oracle用户---编号为600,默认组为dba ,并添加到oinstall组,主要是dba组发生作用 [oracle@langtest ~]$ useradd -u 600 -g dba -G oinstall oracle
-- passwd oracle
----设置oracle用户密码
(Or@cle2024)
java[oracle@langtest ~]$ passwd oracle Changing password for user oracle. New password: Retype new password: passwd: all authentication tokens updated successfully. [oracle@langtest ~]$
-- 检查创建的oracle用户
java[oracle@langtest ~]$ id uid=600(oracle) gid=600(dba) groups=600(dba),601(oinstall) [oracle@langtest ~]$
⛳ 3.3 创建安装目录
java-- 创建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用户环境变量
java-- 切换至oracle用户,编辑 profile19c 文件 [oracle@langtest ~]$ vi profile19c -- 增加如下内容 # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=$PATH:$HOME/.local/bin:$HOME/bin export 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
使配置文件生效
:
java-- 使环境变量生效 [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、创建安装文件目录
java-- 创建安装文件所在目录 [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目录下
3、解压oracle19c安装包
java[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安装文件所在目录的用户组
java[root@langtest ~]# chown -R oracle:dba /u01/app/oracle/product/19.3/db_1 [root@langtest ~]#
5、更改oracle安装文件的操作权限
java[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/ 目录下
java-- 进入到安装响应文件目录下 [oracle@langtest ~]$ cd /u01/app/oracle/product/19.3/db_1/install/response/ [oracle@langtest response]$ ls db_install.rsp [oracle@langtest response]$
**2、**备份安装响应文件 (修改前养成备份的习惯)
java-- 备份安装响应文件 [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文件
java-- 编辑 安装响应文件 [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
java[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、执行安装
java[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 登录报如下错误
java-- 登录的时候报这个错误 -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]# locale 2、如果你已经删除了编译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用户执行
java[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配置监听
java[oracle@langtest netca]$ netca /silent /responseFile /u01/app/oracle/product/19.3/db_1/assistants/netca/netca.rsp Parsing command line arguments: Parameter "silent" = true Parameter "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 LISTENER Listener 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
java[oracle@langtest admin]$ vi listener.ora LISTENER = (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、监听状态查看
java[oracle@langtest admin]$ lsnrctl status LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 10-JUL-2024 09:35:57 Copyright (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、监听停止
java[oracle@langtest admin]$ lsnrctl stop
3、监听开启
java[oracle@langtest admin]$ lsnrctl start
4、重新启动监听
java[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
java[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、备份实例响应文件
java[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(这里和安装规划时保持一致)
java[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文件,建库&建立实例:
java[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
最终创建实例的命令:
java[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 连接数据库
sql
[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 sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Thu Jul 11 02:32:13 2024
Version 19.3.0.0.0
Copyright (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.0
SQL> show user;
USER is "SYS"
SQL>
⛳ 5.2 启动或关闭数据库
sql
[oracle@langtest ~]$ source /home/oracle/profile19c
[oracle@langtest ~]$ export ORACLE_SID=orcl
[oracle@langtest ~]$ sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Thu Jul 11 02:33:25 2024
Version 19.3.0.0.0
Copyright (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.0
SQL> 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 查看监听状态
java
-- 停监听
[oracle@langtest ~]$ lsnrctl stop
-- 启动监听
[oracle@langtest ~]$ lsnrctl start
-- 监听状态
[oracle@langtest ~]$ lsnrctl status
⛳ 5.4 查看数据库版本
sql
[oracle@langtest ~]$ sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Thu Jul 11 02:45:05 2024
Version 19.3.0.0.0
Copyright (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.0
SQL> 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 0
SQL>
⛳ 5.5 查看数据实例名、状态、版本
sql
SQL> select instance_name,status,VERSION from v$instance;
INSTANCE_NAME STATUS VERSION
---------------- ------------ -----------------
orcl OPEN 19.0.0.0.0
SQL>
⛳ 5.6 查看所有用户
sql
-- 检索用户信息。可检索系统用户(SystemUser)、外部用户(ExternalUser)、和内部用户(CommonUser)的所有信息
SQL> select * from dba_users;
-- 可以通过该功能来获取全部数据库用户的信息,查出被授权的所有Oracle用户的角色,账户名等信息。
SQL> select * from all_users;
-- 描述当前用户下所有用户信息的视图
SQL> select * from user_users;
⛳ 5.7 查看用户、角色的权限(直接赋值给用户或角色的权限)
sql
SQL> select * from dba_sys_privs;
⛳ 5.8 当前用户所拥有的系统权限
sql
SQL> select * from user_sys_privs;
⛳ 5.9 查看角色权限((只能查看登陆用户拥有的角色权限)
sql
sql> select * from role_sys_privs;
⛳ 5.10 查看所有角色
sql
sql> select * from dba_roles;
⛳ 5.11 查看用户对象权限
sql
sql> select * from user_tab_privs;
sql> select * from dba_tab_privs;
sql> select * from all_tab_privs;
⛳ 5.12 查看哪些用户有DBA权限
sql
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 YES
SQL>
⛳ 5.12 创建用户
sql
SQL> create user cmdb identified by "CMDB^Pw8";
⛳ 5.13 授权
sql
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
SQL> revoke select, insert, update, delete on apm.table178 to cmdb;