一、 编写启动文件
export ORACLE_HOSTNAME=oracledb
export ORACLE_BASE=/data/app/oracle
export ORACLE_HOME=
O
R
A
C
L
E
B
A
S
E
/
p
r
o
d
u
c
t
/
11.2.0
/
e
x
p
o
r
t
O
R
A
C
L
E
S
I
D
=
O
R
C
L
e
x
p
o
r
t
P
A
T
H
=
.
:
ORACLE_BASE/product/11.2.0/ export ORACLE_SID=ORCL export PATH=.:
ORACLEBASE/product/11.2.0/exportORACLESID=ORCLexportPATH=.:ORACLE_HOME/bin:
O
R
A
C
L
E
H
O
M
E
/
O
P
a
t
c
h
:
ORACLE_HOME/OPatch:
ORACLEHOME/OPatch:ORACLE_HOME/jdk/bin:
P
A
T
H
e
x
p
o
r
t
L
C
A
L
L
=
"
e
n
U
S
"
e
x
p
o
r
t
L
A
N
G
=
"
e
n
U
S
"
e
x
p
o
r
t
N
L
S
L
A
N
G
=
"
A
M
E
R
I
C
A
N
A
M
E
R
I
C
A
.
Z
H
S
16
G
B
K
"
e
x
p
o
r
t
N
L
S
D
A
T
E
F
O
R
M
A
T
=
"
Y
Y
Y
Y
−
M
M
−
D
D
H
H
24
:
M
I
:
S
S
"
e
x
p
o
r
t
L
D
L
I
B
R
A
R
Y
P
A
T
H
=
PATH export LC_ALL="en_US" export LANG="en_US" export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK" export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS" export LD_LIBRARY_PATH=
PATHexportLCALL="enUS"exportLANG="enUS"exportNLSLANG="AMERICANAMERICA.ZHS16GBK"exportNLSDATEFORMAT="YYYY−MM−DDHH24:MI:SS"exportLDLIBRARYPATH=ORACLE_HOME/lib:$ORACLE_HOME/rdbms/lib:/lib:/usr/lib: /usr/local/lib
dateTime=date +%Y_%m_%d_%H_%M
#当前系统时间
days=7 #删除7天前的备份数据s
orsid=‘数据库地址/orcl’ #oralce连接信息
orowner=用户名 # 备份此用户下面的数据
bakuser=用户 #用此用户来执行备份,必须要有备份操作的权限
bakpass=密码 #执行备注的用户密码
bakdir=/oraDataBAK/bakData #备份文件路径,需要提前创建好
bakdata=
o
r
o
w
n
e
r
"
"
orowner"_"
orowner""dateTime.dmp #备份数据库名称
baklog=
o
r
o
w
n
e
r
"
"
orowner"_"
orowner""dateTime.log #备份执行时候生成的日志文件名称
ordatabak=
o
r
o
w
n
e
r
"
"
orowner"_"
orowner""dateTime.tar.gz #最后保存的Oracle数据库备份文件
remotePath=/data/database/backup/blsp/ #上传到远程服务器的路径
cd $bakdir #进入备份目录
mkdir -p $orowner #按需要备份的Oracle用户创建目录
cd $orowner #进入目录
exp
b
a
k
u
s
e
r
/
bakuser/
bakuser/bakpass@
o
r
s
i
d
g
r
a
n
t
s
=
y
o
w
n
e
r
=
orsid grants=y owner=
orsidgrants=yowner=orowner file=
b
a
k
d
i
r
/
bakdir/
bakdir/orowner/
b
a
k
d
a
t
a
l
o
g
=
bakdata log=
bakdatalog=bakdir/
o
r
o
w
n
e
r
/
orowner/
orowner/baklog #执行备份
tar -zcvf $ordatabak $bakdata $baklog #压缩备份文件和日志文件
find
b
a
k
d
i
r
/
bakdir/
bakdir/orowner -type f -name “.log" -exec rm {} ; #删除备份文件
find
b
a
k
d
i
r
/
bakdir/
bakdir/orowner -type f -name ".dmp” -exec rm {} ; #删除日志文件
find
b
a
k
d
i
r
/
bakdir/
bakdir/orowner -type f -name “*.tar.gz” -mtime +$days -exec rm -rf {} ; #删除7天前的备份(注意:{} \中间有空格)
sshpass -p !QAZ2wsx.? scp
b
a
k
d
i
r
/
bakdir/
bakdir/orowner/
o
r
d
a
t
a
b
a
k
10.60.11.78
:
ordatabak 10.60.11.78:
ordatabak10.60.11.78:remotePath #将备份文件上传到远程服务器 如果不输人密码上传请参考
注意是.sh文件
二、设置定时启动
1、 编写定时执行脚本命令
执行命令:crontab -e
2、按键盘上“a”键,vi界面出现 INSERT后,开始进行编辑操作
3、设置几点启动
- */1 * * * /tmp/test.sh
表示每小时执行 - 23-3/1 * * * /tmp/test.sh
表示23点到3点每一小时执行一次
30 20 * * * /tmp/test.sh
表示每天晚上8点半执行
10 10 1 * */tmp/test.sh
表示每月1号10点10分执行操作
10 10 1 1 */tmp/test.sh
表示每年1月1号10点10分执行操作
10 10 * * 1 /tmp/test.sh
表示每周一10点10分执行操作
4、编辑完毕后,按ESC键,跳到命令模式,然后进行保存退出或不保存退出操作:
保存,不退出vi----------------------- :w
强制保存,不退出vi----------------- :w!
将修改另外保存到file中,但不退出vi(不常用)----------:w file
保存,并退出vi----------------------- :wq 或 :x
强制保存,并退出vi---------------- :wq!
不保存,并退出vi----------------------- :q
不保存,并强制退出vi----------------------- :q!
放弃所有修改,从上次保存文件开始再编辑------------------- :e!
5、查看定时任务
命令:crontab -l
这样就完成了