理论+实验 详解Oracle安装部署过程

it2026-02-25  6

目录

一 Oracle简介1.1 最流行的大型数据库1.2 安装CentOS7操作系统要求1.3 系统及配置要求 二 实验步骤及要求2.1 关闭防火墙自启动,以及相关功能和增强性安全功能,更改用户名2.2 更改用户名以及域名解析2.3 创建xfs文件系统并且进行挂载(不少于15G)2.4 安装软件环境包2.5 内核参数调整2.6 用户环境设置2.7 oracle用户资源限制2.8 oracle安装2.9 用浏览器测试 三 启动数据库3.1 启动Oracle实例(非装载阶段)3.2 由实例装载数据库(装载阶段)3.3 打开数据库(打开阶段) 四 关闭数据库五 启动监听六 关闭监听

一 Oracle简介

1.1 最流行的大型数据库

●由甲骨文公司出品,目前最新版本为Oracle19c(测试版本) ●官方网站:https://www.oracle.com/cn ●采用C/S模式,支持SQL查询语言 ●在稳定性,高性能,安全性等方面优于其他数据库,因此常用于政府及企业

1.2 安装CentOS7操作系统要求

●防火墙的配置选项:禁用 ●SELinux设置:禁用 ●默认安装:软件开发 ●内核:3.10.0.54.0.1.e17.x86_64及以上版本

1.3 系统及配置要求

●物理内存,不少于1GB ●交换分区:物理分区为1-2GB时,设置交换内存为物理内存的1.5-2倍;物理内存为2-16GB时,设置为与物理内存大小相同 ●磁盘空间,不少于15GB ●拥有固定的FQDN名称,安装后不建议再更改

二 实验步骤及要求

2.1 关闭防火墙自启动,以及相关功能和增强性安全功能,更改用户名

[root@localhost ~]# iptables -F [root@localhost ~]# setenforce 0 setenforce: SELinux is disabled

2.2 更改用户名以及域名解析

[root@localhost ~]# hostnamectl set-hostname oracle //更改主机名Oracle [root@localhost ~]# su [root@oracle ~]# vi /etc/hosts 20.0.0.21 oracle [root@oracle ~]# ping oracle PING oracle (20.0.0.21) 56(84) bytes of data. 64 bytes from oracle (20.0.0.21): icmp_seq=1 ttl=64 time=0.066 ms 64 bytes from oracle (20.0.0.21): icmp_seq=2 ttl=64 time=0.029 ms

2.3 创建xfs文件系统并且进行挂载(不少于15G)

##添加一块硬盘 [root@oracle ~]# fdisk -l Disk /dev/sdb: 107.4 GB, 107374182400 bytes, 209715200 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/sda: 322.1 GB, 322122547200 bytes, 629145600 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x000ab94d [root@oracle ~]# fdisk /dev/sdb //创建一个主分区 [root@oracle ~]# fdisk -l Disk /dev/sdb: 107.4 GB, 107374182400 bytes, 209715200 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x63f07f51 Device Boot Start End Blocks Id System /dev/sdb1 2048 209715199 104856576 83 Linux [root@oracle ~]# vi /etc/fstab //orc目录为挂载目录 /dev/sdb1 /orc xfs defaults 0 0 [root@oracle ~]# mkdir /orc [root@oracle ~]# mount -a [root@oracle ~]# df -Th Filesystem Type Size Used Avail Use% Mounted on /dev/sda3 xfs 50G 12G 39G 24% / devtmpfs devtmpfs 3.8G 0 3.8G 0% /dev tmpfs tmpfs 3.9G 0 3.9G 0% /dev/shm tmpfs tmpfs 3.9G 13M 3.8G 1% /run tmpfs tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup /dev/sda5 xfs 242G 37M 241G 1% /home /dev/sda1 xfs 1014M 174M 841M 18% /boot tmpfs tmpfs 781M 12K 781M 1% /run/user/42 tmpfs tmpfs 781M 0 781M 0% /run/user/0 /dev/sdb1 xfs 100G 33M 100G 1% /orc

2.4 安装软件环境包

[root@oracle ~]# yum -y install 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

2.5 内核参数调整

[root@oracle ~]# vi /etc/sysctl.conf fs.aio-max-nr = 1048576 #异步IO请求数目 推荐值是:1048576 其实它等于 1024*1024 也就是 1024K 个 fs.file-max = 6815744 #打开的文件句柄的最大数量,防止文件描述符耗尽的问题 kernel.shmall = 2097152 #共享内存总量 页为单位,内存除以4K所得 kernel.shmmax = 4294967295 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 #SEMMSL: 每个信号集的最大信号数量 SEMMNS:用于控制整个 Linux 系统中信号的最大数 SEMOPM: 内核参数用于控制每个 semop 系统调用可以执行的信号操作的数量 SEMMNI :内核参数用于控制整个 Linux 系统中信号集的最大数量 net.ipv4.ip_local_port_range = 9000 65500 #用于向外连接的端口范围 net.core.rmem_default = 262144 #套接字接收缓冲区大小的缺省值 net.core.rmem_max = 4194304 #套接字接收缓冲区大小的最大值 net.core.wmem_default = 262144 #套接字发送缓冲区大小的缺省值 net.core.wmem_max = 1048576 #套接字发送缓冲区大小的最大值 [root@oracle ~]# sysctl -p //重新加载配置文件 fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 2097152 kernel.shmmax = 4294967295 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 #SEMMSL: net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048576

2.6 用户环境设置

