当前位置:首页 » 编程软件 » oracle自动备份脚本linux

oracle自动备份脚本linux

发布时间: 2025-01-27 12:21:40

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

如果是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里看出到底有没有正确运行。

Ⅱ linux oracle 定时备份计划问题

crontab 执行的脚本是以root用户来调用的,所以必须要加上oracle用户的环境变量如ORACLE_HOME、ORACLE_BASE、ORACLE_SID,ORACLE_HOME/bin也要加到path里面
另外expdp_oracle.sh其他用户也要有执行权限
example:
vi expdp_oracle.sh
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/proct/10.2/db_1
export ORACLE_SID=orcl
export PATH=/u01/app/oracle/proct/10.2/db_1/bin;$PATH

expdp system/oracle directory=DDPDATA21 mpfile=rrq.dmp schemas= 'MMS';
wq:

Ⅲ linux下不能自动备份oracle数据库

用ORACLE用户执行这个BAK.SH脚本

要看看对/BACKUP目录是不是有可写的权限。

另外就是 BAK.SH这个脚本,最好放在 /home/oracle/ 这个目录下,免得oracle用户访问不到。

另外,30 0 * * * 是 每天0点30开始备份,你这个机器时钟,难道是0点?

Ⅳ 菜鸟求助:linux下oracle数据库自动备份脚本,脚本可实现数据库自动备份功能,并删除三天前的备份

这个好办。 cp 你的数据库`date +'%y%m%d'` 指定目录 这个是以年月日来命名备份 删除的命令是
rm -f 你的数据库名字`date -d "3 days ago" +'%y%m%d'` 这个是删除匹配你数据库的备份名日期前3天的备份文件 他会按照日期-3天匹配3天前的日期来删除备份的

Ⅳ linux上如何删除oracle实例

删除oracle实例记录:
方法一、从图形界面运行dbca,选择删除,按提示一路next;
方法二、手动删除。
1、关闭所有oracle进程,其实只要shutdown
abort即可.因我的机器oracle没设置为开机自动启动,重启机器后oracle进程一个也没有,系统很是干净.
2、删除实例数据文件和mp文件;
find $ORACLE_BASE/ -name $ORACLE_SID
在我系统里面显示如下,将这些目录直接删除;
/u01/app/oracle/admin/testdb
/u01/app/oracle/oradata/testdb
/u01/app/oracle/proct/10.2.0/db_1/cfgtoollogs/emca/testdb
/u01/app/oracle/proct/10.2.0/db_1/cfgtoollogs/dbca/testdb
3、删除其他配置文件
find $ORACLE_BASE/* -name '*[Bb][Tt][Ss][Dd][Bb]2*' | grep -v
admin| grep -v oradata
将查找结果出现的文件也一一删除,当然你可以用xarg结合rm删除.
find结果如下:
/u01/app/oracle/flash_recovery_area/testdb
/u01/app/oracle/proct/10.2.0/db_1/cfgtoollogs/emca/testdb
/u01/app/oracle/proct/10.2.0/db_1/cfgtoollogs/dbca/testdb
/u01/app/oracle/proct/10.2.0/db_1/oc4j/j2ee/OC4J_DBConsole_host_testdb
/u01/app/oracle/proct/10.2.0/db_1/rdbms/log/alert_testdb.log
/u01/app/oracle/proct/10.2.0/db_1/host_testdb
/u01/app/oracle/proct/10.2.0/db_1/host_testdb/sysman/emd/state/A190EE260BF6B09EB5805807
28916A3B.alert_testdb.log
/u01/app/oracle/proct/10.2.0/db_1/host_testdb/sysman/log/nmctestdb1521
/u01/app/oracle/proct/10.2.0/db_1/dbs/alert_testdb.log
/u01/app/oracle/proct/10.2.0/db_1/dbs/lktestdb
/u01/app/oracle/proct/10.2.0/db_1/dbs/hc_testdb.dat
/u01/app/oracle/proct/10.2.0/db_1/dbs/orapwtestdb
/u01/app/oracle/proct/10.2.0/db_1/dbs/spfiletestdb.ora
4、最重要的一步,如果你要重建的实例和刚删除实例的实例名一样的话,删除
/etc/oratab文件最后一行。
至此,已干净删除linux系统的oracle实例。

热点内容
red5服务器搭建 发布:2025-01-28 00:56:49 浏览:679
遗传算法ppt 发布:2025-01-28 00:56:41 浏览:534
安卓手机连拍图片怎么保存 发布:2025-01-28 00:48:12 浏览:645
怎么看出车辆配置是不是旧车 发布:2025-01-28 00:42:42 浏览:3
编译时的程序在哪里 发布:2025-01-28 00:42:39 浏览:345
ftp协议的功能 发布:2025-01-28 00:38:53 浏览:251
linux统计ip 发布:2025-01-28 00:38:50 浏览:153
游戏解压泥 发布:2025-01-28 00:38:04 浏览:728
curlandroid下载 发布:2025-01-28 00:20:10 浏览:873
数控车编程视频 发布:2025-01-28 00:15:02 浏览:967