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

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

maynowei7个月前 (09-09)技术知识71

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

相关文章

产品经理的术与器:从想法到产品原型

工欲善其事,必先利其器。从idea,到product,中间的可谓要经历几番曲折, 产品定位确定决定产品的生死,产品功能需求的确定决定着开发的周期和试错的成本,互联网拼的就是快,所以要做 MVP(最小化...

IT博物馆之Objective-C诞生(micro博物馆)

1984年,Objective-C诞生。设计者:布莱德·考克斯(Brad Cox)、汤姆·洛夫(Tom Love)Objective-C是面向对象的通用、高级编程语言。它扩展了标准的 ANSI C,将...

真来了,iOS 16.6 beta 利用,隐藏 Dock 栏

昨天提到!iOS 16.5 kfd 漏洞可以隐藏 Dock 栏消息,现在已经确定 iOS 16.6 beta 内测也是支持使用 kfd 漏洞,当然!也是支持隐藏 Dock 栏,主要验证该系统是否可用。...

Android主流UI开源库整理(android完整开源项目)

前言最近老大让我整理一份 Android主流UI开源库 的资料,以补充公司的Android知识库。由于对格式不做特别限制,于是打算用博客的形式记录下来,方便查看、防丢并且可以持续维护、不断更新。标题隐...

如何优雅地使用嵌入式事件标志组?

事件标志组嵌入式事件标志组是一种在嵌入式系统中广泛使用的同步机制,主要用于实现多任务间的同步与通信。事件标志组是一组事件标志位的集合,每个位代表一个事件是否发生。它允许任务等待特定的事件发生,当事件发...

如何在Go中同步线程(go语言同步锁)

单线程代码已经带来头痛。添加第二个线程,就是从基础头痛升级了。解决方案?互斥锁:线程和数据的交通警察。一旦你理解了它们,线程同步就变成了第二本能,语言无关。在C++和Go中工作,我遇到过所有常见的混乱...