这边通过SecureCRT软件在CentOS7.6上面安装Oracle11G。
安装Oracle比安装MySQL复杂多了,oracle安装的时候需要保证内存足够大。
基本配置要求:
1.1 安装前需进行内存、系统架构以及磁盘的检查
1.2 具体请参考官方文档:https://docs.oracle.com/cd/E11882_01/install.112/e24326/toc.htm#i1011296
安装步骤:
2.1 配置虚拟内存:因为我阿里云的服务器的内存只有2G,不够大,如果内存大于4G配置虚拟内存可以省略。
2.2 虚拟内存显示:# swapon -s
2.3 内存使用情况:# free -m
如果像上面那样没有提示,说明没有配置交换分区(虚拟分区,虚拟内存)
2.4 创建交换分区文件所在的文件夹:# mkdir -p /data1/swapon
2.5 创建交换分区文件:
(if:读取文件,of:写出文件,bs:每次读写字节大小(块的大小),count:块的数量(单位:字节))
(其中这里代表1gb的交换分区,计算规则 = bs*count = 大概1gb )
# dd if=/dev/zero of=/data1/swapon/SwapFile bs=1024 count=1024000
2.6 转换swap格式文件:# mkswap /data1/swapon/SwapFile
2.7 激活文件,并使用该文件:# swapon /data1/swapon/SwapFile
2.8 再次查看虚拟分区的大小:# swapon -s
2.9 为了防止重启出现问题:# vi /etc/fstab (修改这个文件)
在最后添加上:
/data1/swapon/SwapFile swap swap default 0 0
点击x保存退出
(
云服务器不需要,虚拟机需要
3.1 查看主机名称:cat /etc/hosts
3.2 关闭selinux: vi /etc/sysconfig/selinux
其中:将SELINUX和SELINUXTYPE设置为SELINUX=disabled,SELINUXTYPE=targeted
编辑x写入后退出;
3.3 关闭防火墙
# systemctl stop firewalld #停止防火墙
# systemctl disable firewalld #关闭自启动防火墙服务
# systemctl status firewalld #查看防火墙状态
)
4.安装Oracle对应的依赖包:
# yum -y install gcc make binutils gcc-c++ compat-libstdc++-33 elfutils-libelf-devel elfutils-libelf-devel-static elfutils-libelf-devel ksh libaio libaio-devel numactl-devel sysstat unixODBC unixODBC-devel pcre-devel libXp*
5.新建用户以及对应的两个用户组:
# groupadd oinstall # 创建用户组
# groupadd dba # 创建用户组
# useradd -g oinstall -G dba oracle # 建立用户,设置属组
# passwd oracle # 设置oracle用户密码
6. 修改内核参数:
6.1 # vi /etc/sysctl.conf
6.2 添加以下参数:
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 1073741824
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
编辑x写入后退出;
6.3 让参数生效: sysctl -p
7.修改用户的限制文件
7.1 # vi /etc/security/limits.conf
7.2 添加参数:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
编辑x写入后退出;
8.修改登录信息文件:
8.1 # vi /etc/pam.d/login
8.2 添加参数:
session required /lib64/security/pam_limits.so
session required pam_limits.so
编辑x写入后退出;
9.修改配置文件信息:
9.1 # vi /etc/profile
9.2 添加参数:
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
编辑x写入后退出;
10. 创建安装目录,修改文件权限:
# mkdir -p /data0/oracle/product/11.2.0
# mkdir /data0/oracle/oradata
# mkdir /data0/oracle/inventory
# mkdir /data0/oracle/fast_recovery_area
# chown -R oracle:oinstall /data0/oracle
# chmod -R 777 /data0/oracle
11.上传软件到 /data0/oracle 中,并切换到root用户设置对应权限:
# su
# chown -R oracle:oinstall /data0/oracle
# chmod -R 777 /data0/oracle
12.切换oracle,配置oracle用户的环境变量:
12.1
# su - oracle
# vi .bash_profile
12.2 添加参数:
ORACLE_BASE=/data0/oracle
ORACLE_HOME=$ORACLE_BASE/product/11.2.0
ORACLE_SID=orcl
PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH
编辑x写入后退出;
12.3 让命令生效:source .bash_profile
13.编辑静默安装的响应文件:
13.1 切换到root用户进入oracle安装包解压后的目录 /data0/oracle/database/response/下备份db_install.rsp文件:
# su
密码:首字母大写的那个密码
# vi /data0/oracle/database/response/db_install.rsp
13.2 修改以下参数:
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=主机名(iz2zef......)
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/data0/oracle/inventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/data0/oracle/product/11.2.0
ORACLE_BASE=/data0/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=dba
DECLINE_SECURITY_UPDATES=true
编辑x写入后退出;
14.开始安装Oracle11g:
# su - oracle
# cd /data0/oracle/database
# ./runInstaller -silent -ignorePrereq -ignoreSysPrereqs -responseFile /data0/oracle/database/response/db_install.rsp
Oracle在后台静默安装。安装过程中,如果提示[WARNING]不必理会,此时安装程序仍在后台进行,如果出现[FATAL],则安装程序已经停止了。
此时再打开另外一个终端选项卡(另一个窗口),输入提示的会话日志目录:(千万不能掉线,回车就好,这边正常情况下会卡很久,用了交换分区,交换分区的速度比正常的内存速度要慢)
# tail –f /data0/oracle/inventory/logs/installActions2019-08-12_10-31-49PM.log
看到日志文件会持续输出安装信息没有输入异常信息,则表明安装过程正常;直到输出运行脚本提示以及Successfully Setup Software。
按照提示切换root用户运行脚本:
# su
密码:首字母大写的那个
# sh /data0/oracle/inventory/orainstRoot.sh
# sh /data0/oracle/product/11.2.0/root.sh
15.切换回Oracle用户配置监听:
# su - oracle
如果出现 DISPLAY environment variable not set,则需要配置DISPLAY变量,配完之后重新netca:
[oracle@主机名 ~]$ export DISPLAY=localhost:0.0
# netca -silent -responseFile /data0/oracle/database/response/netca.rsp
我目前还没出现过下面这种情况:(没有出现,就不需要操作)
(
如果出现:( 需要切换成root用户安装插件后才可以安装 )
# su
# yum install libXp*
成功运行后,会在/data0/oracle/product/11.2.0/network/admin/ 中生成listener.ora和sqlnet.ora两个文件
)
16.查看监听端口信息:(如果没有端口信息,就凉凉了)
# netstat -tnulp | grep 1521
(
注:如果未找到命令则需要安装netstate
# su
# yum install net-tools
)
17.切换到root用户,建立新库,并且建立实例:
# su
密码:首字母大写的那个
# vi /data0/oracle/database/response/dbca.rsp
修改参数(如果前面有#号需要将#号删除):
GDBNAME = "orcl"
SID = "orcl"
SYSPASSWORD = "oracle"
SYSTEMPASSWORD = "oracle"
SYSMANPASSWORD = "oracle"
DBSNMPPASSWORD = "oracle"
DATAFILEDESTINATION ="/data0/oracle/oradata"
RECOVERYAREADESTINATION="/data0/oracle/fast_recovery_area"
CHARACTERSET = "ZHS16GBK"
TOTALMEMORY = "1638"
编辑x写入后退出;
18.切换到oracle,进行配置
# su - oracle
# dbca -silent -responseFile /data0/oracle/database/response/dbca.rsp (这边速度很慢,要等上一会儿)
19.安装完成,开启实例(每次连接数据库都需要从这里开始操作):
# su - oracle
密码:orcl或者oracle
# ps -ef | grep ora_ | grep -v grep
查看监听状态:
# lsnrctl status
到这边差不多就可以了,然后就可以去创建用户,然后进行登录
1.连接数据库:sqlplus / as sysdba
2.SQL> 键入:create User zcy identified by zcy;
提示我们:用户已创建
3.SQL>(赋权限)键入:grant connect,resource,dba to zcy;
提示我们:成功赋予zcy用户权限
4.记得要在阿里云上面配置oracle数据库的端口号,不然没办法访问
5.然后再本地使用Navicat软件来连接远程数据库
1.打开Navicat,2.编辑连接,3.主机地址为公网IP,4.端口号为oracle数据库的端口号,5.服务名为orcl,6.用户名和密码为刚刚自己创建的
连接成功后,我们就可以创建表和创建序列了。
启动监听:
# lsnrctl start
停止监听:
# lsnrctl stop
登录启动监听服务:
创建用户:# sqlplus / as sysdba
用户名:sys as SYSDBA; 密码:oracle
# startup
注意:如果startup启动被告知已经启动了,可以先输入shutdown immediate;等shutdown结束之后,再输入startup
20.设置自启动Oracle服务:
# vi /etc/oratab
修改数据:
orcl:/data0/oracle/product/11.2.0:Y
编辑x写入后退出;
# su - oracle
# cd $ORACLE_HOME/bin
# vi dbstart
修改数据:
将ORACLE_HOME_LISTNER=$1修改成:
ORACLE_HOME_LISTNER=$ORACLE_HOME
编辑x写入后退出;
# vi dbshut
修改数据:
将ORACLE_HOME_LISTNER=$1修改成:
ORACLE_HOME_LISTNER=$ORACLE_HOME
编辑x写入后退出;
# vi /etc/rc.d/rc.local
添加数据:
su oracle -lc "/data0/oracle/product/11.2.0/bin/lsnrctl start"
su oracle -lc "/data0/oracle/product/11.2.0/bin/dbstart"
编辑x退出
以root用户执行下面的指令:
# chmod +x /etc/rc.d/rc.local
21.修改Oracle端口:
# lsnrctl stop
# cd /data0/oracle/product/11.2.0/network/admin
# vi listener.ora
修改PORT = 1521 成 PORT = 11521
编辑x写入后退出;
# vi tnsnames.ora
修改PORT = 1521 成 PORT = 11521
编辑x退出
# su - oracle
# sqlplus / as sysdba;
# alter system set local_listener="(address=(protocol=tcp)(host=localhost)(port=11521))";
注意:这里的host的值就是listener.or中HOST的值,而port的值就是您需要修改的端口;
# exit;
# lsnrctl start
22.删除安装包:(我是不用删除的,因为我是在本地的oracle文件夹中把两个压缩包都解压到当前文件夹下,它们自动解压到database文件夹中)
# su
# cd /data0/oracle
# rm -rf database
总结:
1.1.要记得主机名称
1.2.防火墙和服务不用关闭,因为阿里云都帮助我们执行好了
1.3.安装插件包
1.4.添加用户以及用户组
1.5.修改内核参数并重启让参数生效
1.6.让新增用户有文件权限(对磁盘以及软件拥有操作权限)
1.7.让新增用户可以做登录操作
1.8.修改linux对于软件的启动配置
1.9.修改文件的拥有者以及文件的权限
1.10.oracle环境变量配置
1.11.静默安装
1.12.安装配置文件
1.13.安装oracle的监听,让远程能够访问
1.14.创建配置系统表空间信息
1.15.创建系统表空间