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