[root@oracle ~]# groupadd oinstall [root@oracle ~]# groupadd dba [root@oracle ~]# useradd -g oinstall -G dba oracle [root@oracle ~]# passwd oracle //密码为‘abc123’ [root@oracle ~]# mkdir -p /orc/app/oracle [root@oracle ~]# chown -R oracle:oinstall /orc/app/ [root@oracle ~]# chmod -R 755 /orc/app/oracle/ [root@oracle ~]# vim /home/oracle/.bash_profile //oracle用户环境配置 umask 022 #反掩码`在这里插入代码片` ORACLE_BASE=/orc/app/oracle ORACLE_HOME=/orc/app/oracle/product/12.2.0/dbhome_1/ ORACLE_SID=orcl NLS_LANG="SIMPLIFIED CHINESE_CHINA".UTF8 PATH=$PATH:$HOME/.local/bin:$HOME/bin:$ORACLE_HOME/bin LANG=zh_CN.UTF-8 #安装时用简体中文 export PATH LANG NLS_LANG ORACLE_BASE ORACLE_HOME ORACLE_SID

2.7 oracle用户资源限制

##使用pam_limits认证模块 [root@oracle ~]# vim /etc/pam.d/login #%PAM-1.0 auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so auth substack system-auth auth include postlogin account required pam_nologin.so account include system-auth password include system-auth #pam_selinux.so close should be the first session rule session required /lib/security/pam_limits.so //添加的 session required pam_limits.so //添加的 session required pam_selinux.so close session required pam_loginuid.so session optional pam_console.so #pam_selinux.so open should only be followed by sessions to be executed in the user context session required pam_selinux.so open session required pam_namespace.so session optional pam_keyinit.so force revoke session include system-auth session include postlogin -session optional pam_ck_connector.so [root@oracle ~]# vim /etc/security/limits.conf #- stack - max stack size (KB) #- maxsyslogins - max number of logins on the system #- priority - the priority to run user process with #- locks - max number of file locks the user can hold #- sigpending - max number of pending signals #- msgqueue - max memory used by POSIX message queues (bytes) #- nice - max nice priority allowed to raise to values: [-20, 19] #- rtprio - max realtime priority # #<domain> <type> <item> <value> # #* soft core 0 #* hard rss 10000 #@student hard nproc 20 #@faculty soft nproc 20 #@faculty hard nproc 50 #ftp hard nproc 0 #@student - maxlogins 4 #End of file oracle soft nproc 2047 #单用户可使用的进程数量 oracle hard nproc 16384 oracle soft nofile 1024 #用户可打开的文件数量 oracle hard nofile 65536 oracle soft stack 10240 #堆栈设置 [root@oracle ~]# vim /etc/profile if [ $USER = "oracle" ] then if [ $SHELL = "/bin/ksh" ] then ulimit -p 16384 #缓冲区大小 ulimit -n 65536 else ulimit -u 16384 -n 65536 #进程数 文件数 fi fi [root@oracle ~]# source /etc/profile

2.8 oracle安装

[root@oracle ~]# mkdir /abc [root@oracle ~]# cd /abc/ [root@oracle abc]# unzip linuxx64_12201_database.zip //把之前传好的包源解压压到/abc中 ##在图形化界面操作 xhost + //以root用户在图形化界面操作 su - oracle //切换oracle用户 cd /abc [oracle@oracle ~]$ export DISPLAY=:0.0 //初始化像素调整 [oracle@oracle ~]$ cd /abc/ [oracle@oracle abc]$ ls database linuxx64_12201_database.zip [oracle@oracle abc]$ cd database/ [oracle@oracle database]$ ls install response rpm runInstaller sshsetup stage welcome.html [oracle@oracle database]$ ./runInstaller //执行安装程序

##切换 root 用户 [root@oracle app]# /orc/app/oraInventory/orainstRoot.sh 更改权限/orc/app/oraInventory. 添加组的读取和写入权限。 删除全局的读取, 写入和执行权限。 更改组名/orc/app/oraInventory 到 oinstall. 脚本的执行已完成。 [root@oracle app]# /orc/app/oracle/product/12.2.0/dbhome_1/root.sh

2.9 用浏览器测试

用浏览器输入:https://Oracle:5500/em 注意:浏览器需要有Flash插件

登录名:sys 密码:abc123 勾选:as sysdba

使用命令行界面用oracle用户登录

[root@oracle ~]# su - oracle Last login: Thu Oct 22 23:16:11 CST 2020 [oracle@oracle ~]$ sqlplus / as sysdba SQL*Plus: Release 12.2.0.1.0 Production on 星期四 10月 22 23:30:01 2020 Copyright (c) 1982, 2016, Oracle. All rights reserved. 连接到: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production SQL> help index (查看命令列表,sql中不区分大写小写) SQL> show user (查看当前用户)

三 启动数据库

3.1 启动Oracle实例(非装载阶段)

● SQL>start nomount;

3.2 由实例装载数据库(装载阶段)

● SQL>Alter Database MOUNT;

3.3 打开数据库(打开阶段)

● SQL>Alter Database OPEN;

四 关闭数据库

SQL>SHUTDOWN [关闭选项]; NORMAL:不允许连接数据库,等待所有用户退出数据库后才关闭,关闭时间可能较慢 IMMEDIATE:不等待所有用户退出,强行回滚当前活动事务,是常用方式 TRANSACTIONAL:当前链接到系统的活动的事务执行完毕。常用来计划关闭数据库 ABORT:需要立即关闭,所以没提交的事务将不回滚,没有任何办法的情况下不得不采用的方式

五 启动监听

●作用:客户端访问Oracle实例

[oracle@Oracle ~]$ lsnrctl LSNRCTL> start TNS-01106: 使用名称LISTENER的监听程序已经启动

六 关闭监听

[oracle@Oracle ~]$ lsnrctl stop 正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=Oracle)(PORT=1521))) 命令执行成功
最新回复(0)