centos7遠程安裝oracle11g R2詳細教程-解決一切問題


相關鏈接與資源:
sqldevelper(各種操作系統的oracle客戶端)
oracle11g r2下載地址:
centos7相關rpm包下載:
安裝過程參考鏈接:
#centos7安裝oracle11g R2
#linux安裝oracle圖文操作
#centos6安裝oracle11g R2
#dbca建庫圖形化教程
#impdp和expdp使用說明
 
 
遇到的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;
相關鏈接:
#查詢表空間大小
#擴展表空間方法
 
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
 
#遠程靜默安裝oracle
 
#執行安裝腳本報錯
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包
 
 
#啟動數據庫監聽服務
百度就ok 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM