Linux新手入门系列:linux下Oracle定时备份

本章节采用比较常见的逻辑备份exp/imp。

本系列文章是把作者刚接触和学习Linux时候的实操记录分享出来,内容主要包括Linux入门的一些理论概念知识、Web程序、mysql数据库的简单安装部署,希望能够帮到一些初学者,少走一些弯路。

注意:

Linux下区分大小写;
Linux多用户多线程;
Linux下每个文件和目录都有访问权限;

linux下Oracle定时备份

本章节采用比较常见的逻辑备份exp/imp。

一、Oracle数据导入导出语法

1.数据导出

#导出全库(只有dba权限的用户才能导出全库)
$ exp dba用户/dba密码@实例名 file=导出文件.dmp log=导出日志文件.log full=y

#导出指定用户的表
$ exp dba用户/dba密码@实例名 file=导出文件.dmp log=导出日志文件名.log owner=用户
#也可以使用普通用户导出自己的表
$ exp 用户/密码@实例名 file=导出文件.dmp log=导出日志文件.log

#导出多个用户的表
$ exp dba用户/dba密码@实例 file=导出文件名.dmp log=导出日志文件.log owner=用户1,用户2

#导出指定表
$ exp dba用户/dba密码@实例 file=导出文件.dmp log=导出日志文件.log tables=表1,表2

#只导出表结构
# 在导出语句后追加rows=n参数即可,rows=n表示不导出数据行。

2.数据导入

#导入全库
$ exp dba用户/dba密码@实例 file=导出文件.dmp log=导出日志文件.log full=y

#单个用户的表
$ exp dba用户/dba密码@实例 file=导出文件.dmp log=导出日志文件.log formuser=导出时的用户 touser=要导入的用户

#导入指定的表
$ exp dba用户/dba密码@实例 file=导出文件.dmp log=导出日志文件.log tables=表1,表2

二、定时备份

1.备份策略

逻辑备份exp;
备份路径为/home/db_bak;
定时备份为每晚23.00执行;
保留7天的备份;

2.编辑备份脚本ora_bak.sh

# vim /home/db_bak/ora_bak.sh

内容如下:

#这里需要重新设置环境变量,因为crontab定时器是系统程序,没有oracle的环境变量

#设置oracle环境变量
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
export PATH=$PATH:/usr/sbin:$ORACLE_HOME/bin

#或者直接执行source使oracle的环境变量生效,因为之前.bash_profile里已经配置过了
# source /home/oracle/.bash_profile

#备份目录
bak_dir=/home/db_bak
#备份用户名
d_name=test
#备份时间
time=$(date +%Y%m%d%H)

#开始备份
exp test/test@orcl file=$bak_dir/$d_name_$time.dmp log=$bak_dir/$d_name_$time.log
#或者异地备份
#exp test/test@172.16.2.100/orcl file=$bak_dir/$d_name_$time.dmp log=$bak_dir/$d_name_$time.log

#删除7天以前的备份,注意find语句结尾的分号
find $bak_dir -name "*.dmp" -mtime +7 -exec rm -f {} \;
find $bak_dir -name "*.log" -mtime +7 -exec rm -f {} \;

3.添加定时任务

方法一:crontab -e,为用户设置定时器

# crontab -e -u oracle #使用默认编辑器设置给oracle用户定时器
或者切换到orale用户后执行
$ crontab -e
#增加以下内容:
0 23 * * * sh /home/db_bak/ora_bak.sh > /home/db_bak/backup.log 2>&1

#生效后文件存入/var/spool/cron/oracle,另外crontab -e对格式有校验

方法二:编辑定时器文件,为系统设置定时器,可以指定执行用户

# vim /etc/crontab
#增加以下内容:
0 23 * * * oracle sh /home/db_bak/ora_bak.sh > /home/db_bak/backup.log 2>&1

三、备份恢复/导入

切换到oracle用户
# su - oracle

$ imp test2/test2@orcl file=/home/db_bak/test_20210830.dmp log=imp.log formuser=test touser=test2

#参数说明:formuser导出时的用户名,touser要导入的用户名

在这里插入图片描述

在这里插入图片描述

IT小胖豆:初学者踩坑之路及过程分享,希望能够帮到一些初学者,欢迎各位IT打工人,入坑讨论-_-

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT小胖豆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值