Linux中设置定期备份oracle数据库
时间:2021-07-01 10:21:17
帮助过:2人阅读
create tablespace test_data
logging
datafile ‘/u01/app/oradata/test/TEST.dbf‘
size 32m
autoextend on
next 32m maxsize 2048m
extent management local;
--创建用户并指定表空间
create user TEST identified by 123
default tablespace test_data
temporary tablespace temp;
--给用户授予权限
grant connect,resource to TEST;
用Test用户登录,创建一个表,并插入两条数据:
-
create table t1(
-
Id varchar(50) primary key,
-
title varchar(50)
-
);
-
-
insert into t1 values(sys_guid(),‘t1‘);
-
insert into t1 values(sys_guid(),‘t2‘);
-
commit;
先写一个导出的脚本文件:
-
export ORACLE_BASE=/u01/app
-
export ORACLE_HOME=/u01/app/oracle
-
export ORACLE_SID=TEST
-
export PATH=$ORACLE_HOME/bin:$PATH
-
d=$(date ‘+%Y%m%d‘)
-
exp TEST/123@TEST file=/home/oracle/backup/$d.dmp log=/home/oracle/backup/$d.log owner=TEST
-
zip -m /home/oracle/backup/$d.zip /home/oracle/backup/$d.dmp /home/oracle/backup/$d.log
前4句是设置环境变量,因为crontab定时调用时,不会使用oracle用户的环境变量,所以要先把它们导进来。第6行以当前日期作为导出的文件名,例如20120626.dmp和20120626.log。第7行把这两个文件打成一个zip包,并删掉这两个文件。
要用chmod命令把这个sh标记为可执行:
-
chmod +x backup.sh
用oracle用户,输入crontab -e命令,编辑oracle用户的任务计划:
-
[oracle@localhost backup]$ crontab -e
-
42 13 * * * /home/oracle/backup/backup.sh
这样就添加了一个计划,在每天的13点42分运行/home/oracle/backup/backup.sh。
Linux中设置定期备份oracle数据库
标签: