当前位置:首页 » 编程软件 » linuxoracle脚本编写

linuxoracle脚本编写

发布时间: 2022-08-05 03:42:13

‘壹’ linux下编写以个shell脚本,实现对oracle数据库抽取指定条件的数据并且保存在一个文本文件中。

empno=100不存在的,改成有的数据了。
#!/bin/bash
result=$(sqlplus -s 'scott/tiger@dbname'<<EOF
spool test.txt
set pages 0
set feed off
set heading off;
set feedback off;
set verify off;
set linesize 1000;
SELECT * FROM scott.emp where empno=7369;
spool off
EOF
)
echo $result
~
~
~
~
~
~
~
~
~
"test.sh" 14L, 256C written
oracle@****:~> ./test.sh
7369 SMITH CLERK 7902 17-DEC-80 2240.06 20
oracle@****:~> more test.txt
7369 SMITH CLERK 7902 17-DEC-80 2240.06
20

‘贰’ linux下编写以个shell脚本,实现对oracle数据库的查询结果保存在一个变量中

empno=100不存在的,改成有的数据了。
#!/bin/bash
result=$(sqlplus -s 'scott/tiger@dbname'<<EOF
spool test.txt
set pages 0
set feed off
set heading off;
set feedback off;
set verify off;
set linesize 1000;
SELECT * FROM scott.emp where empno=7369;
spool off
EOF
)
echo $result
~
~
~
~
~
~
~
~
~
"test.sh" 14L, 256C written
oracle@****:~> ./test.sh
7369 SMITH CLERK 7902 17-DEC-80 2240.06 20
oracle@****:~> more test.txt
7369 SMITH CLERK 7902 17-DEC-80 2240.06
20

‘叁’ 求大神给一个linux下oracle数据库导出txt文件的shell脚本

linux下oracle数据库导出txt文件的shell脚本可以在oracle里面直接导出sql的脚本的,直接运行就可以的,满意请采纳

‘肆’ 定时任务 oraclejob linux 脚本怎么写

linux下使用crontab命令被用来提交和管理用户的需要周期性执行的任务,示例如下:
crontab
-e
编辑
周期任务
30
21
*
*
*
/etc/init.d/smb
restart
每晚的21:30重启smb
crontab命令说明:
crontab命令被用来提交和管理用户的需要周期性执行的任务...

‘伍’ 求大神给一个linux下oracle数据库导出的shell脚本

把下面的代码保存为服务器端的脚本,执行即可。
PS:需要自己替换一下双引号中的内容
#!/bin/sh
. $HOME/.bash_profile
export ORACLE_SID="你的数据库的SID"
CutDATE=`date '+%Y-%m%d-%H%M'`
DATE=`date -d '-2 day' '+%Y-%m%d'`
export NLS_LANG="你的字符集设定"
exp "具有权限的账号"/"密码" file=/home/oracle/2014/"你的数据库的SID"_$CutDATE.dmp log=/home/oracle/2014/"你的数据库的SID"_$CutDATE.log owner=user1,user2

‘陆’ 如何在LINUX下启动ORACLE

手动启动:
用 oracle用户登录(或su - oracle)
lsnrctl start
sqlplus / as sysdba
startup
exit

自动启动,要编写一个启动脚本,用root用户拷到/etc/init.d下,取名叫oracle
然后, chkconfig oracle on,即可加入服务列表
/etc/init.d/oracle start #启动
/etc/init.d/oracle stop #停止
脚本的示例(里面的变量要按实际情况修改):
#!/bin/bash
#
# chkconfig: 345 99 01
# description: This is a program that is responsible for taking care of
# configuring the Oracle Database 11g Stardard/Enterprise Edition and its associated
# services.
#

# Source fuction library
if [ -f /lib/lsb/init-functions ]
then
. /lib/lsb/init-functions
elif [ -f /etc/init.d/functions ]
then
. /etc/init.d/functions
fi

# Set path if path not set (if called from /etc/rc)
case $PATH in
"") PATH=/bin:/usr/bin:/sbin:/etc
export PATH ;;
esac

# Save LD_LIBRARY_PATH
SAVE_LLP=$LD_LIBRARY_PATH

RETVAL=0

ORACLE_OWNER=oracle
ORACLE_OWNER_HOME=/opt/oracle
ORACLE_BASE=$ORACLE_OWNER_HOME/app/oracle
ORACLE_HOME=$ORACLE_BASE/proct/11.2.0/dbhome_1
ORACLE_SID=orcl
ORACLE_UNQNAME=$ORACLE_SID
LSNR=$ORACLE_HOME/bin/lsnrctl
SQLPLUS=$ORACLE_HOME/bin/sqlplus
STARTDB_SQL=$(mktemp /tmp/start.XXXXXX)
echo -e "startup;\nquit;\n" > $STRTDB_SQL
STOPDB_SQL=$(mktemp /tmp/stop.XXXXXX)
echo -e "shutdown immediate;\nquit;\n" > $STOPDB_SQL
SU=/bin/su
export ORACLE_HOME
export ORACLE_SID
export PATH=$ORACLE_HOME/bin:$PATH
LOG="$ORACLE_HOME_LISTNER/listener.log"

