定时备份oracle数据库文件并备份至远程服务器
1、脚本
cat jira.sh
#/bin/sh
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product
export ORACLE_SID=orcl
export LD_LIBRARY_PATH=
O
R
A
C
L
E
H
O
M
E
/
l
i
b
:
/
l
i
b
:
/
u
s
r
/
l
i
b
e
x
p
o
r
t
P
A
T
H
=
ORACLE_HOME/lib:/lib:/usr/lib export PATH=
ORACLEHOME/lib:/lib:/usr/libexportPATH=PATH:
H
O
M
E
/
b
i
n
:
HOME/bin:
HOME/bin:ORACLE_HOME/bin
export export NLS_LANG=AMERICAN_AMERICA.UTF8
date=date +%Y%m%d-%H%M%S
bakdata=
d
a
t
e
.
d
m
p
b
a
k
l
o
g
=
date.dmp baklog=
date.dmpbaklog=date.log
ordatabak=
d
a
t
e
.
z
i
p
e
x
p
j
i
r
a
/
b
o
s
s
j
i
r
a
f
i
l
e
=
/
h
o
m
e
/
b
a
c
k
u
p
/
j
i
r
a
/
date.zip exp jira/bossjira file=/home/backup/jira/
date.zipexpjira/bossjirafile=/home/backup/jira/bakdata log=/home/backup/jira/$baklog
cd /home/backup/jira
zip -m $ordatabak $baklog
b
a
k
d
a
t
a
s
c
p
−
P
24
/
h
o
m
e
/
b
a
c
k
u
p
/
j
i
r
a
/
bakdata scp -P24 /home/backup/jira/
bakdatascp−P24/home/backup/jira/ordatabak root@192.168.1.115:/home/backup/jira
find /home/backup/jira/ -mtime +7 -name “*.zip” -exec rm -rf {} ;
scp这里如果被远程服务器端口号是22,则直接
scp /home/backup/jira/$ordatabak root@192.168.1.115:/home/backup/jira
如果不是22才需要-P指定端口号。
2、导出空表
此方法只对当前用户有效,每个用户要想全部导出都需要做此操作。
连接对应数据库,执行下面语句后即可全部导出所有表:
DECLARE
BEGIN
FOR V_ST IN (SELECT U.TABLE_NAME FROM USER_TABLES U where u.NUM_ROWS=0 and u.tablespace_name is not null)
LOOP
EXECUTE IMMEDIATE ‘ALTER TABLE ‘||V_ST.TABLE_NAME||’ ALLOCATE EXTENT’;
END LOOP;
END;/
-注意:如果在SQL windows执行,不需要加“/”,如果在command window执行则需要加“/ "
3、远程ssh无密码
ssh-keygen
中间让输入密码的地方直接回车,不要输入密码。
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.1.115
将密钥传给另外一台主机
成功后ssh连接尝试
ssh root@192.168.1.115
成功登入。
4、自动任务
自动化任务
yum install vixie-cron
yum install crontabs
service crond start
service crond status
/etc/rc.d/init.d/crond restart
crontab –e
30 14 * * * /bin/sh /opt/dbback.sh
列出某个用户cron服务的详细内容
crontab -l
删除没个用户的cron服务
crontab -r
编辑某个用户的cron服务
crontab -e
可用crontab -e命令来编辑,编辑的是/var/spool/cron下对应用户的cron文件,也可以直接修改/etc/crontab文件
每5分钟运行数据同步的脚本
*/5 * * * * /home/blue/do/rsyncfile.sh
5、导入数据(cmd执行)
unzip 20171121-150252.zip
exp jira/1@192.168.1.218:1521/ORCL rows=y file=d:\u01\0821.dmp
imp jira/bossjira@192.168.4.193:1521/jira file=‘d:\u01\0821.dmp’ FULL=Y ignore=y注意:原来有表的话不会覆盖,必须删掉后再导入