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 {} ; ----------------------------------- 著作权归作者所有:来自51CTO博客作者chenzm0592的原创作品,请联系作者获取转载授权,否则将追究法律责任 【oracle备份恢复】oracle数据库备份恢复之逻辑备份与恢复 https://blog.51cto.com/chenzm0592/5290270