一、虚拟机图形化界面部署
ps:这个是在虚拟机部署的时候,安装oracle需要图形化界面,部署虚拟机的环境
1.创建虚拟机(典型)
创建虚拟机选择"典型"方式
避免自动安装-选择稍后安装系统.
选择虚拟机中的linux centos7系统
设置虚拟机名字与位置
在电脑中创建出指定文件存储虚拟机,一个文件存储一个。
虚拟机会占用大量内存,选用大内存的硬盘
设置虚拟机最大磁盘空间,搭建架构机器内存最少50g(本次给60g)
最后进入配置,调整内存大小选择系统光盘
本次安装的是oracle,给的内存大点,本次给了4g内存
内存选择好,选择系统光盘镜像
2.部署linux环境
准备部署安装Linux系统 :CentOS-7-x86_64-DVD-2009.iso
对网卡名进行配置 biosdevname=0 net.ifnames=0 #网卡名字 ensxxx -->eth0 eth1 #用于让网卡名字变成ethx 形式eth0 eth1 ,centos 7中默认是ens33
进入系统后后,选择 Istall cento7 ,按下‘tab键’,进入下方命令行模式,输入上方修改网卡配置。
选择语言,选择为英文模式
对网卡进行配置
检查 net.ifnames=0 biosdevname=0 是否配置成功
点击“配置”,进行网卡配置
选择开机自启动网卡
手动配置eth0网卡,点击save进行保存
配置ip地址等信息 ip: 10.0.0.200 子网掩码:24 网关: 10.0.0.2 dns: 223.5.5.5,223.6.6.6 #配置的时候是逗号
最后检查
关闭Kdump
磁盘分区(自动)
选择软件包(安装oracle要选择带gui的图像化界面)
检查时间
开始安装
设置root密码,本次密码为1
配置普通用户cmx,密码为1
3.进入Linux系统
配置认证
以root用户登录系统
配置语言
命令行管理模式
检查IP地址并检查网络连通性
4.基础优化
关闭防火墙和selinux
#firewalld systemctl stop firewalld #关闭防火墙 systemctl disable firewalld #关闭防火墙开启自启动 systemctl status firewalld #selinux sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config #enforcing更改为disabled setenforce 0 #关闭selinux getenforce #结果只要不是enforcing就表示关闭了.
配置yum源
#备份 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup #修改base源 为阿里云 curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo #增加epel源 curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo 运行 yum makecache 生成缓存 #清除缓存 yum clean all #查看yum源 yum repolist
安装常用工具
yum install -y vim tree wget bash-completion bash-completion-extras lrzsz net-tools sysstat iotop iftop htop unzip nc nmap telnet bc psmisc httpd-tools bind-utils nethogs expect ntpdate cowsay sl
优化ssh(远程连接)连接速度
#将这一行注释掉 sed -i '/^GSSAPIAuthentication/s@^@#@g' /etc/ssh/sshd_config #将配置写入文件 cat >>/etc/ssh/sshd_config<<EOF UseDNS no #相当于网络命令的-n选项. GSSAPIAuthentication no #关闭GSS认证. EOF systemctl restart sshd #重启服务 #检查 egrep '^(GSSAPIAuthentication|UseDNS)' /etc/ssh/sshd_config
时间同步
#修改时区(如果不对) timedatectl status #查看时区 time zone部分 timedatectl set-timezone Asia/Shanghai #如果时区不对再修改. #配置定时时间同步. yum install -y ntpdate #安装同步时间命令 crontab -e #编辑定时任务 #1. sync time lidao996 #粘贴进定时任务 */2 * * * * /sbin/ntpdate ntp1.aliyun.com &>/dev/null crontab -l #查看定时任务是否写入
命令行修改颜色
export PS1='[\[\e[34;1m\]\u@\[\e[0m\]\[\e[32;1m\]\H\[\e[0m\]\[\e[31;1m\] \w\[\e[0m\]]\$ ' #临时修改 写入到/etc/profile中,放结尾即可,永久修改 vim /etc/profile #编辑文件 source /etc/profile #重启服务
修改主机名
hostnamectl set-hostname
hosts解析(方便使用主机名进行互相访问)
cat >>/etc/hosts <<EOF 10.0.0.200 oracle EOF
基础环境配置完成,关机拍快照
5.克隆模板主机名和IP修改
1.克隆机器修改IP地址 [root@oracle12g ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 [root@oracle12g ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=none DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=eth0 UUID=e01824b9-311c-4992-b683-7bf9e0e9305d DEVICE=eth0 ONBOOT=yes IPADDR=10.0.0.10 #修改IP地址 PREFIX=24 GATEWAY=10.0.0.2 DNS1=223.5.5.5 DNS2=223.6.6.6 IPV6_PRIVACY=no [root@oracle12g ~]# 2.重启网卡 [root@oracle12g ~]# systemctl restart network 3.检查IP地址 [root@oracle12g ~]# ip a 4.修改主机名 [root@oracle12g ~]# hostnamectl set-hostname cmx (新主机名) [root@oracle12g ~]# hostname cmx
二、网络与存储
1.网络配置
1.克隆机器修改IP地址 [root@oracle12g ~]# oracle12c [root@oracle12g ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=none DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=eth0 UUID=e01824b9-311c-4992-b683-7bf9e0e9305d DEVICE=eth0 ONBOOT=yes IPADDR=10.0.0.10 #修改IP地址 PREFIX=24 GATEWAY=10.0.0.2 DNS1=223.5.5.5 DNS2=223.6.6.6 IPV6_PRIVACY=no [root@oracle12g ~]# 2.重启网卡 [root@oracle12g ~]# systemctl restart network 3.检查IP地址 [root@oracle12g ~]# ip a 4.修改主机名 [root@oracle12g ~]# hostnamectl set-hostname cmx (新主机名) [root@oracle12g ~]# hostname cmx 5.检查网卡 [root@Trac01 named]# cat /etc/resolv.conf #search localdomain #下方的是生产环境的网卡,本虚拟机设置的是223.5.5.5,223.6.6.6 nameserver 10.1.98.14 nameserver 10.1.98.16 6.测试网络是否可用 [root@Trac01 network-scripts]# ping ractst.testdomain.com.cn PING ractst.testdomain.com.cn (10.1.13.211) 56(84) bytes of data. 64 bytes from rac-scan02 (10.1.13.211): icmp_seq=1 ttl=64 time=1.43 ms 64 bytes from rac-scan02 (10.1.13.211): icmp_seq=2 ttl=64 time=0.328 ms [root@Trac01 network-scripts]# host ractst.testdomain.com.cn #域名 ractst.testdomain.com.cn has address 10.1.13.211 ractst.testdomain.com.cn has address 10.1.13.210
2.存储配置(模板机分配好的可跳过)
## 创建应用文件系统 i_appfs=oracle i_appfs_size=20G i_vgname=vg_root i_fs_type=ext4 lvcreate -L $i_appfs_size -n lv_${i_appfs} $i_vgname mkfs.${i_fs_type} /dev/mapper/${i_vgname}-lv_${i_appfs} mkdir /${i_appfs} cat >> /etc/fstab <<! /dev/mapper/${i_vgname}-lv_${i_appfs} /${i_appfs} ${i_fs_type} acl,user_xattr 0 0 ! echo "----" tail -2 /etc/fstab mount -a
三、硬件要求
1.硬件最低配置要求
组件 | 内存需求 |
Oracle Grid Infrastructure installations | 4GB以上 |
Oracle Database installations | 最小1GB,建议2GB以上 |
2.内存大小要求
至少1G的物理内存
[root@oracle12g ~]# free -h total used free shared buff/cache available Mem: 3.8G 778M 1.7G 21M 1.4G 2.8G Swap: 3.9G 0B 3.9G
3.交换空间要求
RAM(内存) | Swap Space(交换分区) |
Between 1 GB and 2 GB | 1.5 times the size of RAM |
Between 2 GB and 16 GB | Equal to the size of RAM |
More than 16 GB | 16 GB |
4.临时空间要求
/tmp 目录的大小
/tmp目录中大约1.0GB(1024MB)的磁盘空间(并且小于2TB的磁盘空间)。
用于数据库软件的大约4.4GB的本地磁盘空间。
大约1.7GB的磁盘空间,用于使用文件系统存储的预配置数据库(可选)。
[root@oracle12g ~]# df -h /tmp Filesystem Size Used Avail Use% Mounted on /dev/mapper/centos_oracle12g-root 38G 4.8G 33G 13% / [root@oracle12g ~]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 2.0G 0 2.0G 0% /dev tmpfs 2.0G 0 2.0G 0% /dev/shm tmpfs 2.0G 13M 2.0G 1% /run tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup /dev/mapper/centos_oracle12g-root 38G 4.8G 33G 13% / /dev/sda1 1014M 172M 843M 17% /boot /dev/mapper/centos_oracle12g-home 19G 33M 19G 1% /home tmpfs 394M 28K 394M 1% /run/user/0 /dev/sr0 4.4G 4.4G 0 100% /run/media/root/CentOS 7 x86_64
四、软件要求
1.版本要求
这个不限制,生产环境用官方正版产品,测试环境随意喽
版本要求:Redhat Linux Enterprise 7.3
2.操作系统内核要求
Red Hat Enterprise Linux 7 Oracle Linux 7 Unbreakable Enterprise Kernel (ueknano) 4.1.12-124.23.4 or later. 查看系统内核版本一般有两种方式: 1、cat /proc/version [root@oracle12g ~]# cat /proc/version Linux version 3.10.0-1160.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) ) #1 SMP Mon Oct 19 16:18:59 UTC 2020 2、uname -a [root@oracle12g ~]# uname -a Linux cmx 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
3.禁用防火墙
ps:基础环境已优化,可跳过(或检查一遍)
systemctl stop firewalld.service systemctl disable firewalld.service systemctl status firewalld.service
4.禁用SELinux
ps:基础环境已优化,可跳过(或检查一遍)
1.先临时将delinxu关闭 setenforce 0 2.在配置文件中更改,实现永久关闭 [root@oracle tmp]# vi /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=disabled 修改为disable # SELINUXTYPE= can take one of three values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted 3.检查 [root@oracle tmp]# getenforce Enforcing #开启 [root@oracle tmp]# getenforce Permissive #关闭
5.配置Hosts文件
修改每个结点的”/etc/hosts”文件加入如下内容: #以实际生产环境为准,自行配置 # hostname for oracle rac node1 [root@cmx ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 10.0.0.100 oracle
6.修改系统内核参数
每一个种类机器内核参数都不一定是一样的,比如,IBM,hp服务器,很可能不一样,参数也和机器的配置有关系的(比如内存多少,CPU核心数等等因素有关),查询出来的参数才是正确的参数。
生产环境内核参数配置 vi /etc/sysctl.conf fs.aio-max-nr = 6553600 kernel.hung_task_timeout_secs = 120 net.ipv4.neigh.default.gc_thresh1 = 20480 net.ipv4.neigh.default.gc_thresh2 = 40960 net.ipv4.neigh.default.gc_thresh3 = 81920 net.ipv6.conf.all.dad_transmits = 0 net.ipv6.conf.default.dad_transmits = 0 net.ipv6.conf.all.accept_dad = 0 net.ipv6.conf.default.accept_dad = 0 fs.file-max = 6815744 kernel.sem = 10000 10240000 10000 1024 kernel.shmmni = 4096 kernel.shmall = 1073741824 kernel.shmmax = 4398046511104 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.core.wmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_max = 1048576 fs.aio-max-nr = 40960000 vm.dirty_ratio=20 vm.dirty_background_ratio=3 vm.dirty_writeback_centisecs=100 vm.dirty_expire_centisecs=500 vm.swappiness=10 vm.nr_hugepages = 153600 vm.min_free_kbytes=524288 net.ipv4.conf.all.rp_filter = 0 kernel.panic_on_oops=1 net.ipv4.ipfrag_high_thresh=16640000 net.ipv4.ipfrag_low_thresh=15600000 net.ipv4.ipfrag_time=60 #让内核参数生效 /sbin/sysctl -p
自己虚拟机内核参数配置 在正式安装Oracle前,需要查出当前的系统内核在使用的参数,这些参数尤其是关于内存的参数基本都是最优的。 1.查看系统的内核参数 [root@oracle ~]# sysctl -a |grep shm kernel.shm_next_id = -1 kernel.shm_rmid_forced = 0 kernel.shmall = 18446744073692774399 #共享内存参数 kernel.shmmax = 18446744073692774399 #共享内存参数最大值 kernel.shmmni = 4096 #共享内存参数最小值 [root@oracle ~]# sysctl -a |grep fs.aio fs.aio-max-nr = 1048576 #io读写参数 fs.aio-nr = 0 [root@oracle ~]# sysctl -a |grep fs.file fs.file-max = 380941 #最大打开文件数 fs.file-nr = 8384 0 380941 fs.xfs.filestream_centisecs = 3000 [root@oracle ~]# sysctl -a |grep sem kernel.sem = 250 32000 32 128 # 以kernel.sem = 250 32000 100 128为例: 250是参数semmsl的值,表示一个信号量集合中能够包含的信号量最大数目。 32000是参数semmns的值,表示系统内可允许的信号量最大数目。 100是参数semopm的值,表示单个semopm()调用在一个信号量集合上可以执行的操作数量。 128是参数semmni的值,表示系统信号量集合总数。 kernel.sem_next_id = -1 [root@oracle ~]# sysctl -a |grep net.core.rmem net.core.rmem_default = 212992 #接收套接字缓冲区大小的默认值(以字节为单位) net.core.rmem_max = 212992 #接收套接字缓冲区大小的最大值(以字节为单位) [root@oracle ~]# sysctl -a |grep net.core.wmem net.core.wmem_default = 212992 #发送套接字缓冲区大小的最大值(以字节为单位) net.core.wmem_max = 212992 #用来限制监听(listen)队列最大数据包的数量,超过这个数量就会导致链接超时或者触发重传机制 [root@oracle ~]# sysctl -a |grep net.ipv4.ip_local_port_range net.ipv4.ip_local_port_range = 32768 60999 #允许本机允许对外的端口映射范围 2.将原本的内核参数备份 cp /etc/sysctl.conf /etc/sysctl.conf.backup 3.根据查询出来的参数,配置本机sysctl.conf文件 vim /etc/sysctl.conf fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 2097152 kernel.shmmax = 2061395968 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 = 1048576 4.执行如下命令使修改的参数生效: /sbin/sysctl -p
内核参数详解
1.kernel.shmmax* 用于定义单个共享内存段的最大值,shmmax设置的应该足够大,能在一个共享内存段下容纳下整个的SGA 官方建议值: 32位linux系统:可取最大值为4GB(4294967296bytes) -1byte,即4294967295。建议值为多于内存的一半,所以如果是32位系统,一般可取值为4294967295。32位系统对SGA大小有限制,所以SGA肯定可以包含在单个共享内存段中。 64位linux系统:可取的最大值为物理内存值-1byte,建议值为多于物理内存的一半,一般取值大于SGA_MAX_SIZE即可,可以取物理内存-1byte。例如,如果为12GB物理内存,可取12*1024*1024*1024-1=12884901887,SGA肯定会包含在单个共享内存段中。 2.kernel.shmall* 用来控制可以使用的共享内存的总页数。该参数大小为物理内存除以pagesize(linux共享内存页大小为4kb) 查看os系统页的大小 [root@oracle tmp]# getconf PAGESIZE 4096 3.kernel.shmmni* shmmni参数是共享内存段的最大数量(注意这个参数不是 shmmin,是shmmni, shmmin 表示内存段最小大小) shmmni缺省值4096,一般肯定是够用了 4.fs.feil-max* fs.file-max参数决定了系统中所允许的文件最大数据,文件句柄设置代表linux系统中可以打开的文件的数量 fs.file-max为512 乘以 processes。 如128个process,则file-max=512*128=65536。 5.fs.aio-max-nr* 限制并发为完成的请求,应该设置避免i/o子系统故障 6.kernel.sem 以kernel.sem = 250 32000 100 128为例: 250是参数semmsl的值,表示一个信号量集合中能够包含的信号量最大数目。 32000是参数semmns的值,表示系统内可允许的信号量最大数目。 100是参数semopm的值,表示单个semopm()调用在一个信号量集合上可以执行的操作数量。 128是参数semmni的值,表示系统信号量集合总数。 7.net.ipv4.ip_local_prot_range 表示应用程序可使用的ipv4端口范围 8.net.core.rmem_default 表示套接字接收缓冲区大小的缺省值 9.net.core.rmem_max 表示套接字接收缓冲区大小的最大值 10.net.core.wmem_default 表示套接字发送缓冲区大小的缺省值 11.net.core.wmem_max 表示套接字发送缓冲区大小的最大值 原文链接:https://blog.csdn.net/Ruishine/article/details/121357983
7.配置时间同步服务
ps:基础环境已优化,可跳过(或检查一遍)
主机组会自动配置好时间同步(Chrony) 检查个各节点时间同步源状态: [root@oracle tmp]# chronyc sourcestats –v 210 Number of sources = 0 Name/IP Address NP NR Span Frequency Freq Skew Offset Std Dev ============================================================================== 如果不使用ntp,使用Oracle自有的CTSS,则需要停掉ntp,两节点都需要运行。 /sbin/service ntpd stop chkconfig ntpd off mv /etc/ntp.conf /etc/ntp.conf.bak chkconfig ntpd --list rm /var/run/ntpd.pid -- 此文件保存了 NTP 后台程序的 pid
8.检查软件包版本,查漏补缺
在公司部署的时候,自己的虚拟机是没网的状态,可以自己用热点让机器联网,然后进行软件包检测
Oracle建议安装操作系统时使用default software packages (RPMs)而不是使用自定义RPM包
1.必须安装的如下软件包(版本与内核有关): binutils-2.17.50.0.6-6.el5 (x86_64) compat-libcap1-1.10-1 (x86_64) compat-libstdc++-33-3.2.3-61 (x86_64) << both ARCH's are required. See next line. compat-libstdc++-33-3.2.3-61 (i386) << both ARCH's are required. See previous line. elfutils-libelf-0.125-3.el5 (x86_64) glibc-2.5-24 (x86_64) << both ARCH's are required. See next line. glibc-2.5-24 (i686) << both ARCH's are required. See previous line. glibc-common-2.5-24 (x86_64) ksh-20060214-1.7 (x86_64) libaio-0.3.106-3.2 (x86_64) << both ARCH's are required. See next line. libaio-0.3.106-3.2 (i386) << both ARCH's are required. See previous line. libgcc-4.1.2-42.el5 (i386) << both ARCH's are required. See next line. libgcc-4.1.2-42.el5 (x86_64) << both ARCH's are required. See previous line. libstdc++-4.1.2-42.el5 (x86_64) << both ARCH's are required. See next line. libstdc++-4.1.2-42.el5 (i386) << both ARCH's are required. See previous line. make-3.81-3.el5 (x86_64) The remaining Install Guide requirements will have to be installed: elfutils-libelf-devel-0.125-3.el5.x86_64.rpm a.) requires elfutils-libelf-devel-static-0.125-3.el5.x86_64.rpm as a prerequisite, as listed below. b.) elfutils-libelf-devel and elfutils-libelf-devel-static each depend upon the other. Therefore, they must be installed together, in one (1) "rpm -ivh" command as follows: rpm -ivh elfutils-libelf-devel-0.125-3.el5.x86_64.rpm elfutils-libelf-devel-static-0.125-3.el5.x86_64.rpm glibc-headers-2.5-24.x86_64.rpm a.) requires kernel-headers-2.6.18-92.el5.x86_64.rpm as a prerequisite, as listed below glibc-devel-2.5-24.x86_64.rpm << both ARCH's are required. See next item. glibc-devel-2.5-24.i386.rpm << both ARCH's are required. See previous item. gcc-4.1.2-42.el5.x86_64.rpm a.) requires libgomp-4.1.2-42.el5.x86_64.rpm as a prerequisite, as listed below libstdc++-devel-4.1.2-42.el5.x86_64.rpm gcc-c++-4.1.2-42.el5.x86_64.rpm libaio-devel-0.3.106-3.2.x86_64.rpm << both ARCH's are required. See next item libaio-devel-0.3.106-3.2.i386.rpm << both ARCH's are required. See previous item. sysstat-7.0.2-1.el5.x86_64.rpm unixODBC-2.2.11-7.1.x86_64.rpm << both ARCH's are required. See next item unixODBC-2.2.11-7.1.i386.rpm << both ARCH's are required. See previous item. unixODBC-devel-2.2.11-7.1.x86_64.rpm << both ARCH's are required. See next item unixODBC-devel-2.2.11-7.1.i386.rpm << both ARCH's are required. See previous item. 2.可使用如下命令查询这些软件的安装情况: rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n' binutils \ compat-libstdc++-33 \ compat-libcap1 \ elfutils-libelf \ elfutils-libelf-devel \ gcc \ gcc-c++ \ glibc \ glibc-common \ glibc-devel \ glibc-headers \ ksh \ libaio \ libaio-devel \ libgcc \ libstdc++ \ libstdc++-devel \ libXp \ make \ sysstat \ unixODBC \ unixODBC-devel 3.或者使用如下命令每个安装 yum install binutils -y yum install compat-libcap1 -y yum install compat-libstdc++-33 -y yum install compat-libstdc++-33.i686 -y yum install gcc -y yum install gcc-c++ -y yum install glibc -y yum install glibc.i686 -y yum install glibc-devel -y yum install glibc-devel.i686 -y yum install ksh -y yum install libgcc -y yum install libgcc.i686 -y yum install libstdc++ -y yum install libstdc++.i686 -y yum install libstdc++-devel -y yum install libstdc++-devel.i686 -y yum install libaio -y yum install libaio.i686 -y yum install libaio-devel -y yum install libaio-devel.i686 -y yum install libXext -y yum install libXext.i686 -y yum install libXtst -y yum install libXtst.i686 -y yum install libX11 -y yum install libX11.i686 -y yum install libXau -y yum install libXau.i686 -y yum install libxcb -y yum install libxcb.i686 -y yum install libXi -y yum install libXi.i686 -y yum install make -y yum install sysstat -y yum install unixODBC -y yum install unixODBC-devel –y #安装xmange图像化界面 yum grouplist yum groupinstall “X Window System” yum groupinstall Desktop yum install xterm -y yum install xclock -y
配置oracleyum源(非生产环境,使用引导文件按照时可自行配置) 1.oracle yum源下载 wget http://public-yum.oracle.com/public-yum-ol7.repo 2.oracle密钥认证 wget http://public-yum.oracle.com/RPM-GPG-KEY-oracle-ol7 -O /etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
9.安全配置
修改/etc/pam.d/login文件,对用户会话强制执行资源限制。 [root@oracle ~]# vim /etc/pam.d/login session required pam_limits.so
10.Limit配置
修改grid及oracle用户的/etc/security/limits.conf文件 vim /etc/security/limits.conf oracle soft nofile 65536 oracle hard nofile 65536 oracle soft nproc 16384 oracle hard nproc 16384 oracle soft stack 32768 oracle hard stack 32768 oracle soft memlock 476354830 oracle hard memlock 476354830 检查 [root@cmx oracle]# tail -f /etc/security/limits.conf # End of file oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 oracle soft stack 10240 oracle hard stack 32768 oracle soft memlock 475008959 oracle hard memlock 475008959
五、安装oracle服务
1.创建用户及组
1.查看组: grep dba /etc/group 2.创建组: groupadd -g 301 oinstall groupadd -g 302 dba 3.检查 [root@oracle12g ~]# tail -f /etc/group postdrop:x:90: postfix:x:89: ntp:x:38: stapusr:x:156: stapsys:x:157: stapdev:x:158: tcpdump:x:72: cmx:x:1000:cmx oinstall:x:301: dba:x:302: 4.创建oracle用户 #-g 组名称 #-G 从属主 #-u 使用者id [root@oracle12g ~]# useradd -g oinstall -G dba -u 301 oracle 5.修改oracle用户密码 #密码为1 echo "oracle:1" |chpasswd 6.切换oracle用户检查 su - oracle #su root 切换回root用户 su - root
2.配置目录
#在root用户下操作 su - root mkdir -p /oracle mkdir -p /oradata chown -R oracle:oinstall /oracle chown -R oracle:oinstall /oradata chmod -R 775 /oracle chmod -R 775 /oradata ll /oracle -d ll /oradata -d
3.配置环境变量
1.设置Oracle环境变量 #切换用户 su - oracle #切换为当前用户家目录 cd #编辑profile文件 vi .bash_profile #SID要进行修改 # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup program export TMP=/tmp export TMPDIR=$TMP export ORACLE_BASE=/oracle export ORACLE_HOME=/oracle/dbsoft/product/12cr2 export ORACLE_SID=dgmaster export ORACLE_TERM=xterm export BASE_PATH=/usr/sbin:$PATH export PATH=$ORACLE_HOME/bin:$BASE_PATH export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"; export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 PATH=$PATH:$HOME/bin export PATH 2.让环境变量生效 source .bash_profile 3.测试 [oracle@dgmaster ~]$ echo $ORACLE_SID dgmaster
4.解压软件
1.切换用户 su - oracle 2.创建目录 [oracle@cmx root]$ mkdir -p /oracle/soft 3.切换目录 [oracle@cmx root]$ cd /oracle/soft 4.上传压缩保 [oracle@cmx soft]$ ls /oracle/soft #上传压缩包 linuxx64_12201_database.zip #可以在windows直接传送到指定IP的服务器上 $ scp linuxx64_12201_database.zip oracle@10.0.0.100:/oracle/soft/ 5.解压压缩包 [oracle@cmx soft]$ unzip linuxx64_12201_database.zip 6.检查 [oracle@cmx soft]$ ll total 3372752 drwxr-xr-x 7 oracle oinstall 117 Jan 27 2017 database -rw-r--r-- 1 root root 3453696911 Jun 14 00:17 linuxx64_12201_database.zip
5.调整显示参数(在虚拟机中操作)
方法一:
用XMANAGER连接服务器,切换到ORACLE用户,设置DISPLAY变量,运行 runInstaller安装程序 #su – oracle $ xhost + $ export DISPLAY=10.0.0.200:0.0
方法二:
6.安装数据库软件
1.切换oracle用户 su oracle #检查当前用户 id 2.切换目录 [oracle@cmx soft]$ cd /oracle/soft/database/ 3.开启安装 [oracle@cmx database]$ ./runInstaller #开始安装需要进行检查,多等待一下
su - root sh /oracle/oraInventory/orainstRoot.sh sh /oracle/dbsoft/product/12cr2/root.sh
7.安装数据库
oracle用户运行 dbca
生产环境这样配置
https://10.0.0.100:5500/em
8.检查监听
检查监听状态 lsnrctl status
若未配置监听,使用下方流程进行配置
natca向导方式创建监听
[oracle@cmx ~]$ sh /oracle/dbsoft/product/12cr2/bin/netca
1.检查监听器的状态 [oracle@cmx ~]$ lsnrctl status 2.查看动态监听 [oracle@cmx /oracle/product/12.2.0/dbhome_1/network/admin]$ cat $ORACLE_HOME/network/admin/listener.ora # listener.ora Network Configuration File: /oracle/product/12.2.0/dbhome_1/network/admin/listener.ora # Generated by Oracle configuration tools. LISTENER1 = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = oracle)(PORT = 1521)) ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = oracle)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) )
六. 数据库配置调整
1配置PDB默认随CDB 自启动
#修改 SQL> ALTER PLUGGABLE DATABASE ORACLE12C(PDB的名字) save state; Pluggable database altered. #检测 select con_name, state from dba_pdb_saved_states; CON_NAME -------------------------------------------------------------------------------- STATE -------------- ORACLE12C OPEN
2.数据库日志文件大小调整,建议修改为 1024M
1.修改会话为cdb容器 SQL> alter session set container=CDB$ROOT; Session altered. 2.查看当前日志文件的大小 SQL> SELECT group#, bytes/1024/1024 AS size_mb FROM v$log; GROUP# SIZE_MB ---------- ---------- 1 200 2 200 3 200 3.查看redo日志文件 SQL> select group#, member from v$logfile; GROUP# MEMBER 3 /oradata/oracle12/redo03.log 2 /oradata/oracle12/redo02.log 1 /oradata/oracle12/redo01.log 4.添加几组redo日志文件,大小为1024m 举例: alter database add logfile group 4(修改) '/oradata/oracle12/redo04(序号修改).log' size 1024m; alter database add logfile group 4 '/oradata/oracle12/redo04.log' size 1024m; alter database add logfile group 5 '/oradata/oracle12/redo05.log' size 1024m; alter database add logfile group 6 '/oradata/oracle12/redo06.log' size 1024m; select * from v$log; alter system switch logfile; alter system checkpoint; 直到 非CURRENT且是 INCATIVE 状态。 5.删除旧的redo日志 #在删除redo日志组时,Inactive状态对应的redo group才能进行alter database drop logfile group操作。 SQL> alter database drop logfile group 1; Database altered. SQL> alter database drop logfile group 2; Database altered. SQL> alter database drop logfile group 3; Database altered.
status 有四种状态:
UNUSED: 新添加的日志组,还没有使用 ;
INACTIVE: 日志组对应的脏块已经从 data buffer 写入到 data file ,可以覆盖 ;
ACTIVE: 日志组对应的脏块还没有从 data buffer 写入到 data file,不能被覆盖 ;
CURRENT: 当前日志组,日志组对应的脏块还没有从 data buffer 写入到 data file,不能被覆盖 ;
THREAD: 线程(通过后台进程 lgwr 启动),在单实例的环境下,thread# 永远是 1 ;
SEQUENCE: 日志序列号。在日志切换时会递增 ;
FIRST_CHANGE#: 在当前日志中记录的首个数据块的 scn。(当事务完成的时候会在数据块上写入一个 scn,代表数据块的变化)。
3.数据库Undo表空间大小调整
1.修改会话为cdb alter session set container=CDB$ROOT; 2.查看undo表空间存放位置 SQL> select file_name,tablespace_name from dba_data_files where tablespace_name = 'UNDOTBS1'; FILE_NAME TABLESPACE_NAME /oradata/oracle12/undotbs01.dbf UNDOTBS1 3.修改undo表空间的大小 alter database datafile '/oradata/oracle12/undotbs01.dbf' resize 10240m;
4.数据库temp表空间大小调整
1.修改会话为pdb SQL> alter session set container=ORACLE12C; 2.查看temp表空间的路径 select name, bytes/1024/1024 as "大小(M)" from v$tempfile order by bytes; NAME 大小(M) /oradata/oracle12/oracle12c/temp01.dbf 64 3.修改temp表空间的大小 SQL> alter database tempfile '/oradata/oracle12/oracle12c/temp01.dbf' resize 10240m; Database altered.
5.文件系统库配置service
1.修改会话为pdb SQL> alter session set container=ORACLE12C; 创建一个服务 SQL> exec dbms_service.create_service('cmx2', 'cmx2'); 启动一个服务 SQL> exec dbms_service.start_service('cmx2');