CentOS 7@VMware Vsphere,分配资源:CPU:4颗,内存:8GB,硬盘空间:200GB
二、软件准备
linux.x64_11gR2_database_1of2.zip
linux.x64_11gR2_database_2of2.zip
SecureCRT / Xshell6 & VNC for Windows (VNC教程后续我会补上)
方法一:用你需要安装ORACLE的虚拟机直接从官网下载Linux版本的安装包
方法二:windows文件------>Linux(要在同一局域网)
命令:scp 用户名@windowsIP地址:/文件路径 Linux下存储路径
方法三:使用NAS传输,将下载好的文件放在NAS中,用centos上自带的浏览器下载
方法一:使用centos7镜像作为本地yum 源
挂载镜像,配置本地yum源
cd /mnt下创建cdrom文件:mkdir cdrom
挂载镜像:mount -t iso9660 /dev/sr0 ./cdrom
在/etc/yum.repos.d修改配置文件
设置network.service(配ip)
vi /etc/sysconfig/network-scripts/ifcfg-ens33将最后一行的ONBOOT的值改为YES
systemctl start network.service
ip add 查询ip,如果没有ip 先执行dhclient -r ens33释放ip 再执行dhclient -v ens33获取ip
使用SecureCRT上传文件到 root 根目录下
点击connect,进行输入,连接成功后点击file=>connect sftp session进入sftp连接界面。
上传文件:cd 服务器某个目录
lcd 本地目录
put xxx
方法二:使用可访问互联网的centos7的服务器安装(无需配置本地yum源)
四、安装oracle 11g
一、准备工作
1、关闭selinux
vim /etc/selinux/config
将selinux设置为disabled
查看selinux状态:getenforce 或者sestatus -v
临时关闭:setenforce 0
永久关闭:vim /etc/selinux/config 设置SELINUX=disabled
2、关闭firewalld 安装iptables(也可以不装iptables)
# systemctl stop firewalld.service
# systemctl disable firewalld.service
# yum -y install iptables-services
# systemctl restart iptables.service
# systemctl enable iptables.service
# iptables -I INPUT -p tcp --dport 1521 -j ACCEPT #(为Oracle开1521端口)
二:创建用户及安装目录,安装依赖包
1、创建用户
[root@oracledb ~] groupadd oinstall
[root@oracledb ~] groupadd dba
[root@oracledb ~] useradd -g oinstall -G dba -m oracle
[root@oracledb ~] passwd oracle
[root@oracledb ~] mkdir -p /ora/oracle
[root@localhost ~] find / -name 'linux.x64_11gR2_database_1of2.zip'
/root/Downloads/linux.x64_11gR2_database_1of2.zip(找到路径)
[root@localhost ~]# cp -r /root/Downloads/* /ora
[root@oracledb ~] unzip -d /ora/ linux.x64_11gR2_database_1of2.zip
[root@oracledb ~] unzip -d /ora/ linux.x64_11gR2_database_2of2.zip
[root@oracledb ~] chown -R oracle:oinstall /ora(看是否创建成功)
[root@oracledb ~] chmod 755 -R /ora(分配755权限给ora)
上面是准备安装到根下ora目录,网上很多说要给777权限,但是个人总感觉777权限过高,测试发现755就足够。
3、安装oracle所需依赖和桌面组件,桌面组件有700多MB
[root@oracledb ~] yum -y install binutils compat compat-libstdc gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat unixODBC unixODBC-devel
[root@oracledb ~] yum -y groupinstall "GNOME Desktop" "Graphical Administration Tools"
三:修改系统内核等设置
1、将服务器名写入到hosts文件,可以测试ping sername 是否返回127.0.0.1
[root@oracledb ~] echo '127.0.0.1 oracledb localhost localhost.localdomain' >> /etc/hosts
[root@oracledb ~] ping -c 3 oracledb
PING oracledb (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.030 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.043 ms
64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.041 ms
--- oracledb ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1999ms
rtt min/avg/max/mdev = 0.030/0.038/0.043/0.005 ms
2、修改内核(/etc/sysctl.conf),增加或修改以下内容
内核参数需要注意,shmall 和shmmax 的值由服务器内存决定。(不过这个参数设置博主我现在也是一知半解,没完全搞明白,查了半天意思如下:)
kernel.shmall :
该参数控制可以使用的共享内存的总页数。Linux共享内存页大小为4KB,共享内存段的大小都是共享内存页大小的整数倍。一个共享内存段的最大大小是16G,那么需要共享内存页数是16GB/4KB=16777216KB/4KB=4194304(页),也就是64Bit系统下16GB物理内存,设置kernel.shmall = 4194304 符合要求。
kernel.shmmax:
是核心参数中最重要的参数之一,用于定义单个共享内存段的最大值。64位linux系统:可取的最大值为物理内存值-1byte,建议值为多于物理内存的一半,例如,如果为16GB物理内存,可取16*1024*1024*1024-1=17179869183。
kernel.shmmni:
该参数是共享内存段的最大数量。shmmni缺省值4096,一般肯定是够用了。
kernel.sem = 250 32000 100 128 的意思是:
250是参数semmsl的值,表示一个信号量集合中能够包含的信号量最大数目。
32000是参数semmns的值,表示系统内可允许的信号量最大数目。
100是参数semopm的值,表示单个semopm()调用在一个信号量集合上可以执行的操作数量。
128是参数semmni的值,表示系统信号量集合总数。
3、以下适用于8G内存左右服务器配置,12G或者16G以上建议调整
[root@oracledb ~] vim /etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4294967295
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、完成后使用命令
[root@oracledb ~] sysctl -p(立即生效)
5、修改认证模块
[root@oracledb ~] vim /etc/security/limits.conf
oracle soft nproc 131072
oracle hard nproc 131072
oracle soft nofile 131072
oracle hard nofile 131072
oracle soft core unlimited
oracle hard core unlimited
oracle soft memlock 50000000
oracle hard memlock 50000000
6、修改用户登录认证
[root@oracledb ~] vim /etc/pam.d/login
session required /lib64/security/pam_limits.so
session required pam_limits.so
7、设置环境变量(ORACLE_HOME 设置为安装目录product下默认目录)
[root@oracledb ~] vim /etc/profile
#oracle
export ORACLE_HOME=/ora/oracle/product/11.2.0/db_1
export ORACLE_SID=orcl #这边是你数据库的实例名,你根据项目需求来写
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
8、修改Oracle用户环境变量
[root@oracledb ~] vim /home/oracle/.bash_profile
export ORACLE_BASE=/ora/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=orcl #这边是你数据库的实例名,你根据项目需求来写
export ORACLE_TERM=xterm
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
在root 下执行xhost + (中间有一个空格别忘了!!)
[root@localhost ~]# xhost +
在oracle用户下执行export DISPLAY
[root@localhost ~]# su - oracle
[oracle@localhost ~]# cd /ora/database
[oracle@localhost database ]# export DISPLAY=192.168.8.214:1.0
[oracle@localhost database ]$ ./runInstaller
如果交换空间不够,用 root 用户登陆添加,命令如下: (为了不出错还是执行一下稳点)
#dd if=/dev/zero of=/home/swap bs=1024 count=1600000
#mkswap /home/swap
#swapon /home/swap
关闭#swapoff /home/swap
以oracle用户登录,开始安装:
su - oracle
cd /ora/database
./runInstaller (runInstaller在/ora/database下,因为刚才已经从root根目录下移了过来了)
四、开始安装:
没有账号不用选
软件存放目录,之前预设好的(需要仔细核对好它自动生成的目录,必须要到含oracle文件夹这一步核对dbhome_1路径是否正确)
检查先决条件,如果有不通过的会显示在上面,因为是实验环境swap空间直接忽略就行(☑️ignore ALl)
如果出现如图情况,先不要着急的点OK,需要用 root 用户执行如图提示的两条命令,执行完后再点OK
软件安装成功
[root@localhost ~]# xhost +
access control disabled, clients can connect from any host
[root@localhost ~]# su - oracle
Last login: Sat May 23 14:12:32 CST 2020 on pts/1
[oracle@localhost ~]$ cd /ora/database
[oracle@localhost database]$ export DISPLAY=192.168.8.214:1.0
[oracle@localhost database]$ netca
[oracle@localhost database]$netca
解决方法:export DISPLAY=自己的ip:0.0 (有时候是1.0)
例:export DISPLAY=10.33.37.185:0.0 (有时候是1.0)
启动完成后进入到窗口页面,选择第一项,配置监听
这里是监听的端口号,默认是1521,如果想更改也可以使用其它端口
创建完成会提示是否需要继续创建下一个监听,这里直接点击取消就行
切换帐户一定要加 "-"
否则会出现: bash:lsnrctl:command not found.错误
Linux/Unix下,启动监听器:
$ lsnrctl start
关闭监听器:
$ lsnrctl stop
查看监听状态:
$ lsnrctl status
监听配好后一定要把iptables关掉
service iptables stop或者iptables -I INPUT -p tcp --dport 1521 -j ACCEPT #
还要修改listener.ora
vi /ora/oracle/product/11.2.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.8.213)(PORT = 1521))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl ) #这边是你数据库的实例名,你根据项目需求来写
(SID_NAME = orcl )#这边是你数据库的实例名,你根据项目需求来写
)
)
①lsnrctl reload:重载监听
②lsnrctl start: 启动监听
③netstat -an |more : 查看所有监听(看监听是否起来了,查看1521端口是否起来了,这个命令很强大)
六、使用dbca创建数据库实例
oracle用户下,打开database目录下
cd /ora/database
export DISPLAY=192.168.8.214:1.0
dbca
创建数据库
CBD容器数据库 #这边是你数据库的实例名,你根据项目需求来写
修改/etc/oratab,增加 oradb:/opt/u01/app/oracle/product/9.2.0.4:Y
Sid:Oracle_home:Y
如果没有,说明 oracle 安装时,oracle 缺乏对文件夹 etc 的权限。
可以用 root 用户登陆,执行$oracle_home/root.sh 和 app/*root.sh 下面有个的文件
OK,大功告成!
如何在机器重启后,启动数据库服务&启动监听?
切换到数据库用户oracle,命令:su -oracle ;使oracle用户配置文件立即生效,命令:source /home/oracle/.bash_profle,启动监听,命令:lsnrctl start ,如下图所示:
四、登录SQLplus,命令:sqlplus /nolog。,以sysdba 登录数据库,命令:conn / as sysdba。启动数据库,命令:startup,如下图所示: