热门标签 | 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架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • Oracle Database 10g许可授予信息及高级功能详解
    本文介绍了Oracle Database 10g许可授予信息及其中的高级功能,包括数据库优化数据包、SQL访问指导、SQL优化指导、SQL优化集和重组对象。同时提供了详细说明,指导用户在Oracle Database 10g中如何使用这些功能。 ... [详细]
  • 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状态、离线删除报错的数据文件等。 ... [详细]
  • 在Oracle11g以前版本中的的DataGuard物理备用数据库,可以以只读的方式打开数据库,但此时MediaRecovery利用日志进行数据同步的过 ... [详细]
  • 本文介绍了Oracle存储过程的基本语法和写法示例,同时还介绍了已命名的系统异常的产生原因。 ... [详细]
  • 从Oracle安全移植到国产达梦数据库的DBA实践与攻略
    随着我国对信息安全和自主可控技术的重视,国产数据库在党政机关、军队和大型央企等行业中得到了快速应用。本文介绍了如何降低从Oracle到国产达梦数据库的技术门槛,保障用户现有业务系统投资。具体包括分析待移植系统、确定移植对象、数据迁移、PL/SQL移植、校验移植结果以及应用系统的测试和优化等步骤。同时提供了移植攻略,包括待移植系统分析和准备移植环境的方法。通过本文的实践与攻略,DBA可以更好地完成Oracle安全移植到国产达梦数据库的工作。 ... [详细]
  • MySQL中的MVVC多版本并发控制机制的应用及实现
    本文介绍了MySQL中MVCC的应用及实现机制。MVCC是一种提高并发性能的技术,通过对事务内读取的内存进行处理,避免写操作堵塞读操作的并发问题。与其他数据库系统的MVCC实现机制不尽相同,MySQL的MVCC是在undolog中实现的。通过undolog可以找回数据的历史版本,提供给用户读取或在回滚时覆盖数据页上的数据。MySQL的大多数事务型存储引擎都实现了MVCC,但各自的实现机制有所不同。 ... [详细]
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社区 版权所有