Oracle 11g数据库使用expdp每周进行数据备份并上传到备份服务器


Posted in Oracle onJune 28, 2022

学校需要将之前的生产数据库备份到华为云,之后实现每周自动备份

1.看看数据库情况

1.1先看了下表空间情况,生产环境表空间大概90G,用了才一半不到

查看所有表空间及使用情况

SELECT
  B.FILE_NAME 物理文件名,
  B.TABLESPACE_NAME 表空间名称,
  B.BYTES/1024/1024 大小M,
  (B.BYTES-SUM(NVL(A.BYTES,0)))/1024/1024 已使用M,
  SUBSTR((B.BYTES-SUM(NVL(A.BYTES,0)))/(B.BYTES)*100,1,5) 使用率
FROM DBA_FREE_SPACE A,DBA_DATA_FILES B
WHERE A.FILE_ID=B.FILE_ID
GROUP BY B.TABLESPACE_NAME,B.FILE_NAME,B.BYTES
ORDER BY B.TABLESPACE_NAME;

Oracle 11g数据库使用expdp每周进行数据备份并上传到备份服务器

2.数据库备份

2.1登陆数据库

[root@]$ sqlplus / as sysdba

2.2创建逻辑目录

执行这个操作并不会在Linux中创建/opt/data_backup这个文件,最后需要手动去创建该文件才能进行备份。

SQL> create directory back_dir as '/opt/backup'
SQL> select * from dba_directories; #查看所有逻辑目录,看是否创建成功

2.3给数据库用户文件操作权限#dbuser为数据库用户名,更具实际情况更改

Grant read,write on directory back_dir to dbuser;

2.3创建物理目录

[root@]$ mkdir -p /opt/backup #-p 确保目录名称存在,不存在的就建一个,可使用参数创建多级目录

1.3备份数据库

[root@]$ expdp dbuser/passwd@192.168.110.9:1521/orcl dumpfile=dbback.dmp log=log.log directory=back_dir schemas=cbyxy

exedp有很多参数,这里是用到的一些解释
dbuser/passwd@192.168.110.9:1521/orcl #导出用户名/密码@数据库IP/数据库SID
dumpfile=导出的文件名.dmp
log=导出过程的日志名.log
directory=备份放的路径名,用的之前的逻辑目录名
schemas=要备份的数据库用户名字
FULL=y #加上意思为导出整个数据库就不需要schemas参数了
也可以按表空间导出TABLESPACES=
表名导出TABLES=
等等还有很多参数自行了解

3.shell脚本实现自动备份

#!/bin/bash
#导入环境变量,根据具自己实际情况填写
export ORACLE_BASE=/home/oracle/app
export ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
export LOCAL_IP=192.168.110.183:1521
export BACKUP_USER_IP_DIR=root@192.168.110.187:/opt/   #备份服务器的用户,ip,保存地址
export ORACLE_USER_NAME=system #数据库的用户密码根据实际情况填写,备份整个库最好使用system或sys管理员用户
export ORACLE_USER_PASSWD=Abc123556..
export ORACLE_SID=orcl #不知道可以使用Oracle用户执行echo $ORACLE_SID,或者SQL> SELECT instance_name FROM v$instance
export DATA_DIR=/opt/backup   #与数据库中的逻辑地址相同,用来储存备份文件
export DELTIME=`date -d "7 days ago" +%Y%m%d` # -d "7 days ago" 为获取七天前的日期,以日期命名方便任务自动删>除
export BAKUPTIME=`date +%Y%m%d` #备份日期年月日
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK #定义语言地域和字符集属性的环境变量,根据自己数据库情况修改
mkdir -p $DATA_DIR
echo "Starting bakup..."
echo "Backup file path $DATA_DIR/$BAKUPTIME.dmp"
expdp $ORACLE_USER_NAME/$ORACLE_USER_PASSWD@$LOCAL_IP/$ORACLE_SID dumpfile=$BAKUPTIME.dmp log=$BAKUPTIME.log directory=expdp full=y
echo "backup file success..."
tar -zcvPf $DATA_DIR/$BAKUPTIME.tar.gz $DATA_DIR/$BAKUPTIME.dmp --remove-files ##-P:指定绝对路径 --remove-files :打包后删除原文件
echo "tar the file backup successfully"
echo "scp to":$BACKUP_IP
scp $DATA_DIR/$BAKUPTIME.tar.gz $BACKUP_USER_IP_DIR #远程服务器防火墙有限制scp端口需要加:-P 端口号
rm -f $DATA_DIR/$DELTIME.log #删除之前的备份
echo "Bakup completed."

Oracle 11g数据库使用expdp每周进行数据备份并上传到备份服务器

4.添加定时任务

[root@ ]$ crontab -e

添加行:* 1 * * 6 /opt/back.sh #每个星期的星期六早上执行备份任务

*    *    *    *    *
-    -    -    -    -
|    |    |    |    |
|    |    |    |    +----- 星期中星期几 (0 - 6) (星期天 为0)
|    |    |    +---------- 月份 (1 - 12) 
|    |    +--------------- 一个月中的第几天 (1 - 31)
|    +-------------------- 小时 (0 - 23)
+------------------------- 分钟 (0 - 59)

4.参考文章

https://www.cnblogs.com/xwdreamer/p/3511047.html
https://www.cnblogs.com/farmer-y/p/5888432.html
https://blog.csdn.net/weixin_41607523/article/details/110817646
https://blog.csdn.net/XUEYUTIANQI/article/details/113976558

到此这篇关于Oracle 11g数据库使用expdp每周进行数据备份并上传到备份服务器的文章就介绍到这了,更多相关Oracle 11g使用expdp备份数据内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!


Tags in this post...

Oracle 相关文章推荐
oracle DGMGRL ORA-16603报错的解决方法(DG Broker)
Apr 06 Oracle
ORACLE数据库对long类型字段进行模糊匹配的解决思路
Apr 07 Oracle
mybatis使用oracle进行添加数据的方法
Apr 27 Oracle
oracle覆盖导入dmp文件的2种方法
May 21 Oracle
Oracle11g R2 安装教程完整版
Jun 04 Oracle
Oracle 临时表空间SQL语句的实现
Sep 25 Oracle
详解Oracle数据库中自带的所有表结构(sql代码)
Nov 20 Oracle
使用Oracle命令进行数据库备份与还原
Dec 06 Oracle
Oracle 多表查询基本语法实例
Apr 18 Oracle
instantclient客户端 连接oracle数据库
Apr 26 Oracle
oracle数据库去除重复数据
May 20 Oracle
oracle设置密码复杂度及设置超时退出的功能
Jun 28 Oracle
Oracle数据库事务的开启与结束详解
Jun 25 #Oracle
在Oracle表中进行关键词搜索的过程
Jun 10 #Oracle
Oracle锁表解决方法的详细记录
Jun 05 #Oracle
oracle数据库去除重复数据
May 20 #Oracle
解决Oracle数据库用户密码过期
May 11 #Oracle
Oracle中DBLink的详细介绍
instantclient客户端 连接oracle数据库
You might like
常用的php ADODB使用方法集锦
2008/03/25 PHP
PHP使用Face++接口开发微信公众平台人脸识别系统的方法
2015/04/17 PHP
微信支付PHP SDK之微信公众号支付代码详解
2015/12/09 PHP
颜色选择器 Color Picker,IE,Firefox,Opera,Safar
2010/11/25 Javascript
js实现简单秒表走动的时钟特效
2020/03/25 Javascript
js实现(全选)多选按钮的方法【附实例】
2016/03/30 Javascript
Jquery获取第一个子元素简单实例
2016/06/02 Javascript
Bootstrap table 定制提示语的加载过程
2017/02/20 Javascript
jquery平滑滚动到顶部插件使用详解
2017/05/08 jQuery
vue子父组件通信的实现代码
2017/07/09 Javascript
JS+CSS实现网页加载中的动画效果
2017/10/27 Javascript
JavaScript设计模式之调停者模式实例详解
2018/02/03 Javascript
Vue封装Swiper实现图片轮播效果
2018/02/06 Javascript
详解如何用babel转换es6的class语法
2018/04/03 Javascript
vue项目搭建以及全家桶的使用详细教程(小结)
2018/12/19 Javascript
基于JS开发微信网页录音功能的实例代码
2019/04/30 Javascript
[08:47]DOTA2每周TOP10 精彩击杀集锦vol.6
2014/06/25 DOTA
[02:40]2018年度DOTA2最佳新人-完美盛典
2018/12/16 DOTA
[50:38]DOTA2-DPC中国联赛 正赛 Phoenix vs CDEC BO3 第二场 3月7日
2021/03/11 DOTA
Python实现树莓派WiFi断线自动重连的实例代码
2017/03/16 Python
使用python 和 lint 删除项目无用资源的方法
2017/12/20 Python
python实现读取大文件并逐行写入另外一个文件
2018/04/19 Python
django admin后台添加导出excel功能示例代码
2019/05/15 Python
修改Pandas的行或列的名字(重命名)
2019/12/18 Python
python3 使用traceback定位异常实例
2020/03/09 Python
python实现在列表中查找某个元素的下标示例
2020/11/16 Python
python实现KNN近邻算法
2020/12/30 Python
python模块内置属性概念及实例
2021/02/18 Python
用纯CSS3实现网页中常见的小箭头
2017/10/16 HTML / CSS
Html5 canvas画图白板踩坑
2020/06/01 HTML / CSS
西班牙高科技产品购物网站:MejorDeseo
2019/09/08 全球购物
Miller Harris官网:英国小众香水品牌
2020/09/24 全球购物
银行会计业务的个人自我评价
2013/11/02 职场文书
优秀班集体获奖感言
2014/02/03 职场文书
先进个人事迹材料
2014/12/29 职场文书
班主任班级管理心得体会
2016/01/07 职场文书