Oracle定时导出dmp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #!/bin/sh export ORACLE_BASE=/data/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 export ORACLE_SID=orcl export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin export DATA_DIR=/data/backup date_now=$(date +%Y%m%d); mkdir -p $DATA_DIR echo "Starting bakup..." expdp \ '' user/ "pwd123456" '@192.168.1.1/orcl\' directory=dmp_dir schemas=FYAMY,FYFNB,FYGNQ,FYHQBJ,FYJHSY,FYRPT,FYSITE,FYSITE_BAK,FYSITE_DEL,FY_SELECT dumpfile=data`date +%Y%m%d_%H%M%S`.dmp logfile=logdata`date +%Y%m%d_%H%M%S`.log compression=data_only parallel=4 cd /data/backup find . -mtime +1 -name "data*" -exec rm -f {} \; cd /data/backup find . -mtime +1 -name "log*" -exec rm -f {} \; |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | 以下是对该 Bash Shell 脚本的代码解释: ```sh #!/bin/sh export ORACLE_BASE=/data/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.2./db_1 export ORACLE_SID=orcl export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin export DATA_DIR=/data/backup ``` - 第一行是指定脚本使用 `/bin/sh` 执行。 - 第 2-6 行是设置 Oracle 相关环境变量,即指定 Oracle 安装目录 (`ORACLE_BASE`),Oracle Home 目录 (`ORACLE_HOME`),Oracle SID (`ORACLE_SID`),Path环境变量 (`PATH`) 和备份数据存储目录 (`DATA_DIR`)。 ```sh date_now=$(date +%Y%m%d); mkdir -p $DATA_DIR echo "Starting bakup..." ``` - 第 8 行是获取当前日期并以 "YYYYMMDD" 的格式赋值给变量 `date_now`。 - 第 10 行是创建备份数据存储目录,使用 `-p` 选项会自动创建上级目录(即使上级目录不存在)。 - 第 11 行是输出提示语句,表示备份开始执行。 ```sh expdp \ '' user01e/ "pwd123456" '@192.168.1.1/orcl\' directory=dmp_dir schemas=FYAMY,FYFNB,FYGNQ,FYHQBJ,FYJHSY,FYRPT,FYSITE,FYSITE_BAK,FYSITE_DEL,FY_SELECT dumpfile=data`date +%Y%m%d_%H%M%S`.dmp logfile=logdata`date +%Y%m%d_%H%M%S`.log compression=data_only parallel=4 ``` - 第 13 行是使用 `expdp` 命令进行 Oracle 数据库导出备份,选项含义如下: - `user01/ "pwd123456" '@192.168.50.233/orcl' ` 是用于连接目标数据库的字符串,包括用户名、密码、IP 地址和数据库名等; - `directory=dmp_dir` 指定导出 DMP 文件的目录; - `schemas` 是需要备份的数据库 schema 名称列表,以逗号分隔; - `dumpfile` 选项用于指定导出 DMP 文件的名称,按日期和时间命名; - `logfile` 选项用于指定导出日志文件的名称,按日期和时间命名; - `compression=data_only` 选项指定以 Data Only 数据模式 (DMP) 进行压缩备份,不导出表定义模式或其他非数据模式; - `parallel=4` 选项指定使用 4 个进程进行并行备份。 ```sh cd /data/backup find . -mtime +1 -name "data*" -exec rm -f {} \; ``` - 第 18-19 行是用于清理旧备份文件,即若备份文件的最后修改时间距离当前时间已经超过 1 天,则删除该文件。`-mtime +1` 选项指定文件最后修改时间超过 1 天; `-name "data*" ` 选项指定找到文件名以 "data" 开头的文件; `-exec rm -f {} \;` 选项是执行删除。 ```sh cd /data/backup find . -mtime +1 -name "log*" -exec rm -f {} \; ``` - 第 22-23 行是用于清理旧备份日志文件,即若日志文件的最后修改时间距离当前时间已经超过 1 天,则删除该文件。 使用方法: - 在 Linux 系统中使用文本编辑器(如 vim)创建备份脚本文件,例如 `oracle_backup.sh`。 - 给备份脚本文件添加执行权限:`chmod +x oracle_backup.sh`。 - 在终端提示符下运行脚本文件:`./oracle_backup.sh`。 |
__EOF__
作 者:Aaron
出 处:https://www.cnblogs.com/Williamls/p/17287174.html
关于博主: 谦谦君子 卑以自牧
版权声明:署名 - 非商业性使用 - 禁止演绎,协议普通文本 | 协议法律文本。
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律