export LC_ALL=C

if [ $(id -u) != "0" ]
then
echo "You must be root to run the configure script. Login as root and then run the
configure script."
exit 1
fi

if [ -f /etc/redhat-release ]
then
. /etc/init.d/functions

init_status()
{
return 0
}
exit_status()
{
exit $?
}
success_status()
{
success
echo
}
failure_status()
{
failure $?
echo
}

elif [ -f /etc/SuSE-release ]
then
. /etc/rc.status

init_status()
{
rc_reset
}
success_status()
{
echo "OK"
return 0
}
failure_status()
{
echo "Failed"
return 1
}
exit_status()
{
exit $?
}

else
if [ -d /etc/default ]
then
CONFIGURATION="/etc/default/$CONFIG_NAME"
fi

init_status()
{
return 0
}

success_status()
{
echo "OK"
return 0
}

failure_status()
{
echo "Failed"
return 0
}

exit_status()
{
exit $?
}
fi

init_status

start() {

status=`ps -ef | grep tns | grep oracle`
if [ "$status" == "" ]
then
if [ -f $ORACLE_HOME/bin/tnslsnr ]
then
echo "Starting Oracle Net Listener."
$SU -s /bin/bash $ORACLE_OWNER -c "$LSNR start" # > /dev/null 2>&1
fi
fi
echo "Starting Oracle Database 11g Instance."
$SU -s /bin/bash $ORACLE_OWNER -c "$SQLPLUS -s /nolog @${STARTDB_SQL}" # > /dev/null 2>&1
RETVAL=$?
if [ $RETVAL -eq 0 ]
then
echo
else
echo Failed to start Oracle Net Listener using $ORACLE_HOME/bin/tnslsnr\
and Oracle Database using $ORACLE_HOME/bin/sqlplus.
RETVAL=1
return $RETVAL
fi

}

startconsole() {

$SU -s /bin/bash $ORACLE_OWNER -c "$ORACLE_HOME/bin/emctl start dbconsole &" # > /dev/null 2>&1
RETVAL=$?
return $RETVAL
}

stop() {

# Stop Oracle 11g Database and Listener
$SU -s /bin/bash $ORACLE_OWNER -c "$ORACLE_HOME/bin/emctl stop dbconsole &" # > /dev/null 2>&1

echo Shutting down Oracle Database 11g Instance.
$SU -s /bin/bash $ORACLE_OWNER -c "$SQLPLUS -s /nolog @${STOPDB_SQL}" # > /dev/null 2>&1
echo Stopping Oracle Net Listener.
$SU -s /bin/bash $ORACLE_OWNER -c "$LSNR stop" # > /dev/null 2>&1
RETVAL=$?
echo
if [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$LSNR
then
return $RETVAL
fi
}

stopconsole() {
# Stop Oracle 11g Database and Listener
$SU -s /bin/bash $ORACLE_OWNER -c "$ORACLE_HOME/bin/emctl stop dbconsole &" # > /dev/null 2>&1
RETVAL=$?
return $RETVAL
}

# See how we were called
case "$1" in
start)
start
;;
startconsole)
startconsole
;;
stop)
stop
;;
stopconsole)
stopconsole
;;
restart|reload|force-reload)
stop
start
RETVAL=$?
;;
*)
echo $"Usage: $0 {start|stop|restart|reload|force-reload}"
exit 1
esac

‘柒’ 谁来写一个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 #重启执行

‘捌’ 在Linux下手工创建oracle数据库的详细步骤,谢谢,我的环境不能生效。

在LINUX平台上手动创建数据库(oracle 10g)

1.首先设置要创建的ORACLE的SID,如果在.bash_profile文件里设置里该变量,就不用设置了。
$echo $ORACEL_SID
mdy
如果没有设置,就手动设置,如果一个服务器上要运行多个ORACLE实例,也需要手动设置。
export ORACLE_SID=mydb

2. 创建需要的诊断目录,这些目录都是ORACLE进程遇到错误或用户手动TRACE时需要的。
mkdir -p $ORACLE_BASE/admin/mydb/amp
mkdir -p $ORACLE_BASE/admin/mydb/bmp
mkdir -p $ORACLE_BASE/admin/mydb/cmp
mkdir -p $ORACLE_BASE/admin/mydb/ump
mkdir -p $ORACLE_BASE/admin/mydb/pfile
创建oracle的数据文件目录
mkdir -p $ORACLE_BASE/oradata/mydb

3. 创建ORACLE的参数文件$ORACLE_HOME/dbs/initmydb.ora 内容如下:

