linuxoracle腳本
A. 高分求助!誰給我解釋下這段linux中oracle備份腳本的意思,越詳細越好,謝謝了!!
您好,我剛接觸LINUX還沒有接觸到ORACLE去,我純粹說一下這個腳本,半斤八兩的嘎嘎。
ORACLE_HOME=/u/proct/oracle816; export ORACLE_HOME
LD_LIBRARY_PATH=/u/proct/oracle816/lib; export LD_LIBRARY_PATH
ORACLE_BASE=/u/proct; export ORACLE_BASE
ORACLE_SID=man; export ORACLE_SID
ORA_NLS33=/u/proct/oracle816/ocommon/nls/admin/data; export ORA_NLS33
PATH=$PATH:/u/proct/oracle816/bin; export PATH
CDPATH=$PATH:$ORACLE_HOME:/u; export CDPATH
NLS_LANG='traditional chinese_taiwan'.ZHT16BIG5; export NLS_LANG
#NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1;export NLS_LANG
NLS_DATE_FORMAT='DD-MM-YYYY HH24:MI:SS';export NLS_DATE_FORMAT
LD_ASSUME_KERNEL=2.4.0; export LD_ASSUME_KERNEL
這一段都是「;」前面聲明變數,「;」後輸出變數,輸出的目的是可以傳遞給下一級的腳本(子進程)。
alias rman='/u/proct/oracle816/bin/rman'
這個就是給/u/proct/oracle816/bin/rman取一個別名rman,其好處再簡單不過,名字太長當然希望用較短的代替很長的輸入了。
extfile=`date '+%w_%p_%H_%M'`
這也是聲明變數extfile,等號右邊是一個命令替換,比如現在是2007年4月29日星期天,15:55那麼這個extfile應該是0_PM_3_55 具體你看下date的MAN文檔就是了。
%w是參數week,它是用0-6來表示星期日-星期六
%p 它是指用12小時制來表示一天的時間的時候上午或者下午AM or PM
%H 小時
%M 分鍾
#rm -rf /www/exp/data/b735data*.*
這個是強制的刪除/www/exp/data/下的以b735data開頭並帶有任意後綴的文件。但是被#號注釋掉了,腳本里以#開頭的都是注釋。
exp foxmold/foxmold file=/www/exp/script/b735data.$extfile compress=y full=y log=n
這些是資料庫里的東西了我不懂你去搜下exp命令的用法吧。
mv /www/exp/script/b735data.$extfile /www/exp/data/.
Mv 移動文件的命令。
#rcp /exp/data/data.$extfile 10.160.6.42:/backup/apple_backup
同樣被注釋掉了,rcp是遠程復制命令。
sh DATAexport
執行腳本
重申因為我不懂oracle所以只純粹說這個腳本哦 呵呵。
B. 菜鳥求助:linux下oracle資料庫自動備份腳本,腳本可實現資料庫自動備份功能,並刪除三天前的備份
這個好辦。 cp 你的資料庫`date +'%y%m%d'` 指定目錄 這個是以年月日來命名備份 刪除的命令是
rm -f 你的資料庫名字`date -d "3 days ago" +'%y%m%d'` 這個是刪除匹配你資料庫的備份名日期前3天的備份文件 他會按照日期-3天匹配3天前的日期來刪除備份的
C. Linux第二次安裝oracle需要跑腳本嗎
執行root.sh腳本主要設置環境變數,如果第一次卸載沒有修改環境變數第二次是不需要執行腳本的,如果無法確認,可以查一下環境變數是否包含,ORACLE_BASE或ORACLE_HOME環境變數。
D. 定時任務 oraclejob linux 腳本怎麼寫
linux下使用crontab命令被用來提交和管理用戶的需要周期性執行的任務,示例如下:
crontab
-e
編輯
周期任務
30
21
*
*
*
/etc/init.d/smb
restart
每晚的21:30重啟smb
crontab命令說明:
crontab命令被用來提交和管理用戶的需要周期性執行的任務...
E. 誰來寫一個linux下開機啟動oracle的腳本
以root身份建立開機啟動oracle服務的腳本:vi /etc/init.d/oracle,添加如下腳本:
#!/bin/sh
#chkconfig: 2345 20 80
#description: Oracle dbstart / dbshut
#以上兩行為chkconfig所需
ORA_HOME=/opt/oracle/11g
ORA_OWNER=oracle
LOGFILE=/var/log/oracle.log
echo "#################################" >> ${LOGFILE}
date +"### %T %a %D: Run Oracle" >> ${LOGFILE}
if [ ! -f ${ORA_HOME}/bin/dbstart ] || [ ! -f ${ORA_HOME}/bin/dbshut ]; then
echo "Error: Missing the script file ${ORA_HOME}/bin/dbstart or ${ORA_HOME}/bin/dbshut!" >> ${LOGFILE}
echo "#################################" >> ${LOGFILE}
exit
fi
start(){
echo "###Startup Database..."
su - ${ORA_OWNER} -c "${ORA_HOME}/bin/dbstart ${ORA_HOME}"
echo "###Done."
echo "###Run database control..."
su - ${ORA_OWNER} -c "${ORA_HOME}/bin/emctl start dbconsole"
echo "###Done."
}
stop(){
echo "###Stop database control..."
su - ${ORA_OWNER} -c "${ORA_HOME}/bin/emctl stop dbconsole"
echo "###Done."
echo "###Shutdown Database..."
su - ${ORA_OWNER} -c "${ORA_HOME}/bin/dbshut ${ORA_HOME}"
echo "###Done."
}
case "$1" in
'start')
start >> ${LOGFILE}
'stop')
stop >> ${LOGFILE}
'restart')
stop >> ${LOGFILE}
start >> ${LOGFILE}
esac
date +"### %T %a %D: Finished." >> ${LOGFILE}
echo "#################################" >> ${LOGFILE}
echo ""
使用如下命令將 /etc/init.d/oracle 置為可執行文件:
chmod a+x /etc/init.d/oracle
至此,可使用如下命令對oracle進行啟動和關閉
/etc/init.d/oracle start #啟動oracle(包括資料庫實例、監聽器、EM)
/etc/init.d/oracle stop #關閉oracle
/etc/init.d/oracle restart #重啟oracle
將 oracle 添加到 chkconfig中:
chkconfig --add oracle
可使用如下命令查看和設置oracle服務的開機啟動級別:
chkconfig | grep oracle #查看oracle服務的開機啟動級別
chkconfig --level 24 oracle off #修改oracle服務的開機啟動級別
chkconfig --level 35 oracle on
至此可使用如下命令對oracle的啟動或關閉進行管理
service oracle start #啟動
service oracle stop #關閉
service oracle restart #重啟
建立連接:
ln -s /etc/init.d/oracle /etc/rc0.d/K01oracle #關機執行
ln -s /etc/init.d/oracle /etc/rc6.d/K01oracle #重啟執行
F. 求一個Linux環境的oracle資料庫利用imp語句導數的shell腳本
這是一個先刪除用戶,再重建用戶,然後賦權的腳本,可以放到crontab中定時執行
sql">source/opt/.bash_profile
DATE=$(date+%Y%m%d)
sqlplus/nolog<connect/assysdba;
DROPUSERWAPUSERCASCADE;
DROPUSERJLTGAMECASCADE;
CREATEUSER"WAPUSER"PROFILE"DEFAULT"
IDENTIFIEDBY"123456"DEFAULTTABLESPACE"JLTGAME"
TEMPORARYTABLESPACE"TEMP"
ACCOUNTUNLOCK;
CREATEUSER"JLTGAME"PROFILE"DEFAULT"
IDENTIFIEDBY"JLTGAME123"DEFAULTTABLESPACE"JLTGAME"
TEMPORARYTABLESPACE"TEMP"
ACCOUNTUNLOCK;
GRANTCREATEVIEWTOJLTGAME;
GRANTCREATETABLETOJLTGAME;
GRANTALTERANYTYPETOJLTGAME;
GRANTCREATESESSIONTOJLTGAME;
GRANTCREATESYNONYMTOJLTGAME;
GRANTCREATETRIGGERTOJLTGAME;
GRANTALTERANYINDEXTOJLTGAME;
GRANTALTERANYTABLETOJLTGAME;
GRANTCREATEANYTYPETOJLTGAME;
GRANTCREATEANYVIEWTOJLTGAME;
GRANTCREATESEQUENCETOJLTGAME;
GRANTCREATESNAPSHOTTOJLTGAME;
GRANTALTERTABLESPACETOJLTGAME;
GRANTCREATEANYINDEXTOJLTGAME;
GRANTCREATEANYTABLETOJLTGAME;
GRANTCREATEPROCEDURETOJLTGAME;
GRANTALTERANYTRIGGERTOJLTGAME;
;
;
;
;
exit
EOF
impuserid=jltgame/JLTGAME123file=/backup/52backup/jltgame$DATE.dmpfull=ylog=/opt/logjltgame$DATE.dmp
G. linux下怎樣運行oracle資料庫建庫腳本
你說的是數據建庫腳本? 如果是這樣的話,直接在sqlplus中執行就可以了。
我感覺你想要表達的是如何建立資料庫吧? 如果是這樣的話,在oracle的安裝的目錄下的bin文件下,有DBCA的shell,運行這個就可以了。 然後就在圖形界面上操作了。
H. 在Linux/Unix下安裝Oracle最後用Root執行的兩個腳本是做什麼用的謝謝你。
用來在Linux系統中生成一系列與Oracle相關的目錄和配置文件,並設置適當的許可權。
其實你直接去看這兩個腳本的內容,就可以了解到了。
I. Linux7.8下靜默安裝oracle11.2
一、使用腳本初始化環境
腳本如下:(標紅處修改對應的配置需求)
#!/bin/bash
#1.配置主機名/etc/hosts 並關閉防火牆及selinux
echo ' 172.168.0.xx linux.tk ' >> /etc/hosts
#注意修改為伺服器的ip和主機名
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
#sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
#2.安裝相關軟體包
yum -y install telnet vim lszrz gcc make binutils gcc-c++ compat-libstdc++-33 elfutils-libelf-devel
elfutils-libelf-devel-static ksh lio lio-devel numactl-devel sysstat
unixODBC unixODBC-devel pcre-devel wget unzip
#3.配置內核參數
echo "fs.aio-max-nr = 1048576" >> /etc/sysctl.conf
echo "fs.file-max = 6815744" >> /etc/sysctl.conf
echo "kernel.shmmni = 4096" >> /etc/sysctl.conf
echo "kernel.sem = 250 32000 100 128" >> /etc/sysctl.conf
echo "net.ipv4.ip_local_port_range = 9000 65500" >> /etc/sysctl.conf
echo "net.core.rmem_default = 262144" >> /etc/sysctl.conf
echo "net.core.rmem_max = 4194304" >> /etc/sysctl.conf
echo "net.core.wmem_default = 262144" >> /etc/sysctl.conf
echo "net.core.wmem_max = 1048576" >> /etc/sysctl.conf
sysctl -p
#4.oracle用戶資源限制
echo "oracle soft nproc 2047" >>/etc/security/limits.conf
echo "oracle hard nproc 16384" >>/etc/security/limits.conf
echo "oracle soft nofile 4096" >>/etc/security/limits.conf
echo "oracle hard nofile 65536" >>/etc/security/limits.conf
#5.登錄配置
echo "session required /lib64/security/pam_limits.so" >> /etc/pam.d/login
echo "session required pam_limits.so" >> /etc/pam.d/login
#改授權
echo "if [ $USER = 'oracle' ];then" >> /etc/profile
echo "if [ $SHELL = '/bin/ksh' ];then" >> /etc/profile
echo "ulimit -p 16384" >> /etc/profile
echo "ulimit -n 65536" >> /etc/profile
echo "else" >> /etc/profile
echo "ulimit -u 16384 -n 65536" >> /etc/profile
echo "fi" >> /etc/profile
echo "fi" >> /etc/profile
source /etc/profile
#6.創建用戶組和用戶
groupadd oinstall
groupadd dba
groupadd oper
useradd -g oinstall -G dba,oper oracle
echo 'oracle' | passwd --stdin oracle
#7.創建相關目錄
mkdir -p /u01/app/oracle
mkdir -p /u01/app/oraInventory
chown -R oracle:oinstall /u01/app
#8.配置oracle用戶環境變數
echo "ORACLE_SID=ora; export ORACLE_SID" >> /home/oracle/.bash_profile
#sid指定為現場的sid
echo "ORACLE_BASE= /u01/app/oracle ; export ORACLE_BASE" >> /home/oracle/.bash_profile
echo "ORACLE_HOME=$ORACLE_BASE/ proct/11.2.0/dbhome_1 ; export ORACLE_HOME" >> /home/oracle/.bash_profile
echo "ORACLE_PATH=/u01/app/common/oracle/sql; export ORACLE_PATH" >>/home/oracle/.bash_profile
echo "ORACLE_TERM=xterm; export ORACLE_TERM" >> /home/oracle/.bash_profile
echo "TNS_ADMIN=$ORACLE_HOME/network/admin; export TNS_ADMIN" >> /home/oracle/.bash_profile
echo "ORA_NLS11=$ORACLE_HOME/nls/data; export ORA_NLS11" >> /home/oracle/.bash_profile
echo "PATH=.:${JAVA_HOME}/bin:${PATH}:$ORACLE_HOME/bin " >> /home/oracle/.bash_profile
echo "PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin " >> /home/oracle/.bash_profile
echo "export PATH " >> /home/oracle/.bash_profile
echo "export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK" >> /home/oracle/.bash_profile
echo "LD_LIBRARY_PATH=$ORACLE_HOME/lib" >> /home/oracle/.bash_profile
echo "LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib " >> /home/oracle/.bash_profile
echo "LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib " >> /home/oracle/.bash_profile
echo "export LD_LIBRARY_PATH" >> /home/oracle/.bash_profile
echo "export LANG=en_US.UTF-8 " >> /home/oracle/.bash_profile
echo "export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK" >> /home/oracle/.bash_profile
echo "CLASSPATH=$ORACLE_HOME/JRE " >> /home/oracle/.bash_profile
echo "CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib" >> /home/oracle/.bash_profile
echo "CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib" >> /home/oracle/.bash_profile
echo "CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib" >> /home/oracle/.bash_profile
echo "export CLASSPATH" >> /home/oracle/.bash_profile
echo "THREADS_FLAG=native; export THREADS_FLAG" >> /home/oracle/.bash_profile
echo "nls_date_format='yyyy-mm-dd hh24:mi:ss' " >> /home/oracle/.bash_profile
echo "export nls_date_format " >> /home/oracle/.bash_profile
echo "export TEMP=/tmp " >> /home/oracle/.bash_profile
echo "export TMPDIR=/tmp " >> /home/oracle/.bash_profile
echo "umask 022 " >> /home/oracle/.bash_profile
source ~/.bash_profile
二、上傳或者下載oracle安裝包並解壓,例如放置在/opt/目錄下
unzip p13390677_112040_Linux-x86-64_1of7.zip
unzip p13390677_112040_Linux-x86-64_2of7.zip
直接在目錄解壓,會在當前目錄中生成database目錄
三、修改應答文件安裝資料庫軟體
修改前建議先備份下
cp /opt/database/response/*.rsp /opt/database/rspbak
3.1、生成修改響應文件(/opt/database/response/db_install.rsp)
備註:清空源文件,復制粘貼如下內容(標紅處需要修改對應的設置需求):
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME= linux.tk
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION= /u01/app/oraInventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME= /u01/app/oracle/proct/11.2.0/dbhome_1
ORACLE_BASE= /u01/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.EEOptionsSelection=false
oracle.install.db.optionalComponents=oracle.rdbms.partitioning:11.2.0.4.0,oracle.oraolap:11.2.0.4.0,oracle.rdbms.dm:10.2.0.4.0,oracle.rdbms.lbac:11.2.0.4.0,oracle.rdbms.rat:11.2.0.4.0
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oper
DECLINE_SECURITY_UPDATES=true
oracle.installer.autoupdates.option=SKIP_UPDATES
3.2、開始安裝
1)、用oracle用戶登錄操作
# su - oracle
$ cd /opt/database
$ ./runInstaller -silent -responseFile /opt/database/response/db_install.rsp
2)、在安裝過程中可以新開會話,使用tailf 命令查看進度
# tailf /u01/app/oraInventory/logs/installActions2022-XX-XX_03-28-06PM.log
提示安裝結束,需要在root用戶執行兩個腳本,如下:
# /u01/app/oraInventory/orainstRoot.sh
# /u01/app/oracle/proct/11.2.0/dbhome_1/root.sh
四、修改應答文件安裝資料庫實例(/opt/database/response/dbca.rsp)
安裝實例前,需要新建一個實例存放的目錄(/home/OracleData/),如下:
# mkdir /home/OracleData
# chown -R oracle:oinstall /home/OracleData/
4.1、修改應答文件
[GENERAL]
RESPONSEFILE_VERSION = "11.2.0"
OPERATION_TYPE = "createDatabase"
[CREATEDATABASE]
GDBNAME = "ora"
SID = "ora"
TEMPLATENAME = "General_Purpose.dbc"
SYSPASSWORD = "***012"
SYSTEMPASSWORD = "***012"
DATAFILEDESTINATION = /home/OracleData/
RECOVERYAREADESTINATION = /u01/app/oracle/flash_recovery_area
CHARACTERSET = "ZHS16GBK"
TOTALMEMORY = "2048"
4.2、建實例,登錄oracle用戶
# su - oracle
$ dbca -silent -responseFile /opt/database/response/dbca.rsp
此安裝過程是有進度顯示,不用tailf查看,不過也可以查看對應的log日誌查看進度
4.3、刪除實例
編輯應答文件
#vim /opt/database/response/del_dbca.rsp
[GENERAL]
RESPONSEFILE_VERSION = "11.2.0"
OPERATION_TYPE = "deleteDatabase"
[DELETEDATABASE]
SOURCEDB = "ora "
$ dbca -silent -responseFile del_dbca.rsp
五、啟動監聽,配置自啟動等
5.1、啟動監聽
# su – oracle
$ lsnrctl start
查看狀態 lsnrctl status
# netstat -tnulp | grep 1521
# ps -ef | grep ora_ | grep -v grep
5.2、設置自啟動
修改vim /etc/oratab 如下
ora:/u01/app/oracle/proct/11.2.0/dbhome_1: Y
5.3、修改dbstart文件
vim /u01/app/oracle/proct/11.2.0/dbhome_1/bin/dbstart
將ORACLE_HOME_LISTNER=$1
修改為ORACLE_HOME_LISTNER=$ORACLE_HOME
5.4、將dbstart加入開機自啟動,/etc/rc.d/rc.local中增加
su - oracle -lc /u01/app/oracle/proct/11.2.0/dbhome_1/bin/dbstart
賦許可權 chmod +x /etc/rc.d/rc.local
5.3、登錄資料庫設置許可權等
sqlplus / as sysdba
startup;
alter system register;
create user ora identified by ***012;
grant dba to ora;
exit
六、遠程連接資料庫
6.1、開放1521埠
firewall-cmd --zone=public --add-port=1521/tcp --permanent
firewall-cmd –reload
firewall-cmd --list-ports