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

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

maynowei20小时前技术知识2

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

相关文章

机器人需求驱动导航新SOTA,成功率提升15%!浙大&vivo联手打造

CogDDN团队 投稿量子位|公众号QbitAI让机器人像人一样边看边理解,来自浙江大学和vivo人工智能实验室的研究团队带来了新进展。正如视频所展示的,机器人在复杂的室内环境中不仅能自主探索,还具备...

C++并发同步核心-mutex深度解析:守护共享数据的关键

在多线程编程中,当多个线程需要访问和修改共享数据时,如果没有任何同步机制,就可能发生数据竞争(Data Race),导致程序行为不可预测、数据损坏甚至崩溃。C++标准库通过<mutex>头...

聊聊并发编程: Lock(并发锁有哪些)

之前学习了如何使用synchronized关键字来实现同步访问,Java SE 5之后,并发包中新增了Lock接口(以及相关实现类)用来实现锁功能,它提供了与synchronized关键字类似的同步功...

C语言编写多线程,什么时候要使用互斥锁?为什么要使用互斥锁?

在多线程编程中,当多个线程同时访问共享资源(如变量、文件等)时,会出现竞态条件(Race Condition)问题,导致程序的行为不可预测。为了避免这种问题,需要使用互斥锁来保护共享资源的访问。互斥锁...

不需安装oracleclient连接oracle数据库方案

在Oracle官方发布ODP.net之前,我们通常使用微软的System.data.OracleClient进行Oracle数据库操作,它的缺点是必须要装Oracle客户端OracleClient,如...

PL/SQL Developer连接Oracle数据库详解

序言:oracle数据库比较难搞,好不容易安装上了,但是怎么连接呢,直接在服务器里用自带的命令行操作太繁琐,所以PL/SQL Developer客户端的好处就显而易见了,今天和大家聊聊客户端具体配置方...