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

Oracle database Linux自建环境备份至远端服务器自定义保留天数

环境准备

linux下安装oracle 请看
oracle12c单节点部署
系统版本:
CentOS 7
软件版本:
Oracle12c


备份策略与实现方法

此次备份依赖Oracle自带命令exp与linux下crontab命令(定时任务)

exp
Oracle中exp命令是一个用于导出数据库数据和对象的非常有用的工具。可以将整个数据库导出为一个文件,也可以只导出一部分数据或对象。使用exp命令可以帮助我们备份整个数据库,并将其转移到另一个服务器或重新加载到同一台服务器上的不同实例中。相较于rman 来说对于单用户的备份更加方便且具有较好的移植性。

exp命令参数:

userid:指定访问数据库的用户名和密码。

file:指定导出的文件名(可以包含完整的路径)。

tables:指定要导出的表的列表。可以以逗号分隔,如表1,表2,表3。如果你不指定表名,则导出整个数据库。

owner:指定要导出的所有属主的名称。

rows:指定是否导出表中的行。默认情况下,也就是rows=y,它将导出表中的所有行。

compress:指定是否使用压缩来减小导出文件的大小。默认情况下,也就是compress=n,它不进行压缩。

constrnts:指定是否导出表中的限制。默认情况下,也就是constrnts=y,它将导出表的所有限制。如果你不希望导出表的限制,则设置constrnts=n。

indexes:指定是否导出表中的索引。默认情况下,也就是indexes=y,它将导出表的所有索引。如果你不希望导出表的索引,则设置indexes=n。

triggers:指定是否导出表中的触发器。默认情况下,也就是triggers=y,它将导出表的所有触发器。如果你不希望导出表的触发器,则设置triggers=n。

feedback:指定导出进度的显示方式。默认情况下,也就是feedback=100,每处理100个行就显示一次进度。

buffer:指定通过网络传输的缓冲区的大小。默认情况下,也就是buffer=4096。

corntab
crond 是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务 工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。

参数:
-e : 执行文字编辑器来设定时程表,内定的文字编辑器是 VI,如果你想用别的文字编辑器,则请先设定 VISUAL 环境变数来指定使用那个文字编辑器(比如说 setenv VISUAL joe)
-r : 删除目前的时程表
-l : 列出目前的时程表

在这里插入图片描述

备份策略:
每天凌晨2点备份一次(具体备份时间视情况而定–选择业务低峰期)
备份文件保留自定义天数(如果磁盘空间充足建议保留2周左右)

创建本地存放备份文件的目录

mkdir /dbbakz/data

创建存放备份脚本的目录

mkdir /dbbakz/scripts

创建远端服务器备份文件存放目录

mkdir /dbbakz/data/对应ip  
#例如本地服务器地址为 192.168.10.21 远端服务器地址为172.16.2.101
#则登录172.16.2.101 创建文件夹 /dbbakz/data/192.168.10.21 

需对远端服务器提前配置好ssh免密登录 可参照
SSH免密登录


备份

备份脚本:

vi /dbbakz/scripts/oraclebackup.sh
#!/bin/bash
#Create by:zhangyongze
#为什么不问问神奇的海螺呢丶
#oracle备份至远端服务器(本地不保留、远端保留60天)export ORACLE_HOME=/u01/app/oracle/product/12.2.0/dbhome_1  
export ORACLE_SID=orcl
hostip=`ip addr | grep inet | grep -v 127 | grep -v inet6 |awk '{print $2}'| grep -Eo "[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}"|head -n 1`
oracleport=1521   #oracle端口
backNode=172.16.2.101 #远端备份服务器地址需提前配置好免密
lbackPath=/dbbakz/data/  #本地备份文件存放路径
sbackPath=/dbbakz/data/$hostip/  #服务端备份文件存放路径
date=$(date +%Y%m%d%M%H%S)  # 获取系统当前日期时间
days=60 #保留时常
orowner=byyy #备份此用户下面的数据
bakuser=byyy #用此用户来执行备份,必须要有备份操作的权限
bakpass=123456 #执行备注的用户密码
bakdata=$ORACLE_SID_$orowner_$date.dmp  #备份文件名称
baklog=$ORACLE_SID_$orowner_$date.log #日志文件名称
baktar=$ORACLE_SID_$orowner_$date.tar.gz #压缩后备份文件echo "------------使用exp开始备份Oracle数据库---------------"
$ORACLE_HOME/bin/exp $bakuser/$bakpass@$hostip:$oracleport/$ORACLE_SID grants=y owner=$orowner file=$lbackPath/$bakdata log=$lbackPath/$baklog #执行备份echo "------------备份数据库完成---------------"cd $lbackPathtar -zcvf  $baktar  $bakdata $baklog   #压缩备份文件和日志文件echo "------------备份文件已打包---------------"#传入备份服务器
scp $lbackPath/$baktar $backNode:$sbackPathecho "------------备份文件已传入备份服务器---------------"find $lbackPath -type f -name \*.dmp -exec rm {} \; #删除备份文件
find $lbackPath -type f -name \*.log -exec rm {} \; #删除日志文件
find $lbackPath -type f -name \*.tar.gz -daystart -mtime +$days -exec rm -rf {} \; #删除60天前的备份(注意:{} \中间有空格)echo "------------本地备份文件已删除()---------------"#删除60天之前的数据库备份文件
ssh $backNode "find $sbackPath -type f -name '*.tar.gz' -daystart -mtime +$days  -exec rm -rf {}  \;"echo "------------远端备份文件保留60天备份完成---------------"

