共计 27372 个字符,预计需要花费 69 分钟才能阅读完成。
最近要运维一个项目,准备在家办公,公司无远程作业环境,个人本本不喜欢别人碰,第一次在 CentOS 上安装,本案留以后使用,毕竟不是经常安装。
注:Oracle11gR2 X64 安装
一、环境准备
安装包:
1.VMware-workstation-full-11.1.0-2496824.exe | |
2.CentOS-7-x86_64-DVD-1511.iso | |
3.linux.x64_11gR2_database_1of2.zip | |
linux.x64_11gR2_database_2of2.zip |
以上觉得不是重点,不给下载地址,不描述安装过程,安装完 CentOS 7,截图如下:
第一次安装防坑,没有进行任何操作之前,先在 VMware 中创建该虚拟机快照,后期搞郁闷了,可以回归到该快照版本。特么还是不放心,又把该虚拟机完整克隆一份(强迫症)。
二、安装 Oracle 前准备
1. 创建运行 oracle 数据库的系统用户和用户组
[ | ]$ su root|
Password: | |
[ | ]|
[ | ]|
[ | ]|
[ | ]|
Changing password for user oracle. | |
New password: | |
BAD PASSWORD: The password is shorter than 8 characters | |
Retype new password: | |
passwd: all authentication tokens updated successfully. | |
[ | ]|
uid=1001(oracle) gid=1002(dba) groups=1002(dba) | |
[ | ]
为啥要创建 oinstall 用户组及 dba 组?参考:http://www.oracle.com/technetwork/cn/articles/hunter-rac11gr2-iscsi-2-092412-zhs.html#13
理论上单例按照需要 3 种用户组,实际只建两个 oinstall 和 dba,后面再安装 oracle 数据库的时候把 OSOPER 组也设置是 dba 组。
a.oracle 清单组(一般为 oinstall): | |
OINSTALL 组的成员被视为 Oracle 软件的“所有者”,拥有对 Oracle 中央清单 (oraInventory) 的写入权限。在一个 Linux 系统上首次安装 Oracle 软件时, OUI 会创建 /etc/oraInst.loc 文件。该文件指定 Oracle 清单组的名称(默认为 oinstall)以及 Oracle 中央清单目录的路径。b. 数据库管理员(OSDBA,一般为 dba): | |
OSDBA 组的成员可通过操作系统身份验证使用 SQL 以 SYSDBA 身份连接到一个 Oracle 实例。该组的成员可执行关键的数据库管理任务,如创建数据库、启动和关 闭实例。该组的默认名称为 dba。SYSDBA 系统权限甚至在数据库未打开时也允许访问数据库实例。对此权限的控制完全超出了数据库本身的范围。不要混淆 SYSDBA 系统权限与数据库角色 DBA。DBA 角色不包括 SYSDBA 或 SYSOPER 系统权限。c. 数据库操作员组(OSOPER,一般为 oper): | |
OSOPER 组的成员可通过操作系统身份验证使用 SQL 以 SYSOPER 身份连接到一个 Oracle 实例。这个可选组的成员拥有一组有限的数据库管理权限,如管理和运行备份。 该组的默认名称为 oper。SYSOPER 系统权限甚至在数据库未打开时也允许访问数据库实例。对此权限的控制完全超出了数据库本身的范围。要使用该组,选择 Advanced 安装类型来安装 Oracle 数据库软件。 |
2. 创建 oracle 数据库安装目录
[sonny@localhost ~]$ su root | |
Password: | |
[root@localhost sonny]# mkdir -p /data/oracle #oracle 数据库安装目录 | |
[root@localhost sonny]# mkdir -p /data/oraInventory #oracle 数据库配置文件目录 | |
[root@localhost sonny]# mkdir -p /data/database #oracle 数据库软件包解压目录 | |
[root@localhost sonny]# cd /data | |
[root@localhost data]# ls # 创建完毕检查一下(强迫症) | |
database oracle 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 | |
[root@localhost data]# |
3. 修改 OS 系统标识
oracle 默认不支持 CentOS 系统安装,Oracle Database 11g Release 2 的 OS 要求参考:https://docs.oracle.com/cd/E11882_01/install.112/e47689/pre_install.htm#LADBI1106
我安装是 64 位数据库,On Linux x86-64:Red Hat Enterprise Linux 7(RHEL 7)
另外,CentOS7.0.1511 基于 RHEL7.2 参考:http://www.linuxidc.com/Linux/2015-12/126283.htm
修改文件 /etc/RedHat-release
[sonny@localhost data]$ su root | |
Password: | |
[root@localhost data]# cat /proc/version | |
Linux version 3.10.0-327.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC) ) #1 SMP Thu Nov 19 22:10:57 UTC 2015 | |
[root@localhost data]# cat /etc/redhat-release | |
CentOS Linux release 7.2.1511 (Core) | |
[root@localhost data]# vi /etc/redhat-release | |
[root@localhost data]# cat /etc/redhat-release | |
redhat-7 | |
[root@localhost data]# |
4. 安装 oracle 数据库所需要的软件包
重复一遍,我安装时 Oracle Database 11g Release 2 64 位数据库。
Oracle Database Package Requirements for Linux x86-64 如下:(参考:https://docs.oracle.com/cd/E11882_01/install.112/e47689/pre_install.htm#BABCFJFG)
操作系统:Oracle Linux 7 and Red Hat Enterprise Linux 7 | |
The following packages (or later versions) must be installed: | |
binutils-2.23.52.0.1-12.el7.x86_64 | |
compat-libcap1-1.10-3.el7.x86_64 | |
gcc-4.8.2-3.el7.x86_64 | |
gcc-c++-4.8.2-3.el7.x86_64 | |
glibc-2.17-36.el7.i686 | |
glibc-2.17-36.el7.x86_64 | |
glibc-devel-2.17-36.el7.i686 | |
glibc-devel-2.17-36.el7.x86_64 | |
ksh | |
libaio-0.3.109-9.el7.i686 | |
libaio-0.3.109-9.el7.x86_64 | |
libaio-devel-0.3.109-9.el7.i686 | |
libaio-devel-0.3.109-9.el7.x86_64 | |
libgcc-4.8.2-3.el7.i686 | |
libgcc-4.8.2-3.el7.x86_64 | |
libstdc++-4.8.2-3.el7.i686 | |
libstdc++-4.8.2-3.el7.x86_64 | |
libstdc++-devel-4.8.2-3.el7.i686 | |
libstdc++-devel-4.8.2-3.el7.x86_64 | |
libXi-1.7.2-1.el7.i686 | |
libXi-1.7.2-1.el7.x86_64 | |
libXtst-1.2.2-1.el7.i686 | |
libXtst-1.2.2-1.el7.x86_64 | |
make-3.82-19.el7.x86_64 | |
sysstat-10.1.5-1.el7.x86_64 |
老实人,第一次搞,一个一个的安装, 命令也很简单,反正文档要求高版本也可以:
[sonny@localhost data]$ su root | |
Password: | |
[root@localhost data]# yum install binutils 省略... |
5. 关闭防火墙 CentOS 7.2 默认使用的是 firewall 作为防火墙
[sonny@localhost /]$ su root | |
Password: | |
[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 Thu 2016-04-07 18:54:29 PDT; 2h 20min ago | |
Main PID: 802 (firewalld) | |
CGroup: /system.slice/firewalld.service | |
└─802 /usr/bin/Python -Es /usr/sbin/firewalld --nofork --nopid | |
Apr 07 18:54:25 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon... | |
Apr 07 18:54:29 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon. | |
[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 Thu 2016-04-07 21:15:34 PDT; 9s ago | |
Main PID: 802 (code=exited, status=0/SUCCESS) | |
Apr 07 18:54:25 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon... | |
Apr 07 18:54:29 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon. | |
Apr 07 21:15:33 localhost systemd[1]: Stopping firewalld - dynamic firewall daemon... | |
Apr 07 21:15:34 localhost systemd[1]: Stopped firewalld - dynamic firewall daemon. | |
[root@localhost /]# systemctl disable firewalld.service # 禁止使用防火墙(重启也是禁止的) | |
Removed symlink /etc/systemd/system/dbus-org.Fedoraproject.FirewallD1.service. | |
Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service. | |
[root@localhost /]# |
防火墙先禁用,搞好之后再配置,个人虚拟机,要毛线防火墙~~
6. 关闭 selinux(需重启生效)
[root@localhost /]# vi /etc/selinux/config | |
[root@localhost /]# cat /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 two values: | |
# targeted - Targeted processes are protected, | |
# minimum - Modification of targeted policy. Only selected processes are protected. | |
# mls - Multi Level Security protection. | |
SELINUXTYPE=targeted | |
[root@localhost /]# |
为啥要关闭 selinux?因为 selinux 太高深,非专业人士搞不懂~~
7. 修改内核参数
红色部分为添加代码
[sonny@localhost /]$ su root | |
Password: | |
[root@localhost /]# vi /etc/sysctl.conf | |
[root@localhost /]# cat /etc/sysct.conf | |
cat: /etc/sysct.conf: No such file or directory | |
[root@localhost /]# cat /etc/sysctl.conf | |
# System default settings live in /usr/lib/sysctl.d/00-system.conf. | |
# To override those settings, enter new settings here, or in an /etc/sysctl.d/<name>.conf file | |
# | |
# 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 /]# |
使配置参数生效
[root@localhost /]# sysctl -p | |
net.ipv4.icmp_echo_ignore_broadcasts = 1 | |
net.ipv4.conf.all.rp_filter = 1 | |
sysctl: setting key "fs.file-max": Invalid argument | |
fs.file-max = 6815744 #设置最大打开文件数 | |
fs.aio-max-nr = 1048576 | |
sysctl: setting key "kernel.shmall": Invalid argument | |
kernel.shmall = 2097152 #共享内存的总量,8G 内存设置:2097152*4k/1024/1024 | |
sysctl: setting key "kernel.shmmax": Invalid argument | |
kernel.shmmax = 2147483648 #最大共享内存的段大小 | |
sysctl: setting key "kernel.shmmni": Invalid argument | |
kernel.shmmni = 4096 #整个系统共享内存端的最大数 | |
kernel.sem = 250 32000 100 128 | |
sysctl: setting key "net.ipv4.ip_local_port_range": Invalid argument | |
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 /]# |
8. 对 oracle 用户设置限制,提高软件运行性能(红色为添加部分)
[sonny@localhost /]$ su root | |
Password: | |
[root@localhost /]# vi /etc/security/limits.conf | |
[root@localhost /]# cat /etc/security/limits.conf | |
# /etc/security/limits.conf | |
# | |
#This file sets the resource limits for the users logged in via PAM. | |
#It does not affect resource limits of the system services. | |
# | |
#Also note that configuration files in /etc/security/limits.d directory, | |
#which are read in alphabetical order, override the settings in this | |
#file in case the domain is the same or more specific. | |
#That means for example that setting a limit for wildcard domain here | |
#can be overriden with a wildcard setting in a config file in the | |
#subdirectory, but a user specific setting here can be overriden only | |
#with a user specific setting in the subdirectory. | |
# | |
#Each line describes a limit for a user in the form: | |
# | |
#<domain> <type> <item> <value> | |
# | |
#Where: | |
#<domain> can be: | |
# - a user name | |
# - a group name, with @group syntax | |
# - the wildcard *, for default entry | |
# - the wildcard %, can be also used with %group syntax, | |
# for maxlogin limit | |
# | |
#<type> can have the two values: | |
# - "soft" for enforcing the soft limits | |
# - "hard" for enforcing hard limits | |
# | |
#<item> can be one of the following: | |
# - core - limits the core file size (KB) | |
# - data - max data size (KB) | |
# - fsize - maximum filesize (KB) | |
# - memlock - max locked-in-memory address space (KB) | |
# - nofile - max number of open file descriptors | |
# - rss - max resident set size (KB) | |
# - stack - max stack size (KB) | |
# - cpu - max CPU time (MIN) | |
# - nproc - max number of processes | |
# - as - address space limit (KB) | |
# - maxlogins - max number of logins for this user | |
# - maxsyslogins - max number of logins on the system | |
# - priority - the priority to run user process with | |
# - locks - max number of file locks the user can hold | |
# - sigpending - max number of pending signals | |
# - msgqueue - max memory used by POSIX message queues (bytes) | |
# - nice - max nice priority allowed to raise to values: [-20, 19] | |
# - rtprio - max realtime priority | |
# | |
#<domain> <type> <item> <value> | |
# | |
#* soft core 0 | |
#* hard rss 10000 | |
#@student hard nproc 20 | |
#@faculty soft nproc 20 | |
#@faculty hard nproc 50 | |
#ftp hard nproc 0 | |
#@student - maxlogins 4 | |
oracle soft nproc 2047 | |
oracle hard nproc 16384 | |
oracle soft nofile 1024 | |
oracle hard nofile 65536 | |
# End of file | |
[root@localhost /]# |
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 客户端字符集,必须与 Oracle 安装时设置的字符集保持一致,如:ZHS16GBK,否则出现数据导入导出中文乱码问题 | |
[root@localhost /]# |
使上述配置立即生效:
[oracle@localhost /]$ su root | |
Password: | |
[root@localhost /]# source /home/oracle/.bash_profile | |
[root@localhost /]# |
10. 上述都搞定了,上传安装包我喜欢 xftp,将 oracle 安装包上传到 /usr/local/src
11. 解压安装包
[oracle@localhost /]$ cd /usr/local/src # 进入 /usr/local/src 目录 | |
[oracle@localhost src]$ ls | |
linux.x64_11gR2_database_1of2.zip linux.x64_11gR2_database_2of2.zip | |
[oracle@localhost src]$ unzip linux.x64_11gR2_database_1of2.zip -d /data/database/ # 解压 | |
(省略...) | |
[oracle@localhost src]$ unzip linux.x64_11gR2_database_2of2.zip -d /data/database/ # 解压 | |
(省略...) | |
[oracle@localhost src]$ su root | |
Password: | |
[root@localhost src]# chown -R oracle:oinstall /data/database/database/ | |
[root@localhost src]# |
三、oracle 安装
1. 图形界面登陆 oracle 用户:
2. 启动 oralce 安装,到 /data/database/database/ 目录下,执行 runInstaller
3. 去掉勾,懒得填,个人使用环境不需要自动接收 Oracle 的安全更新。
4. 下一步,只安装数据库软件,个人用不要那些玩意~~
更多详情见请继续阅读下一页的精彩内容 :http://www.linuxidc.com/Linux/2016-04/130559p2.htm
5. 选择单例安装,前面的所有配置均为单例安装。
6. 添加语言
7. 默认安装版本企业版 -Enterprise Edition – 图没了。
8. 确定数据软件的安装路径,自动读取前面 Oracle 环境变量中配置的值。
9. 理论上要创建 Database Operation(OSOPER)Group:oper , 个人用,懒得建,就使用 dba 用户组
10. 安装检查,按照提示信息一个一个解决。
swap 空间不足解决:(要求 2.67G 实际 2G)
[root@localhost oracle]# free -m # 查看当前虚拟内存 | |
total used free shared buff/cache available | |
Mem: 1824 1369 93 10 361 250 | |
Swap: 2048 20 2028 | |
[root@localhost oracle]# dd if=/dev/zero of=/home/swap bs=1024 count=1024000 # 将当前 swap 空间由 2048M 增加到 3048M 新增一个 2014 的 swap 文件 | |
1024000+0 records in | |
1024000+0 records out | |
1048576000 bytes (1.0 GB) copied, 29.4051 s, 35.7 MB/s | |
[root@localhost oracle]# mkswap /home/swap | |
Setting up swapspace version 1, size = 1023996 KiB | |
no label, UUID=5e3d39d7-285e-4c74-b321-1e2b3ffabf83 | |
[root@localhost oracle]# free -m | |
total used free shared buff/cache available | |
Mem: 1824 1275 95 10 454 342 | |
Swap: 2048 141 1907 | |
[root@localhost oracle]# swapon /home/swap # 增加并启用虚拟内容 | |
swapon: /home/swap: insecure permissions 0644, 0600 suggested. | |
[root@localhost oracle]# free -m # 再次查看 | |
total used free shared buff/cache available | |
Mem: 1824 1275 94 10 454 342 | |
Swap: 3048 141 2907 |
11. 一个一个检查 package,在准备阶段中漏掉的,此处再安装,有些系统报错是因为现有的包的版本比检测要高,最后忽略即可。(点击 Check_Again 多检查几次)
12. 准备完毕,fuck“Finish”开始安装。
最近要运维一个项目,准备在家办公,公司无远程作业环境,个人本本不喜欢别人碰,第一次在 CentOS 上安装,本案留以后使用,毕竟不是经常安装。
注:Oracle11gR2 X64 安装
一、环境准备
安装包:
1.VMware-workstation-full-11.1.0-2496824.exe | |
2.CentOS-7-x86_64-DVD-1511.iso | |
3.linux.x64_11gR2_database_1of2.zip | |
linux.x64_11gR2_database_2of2.zip |
以上觉得不是重点,不给下载地址,不描述安装过程,安装完 CentOS 7,截图如下:
第一次安装防坑,没有进行任何操作之前,先在 VMware 中创建该虚拟机快照,后期搞郁闷了,可以回归到该快照版本。特么还是不放心,又把该虚拟机完整克隆一份(强迫症)。
二、安装 Oracle 前准备
1. 创建运行 oracle 数据库的系统用户和用户组
[ | ]$ su root|
Password: | |
[ | ]|
[ | ]|
[ | ]|
[ | ]|
Changing password for user oracle. | |
New password: | |
BAD PASSWORD: The password is shorter than 8 characters | |
Retype new password: | |
passwd: all authentication tokens updated successfully. | |
[ | ]|
uid=1001(oracle) gid=1002(dba) groups=1002(dba) | |
[ | ]
为啥要创建 oinstall 用户组及 dba 组?参考:http://www.oracle.com/technetwork/cn/articles/hunter-rac11gr2-iscsi-2-092412-zhs.html#13
理论上单例按照需要 3 种用户组,实际只建两个 oinstall 和 dba,后面再安装 oracle 数据库的时候把 OSOPER 组也设置是 dba 组。
a.oracle 清单组(一般为 oinstall): | |
OINSTALL 组的成员被视为 Oracle 软件的“所有者”,拥有对 Oracle 中央清单 (oraInventory) 的写入权限。在一个 Linux 系统上首次安装 Oracle 软件时, OUI 会创建 /etc/oraInst.loc 文件。该文件指定 Oracle 清单组的名称(默认为 oinstall)以及 Oracle 中央清单目录的路径。b. 数据库管理员(OSDBA,一般为 dba): | |
OSDBA 组的成员可通过操作系统身份验证使用 SQL 以 SYSDBA 身份连接到一个 Oracle 实例。该组的成员可执行关键的数据库管理任务,如创建数据库、启动和关 闭实例。该组的默认名称为 dba。SYSDBA 系统权限甚至在数据库未打开时也允许访问数据库实例。对此权限的控制完全超出了数据库本身的范围。不要混淆 SYSDBA 系统权限与数据库角色 DBA。DBA 角色不包括 SYSDBA 或 SYSOPER 系统权限。c. 数据库操作员组(OSOPER,一般为 oper): | |
OSOPER 组的成员可通过操作系统身份验证使用 SQL 以 SYSOPER 身份连接到一个 Oracle 实例。这个可选组的成员拥有一组有限的数据库管理权限,如管理和运行备份。 该组的默认名称为 oper。SYSOPER 系统权限甚至在数据库未打开时也允许访问数据库实例。对此权限的控制完全超出了数据库本身的范围。要使用该组,选择 Advanced 安装类型来安装 Oracle 数据库软件。 |
2. 创建 oracle 数据库安装目录
[sonny@localhost ~]$ su root | |
Password: | |
[root@localhost sonny]# mkdir -p /data/oracle #oracle 数据库安装目录 | |
[root@localhost sonny]# mkdir -p /data/oraInventory #oracle 数据库配置文件目录 | |
[root@localhost sonny]# mkdir -p /data/database #oracle 数据库软件包解压目录 | |
[root@localhost sonny]# cd /data | |
[root@localhost data]# ls # 创建完毕检查一下(强迫症) | |
database oracle 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 | |
[root@localhost data]# |
3. 修改 OS 系统标识
oracle 默认不支持 CentOS 系统安装,Oracle Database 11g Release 2 的 OS 要求参考:https://docs.oracle.com/cd/E11882_01/install.112/e47689/pre_install.htm#LADBI1106
我安装是 64 位数据库,On Linux x86-64:Red Hat Enterprise Linux 7(RHEL 7)
另外,CentOS7.0.1511 基于 RHEL7.2 参考:http://www.linuxidc.com/Linux/2015-12/126283.htm
修改文件 /etc/RedHat-release
[sonny@localhost data]$ su root | |
Password: | |
[root@localhost data]# cat /proc/version | |
Linux version 3.10.0-327.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC) ) #1 SMP Thu Nov 19 22:10:57 UTC 2015 | |
[root@localhost data]# cat /etc/redhat-release | |
CentOS Linux release 7.2.1511 (Core) | |
[root@localhost data]# vi /etc/redhat-release | |
[root@localhost data]# cat /etc/redhat-release | |
redhat-7 | |
[root@localhost data]# |
4. 安装 oracle 数据库所需要的软件包
重复一遍,我安装时 Oracle Database 11g Release 2 64 位数据库。
Oracle Database Package Requirements for Linux x86-64 如下:(参考:https://docs.oracle.com/cd/E11882_01/install.112/e47689/pre_install.htm#BABCFJFG)
操作系统:Oracle Linux 7 and Red Hat Enterprise Linux 7 | |
The following packages (or later versions) must be installed: | |
binutils-2.23.52.0.1-12.el7.x86_64 | |
compat-libcap1-1.10-3.el7.x86_64 | |
gcc-4.8.2-3.el7.x86_64 | |
gcc-c++-4.8.2-3.el7.x86_64 | |
glibc-2.17-36.el7.i686 | |
glibc-2.17-36.el7.x86_64 | |
glibc-devel-2.17-36.el7.i686 | |
glibc-devel-2.17-36.el7.x86_64 | |
ksh | |
libaio-0.3.109-9.el7.i686 | |
libaio-0.3.109-9.el7.x86_64 | |
libaio-devel-0.3.109-9.el7.i686 | |
libaio-devel-0.3.109-9.el7.x86_64 | |
libgcc-4.8.2-3.el7.i686 | |
libgcc-4.8.2-3.el7.x86_64 | |
libstdc++-4.8.2-3.el7.i686 | |
libstdc++-4.8.2-3.el7.x86_64 | |
libstdc++-devel-4.8.2-3.el7.i686 | |
libstdc++-devel-4.8.2-3.el7.x86_64 | |
libXi-1.7.2-1.el7.i686 | |
libXi-1.7.2-1.el7.x86_64 | |
libXtst-1.2.2-1.el7.i686 | |
libXtst-1.2.2-1.el7.x86_64 | |
make-3.82-19.el7.x86_64 | |
sysstat-10.1.5-1.el7.x86_64 |
老实人,第一次搞,一个一个的安装, 命令也很简单,反正文档要求高版本也可以:
[sonny@localhost data]$ su root | |
Password: | |
[root@localhost data]# yum install binutils 省略... |
5. 关闭防火墙 CentOS 7.2 默认使用的是 firewall 作为防火墙
[sonny@localhost /]$ su root | |
Password: | |
[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 Thu 2016-04-07 18:54:29 PDT; 2h 20min ago | |
Main PID: 802 (firewalld) | |
CGroup: /system.slice/firewalld.service | |
└─802 /usr/bin/Python -Es /usr/sbin/firewalld --nofork --nopid | |
Apr 07 18:54:25 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon... | |
Apr 07 18:54:29 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon. | |
[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 Thu 2016-04-07 21:15:34 PDT; 9s ago | |
Main PID: 802 (code=exited, status=0/SUCCESS) | |
Apr 07 18:54:25 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon... | |
Apr 07 18:54:29 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon. | |
Apr 07 21:15:33 localhost systemd[1]: Stopping firewalld - dynamic firewall daemon... | |
Apr 07 21:15:34 localhost systemd[1]: Stopped firewalld - dynamic firewall daemon. | |
[root@localhost /]# systemctl disable firewalld.service # 禁止使用防火墙(重启也是禁止的) | |
Removed symlink /etc/systemd/system/dbus-org.Fedoraproject.FirewallD1.service. | |
Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service. | |
[root@localhost /]# |
防火墙先禁用,搞好之后再配置,个人虚拟机,要毛线防火墙~~
6. 关闭 selinux(需重启生效)
[root@localhost /]# vi /etc/selinux/config | |
[root@localhost /]# cat /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 two values: | |
# targeted - Targeted processes are protected, | |
# minimum - Modification of targeted policy. Only selected processes are protected. | |
# mls - Multi Level Security protection. | |
SELINUXTYPE=targeted | |
[root@localhost /]# |
为啥要关闭 selinux?因为 selinux 太高深,非专业人士搞不懂~~
7. 修改内核参数
红色部分为添加代码
[sonny@localhost /]$ su root | |
Password: | |
[root@localhost /]# vi /etc/sysctl.conf | |
[root@localhost /]# cat /etc/sysct.conf | |
cat: /etc/sysct.conf: No such file or directory | |
[root@localhost /]# cat /etc/sysctl.conf | |
# System default settings live in /usr/lib/sysctl.d/00-system.conf. | |
# To override those settings, enter new settings here, or in an /etc/sysctl.d/<name>.conf file | |
# | |
# 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 /]# |
使配置参数生效
[root@localhost /]# sysctl -p | |
net.ipv4.icmp_echo_ignore_broadcasts = 1 | |
net.ipv4.conf.all.rp_filter = 1 | |
sysctl: setting key "fs.file-max": Invalid argument | |
fs.file-max = 6815744 #设置最大打开文件数 | |
fs.aio-max-nr = 1048576 | |
sysctl: setting key "kernel.shmall": Invalid argument | |
kernel.shmall = 2097152 #共享内存的总量,8G 内存设置:2097152*4k/1024/1024 | |
sysctl: setting key "kernel.shmmax": Invalid argument | |
kernel.shmmax = 2147483648 #最大共享内存的段大小 | |
sysctl: setting key "kernel.shmmni": Invalid argument | |
kernel.shmmni = 4096 #整个系统共享内存端的最大数 | |
kernel.sem = 250 32000 100 128 | |
sysctl: setting key "net.ipv4.ip_local_port_range": Invalid argument | |
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 /]# |
8. 对 oracle 用户设置限制,提高软件运行性能(红色为添加部分)
[sonny@localhost /]$ su root | |
Password: | |
[root@localhost /]# vi /etc/security/limits.conf | |
[root@localhost /]# cat /etc/security/limits.conf | |
# /etc/security/limits.conf | |
# | |
#This file sets the resource limits for the users logged in via PAM. | |
#It does not affect resource limits of the system services. | |
# | |
#Also note that configuration files in /etc/security/limits.d directory, | |
#which are read in alphabetical order, override the settings in this | |
#file in case the domain is the same or more specific. | |
#That means for example that setting a limit for wildcard domain here | |
#can be overriden with a wildcard setting in a config file in the | |
#subdirectory, but a user specific setting here can be overriden only | |
#with a user specific setting in the subdirectory. | |
# | |
#Each line describes a limit for a user in the form: | |
# | |
#<domain> <type> <item> <value> | |
# | |
#Where: | |
#<domain> can be: | |
# - a user name | |
# - a group name, with @group syntax | |
# - the wildcard *, for default entry | |
# - the wildcard %, can be also used with %group syntax, | |
# for maxlogin limit | |
# | |
#<type> can have the two values: | |
# - "soft" for enforcing the soft limits | |
# - "hard" for enforcing hard limits | |
# | |
#<item> can be one of the following: | |
# - core - limits the core file size (KB) | |
# - data - max data size (KB) | |
# - fsize - maximum filesize (KB) | |
# - memlock - max locked-in-memory address space (KB) | |
# - nofile - max number of open file descriptors | |
# - rss - max resident set size (KB) | |
# - stack - max stack size (KB) | |
# - cpu - max CPU time (MIN) | |
# - nproc - max number of processes | |
# - as - address space limit (KB) | |
# - maxlogins - max number of logins for this user | |
# - maxsyslogins - max number of logins on the system | |
# - priority - the priority to run user process with | |
# - locks - max number of file locks the user can hold | |
# - sigpending - max number of pending signals | |
# - msgqueue - max memory used by POSIX message queues (bytes) | |
# - nice - max nice priority allowed to raise to values: [-20, 19] | |
# - rtprio - max realtime priority | |
# | |
#<domain> <type> <item> <value> | |
# | |
#* soft core 0 | |
#* hard rss 10000 | |
#@student hard nproc 20 | |
#@faculty soft nproc 20 | |
#@faculty hard nproc 50 | |
#ftp hard nproc 0 | |
#@student - maxlogins 4 | |
oracle soft nproc 2047 | |
oracle hard nproc 16384 | |
oracle soft nofile 1024 | |
oracle hard nofile 65536 | |
# End of file | |
[root@localhost /]# |
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 客户端字符集,必须与 Oracle 安装时设置的字符集保持一致,如:ZHS16GBK,否则出现数据导入导出中文乱码问题 | |
[root@localhost /]# |
使上述配置立即生效:
[oracle@localhost /]$ su root | |
Password: | |
[root@localhost /]# source /home/oracle/.bash_profile | |
[root@localhost /]# |
10. 上述都搞定了,上传安装包我喜欢 xftp,将 oracle 安装包上传到 /usr/local/src
11. 解压安装包
[oracle@localhost /]$ cd /usr/local/src # 进入 /usr/local/src 目录 | |
[oracle@localhost src]$ ls | |
linux.x64_11gR2_database_1of2.zip linux.x64_11gR2_database_2of2.zip | |
[oracle@localhost src]$ unzip linux.x64_11gR2_database_1of2.zip -d /data/database/ # 解压 | |
(省略...) | |
[oracle@localhost src]$ unzip linux.x64_11gR2_database_2of2.zip -d /data/database/ # 解压 | |
(省略...) | |
[oracle@localhost src]$ su root | |
Password: | |
[root@localhost src]# chown -R oracle:oinstall /data/database/database/ | |
[root@localhost src]# |
三、oracle 安装
1. 图形界面登陆 oracle 用户:
2. 启动 oralce 安装,到 /data/database/database/ 目录下,执行 runInstaller
3. 去掉勾,懒得填,个人使用环境不需要自动接收 Oracle 的安全更新。
4. 下一步,只安装数据库软件,个人用不要那些玩意~~
更多详情见请继续阅读下一页的精彩内容 :http://www.linuxidc.com/Linux/2016-04/130559p2.htm
13. 安装过程是一个漫长的过程,中间有几次卡住,没有出现任何画面,屏幕中间有条小线,尝试多次,发现光标在该线上,右键点击 Closed,不知道关闭了啥,又能继续安装了。先装吧,到时看安装日志再说。
14. 提示安装成功。安装日志懒得看,再说。
四、配置监听 listener
1. 执行 netca 报错
[Oracle@localhost ~]$ netca | |
Oracle Net Services Configuration: | |
# | |
# An unexpected error has been detected by HotSpot Virtual Machine: | |
# | |
# SIGSEGV (0xb) at pc=0x00007f69a69fcb9d, pid=8033, tid=140092892297024 | |
# | |
# Java VM: Java HotSpot(TM) 64-Bit Server VM (1.5.0_17-b03 mixed mode) | |
# Problematic frame: | |
# C [libclntsh.so.11.1+0x62ab9d] snlinGetAddrInfo+0x1b1 | |
# | |
# An error report file with more information is saved as hs_err_pid8033.log | |
# | |
# If you would like to submit a bug report, please visit: | |
# http://java.sun.com/webapps/bugreport/crash.jsp | |
# | |
/data/oracle/product/11.2.0/db_1/bin/netca: line 178: 8033 Aborted (core dumped) $JRE $JRE_OPTIONS -classpath $CLASSPATH oracle.net.ca.NetCA $* | |
[oracle@localhost ~]$ |
错误原因:安装操作系统是默认主机名 localhost 造成错误
解决办法:
racle]# cat /etc/sysconfig/network | |
# Created by anaconda | |
[root@localhost oracle]# vi /etc/sysconfig/network # 增加 HOSTNAME | |
[root@localhost oracle]# cat /etc/sysconfig/network | |
# Created by anaconda | |
HOSTNAME=odb-sonny | |
[root@localhost oracle]# cat /etc/hosts | |
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 | |
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 | |
[root@localhost oracle]# vi /etc/hosts #增加 HOSTNAME | |
[root@localhost oracle]# cat /etc/hosts | |
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 odb-sonny | |
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 | |
[root@localhost oracle]# hostname odb-sonny # 执行 | |
[root@localhost oracle]# |
最后注销当前 oracle 用户,重新登陆即可 !!这次发现打开配置界面正常,安装 windows 下面配置即可。
五、创建 Oracle 数据实例 Orcl
执行 dbca 命令,启动 oracle 实例安装界面,剩下的与 Windows 上安装一样,不废话了:
注意:必须先创建监听,并且监听是启动中,否则报错。
六、检查安装日志检查
发现有几个错误( 原因未知,后续再看 ):
错误 1:
INFO: /lib64/libstdc++.so.5: undefined reference to `memcpy@GLIBC_2.14'collect2: error: ld returned 1 exit status | |
INFO: make: *** [ctxhx] Error 1 | |
INFO: End output from spawned process. | |
INFO: ---------------------------------- | |
INFO: Exception thrown from action: make | |
Exception Name: MakefileException | |
Exception String: Error in invoking target 'install' of makefile '/data/oracle/product/11.2.0/db_1/ctx/lib/ins_ctx.mk'. | |
See '/data/oraInventory/logs/installActions2016-04-07_10-38-06PM.log' for details. | |
Exception Severity: 1 |
错误 2:
INFO: /usr/bin/ld: warning: -z lazyload ignored. | |
/usr/bin/ld: warning: -z nolazyload ignored. | |
/usr/bin/ld: /data/oracle/product/11.2.0/db_1/sysman/lib//libnmectl.a(nmectlt.o): undefined reference to symbol 'B_DestroyKeyObject' | |
/usr/bin/ld: note: 'B_DestroyKeyObject' is defined in DSO /data/oracle/product/11.2.0/db_1/lib/libnnz11.so so try adding it to the linker command line | |
/data/oracle/product/11.2.0/db_1/lib/libnnz11.so: could not read symbols: Invalid operation | |
INFO: collect2: error: ld returned 1 exit status | |
INFO: make[1]: *** [/data/oracle/product/11.2.0/db_1/sysman/lib/emdctl] Error 1 | |
INFO: make[1]: Leaving directory `/data/oracle/product/11.2.0/db_1/sysman/lib' | |
INFO: make: *** [emdctl] Error 2 | |
INFO: End output from spawned process. | |
INFO: ---------------------------------- | |
INFO: Exception thrown from action: make | |
Exception Name: MakefileException | |
Exception String: Error in invoking target 'agent nmhs' of makefile '/data/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk'. See '/data/oraInventory/logs/installActions2016-04-07_10-38-06PM.log' for details. | |
Exception Severity: 1 | |
INFO: Calling Action unixActions10.2.0.3.0 make | |
registerOnly = false | |
installMakePath = /usr/bin/make | |
installMakeFileName = /data/oracle/product/11.2.0/db_1/rdbms/lib/ins_rdbms.mk | |
installTarget = all_no_orcl | |
undoMakeFileName = | |
installArguments = ORACLE_HOME=/data/oracle/product/11.2.0/db_1 | |
logFile = /data/oracle/product/11.2.0/db_1/install/make.log | |
undoTarget = | |
progMsg = Linking RDBMS Executables |
更多 CentOS 相关信息见 CentOS 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=14
更多 Oracle 相关信息见 Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-04/130559.htm
