Oracle表级备份
时间:2022-07-23
本文章向大家介绍Oracle表级备份,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
#!/bin/bash
# author:院长
#
clear
#[ $(id -u) != "777" ] && echo "错误: 你必须用oracle用户执行备份脚本,且在oracle逻辑目录下" && exit 1
#
#oracle变量设置
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_BASE=/home/oracle/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_home2
export ORACLE_SID=bpas2
export ORACLE_TERM
export PATH=$PATH.$HOME/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH.$ORACLE_HOME/lib:/usr/lib:/usr/local/lib
export NLS_LANG=AMERICAN_AMERICA.UTF8
#以上代码为Oracle数据库运行账号oracle的系统环境变量设置,必须添加,否则crontab任务计划不能执行。
#部分导出(分区表导出)备份30天的数据
cd /home/oracle/backup
fun1()
{
expdp ami/Xnjc_201703# directory=MY_DUMP dumpfile=E_TRAFFIC_MONITOR_DET.dmp tables=E_TRAFFIC_MONITOR_DET query='"where comm_time > sysdate - 30"'
expdp ami/Xnjc_201703# directory=MY_DUMP dumpfile=S_KPI_DATA.dmp tables=S_KPI_DATA query='"where CREATE_DATE > sysdate - 30"'
expdp ami/Xnjc_201703# directory=MY_DUMP dumpfile=E_TMNL_COMM_ANALY_STATS.dmp tables=E_TMNL_COMM_ANALY_STATS query='"where STAT_TIME > sysdate - 30"'
expdp ami/Xnjc_201703# directory=MY_DUMP dumpfile=I_MASTER_ORA_DATA.dmp tables=I_MASTER_ORA_DATA query='"where START_TIME > sysdate - 30"'
expdp ami/Xnjc_201703# directory=MY_DUMP dumpfile=E_TMNL_LOGON.dmp tables=E_TMNL_LOGON query='"where CONN_TIME > sysdate - 30"'
expdp ami/Xnjc_201703# directory=MY_DUMP dumpfile=E_TRAFFIC_PORT_STATS.dmp tables=E_TRAFFIC_PORT_STATS query='"where COMM_DATE > sysdate - 30"'
expdp ami/Xnjc_201703# directory=MY_DUMP dumpfile=HIS_KPI_CONFIG_PM.dmp tables=HIS_KPI_CONFIG_PM query='"where CREATE_TIME > sysdate - 30"'
expdp ami/Xnjc_201703# directory=MY_DUMP dumpfile=S_WARNING_INFO.dmp tables=S_WARNING_INFO query='"where OCCURE_TIME > sysdate - 30"'
expdp ami/Xnjc_201703# directory=MY_DUMP dumpfile=E_TMNL_COMM_HOUR_ANALY.dmp tables=E_TMNL_COMM_HOUR_ANALY query='"where STAT_TIME > sysdate - 30"'
expdp ami/Xnjc_201703# directory=MY_DUMP dumpfile=E_TRAFFIC_DIFF_STATS.dmp tables=E_TRAFFIC_DIFF_STATS query='"where CREATE_TIME > sysdate - 30"'
expdp ami/Xnjc_201703# directory=MY_DUMP dumpfile=E_UNENCRYPTED_TMNL.dmp tables=E_UNENCRYPTED_TMNL query='"where CREATE_TIME > sysdate - 30"'
expdp ami/Xnjc_201703# directory=MY_DUMP dumpfile=E_U_TERMINAL_STATS.dmp tables=E_U_TERMINAL_STATS query='"where COMM_TIME > sysdate - 30"'
expdp ami/Xnjc_201703# directory=MY_DUMP dumpfile=E_TRAFFIC_PROTOCOL.dmp tables=E_TRAFFIC_PROTOCOL query='"where COMM_TIME > sysdate - 30"'
expdp ami/Xnjc_201703# directory=MY_DUMP dumpfile=E_SERVER_COMM_DATA.dmp tables=E_SERVER_COMM_DATA query='"where COMM_TIME > sysdate - 30"'
expdp ami/Xnjc_201703# directory=MY_DUMP dumpfile=E_SOCKET_INFO.dmp tables=E_SOCKET_INFO query='"where REC_TIME > sysdate - 30"'
expdp ami/Xnjc_201703# directory=MY_DUMP dumpfile=E_S_SQL_STATS.dmp tables=E_S_SQL_STATS query='"where CURR_TIME > sysdate - 30"'
expdp ami/Xnjc_201703# directory=MY_DUMP dumpfile=E_TMNL_COMM_DATA.dmp tables=E_TMNL_COMM_DATA query='"where COMM_TIME > sysdate - 30"'
expdp ami/Xnjc_201703# directory=MY_DUMP dumpfile=E_TMNL_COMM_DURA_STATS.dmp tables=E_TMNL_COMM_DURA_STATS query='"where STAT_TIME > sysdate - 30"'
expdp ami/Xnjc_201703# directory=MY_DUMP dumpfile=E_TRAFFIC_AVG_STATS.dmp tables=E_TRAFFIC_AVG_STATS query='"where CREATE_TIME > sysdate - 30"'
expdp ami/Xnjc_201703# directory=MY_DUMP dumpfile=E_TRAFFIC_MONITOR.dmp tables=E_TRAFFIC_MONITOR query='"where START_TIME > sysdate - 30"'
expdp ami/Xnjc_201703# directory=MY_DUMP dumpfile=I_MASTER_WEB_DATA.dmp tables=I_MASTER_WEB_DATA query='"where BEGIN_TIME > sysdate - 30"'
expdp ami/Xnjc_201703# directory=MY_DUMP dumpfile=S_WARNING_HANDLE_INFO.dmp tables=S_WARNING_HANDLE_INFO query='"where OCCURE_TIME > sysdate - 30"'
}
fun1
#全量导出
fun2()
{
expdp ami/Xnjc_201703# directory=MY_DUMP dumpfile=FULL.dmp tables=E_SQL_RISK_ROLE,E_PARA_CONFIG,S_METRIC_INFO,E_UNSAFTY_PORT_CONFIG,E_SERVICES_MONITOR,S_EXAMPLE_INFO,S_EQU_INFO,C_CLUST_NODE,E_VERSION_MANAGE,S_RESOURCE_INSTANCE_INFO,BASE_ROLE_RESOURCE,BASE_USER_NEW,E_MID_WARE_MONITOR,BASE_USER_ROLE,S_RESOURCE_INFO,C_CLUSTER,SYS_TEMP_FBT,SI_EMAIL_SEND_LOG,LOG_BAUPTAB_INFO,T_TOPU_INFO,T_STAT_TABLESPACE_RESULT,T_STAT_DATA_RESULT,BASE_SYS_APPROVE,E_S_SQL_MODEL,D_LOOPHOLE_INFO,S_VERSION_MONITOR,S_MONITOR_TASK,S_EQU_INSTANCE_INFO,E_UNSAFTY_RELATION,E_EVALUATE_RULE,E_EVALUATE_RESULT,E_EVALUATE_REPORT,E_EVALUATE_ENTIRETY_RULE,E_EVALUATE_ENTIRETY_RESULT,D_LOOPHOLE_DET,D_KNOWLEDGE_BASE_LOG,D_KNOWLEDGE_BASE,D_HOST_STATUS_ROLE,D_HOST_STATUS_ANAY,U_UK_CHECK,U_U2_CHECK,U_U1_CHECK,U_MAC_STATUS,U_MAC_ENCRYPT,U_LOG_UKEY_DATA_INFO,U_LOG_UKEY_DATA,U_LINK_STATUS,R_WS_RCA_FK_CTRLINFO_SIGN,R_WS_RCA_FK_CTRLINFO,R_WS_RCA_CTRLINFO_SIGN,R_WS_RCA_CTRLINFO,COM_AUDIT_TRAIL,BASE_NO_PERMISSION_LOG,BASE_SYS_LOG,BASE_OPERATION_LOG,BASE_SAFE_WARNING,VW_SWITCH_METRIC,VW_KPI_INSTANCE,SI_ADMIN_EMAIL_LOG,S_EQU_INFO_BAK,TEMPLATE,BASE_USER_ORG,BASE_ORG_RULES,T_CHECK_DATA_RESULT,T_WARN_INFO,T_WARN_DETAIL,T_WARNING_HANDLE_INFO,T_SYS_RELI_INFO,T_SECURITY_STATICTIS,T_RESOURCE_UPLOAD,T_RESOURCE_STATICTIS,T_REGION,T_MET_PARAM,T_MASTER_EQU_INFO,T_MASTER_DEC,T_HEALTH_STATUS,T_HEALTH_INFO,T_HEALTH_DETAIL_INFO,T_GATHER_ANALYSIS,T_EQU_INFO,T_EQU_CONFIG,T_ECONOMY_RELIABILITY,T_COLLECT_INFO,S_MIDDLEWARE_MONIT,MIDDEL_WEB_MENU,METRIC_TYPE_CONFIG,C_COLLECTION_USER,E_WHITE_VISIT_INFO,E_WHITE_APP_INFO,E_PORT_LIST,A_SENS_DATA,E_SENS_THRESH,E_SENS_INFO,S_MONITOR,BASE_USER_LOGIN_HIS,BASE_USER_CFG,E_CLENT_BINDING,L_USER_OP_LOG,SI_ADMIN_EMAIL,SI_BUS_ALARM_SEND_CONDITION,SI_BUS_ALARM_CONDITION,SI_BUS_ALARM_USER,SI_BUS_ALARM_RULE,I_MASTER_INSTANCE,E_CLUST_METRIC_SOURCE,E_CLUST_FAULT_DURA,S_TYPE_METRIC_INFO,E_TRAFFIC_DIO_STATS,I_MASTER_CONFIG,I_MASTER_MONITOR,E_CLUST_METRIC_STAT,E_SYS_PACK_INFO,E_CLUST_NODE_STATUS,E_TMNL_COMM_HOUR_DURA,E_TMNL_MONITOR,E_TMNL_ONLINE_STAT,T_COLLE_METRIC,S_DB_METRIC_STATISTIC,TB_MENU,S_SYS_RELY,S_EQU_CONFIG,S_MASTER_EQU_INFO,S_MASTER_DEC,S_RESOURCE_STATICTIS,S_REGION,S_WARNING_INFO_STATISTICS,C_SMART_CHART,S_USER_LOGON,C_WEAKPASS_DIC,E_TMNL_CURRENT_STATISTIC,E_VERSION_INFO,C_CLUSTER_MONITOR_COLLECT,C_CLUSTER_MONITOR,S_TBS_GROW_DAY,S_TBS_GROW_MONTH,C_WEAKPASS_LOG,E_HEALTH_INFO,TEST_SQL_STATS,E_HEALTH_DETAIL_INFO,E_HEALTH_STATUS,S_RESOURCE_EQU_INFO,C_WEAKPASS_RES,C_WEAKUSER_DIC,TT_EXEC_TASK,TT_CONFIG_TASK,TT_QUEUE_TERM_DETAIL_EM,TT_QUEUE_TERM_DETAIL_PN,E_DB_METRIC,E_SERVER_PORT_DOC,E_TMNL_CURRENT_INFO,C_TEST2,C_TEST1,C_TEST,C_SERIES,C_OPTION,C_AXIS,E_WHITE_LIST_INFO,E_DB_MONITOR,E_UNSAFTY_MONITOR,E_MENU_INFO,A_S_TRANS_DATA_SQL,TT_QUEUE_TERM_DETAIL,TT_QUEUE_TERM,TT_SCHEME_DETAIL,TT_SCHEME,TT_FUN,TT_TYPE,BASE_SERVICE_URL,BASE_SERVICE_MAINTENANCE,BASE_SERVICE_DEFEND,E_CLUST_METRIC,A_S_TRANS_DATA_SUMY,A_TRANS_DATA,A_WEB_DATA,A_AGENT_DATA,P_CODE_SORT,A_S_SQL_DATA,A_APP_DATA,A_ERROR_DATA,A_S_TRANS_DATA_CHILD,A_S_TRANS_DATA_INFO,A_METRIC_NAME,TRANINFO,BASE_EXCEPEDIT,BASE_TARGET,BASE_SOFTWARE,BASE_DEVICE,BASE_EXCEPTRACTION,E_NODE_FAULT_DURA,E_CLUST_STATUS,E_CLUST_NODE_FAULT,E_CLUST_FAULT,S_EQU_PERF_STATS,S_HIS_WARNING_INFO,BASE_SHORTCUT,BASE_ROLES,BASE_RCV_MESSAGE,BASE_SEND_MESSAGE,BASE_USER,BASE_POLICY,BASE_POLICY_RELA,BASE_RESOURCES,BASE_ORG,BASE_ONLINE,BASE_EXCEPTION,BASE_COUNTRY,BASE_CODE_KIND,BASE_CODE,BASE_CANT_TYPE,BASE_CANT,BASE_MESSAGE,P_CODE
}
fun2
#这些存错过程、job、序列对象等可以写成一条语句。但是担心那一天我自己忘记了备份的是什么所以分开写的。
#
#导出存储过程
expdp ami/Xnjc_201703# directory=MY_DUMP dumpfile=p.dmp include=procedure
#导出job
expdp ami/Xnjc_201703# directory=MY_DUMP dumpfile=j.dmp include=job
#导出序列对象
expdp ami/Xnjc_201703# directory=MY_DUMP dumpfile=s.dmp include=SEQUENCE
#导出视图
expdp ami/Xnjc_201703# directory=MY_DUMP dumpfile=v.dmp include=VIEW
#导出函数
expdp ami/Xnjc_201703# directory=MY_DUMP dumpfile=f.dmp include=function
#导出触发器
expdp ami/Xnjc_201703# directory=MY_DUMP dumpfile=t.dmp include=trigger
#配置一个变量(后面的.zip文件以时间命名)
backtime=`date +%Y-%m-%d-%H-%M-%S`
#按表备份.dmp文件太多所以压缩一下。也减少空间。
#由于上面写了cd /home/oracle/backup 在这里面备份的。所以压缩/home/oracle/backup这个目录里面的所有.dmp文件并生成.zip压缩包到当前目录
zip ${backtime}.zip *
#移动.zip压缩包到/home/oracle/back里面。这个back目录就是存放压缩完成之后的压缩包。
mv ${backtime}.zip /home/oracle/back
#删除备份目录也就是oracle数据库识别到的逻辑目录的.dmp文件。(按表备份的.dmp文件比较多,29个。已经压缩了所以删除掉)
rm -rf /home/oracle/backup/*
#为节约磁盘空间,删除/home/oracle/back 7天以前备份的.zip文件
find /home/oracle/back -type f -mtime +7 -name "*.zip"|xargs rm -rf #mmin分钟 #mtime天
计划任务:为避免数据库压力,设定在每天凌晨1点执行脚本进行备份。一个root用户、一个oracle用户。
[root@oracle ~]$ crontab -u oracle -e
00 01 * * * /home/oracle/backups.sh
[oracle@oracle ~]$ crontab -e
00 01 * * * /home/oracle/backups.sh
重启计划任务。用root用户重启
[root@oracle ~]# /etc/init.d/crond restart
- 揭穿数据分析的12个神话
- jboss eap 6.3 集群(cluster)配置
- Django中Q查询及Q()对象
- jboss eap 6.3 集群(cluster)-Session 复制(Replication)
- JSP中的Servlet及Filter
- Django ORM详解
- Web前端培训:怎样成长为一个优秀的Web 前端开发工程师?
- Git操作
- 人工智能做的肉,你想吃吗?
- 二、爬虫基础库
- 鱼与熊掌兼得,既要云服务创新也要管理传统网络
- Django-model进阶(中介模型,查询优化,extra,整体插入)
- flask-session组件
- day10、nfs+rsync全网备份及实时同步
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- RabbitMQ 快速入门实战
- 在终端打印地图
- Loki漫谈
- 聊聊dubbo-go的TokenFilter
- 面试 | 卡掉不少人的一道腾讯算法面试题,高手来试试?
- 面试 | 百度测试开发岗位面试题目回顾
- ESP8266简单介绍
- 基于MTCNN和MobileFaceNet实现的人脸识别
- 学习 | egg.js 从入门到精通
- 形式化分析工具AVISPA(三)学习User micro-manual of AVISPA
- 形式化分析工具AVISPA(三)2.学习User micro-manual of AVISPA
- s6中class的一些基础知识和es5语法的对比
- 在CentOS 8上使用Elastic Stack: Elasticsearch/Kibana 7.8的部署与认证配置
- 做一个简单的京东购物栏
- 解决Elasticsearch SQL命令行启动报错 ./x-pack-env: No such file or directory