[oracle]centos 7 安装oracle
换了好几个系统终于还是利用centos安装oralce成功了,这里我也参考了网上的好多资料以及oracle的官方文档
1、下载oracle,我这里选择的是11gr2版本,下载下来后有两个文件,利用unzip命令解压到相同目录
2、在磁盘中建立oracle的安装目录
mkdir -p /oracle/oraclebase #这是oracle的安装基目录 mkdir -p /oracle/oraInventory #这是一些文件日志的目录
3、创建oracle用户和组
这里说以下为什么要建立用户和组,因为数据库存放一些重要的数据,并不是谁想访问就可以访问的,必须对用户的权限进行管理,只有用户加入了当前组,并赋予其权限才能够对数据库进行操作。
groupadd oinstall #创建用户组oinstall groupadd dba #创建用户组dba useradd -g oinstall -g dba -m oracle #创建用户oracle,并加入oinstall和dba用户组 passwd oracle #设置用户oracle的登录密码,根据提示输入两次密码 chown -R oracle:oinstall /oracle/oraclebase #设置目录所有者为oinstall用户组的oracle用户 chown -R oracle:oinstall /oracle/oraInventory
4、修改操作系统名称
vi /etc/redhat-release #编辑
修改为:redhat-7
这里我也不大清楚,因为oracle官方认证的系统是redhat、oracle linux、suse等等,最后选择centos来安装oracle,也是因为centos是redhat的一个发行版,我想兼容还是可以的。
5、修改内核参数
这一步修改主要是因为,在oracle的官方文档中有对oracle数据库安装配置的最低要求,因此需要修改一下
vi /etc/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
保存退出后要进行如下操作以使配置生效
sysctl -p #使配置立即生效
6、对oracle用户设置限制
vi /etc/security/limits.conf #在末尾添加以下代码 oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536
注:突然想起来,加入要是vi编辑文件内容较多的话,可以进入命令模式输入“$”来跳到文尾。
7、配置用户的环境变量
vi /home/oracle/.bash_profile #在最后添加以下代码 export ORACLE_BASE=/oracle/oraclebase #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 #防止安装过程出现乱码 export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK #设置Oracle客户端字符集,必须与Oracle安装时设置的字符集保持一致,如:ZHS16GBK,否则出现数据导入导出中文乱码问题
保存退出以后,输入如下命令使配置生效
source .bash_profile #使设置立刻生效
8、关闭SELINUX
vi /etc/selinux/config #编辑配置文件 #注释掉SELINUX=enforcing # 注释掉SELINUXTYPE=targeted SELINUX=disabled #增加
9、配置防火墙
由于我安装的系统是centos 7 的Live版本,所以有好多东西没有,我再添加完如下代码之后,没有找到iptables restart命令,然后重启了下系统,反正最后也没什么影响,我猜我的这个版本中没有防火墙。网上代码如下:
vi /etc/sysconfig/iptables #编辑防火墙配置文件,添加以下内容 -A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 1521 -j ACCEPT /etc/init.d/iptables restart #重启防火墙使配置生效
10、检查依赖关系
这里我检查了两步,首先是按照官方文档检查了一遍,在官方文档中我参考的是redhat-7所有需要的东西,如下:
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
检查的时候就利用如下命令即可,直接在线安装,假如安装了的肯定会提示,否则就安装了
yum install binutils #以第一个包为例子
接下来顺便将我参考的一篇文章检测以来关系的方法也用了下,这条命令有通配符,安装的package比以上更多,辐射范围更广,保证万无一失么。
yum install gcc* gcc-* gcc-c++-* glibc-devel-* glibc-headers-* compat-libstdc* libstdc* elfutils-libelf-devel* libaio-devel* sysstat* unixODBC-* pdksh-*
这个有一个pdksh可能提示没有此包之类的,不过没关系,在第一步的时候已经检测安装了ksh
11、接下来进行图形界面的安装,首先要切换到上边创建的用户oracle下,最好logout后在登陆。
12、cd进入上边解压的oracle安装文件目录database中
注意:由于上边的那个database的owner是root,oracle没有权限访问,可以利用如下命令,将此文件夹的所有者该为oracle.
su - root #切换到root用户 chown -R oracle /.../database
13、运行如下命令启动安装界面
export LANG=en_US #设置编码,防止图形界面乱码 ./runInstaller
注意:此处可能会提醒DISPLAY未通过是怎么的,我忽略的,貌似没影响
接下来就进入一步一步的安装步骤中,很简单的,按部就班来就可以了,选择部分按默认的就可以
在接下来的安装当中可能会提示有错误之类的email的忽略继续,
然后可能还会有主机名与Ip没映射的利用如下命令修改hosts文件就可以
vi /etc/hosts #进入之后将你的主机名加入到127.0.0.1的对应中,注意是主机名,不是你的用户名
14、我在安装过程中还遇到了两个其他的错误是关于makefile,和一个警告,但是我忽略后,安装完毕以后,也没发现有问题,将错误代码贴到这里,留待以后解决
install makfile error
INFO: Exception thrown from action: make Exception Name: MakefileException Exception String: Error in invoking target 'install' of makefile '/oracle/oraclebase/product/11.2.0/db_1/ctx/lib/ins_ctx.mk'. See '/oracle/oraInventory/logs/installActions2014-12-22_05-24-27PM.log' for details. Exception Severity: 1 INFO: Calling Action unixActions10.2.0.3.0 make registerOnly = false installMakePath = /usr/bin/make installMakeFileName = /oracle/oraclebase/product/11.2.0/db_1/racg/lib/ins_has.mk installTarget = racg_install undoMakeFileName = installArguments = ORACLE_HOME=/oracle/oraclebase/product/11.2.0/db_1 logFile = /oracle/oraclebase/product/11.2.0/db_1/install/make.log undoTarget = progMsg = Linking RACG Executables INFO: Linking RACG Executables INFO: Linking RACG Executables INFO: The output of this make operation is also available at: '/oracle/oraclebase/product/11.2.0/db_1/install/make.log' INFO:
agent nmhs makefile error
INFO: Exception thrown from action: make Exception Name: MakefileException Exception String: Error in invoking target 'agent nmhs' of makefile '/oracle/oraclebase/product/11.2.0/db_1/sysman/lib/ins_emagent.mk'. See '/oracle/oraInventory/logs/installActions2014-12-22_05-24-27PM.log' for details. Exception Severity: 1 INFO: Calling Action unixActions10.2.0.3.0 make registerOnly = false installMakePath = /usr/bin/make installMakeFileName = /oracle/oraclebase/product/11.2.0/db_1/rdbms/lib/ins_rdbms.mk installTarget = all_no_orcl undoMakeFileName = installArguments = ORACLE_HOME=/oracle/oraclebase/product/11.2.0/db_1 logFile = /oracle/oraclebase/product/11.2.0/db_1/install/make.log undoTarget = progMsg = Linking RDBMS Executables INFO: Linking RDBMS Executables INFO: Linking RDBMS Executables INFO: The output of this make operation is also available at: '/oracle/oraclebase/product/11.2.0/db_1/install/make.log' INFO: