当前位置: 首页 > news >正文

Oracle逻辑备份脚本【生产环境适用】

1 说明

从Oracle10g开始,引入了数据泵(Data Pump),是一种高效的数据传输工具,它通过导出(Export)和导入(Import)的方式帮助用户迁移数据。

在Oracle的产品设计中,数据泵(Data Pump)主要用于数据迁移。尽管它可以用于恢复特定时间点的数据库状态,但它并不提供在指定时间段内的灵活恢复点选择功能。因此,从严格意义上讲,数据泵备份并不是一种全面的数据保护解决方案,而更多地被视为一种临时性的最低限度保护措施。为了达到更好的数据保护效果,建议将数据泵与RMAN(Recovery Manager)结合使用。

下面介绍生产中一个常用的逻辑备份脚本。

2 准备工作

准备工作主要有备份空间分配、脚本路径创建等。

2.1 备份空间分配

数据泵主要在Server端工作,导出的文件需要写入到Server端本地目录,需要在数据库中创建一个DIRECTORY,对应的是Server端的路径。

逻辑备份由于是生成在本地,在生产环境中,建议DIRECTORY创建在非数据路径下,最好使用一个独立的磁盘挂载,可以保障当磁盘发生故障时,数据文件和备份文件不会同时损坏。

最保险的方式是,将备份文件拷贝到网络盘中,相当于异机备份

2.1.1 创建备份目录

[root@oracle11g ~]# mkdir /expdp
[root@oracle11g ~]# chown oracle:oinstall /expdp/
[root@oracle11g ~]# ll / | grep expdp
drwxr-xr-x 2 oracle oinstall 4096 Sep 25 00:07 expdp

路径需要预留足够大的空间。

2.1.2 创建一个DIRECTORY

登录数据库创建:

SQL> create or replace directory expdp as '/expdp';Directory created.

查看创建结果:

SQL> 
set lines 200
col DIRECTORY_PATH for a70
select * from dba_directories where directory_name = 'EXPDP';OWNER                          DIRECTORY_NAME                 DIRECTORY_PATH
------------------------------ ------------------------------ ----------------------------------------------------------------------
SYS                            EXPDP                          /expdp

2.2 脚本路径创建

使用oracle用户创建:

[oracle@oracle11g ~]$ cd /home/oracle
[oracle@oracle11g ~]$ mkdir -p scripts/src
[oracle@oracle11g ~]$ mkdir -p scripts/log/expdp
[oracle@oracle11g ~]$ tree scripts
scripts
|-- log
|   `-- expdp
`-- src
3 directories, 0 files

src目录用于存放备份脚本,log目录用于存放备份日志。

3 脚本部署

3.1 说明

  • 此脚主要用于导出schemas参数指定的模式,本例中为LU9UP、SCOTT;
  • 备份文件和日志临时存放至 D M P B A S E / {DMP_BASE}/ DMPBASE/{DATE}目录;
  • 备份文件和备份过程日志最终打包存放至仓库EXPDP目录/expdp下;
  • 压缩后删除临时目录${DATE};
  • 最后清理七天前的压缩文件。

长期保存的日志路径位于/home/oracle/scripts/log/expdp/。

3.2 部署脚本

oracle用户进入/home/oracle/scripts/src目录,编辑脚本:

$ cd /home/oracle/scripts/src
$ vi expdp_schemas.sh

脚本内容如下,请根据实际情况修改参数值:

#!/bin/bash#environment variablesexport NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss'DBNAME=orcl
SCP_BASE=/home/oracle/scripts
LOG_BASE=/home/oracle/scripts/log
DMP_LOGDIR=${LOG_BASE}/expdp
DMP_BASE=/expdpif [ -f $HOME/.bash_profile ];
thenexport ORAENV_ASK=NO. $HOME/.bash_profile
fi# commandDATE=`date +'%Y%m%d%H'`cd $DMP_BASE
RUN_LOG=${DATE}_${DBNAME}_SCHEMAS.logexpdp "'/ as sysdba'" \directory=EXPDP \dumpfile=${DATE}_SCHEMAS%U.dmp \schemas=LU9UP,SCOTT \parallel=4 \logfile=${RUN_LOG} \flashback_time=\"to_timestamp\(to_char\(sysdate, \'yyyy-mm-dd hh24:mi:ss\'\),\'yyyy-mm-dd hh24:mi:ss\'\)\"# compressCURENTDIR=${DMP_BASE}/${DATE}if [ ! -d  ${CURENTDIR} ];
thenmkdir ${CURENTDIR}
ficd ${DMP_BASE}
mv ${DATE}_SCHEMAS*.dmp ${DATE}
cp ${RUN_LOG} ${DMP_LOGDIR}
mv ${RUN_LOG} ${DATE}
tar -zcvf ${DATE}.tar.gz ${DATE}
rm -rf ${DATE}# deleted 7 days ago filesfind /expdp -type f -name "*.tar.gz" -mtime +7 -exec rm -f {} \;

保存并退出,赋执行权限:

$ chmod +x expdp_schemas.sh

4 脚本试运行

4.1 执行脚本

$ cd /home/oracle/scripts/src
$ ./expdp_schemas.sh

image.png

4.2 检查备份日志

$ tail -20 /home/oracle/scripts/log/expdp/2024092502_orcl_SCHEMAS.log

image.png

4.3 查看备份文件

$ ll /expdp
total 3116
-rw-r--r-- 1 oracle oinstall 3186906 Sep 25 02:47 2024092502.tar.gz

5 配置定时任务

添加如下任务:

[oracle@oracle11g ~]$ crontab -l
#DB Logical Backup
0 1 * * * sh /home/oracle/scripts/src/expdp_schemas.sh >/dev/null 2>&1

每天凌晨1点执行一次。


http://www.mrgr.cn/news/35605.html

相关文章:

  • 关于我、重生到500年前凭借C语言改变世界科技vlog.18——内存函数
  • 2.vue编写APP组件
  • C#画图板代码
  • DAY110代码审计-PHP框架开发篇ThinkPHP版本缺陷不安全写法路由访问利用链
  • 自动驾驶安全方向论文阅读
  • 在线项目管理系统有哪些选择?2024年9款推荐
  • 苏轼为何要写石钟山记?时间节点是关键
  • 问:Java线程为不直接run(),而是要先Start()?
  • service 命令:管理系统服务
  • 数据结构 ——— 数组 nums 包含了从 0 到 n 的所有整数,但是其中缺失了一个,请编写代码找出缺失的整数,并且在O(N)时间内完成
  • 【C++前缀和 状态压缩】1177. 构建回文串检测|1848
  • 车辆识别数据集,图片数量20500,模型已训练200轮
  • C语言 | Leetcode C语言题解之第435题无重叠区间
  • TCP/IP 协议栈
  • 使用TensorFlow实现一个简单的神经网络:从构建到训练
  • 240924-通过服务器代理ip地址及port端口wget等下载文件
  • RT-DETR改进策略:BackBone改进|PoolFormer赋能RT-DETR,视觉检测性能显著提升的创新尝试
  • 在Java中,关于final、static关键字与方法的重写和继承【易错点】
  • 点亮城市安全:高科技助力精准定位路灯漏电‘隐形杀手
  • 2024年CSP-J认证 CCF信息学奥赛C++ 中小学初级组 第一轮真题-阅读程序题解析
  • 实战OpenCV之图像滤波
  • 构建预测睡眠质量模型_相关性分析,多变量分析和聚类分析
  • Cloudflare为网站添加AI审计 可检查AI爬虫何时抓取和抓取频次以及直接屏蔽爬虫
  • 从准备面试八股文,感悟到技术的本质
  • GNU链接器(LD):存储命令(MEMORY)用法及实例解析
  • 公安局软件管理平台建设方案和必要性,论文-3-———未来之窗行业应用跨平台架构