1)不用图形界面,采用静默方式安装,这种方法的技术难度比较大,Oracle的DBA经常采用这种方法,而普通程序员很难掌握。
2)把已经安装好的Oracle软件、数据库实例和环境参数打包压缩,然后在目标服务上解压恢复,对初学者来说,这是搭建Oracle数据库学习环境的最佳方案,也是本次采用的方案。
安装包下载链接:https://pan.baidu.com/s/1-Fp_ENmbKUyF0-FP5H2vbw
提取码:abcd
注意:一定要下载该Oracle11g包,介于网络上关于Centos系统安装Oracle版本和手法各不同,所以本教程只适用于提供的Oracle11g包
下载完成之后通过Xftp或其他工具放在Centos7系统下的目录,自己记住就行,我本人放在了/usr/local/src目录下了
采用free -m命令查看系统的内存和交换区,如下:
Mem:行显示的是物理内存的大小和使用情况,Swap:行显示的是交换区的大小和使用情况,单位是MB。
安装Oracle的物理内存要求在1024MB以上,交换区的要求如下:
如果没有交换区或交换区太小,先创建交换区,交换区的大小见上表的对应关系,以下步骤将创建一个2048M的交换区。
1)用root用户执行dd命令创建/swap1文件。
dd if=/dev/zero of=/swap1 bs=1024 count=2048000
如下:
2)把/swap1文件设置成交换区。
/sbin/mkswap /swap1
如下:
3)把/swap1交换区设置为有效状态。
/sbin/swapon /swap1
如下:
4)用free -m命令查看交换区,确认已生效。
如下:
5)修改/etc/fstab文件,让CentOS操作系统在每次重启时自动加载/swap1交换区。
在/etc/fstab文件中增加以下内容。
/swap1 swap swap defaults 0 0
如下:
6)重启操作系统,重启后再确认一下交换区/swap1是否已加载。
如果创建的交换区不符合要求,可以用以下步骤删除它。
1)停止正在使用的swap分区。
swapoff /swap1
2)删除swap分区文件。
rm /swap1
3)修改/etc/fstab文件,删除开机自动挂载/swap1的命令。
安装Oracle之前,还需要安装一些CentOS的软件包,用以下命令执行安装(用root用户执行)。
yum install -y binutils* compat-libstdc* elfutils-libelf* gcc* glibc* ksh* libaio* libgcc* libstdc* make* sysstat* libXp* glibc-kernheaders ksh binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel libaio libaio-devel libgcc libstdc++ libstdc++-devel make numactl sysstat libXp unixODBC unixODBC-devel
这些软件包依赖关系比较复杂,不管它,多执行几次以上命令,直到全部的软件包都是最新版本。
/etc/sysctl.conf是操作系统的核心参数配置文件,在文件最后增加以下行
fs.file-max = 6815744 fs.aio-max-nr = 1048576 kernel.shmall = 2097152 kernel.shmmax= 1073741824 kernel.shmmni= 4096 kernel.sem = 250 32000100 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
注意,kernel.shmmax参数的值为操作系统内存的一半,单位是字节。例如,操作系统总内存如果是2048MB,那么kernel.shmmax的值应该是1*1024*1024*1024=1073741824,即kernel.shmmax = 1073741824
其它的参数照抄。
/etc/security/limits.conf是操作系统对用户使用资源的配置文件,在文件最后增加以下行。
oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 oracle hard stack 10240
/etc/pam.d/login是用户认证文件,在文件最后增加以下行。
session required /lib64/security/pam_limits.so
/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
/etc/selinux/config是SELinux配置文件,修改SELINUX的值,禁用它。
SELINUX=disabled
init 6 或 reboot
Oracle的安装用户是oracle,组是dba,oracle用户的根目录是/oracle,不能采用其它目录(注意是小写的字母),如果/oracle目录的空间不够,可以采用软链接的方式,把有/oracle链接到其它有足够空间的目录。
1)创建dba组
# 创建用户组 groupadd dba # 删除用户组 groupdel dba
2)创建oracle用户,组名是dba,用户根目录是/oracle,其他目录不行。
# 创建用户 并设置到dba组中 用户所在目录/oracle useradd -n oracle -g dba -d /oracle # 删除用户 userdel oracle
3)修改oracle用户的密码
# 修改用户密码 无论提示密码强弱,连续输入两次即可 passwd oracle
把Oracle的压缩包文件oracle11gR2.tgz上传到服务器的/usr/local/src目录。
采用su - oracle切换到oracle用户,在根目录下执行解开压缩包,其它目录不行。
# 切换用户 su - oracle # 切换到根目录下 cd / # 在当前目录解压其他目录的压缩包 tar zxvf /usr/local/src/oracle11gR2.tgz # 退出当前用户或切换用户即可 exit # 切换到root用户 su - root
注意,解压缩包后,一定要退出oracle用户,否则oracle用户的环境变量不会生效。
oracle11gR2.tgz解压后,会生成/oracle/.bash_profile文件,包括了Oracle数据库的安装参数,内容如下:
export ORACLE_BASE=/oracle/base export ORACLE_HOME=/oracle/home export ORACLE_SID=snorcl11g export NLS_LANG='Simplified Chinese_China.ZHS16GBK' export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin:.
用oracle用户登录,执行lsnrctl start启动网络监听服务,执行dbstart启动数据库系统。
如图,如果出现乱码部分
将/oracle/.bash_profile文件中字符串编码
# 编辑.bash_profile文件 vim /oracle/.bash_profile # 将# 注释掉以前的字符编码,添加新的 #export NLS_LANG='Simplified Chinese_China.ZHS16GBK' export NLS_LANG='AMERICAN_AMERICA.ZHS16GBK' # 立即生效 source /oracle/.bash_profile
补充一下:
# 停止监听服务 lsnrctl stop # 查看监听状态 lsnrctl status # 关闭数据库实例 dbshut
启动Oracle实例:
-- 进入sqlplus sqlplus /nolog -- 最高管理员登录 conn / as sysdba -- 启动数据库实例 startup -- 关闭数据库实例 SHUTDOWN ABORT
查看当前数据库实例名称:
-- 查看当前实例 任选其一即可 show parameter name; -- 查看当前实例 select name from v$database;
切换数据库实例
-- 切换实例 其中ORACLE_SID为具体的实例名称 sqlplus /@ORACLE_SID as sysdba; -- 示例 sqlplus /@orcl as sysdba;
查看数据库版本
-- 查看版本 select * from v$version;