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
关于博主:  谦谦君子 卑以自牧
版权声明:署名 - 非商业性使用 - 禁止演绎,协议普通文本 | 协议法律文本
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!

posted @   LuckinAaron  阅读(143)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
0
0
关注
跳至底部
点击右上角即可分享
微信分享提示