centos7远程安装oracle11g R2详细教程-解决一切问题

相关链接与资源:

sqldevelper(各种操作系统的oracle客户端)

http://www.oracle.com/technetwork/cn/developer-tools/sql-developer/downloads/index.html

oracle11g r2下载地址:

http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-linx8664soft-100572.html

centos7相关rpm包下载:

http://mirror.centos.org/centos/7/os/x86_64/

安装过程参考链接:

#centos7安装oracle11g R2

http://www.cnblogs.com/xi52qian/p/4187039.html

#linux安装oracle图文操作

http://www.jb51.net/article/53769.htm

#centos6安装oracle11g R2

http://blog.csdn.net/kimsoft/article/details/8117575

#dbca建库图形化教程

https://jingyan.baidu.com/article/455a99509facd9a167277850.html

#impdp和expdp使用说明

http://blog.csdn.net/giianhui/article/details/7788550

http://www.cnblogs.com/wanghongyun/p/6307652.html

遇到的oracle报错以及解决方案:

ORA-01940: cannot drop a user that is currently connected

原因:user存在没有中断的任务

解决:

1、等待,一般等会(几分钟)就ok了

2、主动杀死任务:http://www.linuxidc.com/Linux/2012-12/76448.htm

不过成功的几率不是太高

ORA-39171: Job is experiencing a resumable wait.

ORA-01688: unable to extend table IEVSP

原因:表空间不足,任务暂停

解决:

1、直接增加表空间的存储文件了事。

命令:

alter tablespace TBS_IEVSP add datafile '/opt/oracle/oradata/gw/TBS_IEVSP02.dbf' size 30G;

相关命令:查询表空间大小

查询表大小:

select a.tablespace_name, total, free, total-free as used from

(select tablespace_name, sum(bytes)/1024/1024/1024 as total from dba_data_files group by tablespace_name) a,

(select tablespace_name, sum(bytes)/1024/1024/1024 as free from dba_free_space group by tablespace_name) b

where a.tablespace_name = b.tablespace_name;

相关链接:

#查询表空间大小

http://blog.itpub.net/29485627/viewspace-1250754/

#扩展表空间方法

http://ocpyang.blog.51cto.com/3401739/1215658

ORA-39070: Unable to open the log file

原因:创建目录上级目录属组与用户有问题。

解决:chown -R oracle:oinstall /path

下面描述一下整体过程以及遇到的问题和解决方法,用于记录,为以后工作提供参考。

起因:客户给了一批大约150G的数据,需要给建模工程师分析。

整体处理流程:

1、查看用户提供数据格式为.dmp数据,是oracle导出的备份数据。

2、数据为GBK格式,而平台只能接入UTF-8的oracle,可能需要转码

那么临时目标变为了:

1、将数据导入某个现有的oracle数据库,有两个选择:

aws的oracle数据库实例

docker容器版本的oracle

2、尝试对数据进行转码

第一阶段:数据导入:

阶段目标是将数据导入oracle

尝试1:将数据导入docker的oracle容器。

在这个阶段尝试启动了一个oralce容器,镜像名称是:rodrigozc/oracle11g

相关启动命令可以在dockerhub上获取

阶段结果:失败

失败原因:由于oracle的镜像版本是xe,对表空间大小有限制,最高11G,失败!

尝试2:将数据导入aws的oracle服务实例

启动了aws实例,并且经过各种尝试和学习oracle概念,连接成功,但是出现问题

阶段结果:失败

失败原因:用户数据的导出方式是expdp|impdp,这种方式只能将数据经由本地导入。

第二阶段:创建数据库

第一步:环境准备

1、尝试在aws官方的AMI上进行搭建,但是官方源不支持linux界面安装。

2、尝试使用社区本的AMI进行搭建,进行了两次尝试(centos6)均失败,原因各有不同。

3、最终选择之间安装docker的私有AMI centos7 进行安装

第二步:oracle11g R2安装

1、安装步骤参照上面的参考链接即可,有一些小坑但是问题不大。

2、最大的问题可能在于display的设置以及vnc连接。

3、还有就是oracle安装环境检查时提示缺少rpm,除了一个centos5存在的包需要版本号比较大之外,其他的忽略即可

