热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

linux定时自动备份oracle数据库

0,目前闲下来了,搞个数据库备份吧,开始1,写一份脚本执行导出数据库#!binshechobakupstart.exportPATH

0,目前闲下来了,搞个数据库备份吧,开始...


1,写一份脚本执行导出数据库

#!/bin/sh

echo bakup start......................

export PATH

export ORACLE_HOME=/opt/oracle/product/19c/dbhome_1

export PATH=$PATH:/opt/oracle/product/19c/dbhome_1/bin

export ORACLE_SID=myorcl

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

date=`date +%Y_%m_%d`

days=7

orsid=127.0.0.1:1521/myorcl  #Oracle数据库服务器IP、端口、SID

bakuser=user #用户名称

bakpass=pass #用户密码

bakdir=/data/db_backup #备份文件路径,需要提前创建好

dmpdirectory=db_backup

dmpversion=19.3.0.0.0 #导出数据的oracle版本

for orowner in user1 user2

do

bakdata=$orowner"_"$date.dmp #备份数据库名称

cd $bakdir #进入备份目录

echo start exp $bakdata .............Time: $date........Orowner:$orowner.................

expdp userid=$bakuser/$bakpass@$orsid schemas=$orowner directory=$dmpdirectory dumpfile=$bakdata version=$dmpversion

find $bakdir -type f -name "*.log" -mtime +$days -exec rm {} \; #删除备份文件

find $bakdir -type f -name "*.dmp" -mtime +$days -exec rm {} \; #删除日志文件

echo "....................$orowner backup end............................"

done

exit


1.1其中的问题

首先脚本需要各种环境变量的获取

登录到oracle用户执行以下命令:

cat ~/.bash_profile 将用到的直接复制进去就好了


1.2创建导出的.dmp文件目录并授权

创建备份目录用于存放数据泵文件,方便自己使用

mkdir db_backup

chmod 777 db_backup

登录到数据库sysdba用户,将数据泵文件目录关联上

su - oracle

sqlplus /nolog

conn / as sysdba

create or replace directory db_backup as '/data/db_backup';

grant read,write on directory db_backup to userdba;


1.3将脚本放入/etc/cron.d 并赋予脚本可执行权限



输入 crontab -e 进入cron表达式执行脚本代码编辑界面



三个分别为每分钟执行,每分钟执行,每日凌晨1点执行

linux的cron表达式须要以下的规则:

 

 



当你编写完毕出现上图所示提示信息说明你编写的表达式有误,输入y重新编写

修改成功后会提示如下信息



此时可以执行 service crond restart 重启crond服务检验自己的脚本

我的日志目录是在 cd /var/log/cron 这个下面

直接执行 tail -f cron 查看日志


1.4 日志报错


1.4.1日志中可能会报错



图摘自互联网,我确实也遇见了~,不是运维只能边走边百度,摸着黑一步一步淌,成功了记录下来

错误原因:这个文件在Windows 下编辑过,在Windows下每一行结尾是\n\r,而Linux下则是\n,所以才会有 多出来的\r。

解决方案:使用指令sed -i 's/\r$//' xxxxxxx.sh,上面的指令会把 xxxxxxx.sh 中的\r 替换成空白!


1.4.2日志中可能会报错

ORA-39002: invalid operation

ORA-39070: Unable to open the log file.

ORA-29283: invalid file operation ORA-06512: at "SYS.UTL_FILE", line 536

ORA-29283: invalid file operation

错误原因:1、对存放dmp文件或log文件的路径不存在,或者没有权限, 2、对dmp文件没有权限

解决方案:未解决,我直接删除了expdp 命令时需要日志的参数,不要日志导出,绕开了该问题


1.5成功!

有问题可以评论留言!

 

心之何如,有似万丈迷津,遥亘千里,其中并无舟子可以渡人,除了自渡,他人爱莫能助。


原文链接:https://www.cnblogs.com/s88888888/p/15818813.html



推荐阅读
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 本文是一位90后程序员分享的职业发展经验,从年薪3w到30w的薪资增长过程。文章回顾了自己的青春时光,包括与朋友一起玩DOTA的回忆,并附上了一段纪念DOTA青春的视频链接。作者还提到了一些与程序员相关的名词和团队,如Pis、蛛丝马迹、B神、LGD、EHOME等。通过分享自己的经验,作者希望能够给其他程序员提供一些职业发展的思路和启示。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • Oracle Database 10g许可授予信息及高级功能详解
    本文介绍了Oracle Database 10g许可授予信息及其中的高级功能,包括数据库优化数据包、SQL访问指导、SQL优化指导、SQL优化集和重组对象。同时提供了详细说明,指导用户在Oracle Database 10g中如何使用这些功能。 ... [详细]
  • 本文介绍了在Oracle数据库中创建序列时如何选择cache或nocache参数。cache参数可以提高序列的存取速度,但可能会导致序列丢失;nocache参数可以避免序列丢失,但在高并发访问时可能导致性能问题。文章详细解释了两者的区别和使用场景。 ... [详细]
  • Oracle10g备份导入的方法及注意事项
    本文介绍了使用Oracle10g进行备份导入的方法及相关注意事项,同时还介绍了2019年独角兽企业重金招聘Python工程师的标准。内容包括导出exp命令、删用户、创建数据库、授权等操作,以及导入imp命令的使用。详细介绍了导入时的参数设置,如full、ignore、buffer、commit、feedback等。转载来源于https://my.oschina.net/u/1767754/blog/377593。 ... [详细]
  • 在很多数据库中都存在一个自动增长的列,如果现在要想在oracle中完成自动增长的功能,则只能依靠序列完成,所有的自动增长操作,需要用户手工完成处理。语法:CREAT ... [详细]
  • Python SQLAlchemy库的使用方法详解
    本文详细介绍了Python中使用SQLAlchemy库的方法。首先对SQLAlchemy进行了简介,包括其定义、适用的数据库类型等。然后讨论了SQLAlchemy提供的两种主要使用模式,即SQL表达式语言和ORM。针对不同的需求,给出了选择哪种模式的建议。最后,介绍了连接数据库的方法,包括创建SQLAlchemy引擎和执行SQL语句的接口。 ... [详细]
  • 本文介绍了一个误删Oracle数据文件导致数据库无法打开的问题,并提供了解决方式。解决方式包括切换到mount状态、离线删除报错的数据文件等。 ... [详细]
  • 本文介绍了Oracle存储过程的基本语法和写法示例,同时还介绍了已命名的系统异常的产生原因。 ... [详细]
author-avatar
路人
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有