准备工作
虚拟机版本:VMware Workstation 14.1.3
1.Linux安装包:
CentOS-7-x86_64-Everything-2009
2.Oracle11.2.0.1安装包:
linux.x64_11gR2_database_1of2.zip
linux.x64_11gR2_database_2of2.zip
3.Oracle11.2.0.4升级包:
p13390677_112040_Linux-x86-64_1of7.zip
p13390677_112040_Linux-x86-64_2of7.zip
安装包网上能找到,就不加下载链接了
一.Linux虚拟机安装及配置
1.1 打开虚拟机软件新建虚拟机,选择个性化安装,选择安装包下一步
1.2 选择系统位置F:\VMware\ORACLE11G,为了便于查看新命名虚拟机名称 CentOS_7_64_ORACLE11G,下一步
1.3 处理器数量1,每个处理器的内核数量4,下一步
1.4 分配内存:4GB, 下一步
1.5 网络类型:使用网络地址转换(NAT)然后一直下一步到磁盘容量
1.6 磁盘容量:40G ,选择将虚拟磁盘存储位单个文件 下一步直到完成
1.7 开始安装centos7 选择第二项先检测再安装
1.8 语言选择简体中文,继续
1.9 软件选择默认是‘最小安装’就是最简单的版本,我这个安装包是完整的,这里我选择开发及生成工作站,点开右侧已选环境的附加选项全选(ps:就算暂时用不到先装上备用),开始安装
1.10 设置root用户密码123456, 漫长等待...ps 有点手贱,不该点那么多,浪费时间
1.11 安装完成重启,根据提示配置进入系统
1.12 配置网络访问外部网络:
1)查看信息虚拟机工具菜单栏:编辑——虚拟网络编辑器——VMnet8——NAT设置(记住子网掩码和网关IP)和DHCP设置(记住IP段,虚拟机里面分配的IP要在这个范围)
2)centos7网络配置:左上角 应用程序——系统工具——设置——网络——有线——点齿轮图标——IPV4——手动 配置地址(要在第一步查看的IP范围内),子网掩码(同第一步子网掩码),网关(第一步的网关IP)。DNS配置:114.114.114.114,8.8.8.8 ,然后点应用保存配置 ps:这里有线设置为自动连接,有线状态下外部主机才能访问虚拟机
3)虚拟机重新打开网络才会使配置生效,点网络配置里面的关闭再打开即可
4) 测试:点开火狐浏览器输入百度看是否能打开(本机要能访问)
二.安装ORACLE11G
在虚拟机中操作不方便,经过上面的配置可以使用Xsheell连接到服务器了,下面用这个工具操作
参考教程:https://www.linuxidc.com/Linux/2016-04/130559.htm
2.1 使用root用户登录,创建ORACLE数据库的系统用户及组
[root@localhost ~]# groupadd oinstall #创建组
[root@localhost ~]# groupadd dba #创建组
[root@localhost ~]# useradd -g oinstall -g dba -m oracle #创建用户并指定组
[root@localhost ~]# passwd oracle #设置oracle密码 123456
更改用户 oracle 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# id oracle #查看新建的oracle用户
uid=1001(oracle) gid=1002(dba) 组=1002(dba)
2.2 创建oracle数据库安装目录
[root@localhost ~]# mkdir -p /data/oracle #数据库安装目录
[root@localhost ~]# mkdir -p /data/oraInventory #数据库配置文件目录
[root@localhost ~]# mkdir -p /data/database #安装包解压目录
[root@localhost ~]# cd /data/ #进入data目录
[root@localhost data]# ll # 查看包含目录
总用量 0
drwxr-xr-x. 2 root root 6 3月 3 23:15 database
drwxr-xr-x. 2 root root 6 3月 3 23:14 oracle
drwxr-xr-x. 2 root root 6 3月 3 23:15 oraInventory
[root@localhost data]# chown -R oracle:oinstall /data/oracle/ #目录所有者为oinstall用户组的oracle用户
[root@localhost data]# chown -R oracle:oinstall /data/oraInventory/
[root@localhost data]# chown -R oracle:oinstall /data/database/
2.3修改os系统标识
[root@localhost data]# cd .. #切换目录
[root@localhost /]# vi /etc/redhat-release #打开文件,按i进入编辑模式,将内容改为:redhat-7然后按esc退出编辑模式,输入:wq 保存退出
[root@localhost /]# cat /etc/redhat-release #验证查看
redhat-7
2.4安装oracle数据库依赖包,执行下面命令等待完成安装
yum -y install binutils* compat-libcap1* compat-libstdc++* gcc* gcc-c++* glibc* glibc-devel* ksh* libaio* libaio-devel* libgcc* libstdc++* libstdc++-devel* libXi* libXtst* make* sysstat* elfutils* unixODBC*
2.5 关闭防火墙
[root@localhost /]# systemctl status firewalld.service #查看防火墙状态
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running) since 四 2021-03-04 06:30:47 CST; 6h left
Docs: man:firewalld(1)
Main PID: 1412 (firewalld)
Tasks: 2
CGroup: /system.slice/firewalld.service
└─1412 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid
3月 04 06:30:46 localhost.localdomain systemd[1]: Starting firewalld - dynamic fire....
3月 04 06:30:47 localhost.localdomain systemd[1]: Started firewalld - dynamic firew....
3月 04 06:30:47 localhost.localdomain firewalld[1412]: WARNING: AllowZoneDrifting i....
Hint: Some lines were ellipsized, use -l to show in full.
[root@localhost /]# systemctl stop firewalld.service #关闭防火墙
[root@localhost /]# systemctl status firewalld.service #再次查看防火墙状态
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: inactive (dead) since 三 2021-03-03 23:39:13 CST; 17s ago
Docs: man:firewalld(1)
Process: 1412 ExecStart=/usr/sbin/firewalld --nofork --nopid $FIREWALLD_ARGS (code=exited, status=0/SUCCESS)
Main PID: 1412 (code=exited, status=0/SUCCESS)
3月 04 06:30:46 localhost.localdomain systemd[1]: Starting firewalld - dynamic fire....
3月 04 06:30:47 localhost.localdomain systemd[1]: Started firewalld - dynamic firew....
3月 04 06:30:47 localhost.localdomain firewalld[1412]: WARNING: AllowZoneDrifting i....
3月 03 23:39:12 localhost.localdomain systemd[1]: Stopping firewalld - dynamic fire....
3月 03 23:39:13 localhost.localdomain systemd[1]: Stopped firewalld - dynamic firew....
Hint: Some lines were ellipsized, use -l to show in full.
[root@localhost /]# systemctl disable firewalld.service #禁用防火墙
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
2.6 关闭selinux
[root@localhost /]# 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 #改为disabled
# 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
2.7 修改内核参数(没注释的内容为添加内容)
[root@localhost /]# vi /etc/sysctl.conf
[root@localhost /]# cat /etc/sysctl.conf
# sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
#
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
#
# For more information, see sysctl.conf(5) and sysctl.d(5).
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.rp_filter = 1
fs.file-max = 6815744 #设置最大打开文件数
fs.aio-max-nr = 1048576
kernel.shmall = 2097152 #共享内存的总量,8G内存设置:2097152*4k/1024/1024
kernel.shmmax = 2147483648 #最大共享内存的段大小
kernel.shmmni = 4096 #整个系统共享内存端的最大数
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500 #可使用的IPv4端口范围
net.core.rmem_default = 262144
net.core.rmem_max= 4194304
net.core.wmem_default= 262144
net.core.wmem_max= 1048576
[root@localhost /]# sysctl -p #使配置生效
2.8 对oracle用户设置限制,提高软件运行性能
[root@localhost /]# vi /etc/security/limits.conf #查看按I编辑,:wq保存退出
在文档最后添加内容
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
2.9 配置用户的环境变量
[root@localhost /]# vi /home/oracle/.bash_profile
[root@localhost /]# cat /home/oracle/.bash_profile
# .bash_profile
# 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_BASE=/data/oracle #oracle数据库安装目录
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 #oracle数据库路径
export ORACLE_SID=orcl #oracle启动数据库实例名
export ORACLE_TERM=xterm #xterm窗口模式安装
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH #添加系统环境变量
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib #添加系统环境变量
export LANG=C #防止安装过程出现乱码
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK #设置Oracle客户端字符集
[root@localhost /]# source /home/oracle/.bash_profile #使配置生效
2.10 上传安装包并解压,直接上传到database目录下
cd /data/database/ #切换目录
unzip linux.x64_11gR2_database_1of2.zip #解压
unzip linux.x64_11gR2_database_2of2.zip #解压
chown -R oracle:oinstall /data/database/database/ #授权
2.11 安装数据库,这里重启客户机使用oracle账号登录
2.12 启动安装程序,打开命令行工具,切换到解压文件下,运行runInstaller文件
cd /data/database/database
./runInstaller(避免显示不全,这里不直接运行这个)
PS:直接运行弹窗会显示不全,这里指定JRELOC就可以正常,操作如下
查看jre版本
java -version
执行如下命令(jre_1.8.0取自上面命令查看的信息)
./runInstaller -jreLoc /etc/alternatives/jre_1.8.0
2.13 取消勾选 next
2.14 选第一个 Create and configure a database 创建和配置数据库 next
2.15 Server Class 服务器类 (第一个是桌面类,按需选择)next
2.16 Single instance database installation 单实例数据库 next
2.17 Advanced install 典型安装(主要考虑到选择字符集等选择这个方式) next
2.18 选择产品使用的语言,默认有个English我加个简体中文Simplified Chinese next
2.19 默认企业版(企业,标准,标准一) next
2.20 next
2.21 next
2.22 General Purpose 略...... 通用事务处理 next
2.23 next
2.24 这一个选择第二页最后一个单选项(Choose from the....)下拉框选择:simplified Chinese ZHS16GBK 国标字符集 next
2.25 next
2.26 next
2.27 enable automated backups 启用自动备份,填入oracle用户密码 反正自己建了玩的,加上 next
2.28 User the same password for all accounts 统一设置密码Zwy12#$O 太简单过不去弹窗看不到内容 next
2.29 环境检测,肯定有不通过的,有些版本过高,其实支持,勾上ignore ALL 忽略全部 next
2.30 finish 等待安装直到完成,中途会有些提示,看不到内容,关闭弹窗就能继续安装,不然会一直卡着那个进度
2.31 安装完成测试:
命令窗口输入sqlplus 回车,根据提示输入用户名密码,也可以直接在sqlplus后面输入回车登录查看是否成功
补充说明:
使用主机plsql连接虚拟机oracle
1)配置tns:打开文件 D:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ors
加入内容
VMORCL11G =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.19.128)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
ps:我主机装的是11.2.0.4的数据库,目前虚拟机装的是11.2.0.1的,经过测试可以正常连接,说明这个范围内高版本客户端可以连接低版本数据库
2)虚拟机网络设置:前面已经配置的差不多了,就是遗留个地方,虚拟机中有线连接设置为自动连接,只有这里自动连接了主机上才能访问虚拟机上的数据库
ps:刚开始连不上网上看了有说是NAT模式不能连的,我这个就是NAT连的,这个实践最重要,网上的供参考
---这里先告一段落,第三步升级数据库后面补充