第三阶段:数据导入

第一步:创建表空间、索引空间、用户等。

1、这里有一个大坑,表空间即便自动增长,最大也就32G(好像),这导致我重复导入多次,实际上只要简单的扩充表空间存储文件,任务就会继续,这个阶段至少浪费了三个小时。

以上问题基本上baidu都可以解决,重点是由于比较分散,坑需要一个一个的踩,比较浪费时间。

投入时间:全程投入了4天,数据库安装与导入用了两天,并且都小加班了一下。

简单的记录下来,用于以后的参考。

####################################################

以下是详细的环境准备与安装过程,其实上面才是重点

####################################################

标题:centos7 安装oracle11g r2

#替换yum源为163源

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo

yum clean all

yum makecache

#安装需要的包

rpm -qa binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers glibc-static kernel-headers pdksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel libstdc++-static make numactl-devel sysstat unixODBC unixODBC-devel

yum install -y binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers glibc-static kernel-headers pdksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel libstdc++-static make numactl-devel sysstat unixODBC unixODBC-devel

#创建用户和组

groupadd oinstall

groupadd dba

groupadd oper

useradd -g oinstall -G dba,oper oracle

echo "oracle" | passwd --stdin oracle

#配置内核

# vi /etc/sysctl.conf

按照系统值对比添加:

#由于系统内存为119G,那么shmmax=118/2*1024*1024*1024 = 63350767616

fs.aio-max-nr = 1048576

fs.file-max = 6815744

kernel.shmall = 2097152

kernel.shmmax = 63350767616

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

保存后生效命令:

# /sbin/sysctl -p

#创建安装目录

mkdir -p /opt/oracle/product/11.2.0.1

chown -R oracle:oinstall /opt/oracle

mkdir /var/oracle

chown oracle:oinstall /var/oracle

chmod 755 /var/oracle

#设置环境变量

vi /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

#修改oracle账户环境变量

# .bash_profile

# Get the aliases and functions

if [ -f ~/.bashrc ]; then

. ~/.bashrc

fi

# User specific environment and startup programs

umask 022

TMP=/tmp

TMPDIR=/tmp

export TMP TMPDIR

# 如果安装出现相关问题请屏蔽下面5行,

# 安装好后再取消屏蔽这些环境变量设置

export ORACLE_HOME=/opt/oracle/product/11.2.0.1

export ORACLE_BASE=/opt/oracle

export ORACLE_SID=orcl

export TNS_ADMIN=$ORACLE_HOME/network/admin

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

export PATH=$PATH:$ORACLE_HOME/bin

export LANG=AMERICAN_AMERICA.ZHS16GBK

unset USERNAME

echo ".bash_profile executed"

#修改进程和最大会话数-root下编辑

编辑文件:

# vi /etc/security/limits.conf

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 1024

oracle hard nofile 65536

#关联设置

vi /etc/pam.d/login

-倒数第二行加入

session required pam_limits.so

#安装vnc server 以及 图形化界面

yum install tigervnc tigervnc-server libvncserver -y

yum install gnome-classic-session gnome-terminal nautilus-open-terminal control-center liberation-mono-fonts -y

yum -y groupinstall "X Window System"

#centos7安装图形化界面和vnc

https://linux.cn/article-5335-1.html

#远程静默安装oracle

http://www.mamicode.com/info-detail-1647762.html

#执行安装脚本报错

Exception in thread "main" java.lang.NoClassDefFoundError

#最正确的安装步骤:

export DISPLAY=:1

xhost +

su - oracle

./runInstaller

使用vnc连接远程服务器安装oracle

#环境检查问题解决:

#创建大于16G的swap分区

dd if=/dev/zero of=/var/swap bs=1024 count=2048000

fallocate -l 17G /home/swapfile

chmod 600 /home/swapfile

mkswap swapfile

swapon swapfile

#pdksh包缺失:

rpm -e ksh-20120801-34.el7.x86_64

卸载ksh包,并安装pdksh包

https://centos.pkgs.org/5/centos-x86_64/pdksh-5.2.14-37.el5_8.1.x86_64.rpm.html

#启动数据库监听服务

百度就ok