当前位置:首页 > 技术知识 > 正文内容

「oracle备份恢复」oracle数据库备份恢复之逻辑备份与恢复

maynowei10个月前 (09-09)技术知识92

oracle版本oracle 11g

逻辑备份与恢复

备份前可以先查看环境变量情况

echo $ORACLE_BASE 
echo $ORACLE_HOME 
echo $ORACLE_SID
echo $NLS_LANG

如果没有则对变量进行export,特别是字符集,结合实际环境所在的情况

export NLS_LANG=american_america.ZHS16GBK
export ORACLE_BASE=/data/oracle 
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0
export ORACLE_SID=orcl
export PATH=$PATH:$ORACLE_HOME/bin

使用命令exp 进行导出备份,注意备份文件所在磁盘的空间

exp 'user/"passwd"'@orcl file=/bakdir/db-20220513.dmp full=y

恢复,恢复前注意环境变量

echo $ORACLE_BASE 
echo $ORACLE_HOME 
echo $ORACLE_SID
echo $NLS_LANG

如果没有则对变量进行export,特别是字符集

export NLS_LANG=american_america.ZHS16GBK

使用命令imp对数据库进行恢复,该命令建议是在新安装的环境进行数据导入,而不是已经有数据的数据库进行导入,会导致数据错乱,ignore=y(由于是在新的环境,没有数据,所以这个可以加,而且必须加,不加恢复数据表好像有问题,访问不了。)

imp 'system/chenzm123@orcl' file=/bakdir/db-20220513.dmp full=y log=./imp-2022-0513.log ignore=y

oracle imp 导入可以使用 ignore=y 参数进行覆盖数据库,

如果不使用 ignore=y 参数在进行imp 导入时,就会 对已经存在的表就不会进行导入,

如果加上ignore=y 参数就会对已经存在的表中没有的记录进行更新,但对已经存在记录不会进行覆盖修改。

备份脚本,在oracle运行用户下添加计划任务,备份的时候注意挂载目录的权限,注意系统时间,如果系统时间不对,那么要注意重启计划任务service crond restart ,不然计划任务可能不会按时执行。

chown -R oracle:oinstall /localdiskbak
#!/bin/bash
export ORACLE_BASE=/data/oracle 
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0
export ORACLE_SID=orcl
export PATH=$PATH:$ORACLE_HOME/bin
export NLS_LANG=american_america.ZHS16GBK
date=`date +%Y_%m_%d`
bakdir=/localdiskbak
bakdata=$ORACLE_SID-$date.dmp
baklog=$ORACLE_SID-$date.log
oradatabak=$ORACLE_SID$date.tar.gz
cd $bakdir
bakuser=user
bakpasswd=\"passwd\"
orsid=ip:1521/orcl
exp $bakuser/$bakpasswd@$orsid full= y  file=$bakdir/$bakdata log=$bakdir/$baklog 【备份以这个为主】//grants=y compress=y 这个参数我没加
tar -czvf $oradatabak $bakdata $baklog
find $bakdir -type -f -name "*.log" -exec rm {} \;
find $bakdir -type -f -name "*.dmp" -exec rm {} \;
-----------------------------------
(c)著作权归作者所有:来自51CTO博客作者chenzm0592的原创作品,请联系作者获取转载授权,否则将追究法律责任
【oracle备份恢复】oracle数据库备份恢复之逻辑备份与恢复
https://blog.51cto.com/chenzm0592/5290270

相关文章

在手机上演示axure原型(怎么在axure中画出手机原型)

AXSHARE APP发布啦,以后大家的原型可以通过这款APP进行预览演示咯。小编迫不及待的体验了一下这款APP。要使用这款APP,首先需要有axshare的账号。账号注册地址:https://sha...

苹果编程Objective C与Swift谁更牛?

小鹏大学刚刚毕业,软件开发方面的东西学的不是很多,听好多同学说做iOS开发工资上万是很容易的,踌躇满志,一直想自学iOS开发,可突如其来的一件事让他瞬间迷茫了。时间:2014年9月10日10点地点:某...

Android监听滚动视图(监听页面滚动)

Android UI Libs之Android-ObservableScrollView1. 说明Android-ObservableScrollView,顾名思义,Android上观察滚动的视图,可...

Go语言进阶:时间轮(golang时间轮)

时间轮概念时间轮(Timing Wheel)是一种高效的定时任务调度数据结构,特别适合处理大量定时任务。它通过一个循环数组(轮盘)和多个槽位(buckets)来组织定时任务,每个槽位代表一个时间间隔。...

Qt QWaitCondition 的正确使用方法

简单用法QWaitCondition 用于多线程的同步,一个线程调用QWaitCondition::wait() 阻塞等待,直到另一个线程调用QWaitCondition::wake() 唤醒才继续往...

C++26中同步与原子操作新变化(c++ 同步)

引言随着多核处理器和并发编程的普及,C++26进一步增强了对同步与原子操作的支持,为开发者提供了更高效、更安全的工具来应对多线程编程中的数据竞争与同步挑战。自C++11引入原子操作以来,C++标准库在...