定时任务脚本:


#将备份操作加入到定时任务(每天凌晨2点定时执行)
crontab -e00 2 * * * /dbbakz/scripts/oraclebackup.sh

脚本中调用命令$ORACLE_HOME/bin/exp 是因为使用root用户操作、 同时兼顾备份-打包-传输-删除

可使用

whereis exp

寻找当前服务器命令绝对路径

相关文章:

Oracle database Linux自建环境备份至远端服务器自定义保留天数

环境准备 linux下安装oracle 请看 oracle12c单节点部署 系统版本: CentOS 7 软件版本: Oracle12c 备份策略与实现方法 此次备份依赖Oracle自带命令exp与linux下crontab命令(定时任务) exp Oracle中exp命令是一个用于导出数据库数据和对象的…...

SpringBoot异步任务(2)|(线程池使用)

SpringBoot异步任务(2)|(线程池使用) 文章目录 SpringBoot异步任务(2)|(线程池使用)[TOC] 前言一、使用场景二、springboot添加异步任务1.配置线程池2.线程池的使用 总结 章节 第一章…...

解决Windows:Call to undefined function exif_imagetype()

很明显,是php安装时没有打开某些扩展,以致不能执行exif_imagetype()这个方法,因此需要打开。 网上很多人说需要打开下面这两个扩展: extension=php_exif.dll extension=php_mbstring.dll 但只说对了一半,我一开始也按照网上文章说的打开这两个扩展,但是还是同样错误。…...

【Spring】Spring AOP 初识及实现原理解析

博主简介:想进大厂的打工人博主主页:xyk:所属专栏: JavaEE进阶 目录 文章目录 一、初识AOP 1.1 什么是AOP? 1.2 AOP的组成 1.2.1 切面(Aspect) 1.2.2 切点(Pointcut) 1.2.3 连接点&…...

【Express.js】集成Redis

集成Redis 本节我们介绍在 express.js 中集成 redis. Redis是一个高性能的key-value内存数据库,支持事务、队列、持久化等特性,常用于高并发性能场景。 准备工作 创建一个 express.js 项目(本文基于evp-express-cli)在开发环境…...

StringBuilder创建的对象如何清空

要清空一个StringBuilder对象,可以使用其实例方法setLength(int newLength)来实现。将newLength参数设置为0,就可以将StringBuilder的内容清空。以下是一个示例代码: StringBuilder sb new StringBuilder(); // 添加一些内容到StringBuilde…...

mybatis-plus实现mysql自定义IKeyGenerator

1. IKeyGenerator主键生成 内置实现类,缺少mysql,因为mysql不支持序列,只能通过表模拟序列 H2KeyGenerator PostgreKeyGenerator KingbaseKeyGenerator 人大金仓的KES数据库 DB2KeyGenerator OracleKeyGenerator2. 新建表模拟序列 CREATE T…...

山西电力市场日前价格预测【2023-08-11】

日前价格预测 预测明日(2023-08-11)山西电力市场全天平均日前电价为367.15元/MWh。其中,最高日前电价为408.91元/MWh,预计出现在20: 00。最低日前电价为343.90元/MWh,预计出现在02: 30。 价差方向预测 1: 实…...

浏览器无法连接网络问题

问题描述 电脑其他程序都能正常联网,但是所有的浏览器都无法联网,同时外部网站都能ping通 问题诊断 查看电脑Internet连接的问题报告显示:该设备或资源(Web 代理)未设置为接受端口"7890"上的连接。 解决方案 经过检查发现不是IP地址…...

ZyjDataLink 全量MySQL同步程序 - 开发过程 01

开发过程由本人从 架构设计 到 代码实现 独立完成,通过该博客记录分享开发经验 ZyjDataLink 当前的目标是做到 MySQL大数据量的快速同步,后期希望扩展的功能 高度可操作性,融入增量数据库同步,跨数据库同步 ZyjDataLink 需求分析…...

为什么说Python股票接口是连接投资与编程的桥梁?

在现代金融领域,投资与技术的结合日益紧密,而Python作为一种强大的编程语言,为投资者提供了开发股票交易策略和分析市场数据的高效工具。 一、Python股票接口的重要性: Python作为一种易学易用的编程语言,逐渐成为金融…...

kubectl,helm安装到window

1、Windows创建目录和文件 创建文件到指定目录记得切换目录 安装到家目录 wangdachuD-M70K45QX-1544 MINGW64 ~ $ mkdir -p .kubewangdachuD-M70K45QX-1544 MINGW64 ~ $ vi configwangdachuD-M70K45QX-1544 MINGW64 ~ $ pwd /c/Users/wangdachu 2、Windows安装kubectl到当前…...

