Linux中设置定期备份oracle数据库
小编:啊南 158阅读 2020.12.04
如果是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里看出到底有没有正确运行。
相关推荐
- Oracle - 查询 1 查询语句查看账户下的所有表1 select * from tab;查看账户下的所有表的详细信息1 select * from user_tables;1.1 selectselect 用于从数据看查询数据。语法:1 select field1,filed2,.. .2 from tablename3 [where condition];利用 Oracle 数据库 Scott 账户…
- 3DMAX提示和技巧 本主题标识使用 Civil View 的一些重要提示和技巧。常规使用屏幕分辨率至少为 1280x1024 的 Civil View。低于此分辨率时,一些面板将占用过多屏幕空间。 将视口设置为线框显示以达到最佳性能。 要尽可能简化用户界面,请在单个视口中工作并关闭 3ds Max 命令面…