目錄
- 安裝前的準備
- 最小安裝OracleLinux7.8(centos7.8一樣)
- 安裝oracle需要的依賴包
- 準備Oracle安裝包
- 準備一鍵安裝腳本 并執行
- 腳本使用安裝前配置
- 問題及解決方法:
- 錯誤碼ORA-28040
之前下載centos8.2 來安裝oracle12c 發現怎么都裝不成功,最后發現
oracle官方Linux7 系列之支持oracle 最高版本到18c linux8系列 只有oracle 19c支持,故果斷下載oracle linux 7.8(跟centos7.8安裝類似 )
安裝oracle12c
腳本為一鍵靜默安裝,因為考慮到服務器不能聯網的特點,連同必須的rpm包一起打包,真正做到了【一鍵靜默離線安裝oracle12c!】
安裝前的準備
最小安裝OracleLinux7.8(centos7.8一樣)
(文末附下載)
安裝詳細程序不做介紹,一步一步即可
主要選擇軟體包的時候,選擇基本的開發環境包和兼容包即可,


安裝oracle需要的依賴包
需要rmp包串列如下:(附下載)
binutils-2.27-43.base.0.1.el7_8.1.x86_64.rpm
compat-libstdc++-33-3.2.3-72.el7.i686.rpm
cpp-4.8.5-39.0.5.el7.x86_64.rpm
gcc-4.8.5-39.0.5.el7.x86_64.rpm
gcc-c++-4.8.5-39.0.5.el7.x86_64.rpm
gcc-gfortran-4.8.5-39.0.5.el7.x86_64.rpm
glibc-2.17-307.0.1.el7.1.i686.rpm
glibc-devel-2.17-307.0.1.el7.1.i686.rpm
gpm-libs-1.20.7-6.el7.x86_64.rpm
gssproxy-0.7.0-28.el7.x86_64.rpm
keyutils-1.5.8-3.el7.x86_64.rpm
ksh-20120801-142.0.1.el7.x86_64.rpm
libaio-0.3.109-13.el7.i686.rpm
libaio-devel-0.3.109-13.el7.i686.rpm
libaio-devel-0.3.109-13.el7.x86_64.rpm
libbasicobjects-0.1.1-32.el7.x86_64.rpm
libcollection-0.7.0-32.el7.x86_64.rpm
libevent-2.0.21-4.el7.x86_64.rpm
libgcc-4.8.5-39.0.5.el7.i686.rpm
libgcc-4.8.5-39.0.5.el7.x86_64.rpm
libgfortran-4.8.5-39.0.5.el7.x86_64.rpm
libgomp-4.8.5-39.0.5.el7.x86_64.rpm
libini_config-1.3.1-32.el7.x86_64.rpm
libnfsidmap-0.25-19.el7.x86_64.rpm
libpath_utils-0.2.1-32.el7.x86_64.rpm
libquadmath-4.8.5-39.0.5.el7.x86_64.rpm
libquadmath-devel-4.8.5-39.0.5.el7.x86_64.rpm
libref_array-0.1.5-32.el7.x86_64.rpm
libstdc++-4.8.5-39.0.5.el7.i686.rpm
libstdc++-4.8.5-39.0.5.el7.x86_64.rpm
libstdc++-devel-4.8.5-39.0.5.el7.i686.rpm
libstdc++-devel-4.8.5-39.0.5.el7.x86_64.rpm
libtirpc-0.2.4-0.16.el7.x86_64.rpm
libverto-libevent-0.2.5-4.el7.x86_64.rpm
libX11-1.6.7-2.el7.i686.rpm
libX11-1.6.7-2.el7.x86_64.rpm
libX11-common-1.6.7-2.el7.noarch.rpm
libXau-1.0.8-2.1.el7.i686.rpm
libXau-1.0.8-2.1.el7.x86_64.rpm
libxcb-1.13-1.el7.i686.rpm
libxcb-1.13-1.el7.x86_64.rpm
libXext-1.3.3-3.el7.i686.rpm
libXext-1.3.3-3.el7.x86_64.rpm
libXi-1.7.9-1.el7.i686.rpm
libXi-1.7.9-1.el7.x86_64.rpm
libXtst-1.2.3-1.el7.i686.rpm
libXtst-1.2.3-1.el7.x86_64.rpm
lm_sensors-libs-3.4.0-8.20160601gitf9185e5.el7.x86_64.rpm
mailx-12.5-19.el7.x86_64.rpm
net-tools-2.0-0.25.20131004git.el7.x86_64.rpm
nfs-utils-1.3.0-0.66.0.1.el7_8.x86_64.rpm
nss-softokn-freebl-3.44.0-8.0.1.el7_7.i686.rpm
quota-4.01-19.el7.x86_64.rpm
quota-nls-4.01-19.el7.noarch.rpm
rpcbind-0.2.0-49.el7.x86_64.rpm
smartmontools-7.0-2.el7.x86_64.rpm
sysstat-10.1.5-19.el7.x86_64.rpm
tcp_wrappers-7.6-77.el7.x86_64.rpm
unixODBC-2.3.1-14.0.1.el7.x86_64.rpm
unixODBC-devel-2.3.1-14.0.1.el7.x86_64.rpm
vim-common-7.4.629-6.0.1.el7.x86_64.rpm
vim-enhanced-7.4.629-6.0.1.el7.x86_64.rpm
vim-filesystem-7.4.629-6.0.1.el7.x86_64.rpm
wget-1.14-18.el7_6.1.x86_64.rpm
zlib-1.2.7-18.el7.i686.rpm
zlib-devel-1.2.7-18.el7.i686.rpm
zlib-devel-1.2.7-18.el7.x86_64.rpm
這些依賴包下載后打包成oracle_pkg.tar 并放入/Data/soft檔案夾下
本文已經將rmp打包完畢 直接下載即可使用,
oracle12c所需要的庫檔案下載
準備Oracle安裝包
把Oracle12C原安裝包"linuxx64_12201_database.zip" 放入 /Data/soft
這個linuxx64_12201_database.zip需要去oracle 官網下載即可
或者在網盤里下載
兩個鏈接下載哪個都可以
下載鏈接1
下載鏈接2
準備一鍵安裝腳本 并執行
一鍵安裝腳本借鑒spdir大神的 https://github.com/spdir/oracle-single-install
并進行了修改,可以靈活自定義安裝oracle的路徑和源檔案位置并支持不聯網的情況下安裝oracle12c
腳本使用安裝前配置
root用戶執行(盡量系統為純凈環境)
- 安裝前請將Oracle 12C安裝包放置在
/Data/soft目錄下,如果是其他目錄修改腳本中的softdir變數 - 系統需要具備512MB的交換磁區
- 并配置以下資訊
本機IP地址HostIP設定改成自己的IP
腳本是通過
HostIP=`ip a | grep ens32 | grep inet |awk '{print $2}'|cut -d / -f 1`
注意上面的ens32 是自己電腦的網卡名稱,如果是eth0 或者其他名字請更換為正確的網卡名稱,
- Oracle用戶密碼
OracleUserPasswd默認為oracle - Oracle資料庫管理員密碼
ORACLE_DB_PASSWD默認為Oracle#123 - Oracle SID/ServerName
SID默認為orcl12c - 是否安裝實體
IS_INSTANCE- 0-不安裝實體
- 1-安裝單實體(默認)
- 2-安裝cdb : 因為CDB在初始化程序中需要輸入引數,需要手動初始化,具體步驟會在最后進行提示
- 設定單實體默認字符編碼
SINGLE_CHARSET- 1-
AL32UTF8 - 2-
ZHS16GBK默認
- 1-
- 選擇配置靜默安裝組態檔的獲取方式
Get_Config_Method- 0-遠程
- 2-本地獲取(默認)(腳本執行根目錄下需要有
conf目錄存放組態檔)db_install.rsp資料庫安裝組態檔dbca_single.rsp資料庫單實體初始化組態檔initcdb.oraCDB初始化組態檔
腳本以及conf檔案打包下載地址:
一鍵腳本以及組態檔下載
一鍵安裝腳本部分內容:
#!/bin/bash
#oracle 12c
#local host ip
datadir=/Data
softdir=/Data/soft
HostIP=`ip a | grep ens32 | grep inet |awk '{print $2}'|cut -d / -f 1`
#oracle user password
OracleUserPasswd="oracle"
#default `systemOracle.com`
read -p "please enter the password you want to set for SYS,SYSMAN,SYSTEM&DBSNMP[at least 8 characters with digits, upper and lower case letters [default:Oracle#123]:" ORACLE_DB_PASSWD
if [ -z "$ORACLE_DB_PASSWD" ];then
ORACLE_DB_PASSWD="Oracle#123"
fi
#SID/SERVERNAME,default `orcl12c`
read -p "Please input oracle server SID[ex: orcl12c]: " SID
if [ -z "$SID" ];then
SID="orcl12c"
fi
# Install single instance choose charset
# 1-AL32UTF8(default), 2-ZHS16GBK
# Currently only supports single instance, does not support pdb
SINGLE_CHARSET='2'
# Install instance
#0-no,1-singleInstance,2-cdb
IS_INSTANCE='1'
# Choose configure file path
# 0-remote(default) 1-local
Get_Config_Method="1"
#---------------------------------------------------------------------------------#
#Global environment variable
if [[ ${SID} == "" ]];then
SID="oriedb"
fi
root_path=$softdir
response='/home/oracle/response'
MemTotle=$(grep -r 'MemTotal' /proc/meminfo | awk -F ' ' '{print int($2/1024/1024+1)}')
ORACLE_HOME=${datadir}/oracle/product/12.2.0/db_1
con_name="
sqlplus / as sysdba<< EOF
show con_name;
exit;
EOF
"
web_plugin="
sqlplus / as sysdba<< EOF
exec dbms_xdb_config.sethttpport(1522);
exit;
EOF
"
cdb_sql="
sqlplus / as sysdba<< EOF
shutdown abort;
create spfile from pfile='"$ORACLE_HOME/dbs/initcdb.ora"';
startup nomount;
CREATE DATABASE ${SID}
USER SYS IDENTIFIED BY pass
USER SYSTEM IDENTIFIED BY pass
LOGFILE GROUP 1 ('"${datadir}/oracle/oradata/${SID}/redo01a.log"','"${datadir}/oracle/oradata/${SID}/redo01b.log"')
SIZE 100M BLOCKSIZE 512,
GROUP 2 ('"${datadir}/oracle/oradata/${SID}/redo02a.log"','"${datadir}/oracle/oradata/${SID}/redo02b.log"')
SIZE 100M BLOCKSIZE 512
MAXLOGHISTORY 1
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 1024
CHARACTER SET AL32UTF8
NATIONAL CHARACTER SET AL16UTF16
EXTENT MANAGEMENT LOCAL
DATAFILE '"${datadir}/oracle/oradata/${SID}/system01.dbf"' SIZE 700M
SYSAUX DATAFILE '"${datadir}/oracle/oradata/${SID}/sysaux01.dbf"' SIZE 550M
DEFAULT TABLESPACE deftbs
DATAFILE '"${datadir}/oracle/oradata/${SID}/deftbs01.dbf"' SIZE 500M
DEFAULT TEMPORARY TABLESPACE tempts1
TEMPFILE '"${datadir}/oracle/oradata/${SID}/temp01.dbf"' SIZE 20M
UNDO TABLESPACE undotbs1
DATAFILE '"${datadir}/oracle/oradata/${SID}/undotbs01.dbf"' SIZE 200M
ENABLE PLUGGABLE DATABASE
SEED
FILE_NAME_CONVERT = ('"${datadir}/oracle/oradata/${SID}/"',
'${datadir}/oracle/oradata/pdbseed/')
SYSTEM DATAFILES SIZE 125M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED
SYSAUX DATAFILES SIZE 100M
USER_DATA TABLESPACE usertbs
DATAFILE '${datadir}/oracle/oradata/pdbseed/usertbs01.dbf' SIZE 200M;
exit
EOF
"
#Judgment parameter
function j_para() {
#判斷必要引數是否存在
if [[ ${HostIP} == '' ]];then
echo -e "\033[34mInstallNotice >>\033[0m \033[31mPlease config HostIP\033[0m"
exit
fi
if [ -e $datadir ]
then
echo "The default installation directory for oracle[$datadir] already exists. Please specify a new installation directory to continue!"
read -p "Please input installation directory for oracle[Ex: /Data]: " datadir
if [ -z "$datadir" ];then
datadir="/Data"
fi
fi
mkdir $datadir && chmod 777 $datadir
#判斷資料庫包檔案是否存在
if [ ! -f ${softdir}/linuxx64_12201_database.zip ]; then
echo -e "\033[34mInstallNotice >>\033[0m \033[31mlinuxx64_12201_database.zip not found\033[0m"
exit
fi
if [[ ${Get_Config_Method} == "1" ]]; then
if [[ ${IS_INSTANCE} == '1' ]]; then
if [[ ! -f ${root_path}/conf/db_install.rsp || ! -f ${root_path}/conf/dbca_single.rsp ]]; then
echo -e "\033[34mInstallNotice >>\033[0m \033[31m ./conf/db_install.rsp or ./conf/dbca_single.rsp file not found\033[0m"
exit
fi
elif [[ ${IS_INSTANCE} == '2' ]]; then
if [[ ! -f ${root_path}/conf/initcdb.ora ]]; then
echo -e "\033[34mInstallNotice >>\033[0m \033[31m ./conf/initcdb.ora file not found\033[0m"
exit
fi
else
if [[ ! -f ${root_path}/conf/db_install.rsp ]]; then
echo -e "\033[34mInstallNotice >>\033[0m \033[31m ./conf/db_install.rsp file not found\033[0m"
exit
fi
fi
fi
}
#install package
function install_package() {
if [[ ${Get_Config_Method} == "1" ]]; then
#判斷包檔案是否存在
if [ ! -f ${softdir}/oracle_pkg.tar ]; then
echo -e "\033[34mInstallNotice >>\033[0m \033[31m oracle_pkg.tar not found\033[0m"
exit
fi
mkdir -p /Data/packages
mv ${softdir}/oracle_pkg.tar /Data/packages
cd /Data/packages #切換到目錄
tar xvf oracle_pkg.tar #解壓依賴包
yum localinstall *.rpm --nogpgcheck
else
yum install -y binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33.i686 glibc glibc.i686 \
glibc-devel glibc-devel.i686 ksh libaio libaio.i686 libaio-devel libaio-devel.i686 libX11 libX11.i686 \
libXau libXau.i686 libXi libXi.i686 libXtst libXtst.i686 libgcc libgcc.i686 libstdc++ libstdc++.i686 \
libstdc++-devel libstdc++-devel.i686 libxcb libxcb.i686 make nfs-utils net-tools smartmontools sysstat \
unixODBC unixODBC-devel gcc gcc-c++ libXext libXext.i686 zlib-devel zlib-devel.i686 unzip wget vim epel-release
fi
}
#base_config
function base_config() {
dbhostname= ${HOSTNAME}_${HostIP##*.}
echo "${HostIP} ${dbhostname}" >> /etc/hosts
hostnamectl set-hostname dbhostname
ping -c 3 $HOSTNAME
#close selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
#close firewalld
systemctl stop firewalld && systemctl disable firewalld
#add user and group
groupadd oinstall && groupadd dba && groupadd oper && useradd -g oinstall -G dba,oper oracle \
&& echo "$OracleUserPasswd" | passwd oracle --stdin
#mkdir oracle need directory
orcl_home=$datadir
mkdir -p ${orcl_home}/oracle/product/12.2.0/db_1 && chmod -R 775 ${orcl_home}/oracle \
&& chown -R oracle:oinstall ${orcl_home}
#modify some file
echo 'fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
kernel.panic_on_oops = 1
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.conf.all.rp_filter = 2
net.ipv4.conf.default.rp_filter = 2
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500
' >> /etc/sysctl.conf && sysctl -p
echo 'oracle soft nofile 1024
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384
oracle soft stack 10240
oracle hard stack 32768
oracle hard memlock 134217728
oracle soft memlock 134217728
' >> /etc/security/limits.d/20-nproc.conf
echo 'session required /lib64/security/pam_limits.so
session required pam_limits.so
' >> /etc/pam.d/login
echo 'if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
' >> /etc/profile
#add oracle environmental variable
echo '# Oracle Settings
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_HOSTNAME=DB
export ORACLE_UNQNAME=oriedb
export ORACLE_BASE=/data/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/12.2.0/db_1
export ORACLE_SID=oriedb
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
' > /tmp/oracleInstallTmp.txt
if [[ ${SID} != 'oriedb' ]];then
sed -i "s/oriedb/${SID}/g" /tmp/oracleInstallTmp.txt
fi
if [[ ${datadir} != '/data/app' ]];then
sed -i "s#/data/app#${datadir}#g" /tmp/oracleInstallTmp.txt
fi
if [[ ${dbhostname} != '=DB' ]];then
sed -i "s#=DB#=${dbhostname}#g" /tmp/oracleInstallTmp.txt
fi
cat /tmp/oracleInstallTmp.txt >> /home/oracle/.bash_profile && bash /home/oracle/.bash_profile
rm -rf /tmp/oracleInstallTmp.txt
}
#option oracle file
function oracle_file() {
#Decompression package
unzip ${softdir}/linuxx64_12201_database.zip -d ${softdir}
chown -R oracle:oinstall ${softdir}/database
#get install config file
mkdir -p ${response} && cd ${response}
# delete old config
rm -rf {db_install.rsp,dbca_single.rsp}
# get config method
if [[ ${Get_Config_Method} == "1" ]]; then
cp ${root_path}/conf/db_install.rsp .
cp ${root_path}/conf/dbca_single.rsp .
else
echo "ERROR,please put db_install.rsp &db_install.rsp in conf directory"
exit
fi
#modify config file
if [[ ${ORACLE_DB_PASSWD} != "" ]];then
sed -i "s/systemOracle.com/${ORACLE_DB_PASSWD}/g" dbca_single.rsp
fi
#option memory gt 4G
if [[ ${MemTotle} -gt 4 ]];then
sed -i 's/automaticMemoryManagement=true/automaticMemoryManagement=false/g' \
/home/oracle/response/dbca_single.rsp
fi
#modify config file `SID`
if [[ ${SID} != 'oriedb' ]];then
sed -i "s/oriedb/${SID}/g" db_install.rsp
sed -i "s/oriedb/${SID}/g" dbca_single.rsp
fi
if [[ ${datadir} != '/data/app' ]];then
sed -i "s#/data/app#${datadir}#g" db_install.rsp
sed -i "s#/data/app#${datadir}#g" dbca_single.rsp
fi
#modify oracle single instance default charset
if [[ ${SINGLE_CHARSET} == '2' ]]; then
sed -i 's/characterSet=AL32UTF8/characterSet=ZHS16GBK/g' dbca_single.rsp
fi
#copy config file to oracle home
cp ${softdir}/database/response/netca.rsp ${response}/netca.rsp
chown -R oracle:oinstall ${response}
echo -e "\n\nThis program uniformly sets the password for sys, system, sysman and DBSNMP accounts."
echo "User defines the following environment variables:"
echo ">> ORACLE_HOME is: $datadir/oracle/product/12.2.0/db_1"
echo ">> ORACLE_BASE is: $datadir/oracle"
echo ">> Database SID is: $SID"
echo ">> SYS&SYSMAN.. user's password is set: $ORACLE_DB_PASSWD "
read -p "Press Enter to continue ..."
}
#start install oracle software and start listen
function install_oracle() {
#start install oracle
oracle_out='/tmp/oracle.out'
su - oracle -c "${softdir}/database/runInstaller -force -silent -noconfig \
-responseFile ${response}/db_install.rsp -ignorePrereq" 1> ${oracle_out}
echo -e "\033[34mInstallNotice >>\033[0m \033[32moracle install starting \033[05m...\033[0m"
while true; do
grep '[FATAL] [INS-10101]' ${oracle_out} &> /dev/null
if [[ $? == 0 ]];then
echo -e "\033[34mInstallNotice >>\033[0m \033[31moracle start install has [ERROR]\033[0m"
cat ${oracle_out}
exit
fi
cat /tmp/oracle.out | grep sh
if [[ $? == 0 ]];then
`cat /tmp/oracle.out | grep sh | awk -F ' ' '{print $2}' | head -1`
if [[ $? == 0 ]]; then
echo -e "\033[34mInstallNotice >>\033[0m \033[32mScript 1 run ok\033[0m"
else
echo -e "\033[34mInstallNotice >>\033[0m \033[31mScript 1 run faild\033[0m"
fi
`cat /tmp/oracle.out | grep sh | awk -F ' ' '{print $2}' | tail -1`
if [[ $? == 0 ]];then
echo -e "\033[34mInstallNotice >>\033[0m \033[32mScript 2 run ok\033[0m"
else
echo -e "\033[34mInstallNotice >>\033[0m \033[31mScript 2 run faild\033[0m"
fi
#start listen
echo -e "\033[34mInstallNotice >>\033[0m \033[32mOracle start listen \033[05m...\033[0m"
su - oracle -c "netca /silent /responsefile ${response}/netca.rsp"
netstat -anptu | grep 1521
if [[ $? == 0 ]]; then
echo -e "\033[34mInstallNotice >>\033[0m \033[32mOracle run listen\033[0m"
break
else
echo -e "\033[34mInstallNotice >>\033[0m \033[31mOracle no run listen\033[0m"
exit
fi
fi
done
}
#install oracle single instance
function single_instance() {
echo -e "\033[34mInstallNotice >>\033[0m \033[32mStart install single instance \033[05m...\033[0m"
#此安裝程序會輸入三次密碼,超級管理員,管理員,庫(這些密碼也可以在組態檔中寫)
su - oracle -c "dbca -silent -createDatabase -responseFile ${response}/dbca_single.rsp"
su - oracle -c "mkdir -p ${datadir}/oracle/oradata/${SID}/"
su - oracle -c "${con_name}" > /tmp/oracle.out1
su - oracle -c "${web_plugin}"
grep "${SID}" /tmp/oracle.out1
if [[ $? == 0 ]];then
echo -e "\033[34mInstallNotice >>\033[0m \033[32mOracle and instances install successful\033[0m"
finish
echo -e "\033[34mYou can visit (http://${HostIP}:1522/em) for web management.\033[0m"
else
echo -e "\033[34mInstallNotice >>\033[0m \033[31mOracle install successful,but instances init faild\033[0m"
fi
rm -rf /tmp/oracle.out1
exit
}
#install oracle cdb instance
function cdb_pdb() {
echo -e "\033[34mInstallNotice >>\033[0m \033[32mStart install CDB \033[05m...\033[0m"
INIT_CDB_FILE="${datadir}/oracle/product/12.2.0/db_1/dbs/initcdb.ora"
rm -rf ${INIT_CDB_FILE}
if [[ ${Get_Config_Method} == "1" ]]; then
cp ${root_path}/conf/initcdb.ora ${INIT_CDB_FILE}
else
wget https://raw.githubusercontent.com/spdir/oracle-single-install/master/conf/initcdb.ora -O ${INIT_CDB_FILE}
fi
if [[ ${SID} != 'oriedb' ]];then
sed -i "s/oriedb/${SID}/g" ${INIT_CDB_FILE}
fi
if [[ ${datadir} != '/data/app' ]];then
sed -i "s/\/data\/app/${datadir}/g" ${INIT_CDB_FILE}
fi
if [[ ${MemTotle} -gt 4 ]];then
cdb_mem=`expr ${MemTotle} / 3`
proc=`expr 150 \* ${cdb_mem}`
sed -i "s/memory_target=1G/memory_target=${cdb_mem}G/g" ${INIT_CDB_FILE}
sed -i "s/processes = 150/processes = ${proc}/g" ${INIT_CDB_FILE}
fi
chown -R oracle:oinstall ${INIT_CDB_FILE}
su - oracle -c "
mkdir -p ${datadir}/oracle/oradata/${SID}
mkdir -p ${datadir}/oracle/oradata/pdbseed
mkdir -p ${datadir}/oracle/admin/${SID}/adump
mkdir -p ${datadir}/oracle/fast_recovery_area
"
echo ${cdb_sql}
su - oracle -c "${cdb_sql}"
su - oracle -c "sed -i '35s/util/Util/g' ${datadir}/oracle/product/12.2.0/db_1/rdbms/admin/catcdb.pl"
echo -e '\033[42;31mFollow the steps to run the following commands\033[0m
\033[34m1. $ \033[32msu - oracle\033[0m\033[0m
\033[34m2. $ \033[32mcd ${datadir}/oracle/product/12.2.0/db_1/perl/lib/5.22.0/x86_64-linux-thread-multi/Hash/\033[0m\033[0m
\033[34m3. $ \033[32mexport PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$ORACLE_HOME/perl/bin:$ORACLE_HOME/jdk/bin:$PATH\033[0m\033[0m
\033[34m4. $ \033[32msqlplus / as sysdba\033[0m\033[0m
\033[34m5. SQL > \033[32m@?/rdbms/admin/catcdb.sql\033[0m\033[0m
\033[34m Enter value for 1: \033[32m${datadir}/oracle/product/12.2.0/db_1/rdbms/admin\033[0m\033[0m
\033[34m Enter value for 2: \033[32m${datadir}/oracle/product/12.2.0/db_1/rdbms/admin/catcdb.pl\033[0m\033[0m
\033[34m Enter new password for SYS: \033[32msys user password\033[0m\033[0m
\033[34m Enter new password for SYSTEM: \033[32msystem user password\033[0m\033[0m
\033[34m Enter temporary tablespace name: \033[32mtablespace name\033[0m\033[0m
\033[34m6. SQL > \033[32mshow con_name;\033[0m\033[0m
\033[34m7. SQL > \033[32mshow pdbs;\033[0m\033[0m'
echo -e '\033[33mThe initialization process is relatively long. Please wait patiently.\033[0m'
echo -e '\033[33mCDB use reference: \033[34mhttps://www.cnblogs.com/zhichaoma/p/9328765.html\033[0m'
exit
}
#install oracle instance
function oracle_instance() {
#安裝Oracle實體
if [[ ${IS_INSTANCE} == '1' ]]; then #install single instance
single_instance
elif [[ ${IS_INSTANCE} == '2' ]];then #install oracle cdb
cdb_pdb
else # not install instance
echo -e "\033[34mInstallNotice >>\033[0m \033[32mOracle install successful, but there are no instances of installation\033[0m"
exit
fi
}
function finish()
{
echo "Oracle install successful"
echo ">> ORACLE_HOME is: $datadir/oracle/product/12.2.0/db_1"
echo ">> ORACLE_BASE is: $datadir/oracle"
echo ">> Database SID is: $SID"
echo ">> SYS&SYSMAN.. user's password is set: $ORACLE_DB_PASSWD "
}
function main() {
j_para && \
install_package && \
base_config && \
oracle_file && \
install_oracle && \
oracle_instance
}
#run script
main
https://download.csdn.net/download/cuman/12820728
https://download.csdn.net/download/cuman/12820878
https://pan.baidu.com/s/1YvgmT0_Pm7y4O2XOxlFc3g
上面檔案如果都下載好
服務器/Data/soft 目錄完整檔案應該為

cd /Data/soft
tar xvf oracleLinux7_install_oracle12c.tar
chmod +x oracleLinux7_install_oracle12c.sh
sh oracleLinux7_install_oracle12c.sh
腳本默認安裝目錄/Data
oracle安裝包位置 /Data/soft
如果修改請修改 datadir和softdir的變數值,
腳本提示輸入oracle 用戶密碼 默認Oracle#123
腳本提示輸入SID 默認 orcl12c
本腳本在oracle linux 7.8 上驗證通過,
附:
oracle Linux 7.8 下載地址:
oracle Linux 7.8 下載地址
問題及解決方法:
PLSQL無法鏈接的錯誤:
錯誤碼ORA-28040
修改 $ORACLE_HOME\NETWORK\ADMIN\sqlnet.ora 檔案,網上提供了兩種版本的修改:
a、增加一行配置如下
SQLNET.ALLOWED_LOGON_VERSION=8
b、增加兩行配置如下“
SQLNET.ALLOWED_LOGON_SERVER=8
SQLNET.ALLOWED_LOGON_CLIENT=8
錯誤碼ORA-01017
#在 錯誤碼ORA-28040之前創建的用戶需要修改密碼
sqlplus / as sysdba
alter user dbuserbasic identified by 123456;
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/1505.html
標籤:其他
上一篇:EAS報表開發----收付明細
下一篇:Laravel框架中連表查詢