【BASH】回顾与知识点梳理(目录)

【BASH】回顾与知识点梳理(目录) 一. 认识与学习 BASH二. Shell 的变量功能三. 命令别名与历史命令四. Bash Shell 的操作环境五. 数据流重导向六. 管线命令 (pipe)七. 前六章知识点总结及练习八. 正则表达式(正规表示法)九. 扩展…...

TFRecords详解

内容目录 TFRecords 是什么序列化(Serialization)tf.data 图像序列化(Serializing Images)tf.Example函数封装 小结 TFRecords 是什么 TPU拥有八个核心,充当八个独立的工作单元。我们可以通过将数据集分成多个文件或分片(shards)…...

【多维定向滤波器组和表面波】表面变换:用于高效表示多维 s 的多分辨率变换(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

45.113.201.X服务器远程不上是什么原因,有什么办法解决?

45.113.201.1远程登录不上可能有多种原因导致,以下是一些常见的问题和解决方法: 网络连接问题:确保本地网络连接正常,尝试通过其他设备或网络连接服务器,确认是否是网络问题导致无法远程登录。 IP地址或端口错误&…...

微信小程序 地图map(电子围栏圆形和多边形)

正常情况下是没有手机上画电子围栏的,公共平台上我也没找到,所以走了一个歪点子,就是给地图添加点击事件,记录点的位置,在画到电子围栏上就是添加电子围栏了,如果只是显示电子围栏就简单了 一、多边形电子…...

Dockerfile 文件

dockerfile是一个文本文件,包含一条条指令,每条指令都会构建一层镜,一般分为四部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令,#为 Dockerfile 中的注释。 docker build 基于dockerfile制作镜像 OPTIONS参数 …...

ssm学院党员管理系统源码和论文PPT

ssm学院党员管理系统源码和论文PPT002 开发工具:idea 数据库mysql5.7(mysql5.7最佳) 数据库链接工具:navcat,小海豚等 开发技术:java ssm tomcat8.5 选题意义、价值和目标: 随着鄂尔多斯应用技术学院招生规模的不断扩大&…...

文件数字水印,附一种纯文本隐写术数字水印方法

数字水印(Digital Watermark)是一种在数字媒体文件中嵌入隐藏信息的技术。这些数字媒体可以是图片、音频、视频或文本等。数字水印不会对原始文件造成明显的视觉或听觉变化,但可以在一定程度上保护知识产权,追踪数据来源&#xff…...

【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15

缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下: struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

SkyWalking 10.2.0 SWCK 配置过程

SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外,K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案,全安装在K8S群集中。 具体可参…...

React第五十七节 Router中RouterProvider使用详解及注意事项

前言 在 React Router v6.4 中&#xff0c;RouterProvider 是一个核心组件&#xff0c;用于提供基于数据路由&#xff08;data routers&#xff09;的新型路由方案。 它替代了传统的 <BrowserRouter>&#xff0c;支持更强大的数据加载和操作功能&#xff08;如 loader 和…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统

医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上&#xff0c;开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识&#xff0c;在 vs 2017 平台上&#xff0c;进行 ASP.NET 应用程序和简易网站的开发&#xff1b;初步熟悉开发一…...

1688商品列表API与其他数据源的对接思路

将1688商品列表API与其他数据源对接时&#xff0c;需结合业务场景设计数据流转链路&#xff0c;重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点&#xff1a; 一、核心对接场景与目标 商品数据同步 场景&#xff1a;将1688商品信息…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力

引言&#xff1a; 在人工智能快速发展的浪潮中&#xff0c;快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型&#xff08;LLM&#xff09;。该模型代表着该领域的重大突破&#xff0c;通过独特方式融合思考与非思考…...

人机融合智能 | “人智交互”跨学科新领域

本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...

Go语言多线程问题

打印零与奇偶数&#xff08;leetcode 1116&#xff09; 方法1&#xff1a;使用互斥锁和条件变量 package mainimport ("fmt""sync" )type ZeroEvenOdd struct {n intzeroMutex sync.MutexevenMutex sync.MutexoddMutex sync.Mutexcurrent int…...

C语言中提供的第三方库之哈希表实现

一. 简介 前面一篇文章简单学习了C语言中第三方库&#xff08;uthash库&#xff09;提供对哈希表的操作&#xff0c;文章如下&#xff1a; C语言中提供的第三方库uthash常用接口-CSDN博客 本文简单学习一下第三方库 uthash库对哈希表的操作。 二. uthash库哈希表操作示例 u…...

tauri项目,如何在rust端读取电脑环境变量

如果想在前端通过调用来获取环境变量的值&#xff0c;可以通过标准的依赖&#xff1a; std::env::var(name).ok() 想在前端通过调用来获取&#xff0c;可以写一个command函数&#xff1a; #[tauri::command] pub fn get_env_var(name: String) -> Result<String, Stri…...