一, 准备工作
1, 下载 Oracle 安装包: Linux.x64_11gR2_database_1of2.zip 和 Linux.x64_11gR2_database_2of2.zip , 可以下载到本地, 通过 ftp 服务上传到 Linux 系统, 也可以使用 Linux 系统的 wget 命令, 下载文件包;
2, 创建运行 oracle 数据库的系统用户和用户组:
用 Root 账号登录, 运行下面指令, 创建所需要用户和用户组, 分组原因参考网址
- groupadd oinstall #创建用户组 oinstall
- groupadd dba #创建用户组 dba
- useradd -g oinstall -g dba -m oracle #创建 oracle 用户, 并加入到 oinstall 和 dba 用户组
- groups oracle #查询用户组是否授权成功
- passwd oracle #设置用户 oracle 的登陆密码, 不设置密码, 在 CentOS 的图形登陆界面没法登陆
- id oracle #查看新建的 oracle 用户
3, 创建 oracle 数据库安装目录(运行下面指令, 创建账号和分配权限)
- mkdir -p /data/oracle #oracle 数据库安装目录
- mkdir -p /data/oraInventory #oracle 数据库配置文件目录
- mkdir -p /data/database #oracle 数据库软件包解压目录
- cd /data
- ls #创建完毕检查一下
- chown -R oracle:oinstall /data/oracle #设置目录所有者为 oinstall 用户组的 oracle 用户
- chown -R oracle:oinstall /data/oraInventory
- chown -R oracle:oinstall /data/database
4, 设置内核版本
echo RedHat-7> /etc/RedHat-release
5, 安装依赖包
yum install -y binutils compat-gcc* compat-glibc* compat-libcap1 compat-libstd* compat-libstdc++-33 compat-libstdc++-33.i686 compat-libstdc++-33*.i686 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-devel.i686 glibc-devel*.i686 glibc-headers glibc.i686 glibc*.i686 ksh libaio libaio-devel libaio-devel.i686 libaio-devel*.i686 libaio.i686 libaio*.i686 libgcc libgcc.i686 libgcc*.i686 libstdc++ libstdc++-devel libstdc++-devel*.i686 libstdc++.i686 libstdc++*.i686 libXp make numactl sysstat unixODBC unixODBC-devel unixODBC-devel*.i686 unixODBC*.i686
6, 关闭防火墙和 SELINUX
6.1, 配置防火墙, 开启 FTP 服务器需要的端口
CentOS 7.0 默认使用的是 firewall 作为防火墙, 关闭 firewall:
- systemctl stop firewalld.service #停止 firewall
- systemctl disable firewalld.service #禁止 firewall 开机启动
6.2, 关闭 SELINUX
- >
- vi /etc/selinux/config
- #SELINUX=enforcing #注释掉
- #SELINUXTYPE=targeted #注释掉
- SELINUX=disabled #增加
- :wq! #保存退出
- setenforce 0 #使配置立即生效
- >
7, 修改内核参数
- >
- vi /etc/sysctl.conf #红色部分是要添加 sysctl.conf 内容
- 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
- >
8, 对 oracle 用户设置限制, 提高软件运行性能(红色为添加部分)
- vi /etc/security/limits.conf #红色部分要添加到 Limits.conf 内容
- oracle soft nproc 2047
- oracle hard nproc 16384
- oracle soft nofile 1024
- oracle hard nofile 65536
9, 配置用户的环境变量(红色部分为添加代码)
- >
- vi /home/oracle/.bash_profile #红色部分是要追加 bash_profile 内容部分
- 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 客户端字符集, 必须与 Oracle 安装时设置的字符集保持一致
- >
配置完成,:wq! 保存退出, 运行 source /home/oracle/.bash_profile 时上述配置生效
10, 获取安装包文件后解压安装包
获取安装包文件的方式, 可通过 ftp 服务器, 也可通过 wget 下载到指定目录, 解压方式如下
- unzip Linux.x64_11gR2_database_1of2.zip -d /data/ #解压文件 1
- unzip Linux.x64_11gR2_database_2of2.zip -d /data/ #解压文件 2
- chown -R oracle:oinstall /data/database/ #分配安装文件授权 Oracle
- >
二, CentOS 7 安装图形界面
之前公司的服务器都是用的 CentOS 的系统, 需要安装图形界面的时候我会执行以下命令
yum -y groupinstall "X Window System" "Fonts" "Desktop"
这种安装的是应该 kde 桌面, 桌面现在主要有两种, kde 和 gnome.kde 适合客户端, 装了很多应用, 操作起来像 Windows 一样, gnome 适合服务器端, 更精简一些.
但是后来 CentOS 7 使用这个方法安装的时候不行, 所以使用了下面的命令安装
- yum groupinstall "GNOME Desktop" "Graphical Administration Tools"
- ln -sf /lib/systemd/system/runlevel5.target /etc/systemd/system/default.target
- startx
执行完之后就安装成功了.
注: 若所安装的 CentOS 为精简服务器版本, 没有图像化界面的话, 是无法成功安装 oracle 的, oracle 的安装步骤需要在图形化界面下完成. 否则命令行会报如下异常:
- >
- [root@localhost database]# su oracle ./runInstaller
正在启动 Oracle Universal Installer...
检查临时空间: 必须大于 120 MB. 实际为 9383 MB 通过
检查交换空间: 必须大于 150 MB. 实际为 2047 MB 通过
检查监视器: 监视器配置至少必须显示 256 种颜色
>>> 无法使用命令 /usr/bin/xdpyinfo 自动检查显示器颜色. 请检查是否设置了 DISPLAY 变量. 未通过 <<<<未通过某些要求检查. 必须先满足这些 要求,
然后才能继续安装,
是否继续? (y/n) [n]
>
三, Oracle 安装
1,oracle 用户登录系统, 使用命令行跳转到 data/database 目录下, 输入./runInstaller 调出安装页面;
2, 调出安装页面, 点击下一步进行安装, 我选择仅数据库服务安装
像 Windows 安装 Oracle 安装一样, 此处不再重复介绍.
安装完成之后, 通过 netca 打开监听配置页面, 通过执行 dbca 命令, 启动 oracle 实例安装界面, 一个 Oracle 服务可以对应多个实例, 一个 Oracle 数据库对应多个表空间和用户名, 每个用户名又可管理表空间.
安装完成实例之后, 使用 sqlPlus 命令链接数据库的时候, 提示 could not open parameter file "/data/Oracle/product/11.2/db_1/dbs/initorcl.ora", 这个时候需要将刚刚安装的 Oracle 实例配置文件 ($ORACLE_BASE/admin / 数据库名称 / pfile 目录下的 init.ora.012009233838 形式的文件) 拷贝到 / data/Oracle/product/11.2/db_1/dbs 目录下
- [oracle@localhost pfile]$ pwd
- /data/oracle/admin/MLUCDB/pfile
- [oracle@localhost pfile]$ cp init.ora.962016224738 /data/Oracle/product/11.2/db_1/dbs/initorcl.ora
- # 使用 sqlplus 命令登录 Oracle, 重启服务器
- sqlplus /nolog
- conn / as sysdba;
- # 再输入 startup, 回车. 这步是启动 oracle 服务.
- startup
重启服务器之后, 打开 Oracle, 提示 ORA-01034: ORACLE not available ORA-27101
原因在于未启动服务, 操作的方式是:
1, 启动 oracle 监听: cmd 命令行窗口下, 输入 lsnrctl start, 回车即启动监听;
2, 采用 sqlplus /nolog 登录 Oracle 服务, 连接服务 conn /as sysdba, 然后 startup 启动服务
四, 扩展 RedHat 下 Oracle 的安装
1,RedHat 系统版本尽量使用 Desk 版本, 便于 Oracle 的界面安装, Oracle 安装文件传输到 RedHat 服务器, 可以通过 SecureCrt 远程客户端完成数据的传输.
2, 记得配置用户换机下的安装编码, 否则 oracle 安装会出现乱码:
- vi /home/oracle/.bash_profile #追加配置文件
- export LANG=C #防止安装过程出现乱码
- export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK #设置 Oracle 客户端字符集, 必须与 Oracle 安装时设置的字符集保持一致
五, 安装中的问题
1,swap 安装不通过
- This is a prerequisite condition to test whether sufficient total swap space is available on the system. (more details)
- Expected Value
- : 15.64GB (1.6403472E7KB) 16400000
- Actual Value
- : 4.87GB (5111800.0KB)
问题原因是没有 swap 空间不足导致, 需要扩大交换空间
解决:
1, 使用 dd 命令创建一个 swap 分区
2,#dd if=/dev/zero of=/home/swap bs=1024 count=16400000
3, 格式化刚才创建的分区
4,# mkswap /home/swap
5, 再使用 swapon 命令把这个文件分区变成 swap 分区
- ,#swapon /home/swap
- ,(关闭 SWAP 分区的命令为:#swapoff /home/swap)
8, 再用 free -m 查看已经扩容的了 swap 分区.
9, 为了能够让 swap 自动挂载, 需要修改 etc/fstab 文件, 用 vi /etc/fstab
10, 在文件末尾加上 /home/swap swap swap default 0 0
11, 这样就算重启系统, swap 分区也不用手动挂载了
12, 但是我感觉好像我重启了系统 swap 就没有了, 然后我又百度了一下, 要执行下面一段命令 #echo "swapon /home/swap">> /etc/inittab
13, 然后在看 vi 看下 /etc/inittab
14, 最后一行是 swapon /home/swap, 这样就万事大吉了.
参考
CentOS7 安装 Oracle 11gR2 图文详解 https://www.linuxidc.com/Linux/2016-04/130559p3.htm
来源: http://www.linuxidc.com/Linux/2019-05/158741.htm