linux下怎么定时备份oracle数据库

 我来答
己学好4
2016-10-13 · TA获得超过1.5万个赞
知道大有可为答主
回答量:1.1万
采纳率:91%
帮助的人:5159万
展开全部
如果是sql server,定期备份可以利用sql server的management studio来做,比较方便。但要做oracle的定期备份,那就需要我们写导出命令,并设置linux的定时任务。
首先创建一个数据库作为测试。
--创建数据表空间
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。

另外,每天运行完之后,会收到mail通知,可以在mail里看出到底有没有正确运行。
今至电子科技有限公司
2024-08-23 广告
数据库备份是确保数据安全与业务连续性的关键环节。我们上海今至电子科技有限公司高度重视数据保护,定期执行全面的数据库备份策略。这包括使用先进工具和技术,对关键业务数据进行自动化备份,并存储在安全可靠的外部存储介质或云端。通过定期验证备份的完整... 点击进入详情页
本回答由今至电子科技有限公司提供
康熙转世
2016-10-13 · TA获得超过6839个赞
知道大有可为答主
回答量:4325
采纳率:85%
帮助的人:2931万
展开全部
楼主您好
新建sh文件中写一个exp命令
然后执行个cronttab命令定时执行这个文件即可
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式