aq_tm_processes=0
audit_file_dest=/oracle/admin/mydb/amp
background_mp_dest=/oracle/admin/mydb/bmp
compatible=10.2.0.1.0
control_files=/oracle/oradata/mydb/control01.ctl, /oracle/oradata/mydb/control02.ctl, /oracle/oradata/mydb/control03.ctl
core_mp_dest=/oracle/admin/mydb/cmp
db_block_size=8192
db_domain=""
db_file_multiblock_read_count=16
db_name=mydb
instance_name=mydb
dispatchers="(PROTOCOL=TCP) (SERVICE=mydbXDB)"
job_queue_processes=10
nls_length_semantics=BYTE
open_cursors=300
pga_aggregate_target=94371840
processes=150
remote_login_passwordfile=EXCLUSIVE
resource_manager_plan=""
sessions=170
sga_target=285212672
undo_management=AUTO
undo_retention=900
undo_tablespace=UNDOTBS1
user_mp_dest=/oracle/admin/mydb/ump

4.创建密码文件
orapwd file=$ORACLE_HOME/dbs/orapwmydb password=admin entries=5 force=y

5.创建oracle的建库脚本 createdb.sql,内容如下:
create database mydb
MAXINSTANCES 1
MAXLOGHISTORY 1
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXDATAFILES 100
DATAFILE
'/oracle/oradata/mydb/system01.dbf' size 100m reuse autoextend on next 1m maxsize unlimited extent management local
sysaux datafile
'/oracle/oradata/mydb/sysaux01.dbf' size 100m reuse autoextend on next 1m maxsize unlimited
default temporary tablespace TEMP tempfile
'/oracle/oradata/mydb/temp01.dbf' size 20m reuse autoextend on next 640k maxsize unlimited
undo tablespace UNDOTBS1 datafile
'/oracle/oradata/mydb/undo01.dbf' size 20m reuse autoextend on next 5M maxsize unlimited
logfile
GROUP 1 ('/oracle/oradata/mydb/redo1.dbf') size 10m,
GROUP 2 ('/oracle/oradata/mydb/redo2.dbf') size 10m,
GROUP 3 ('/oracle/oradata/mydb/redo3.dbf') size 10m
CHARACTER SET ZHS16GBK
NATIONAL CHARACTER SET AL16UTF16
;

6.数据库创建完成后,再创建ORACLE的数据字典。
SQL>@?/rdbms/admin/catalog.sql
SQL>@?/rdbms/admin/catproc.sql
SQL>@?/rdbms/admin/catexp.sql

到此ORACLE手动创建过程就完成了

‘玖’ 怎么执行oracle数据库自动备份 linux 脚本

Oracle自动备份数据库不外乎以下三种方式WINDOWS下的任务计划(At命令)
UNIX下的Crontab
第三方工具如Viritas
在以上三种方式中Viritas属于第三方工具,很多人可能都没有接触,主要说一下windows的任务计划与unix的cron
1、生成脚本文件,如backup.rcv 假定文件内容如下:
$>cat backup.rcv connect target sys/password rcvcat rman/rman@localname; run{ allocate channel c1 type disk; allocate channel c2 type disk; allocate channel c3 type disk; backup fileaperset 3 format ‘/u01/oradata/backup/arch%u_%s_%p’ archivelog all delete input; release channel c1; release channel c2; release channel c3; }

2、生成执行文件在windows上生成backup_archive.bat,内容包括rman cmdfile = backup.rcv 在unix下生成 backup_archive.sh,内容包括oracle/ramn/rman cmdfile = backup.rcv
3、加入调度在windows中用任务计划向导即可,或使用at命令。在unix中,在目标机器上编写一个文件,用以启动Oracle自动备份进程。假定文件名为ORACLE,文件将放在/var/spool/cron/crontabs目录下
$>cat oracle
0 23 * * 0 backup_archive.sh
#表示星期天23点对数据库备份
0 12,18 * * * backup_archive.sh
#表示每天12点,18点备份
Crontab文件的每一行由六个域(minutes,hours,day of month,month,day of week,command)组成,域之间用空格或Tab分隔开来

‘拾’ linux下怎样运行oracle数据库建库脚本

你说的是数据建库脚本? 如果是这样的话,直接在sqlplus中执行就可以了。
我感觉你想要表达的是如何建立数据库吧? 如果是这样的话,在oracle的安装的目录下的bin文件下,有DBCA的shell,运行这个就可以了。 然后就在图形界面上操作了。

热点内容
linux进程的退出 发布:2025-02-09 03:00:22 浏览:813
淘宝上传时间 发布:2025-02-09 02:42:13 浏览:637
ios缓存数据 发布:2025-02-09 02:32:06 浏览:253
苹果手机如何存储word 发布:2025-02-09 02:23:02 浏览:780
安卓手机如何有苹果的emoji 发布:2025-02-09 02:11:02 浏览:808
编译原理已知语言求文法习题 发布:2025-02-09 02:05:15 浏览:132
中国首个具有世界影响力的编译器 发布:2025-02-09 01:56:21 浏览:720
tomcat上传超时 发布:2025-02-09 01:41:42 浏览:484
androidactivity竖屏 发布:2025-02-09 01:41:40 浏览:378
家庭配置怎么合理 发布:2025-02-09 01:36:14 浏览:808