官方下载链接:
https://www.oracle.com/middleware/technologies/goldengate-downloads.html
一、软件环境
CentOS7.5
二、脚本
shell-1
这里是root用户
注意,如果这里修改了里面的参数,请保持上下一致
vim 1.sh
cat >> /home/oracle/.bash_profile << EOF
umask 022
export ORACLE_TERM=xterm
#export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib
export ORACLE_HOSTNAME=oracledb
export ORACLE_BASE=/app/ora/oracle
export ORACLE_HOME=\$ORACLE_BASE/product/11.2.0
export ORACLE_SID=ORCL
export PATH=.:\$ORACLE_HOME/bin:\$ORACLE_HOME/OPatch:\$ORACLE_HOME/jdk/bin:\$PATH
export LC_ALL="en_US"
export LANG="en_US"
#export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"
EOF
# 修改shm的大小
sed -i -e '/\/dev\/shm/d' /etc/fstab
cat >> /etc/fstab << EOF
tmpfs /dev/shm tmpfs defaults,size=4096M 0 0
EOF
source /etc/profile
sh 1.sh
注意,必须等脚本执行结束才能执行下一个脚本
shell-2
这里是oracle用户
vim 2.sh
#!/bin/sh
hostname=oracledb
set -x
rm -rf /app/ora/etc/*
mkdir /app/ora/etc/
cp /app/ora/database/response/db_install.rsp /app/ora/etc/
sed -i \
-e 's|^oracle.install.option=.*|oracle.install.option=INSTALL_DB_SWONLY|' \
-e 's|^UNIX_GROUP_NAME=.*|UNIX_GROUP_NAME=oinstall|' \
-e 's|^INVENTORY_LOCATION=.*|INVENTORY_LOCATION=/app/ora/oraInventory|' \
-e 's|^SELECTED_LANGUAGES=.*|SELECTED_LANGUAGES=en,zh_CN|' \
-e 's|^ORACLE_HOSTNAME=.*|ORACLE_HOSTNAME=${hostname}|' \
-e 's|^ORACLE_HOME=.*|ORACLE_HOME=/app/ora/oracle/product/11.2.0|' \
-e 's|^ORACLE_BASE=.*|ORACLE_BASE=/app/ora/oracle|' \
-e 's|^oracle.install.db.InstallEdition=.*|oracle.install.db.InstallEdition=EE|' \
-e 's|^oracle.install.db.isCustomInstall=.*|oracle.install.db.isCustomInstall=true|' \
-e 's|^oracle.install.db.DBA_GROUP=.*|oracle.install.db.DBA_GROUP=dba|' \
-e 's|^oracle.install.db.OPER_GROUP=.*|oracle.install.db.OPER_GROUP=dba|' \
-e 's|^oracle.install.db.config.starterdb.type=.*|oracle.install.db.config.starterdb.type=GENERAL_PURPOSE|' \
-e 's|^oracle.install.db.config.starterdb.globalDBName=.*|oracle.install.db.config.starterdb.globalDBName=orcl|' \
-e 's|^oracle.install.db.config.starterdb.SID=.*|oracle.install.db.config.starterdb.SID=orcl|' \
-e 's|^oracle.install.db.config.starterdb.memoryLimit=.*|oracle.install.db.config.starterdb.memoryLimit=512|' \
-e 's|^oracle.install.db.config.starterdb.password.ALL=.*|oracle.install.db.config.starterdb.password.ALL=oracle|' \
-e 's|^DECLINE_SECURITY_UPDATES=.*|DECLINE_SECURITY_UPDATES=true|' \
/app/ora/etc/db_install.rsp
cd /app/ora/database
./runInstaller -silent -responseFile /app/ora/etc/db_install.rsp -ignorePrereq
sh 2.sh
shell-3
这里是root用户
sh /app/ora/oraInventory/orainstRoot.sh
sh /app/ora/oracle/product/11.2.0/root.sh
这里是oracle用户
vim 3.sh
注意这里对文件内容参数的修改,请先自己执行其中的几条sed命令试试能不能修改,这里出现过同为11g版本,解压安装出现不同内容的情况,导致修改失败,万一也失败了,重新改完执行就基本问题不大
#!/bin/sh
set -x
source ${HOME}/.bash_profile
cp /app/ora/database/response/netca.rsp /app/ora/etc/
netca /silent /responsefile /app/ora/etc/netca.rsp
sleep 10
netstat -tnpl | grep 1521
cp /app/ora/database/response/dbca.rsp /app/ora/etc/
sed -i \
-e 's|.*RESPONSEFILE_VERSION\s*=.*|RESPONSEFILE_VERSION = "11.2.0"|' \
-e 's|.*OPERATION_TYPE\s*=.*|OPERATION_TYPE = "createDatabase"|' \
-e 's|.*GDBNAME\s*=.*|GDBNAME = "orcl"|' \
-e 's|.*SID\s*=.*|SID = "orcl"|' \
-e 's|.*SYSPASSWORD\s*=.*|SYSPASSWORD = "oracle"|' \
-e 's|.*SYSTEMPASSWORD\s*=.*|SYSTEMPASSWORD = "oracle"|' \
-e 's|.*SYSMANPASSWORD\s*=.*|SYSMANPASSWORD = "oracle"|' \
-e 's|.*DBSNMPPASSWORD\s*=.*|DBSNMPPASSWORD = "oracle"|' \
-e 's|.*DATAFILEDESTINATION\s*=.*|DATAFILEDESTINATION = /app/ora/oracle/oradata|' \
-e 's|.*RECOVERYAREADESTINATION\s*=.*|RECOVERYAREADESTINATION = /app/ora/oracle/fast_recovery_area|' \
-e 's|.*CHARACTERSET\s*=.*|CHARACTERSET = "AL32UTF8"|' \
-e 's|.*TOTALMEMORY\s*=.*|TOTALMEMORY = "1638"|' \
/app/ora/etc/dbca.rsp
dbca -silent -responseFile /app/ora/etc/dbca.rsp
sleep 10
ps -ef | grep ora_ | grep -v grep
lsnrctl status
cp -v $(find /app/ora/oracle/admin/orcl/pfile/ -name "init.ora*") /app/ora/oracle/product/11.2.0/dbs/initORCL.ora
exit
sh 3.sh
注:如果这里出现长时间不执行的情况,请手动执行每一条命令
正常执行完毕就可以登录oracle:sqlplus / as sysdba
shell-4
这里是root用户
vim 4.sh
#!/bin/sh
set -x
sed -i 's|^ORACLE_HOME_LISTNER=.*|ORACLE_HOME_LISTNER=\$ORACLE_HOME|' /app/ora/oracle/product/11.2.0/bin/dbstart
sed -i 's|^ORACLE_HOME_LISTNER=.*|ORACLE_HOME_LISTNER=\$ORACLE_HOME|' /app/ora/oracle/product/11.2.0/bin/dbshut
sed -i 's|:N$|:Y|' /etc/oratab
cat >> /etc/rc.d/init.d/oracle << EOF
#! /bin/bash
# oracle: Start/Stop Oracle Database 11g R2
#
# chkconfig: 345 90 10
# description: The Oracle Database is an Object-Relational Database Management System.
#
# processname: oracle
. /etc/rc.d/init.d/functions
LOCKFILE=/var/lock/subsys/oracle
ORACLE_HOME=/data/app/oracle/product/11.2.0
ORACLE_USER=oracle
case "\$1" in
'start')
if [ -f \$LOCKFILE ]; then
echo \$0 already running.
exit 1
fi
echo -n \$"Starting Oracle Database:"
su - \$ORACLE_USER -c "\$ORACLE_HOME/bin/lsnrctl start"
su - \$ORACLE_USER -c "\$ORACLE_HOME/bin/dbstart \$ORACLE_HOME"
su - \$ORACLE_USER -c "\$ORACLE_HOME/bin/emctl start dbconsole"
touch \$LOCKFILE
;;
'stop')
if [ ! -f \$LOCKFILE ]; then
echo \$0 already stopping.
exit 1
fi
echo -n \$"Stopping Oracle Database:"
su - \$ORACLE_USER -c "\$ORACLE_HOME/bin/lsnrctl stop"
su - \$ORACLE_USER -c "\$ORACLE_HOME/bin/dbshut"
su - \$ORACLE_USER -c "\$ORACLE_HOME/bin/emctl stop dbconsole"
rm -f \$LOCKFILE
;;
'restart')
\$0 stop
\$0 start
;;
'status')
if [ -f \$LOCKFILE ]; then
echo \$0 started.
else
echo \$0 stopped.
fi
;;
*)
echo "Usage: \$0 [start|stop|status]"
exit 1
esac
exit 0
EOF
chmod +x /etc/init.d/oracle
systemctl enable oracle
chown -R oracle:oinstall /var/tmp/.oracle
sh 4.sh