linux服务器上备份oracle和mysql区别数据库报错

linux自动备份oracle数据库并上传到备份服务器&脚本实现
实际项目中,备份数据是不可缺少的一步,完成数据的自动备份减少个人的工作量,是我们的目标。之前很少写过脚本,不过这些简单的操作还是可以做到的!话不多说,开始具体介绍:
oracle版本:10.2.0
操作系统:linuxredhat6.3
具体操作:
(1)在服务器上创建备份目录,并赋予权限
mkdir -p /backup/oracledata& #新建Oracle数据库备份目录
chown -R& oracle:oinstall /backup/oracledata -R
#设置目录权限为oinstall用户组的oracle用户(用户oracle与用户组oinstall是在安装Oracle数据库时设置的)
(2)完成备份脚本
vi /backup/oracledata/ordatabak.sh& #新建文件
加入下面信息:
#!/bin/sh&&&
ORACLE信息可以通过 .bash_profile 查看
export ORACLE_BASE=/oracle/app/oracle
export ORACLE_SID=orcl
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_TERM=xterm
PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin:/usr/bin:/sbin:/usr/sbin
LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/rdbms/lib:/lib:/usr/lib:&&
/usr/local/lib
export LANG=C
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
#以上代码为Oracle数据库运行账号oracle的系统环境变量设置,必须添加,否则crontab任务计划不能执行。
dateTime=`date
+%Y_%m_%d`&&&
#当前系统时间
#删除7天前的备份数据s
orsid='127.0.0.1:1521/orcl'&&&
#oralce连接信息
orowner=oracle &
备份此用户下面的数据
bakuser=oracle&&&&
#用此用户来执行备份,必须要有备份操作的权限
bakpass=oracle&&&&
#执行备注的用户密码
bakdir=/DATA/bakorcldata/moodle&
#备份文件路径,需要提前创建好
bakdata=$orowner"_"$dateTime.dmp #备份数据库名称
baklog=$orowner"_"$dateTime.log&&&
#备份执行时候生成的日志文件名称
ordatabak=$orowner"_"$dateTime.tar.gz&
#最后保存的Oracle数据库备份文件
remotePath=/opt/oracle/bakorcl/&&
#上传到远程服务器的路径
cd $bakdir&& #进入备份目录
mkdir -p $orowner&&
#按需要备份的Oracle用户创建目录
cd $orowner&& #进入目录
exp $bakuser/$bakpass@$orsid& grants=y
owner=$orowner file=$bakdir/$orowner/$bakdata
log=$bakdir/$orowner/$baklog& #执行备份
tar -zcvf $ordatabak $bakdata
$baklog&& #压缩备份文件和日志文件
find $bakdir/$orowner -type f -name "*.log" -exec rm {}
#删除备份文件
find $bakdir/$orowner -type f -name "*.dmp" -exec rm {}
#删除日志文件
find $bakdir/$orowner -type f -name "*.tar.gz" -mtime +$days
-exec& rm -rf {} \;&
#删除7天前的备份(注意:{} \中间有空格)
scp& $bakdir/$orowner/$ordatabak
192.168.0.10:$remotePath&&
#将备份文件上传到远程服务器 如果不输人密码上传
请参考http://blog.sina.com.cn/s/blog_957ef38b0102vuxy.html
:wq! 保存 退出
(3)添加脚本执行权限
/backup/oracledata/ordatabak.sh&&
#添加脚本执行权限
(4)编辑系统任务执行计划
crontab -e
输入一下信息“:
00 01 * * *
/DATA/bakorcldata/oradatabak.sh#每天凌晨1点,以oracle用户执行ordatabak.sh备份文件
:wq! #保存退出
重启crontab
service crond restart
从此每天的凌晨1点 系统会自动完成数据库的备份,压缩,并上传到远程服务器的指定路径下!
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。&nbsp>&nbsp
&nbsp>&nbsp
&nbsp>&nbsp
备份软件对oracle数据库进行恢复(BE对linux下oracle恢复)
摘要:BE备份牛人的文档做Recovery需要什么数据:1、FULLCLOSED备份shutdown数据库(不要用shutdownabort强行关闭),实施一个文件级备份,备份全部的Oracle相关文件,包括Windows系统文件,系统状态和Oracle程序文件和数据文件等内容。这个冷备份对于快速恢复Oracle数据库系统非常要害,假如没有它,系统被破坏后只能重新安装再恢复,这要比直接恢复冷备份慢得多,也更复杂。每当数据库或表单的物理结构或逻辑结构有变化时都应该重新创建这个冷备份。
BE备份牛人的文档
做Recovery需要什么数据:1、FULL CLOSED备份 shutdown数据库(不要用shutdown abort强行关闭),实施一个文件级备份,备份全部的Oracle相关文件,包括Windows系统文件,系统状态和Oracle程序文件和数据文件等内容。 这个冷备份对于快速恢复Oracle数据库系统非常要害,假如没有它,系统被破坏后只能重新安装再恢复,这要比直接恢复冷备份慢得多,也更复杂。 每当数据库或表单的物理结构或逻辑结构有变化时都应该重新创建这个冷备份。 2. FULL ONLINE备份 这个备份要通过Backup Exec Agent for Oracle Server来完成,要备份全部表空间,归档日志和控制文件,通过这种方式备份,Oracle会将所有缓存内容写入文件,将online redo log做归档,所以数据库备份中包含的是备份时数据库的即时点信息,完整而且有效。以后做恢复时,可以恢复到最后一次FULL ONLINE备份的状态。
恢复过程: 1. 重新安装Windows系统和Remote Agent for Windows Server,为恢复Oracle服务器预备环境。 2. 恢复最后一次FULL CLOSED备份,重新启动计算机。 此时Windows系统,Oracle数据库系统都是完整的,只是Oracle数据库中可能不是最新的数据。Backup Exec Agent for Oracle Server也不用重新安装了。 3. 用SQLPlus用SYS以sysdba身份连接到数据库系统,关闭数据库。 shutdown immediate & enter & 4. 通过介质服务器恢复最新的FULL ONLINE备份,恢复作业属性的高级选项中,确保选中了“Restore over Existing files(覆盖现存文件)” 选项。 要想成功的恢复数据库,在最后一次FULL CLOSED备份之后的所有redo log必须都已经成功归档并备份。少了哪一个,数据库就无法恢复到最后的FULL ONLI NE备份时的状态。 通过Oracle的alert log可以看到数据库的恢复需要哪些归档日志,以及你应该把它们恢复到什么位置。5. 恢复完成后,用SYS用户以sysdba身份连接到数据库,将数据库加载到mount阶段: startup mount & enter & 6. 数据库mount完成后,执行recover过程: recover database using backup controlfile & enter & 数据库会提示你需要哪些日志: ORA-00279: Change 36579 generated at needed for thread 1 ORA-00289: Suggestion : /Oracle_Home/Oradata//%SID%T.ARC ORA-00280: {=Suggested filename AUTO FROM logsource CANCEL} 最简单的方法是选自动恢复: auto & enter & 系统会在init.ora文件中定义的位置上查找所有必需的日志并依次应用它们,最后一个要应用的日志是online redo log,实际上它并不包括任何的transaction,只有一个SCN,可以略过,但是自动恢复过程会因为找不到相应的文件而报错: ORA-00308: cannot open archived log E:/ORACLE/ORADATA/KIMSTAD/ARCHIVE/KIMSTADT.ARC ORA-27041: unable to open file OSD-04002: unable to open file O/S-Error: (OS 2) The system cannot find the file specified. 为此输入以下命令(until cancel参数使我们可以在需要的时候中止恢复过程): recover database until cancel using backup controlfile 这样在数据库恢复的最后阶段再次提示前面的错误时,我们就可以中止恢复过程:cancel & enter & 这时除了最后一个online redo log以外,所有的commit transaction都已经提交到数据库之中了,完成后会显示:Media recovery canceled 实际上恢复过程已经正常完成了。 最后是打开数据库并同步日志序列号: alter database open resetlogs & enter & 至此,Oracle数据库被成功恢复到最后一次Full Online备份。 说明:Oracle 8i可以用internal账号完成DBA操作。9i取消了internal账号,SYS账号代替它了。为了以DBA身份登录,启动SQL Plus时应该加nolog参数,进入之后再登录,connect username/passWord as sysdba。
实际BE恢复过程备份服务器版本
mount 状态对应 BE的数据库状态显示为“已装入”
咨询了华赛孙工,他说抛开BE不谈,进行rman 恢复的时候,如果在线联机日志不存在(redo*.log),restore 那一块不会出错,但是用rman recover数据库的的时候,rman会去找一个不存在的归档日志,最后报找不到而出错。此时如果想打开数据库,只有手工 alter dat来打开数据库。
那么,当用华赛的BE进行数据库恢复时,如果是灾难恢复,当然就没有联机日志,那么在进行恢复的时候,华赛的BE就会报错,说恢复失败,(其实就是因为找不到一个不存在的归档日志),所以这个时候只需要手动打开rman,选择 alter database open resetlogs就可以了。
我的疑问:没有联机日志,进行恢复的时候,BE就会报那个错误吗?为什么软件里面知道这个错误跳不过,不采用个办法让客户认为备份是成功的?而且之前的还原曾经报成功过,也是用的灾难恢复的模式,所以我就有疑问了我想得到一个官方的书面解释。
利用BE图形界面恢复尝试
1.模拟故障,在linux-2上把数据库oracssf删除。2.灾难恢复,重建数据库,建同样的sid名3.命令行方式恢复控制文件
RMAN& startup nomountRMAN&set DBID
RMAN& run {allocate channel ch0send &NBBSA_SOURCE_MACHINE_NAME=linux-1&;restore controlfile from 'BE_2hk9dmvq_1_1';release channel ch0;}
实际BE恢复过程命令行版本
如果华赛BE显示mount 状态不对的时候,需要手工来进行rman恢复,应该采用下面的步骤,只需要用户了解两个参数:备份源客名称(此处为linux-1)备份介质名称(此处为BE_08k8umie_1_1),这些都可以从BE中找到。
模拟灾难,把库删除并重建。直接用命令行恢复,此时BE只是作为一个磁带库起到存储之前rman文件的作用。2.先利用命令行进行全库恢复。
进行灾难恢复(省去重装操作系统和重装oracle软件,直接用dbca创建同sid的数据库)省略BE agent的认证配置。在备份服务器上认证以下,看备份服务器和目标的服务器之间通信情况是否正常。通信是正常的。在备份服务器上寻找文件类似“'BE_08k8umie_1_1”
找到了对应的文件名;对应的dbid为 对应的介质为 BE_2hk9dmvq_1_1
先恢复控制文件,命令如下:
RMAN& startup nomountRMAN&set DBID
RMAN& run {allocate channel ch0send &NBBSA_SOURCE_MACHINE_NAME=linux-1&;restore controlfile from 'BE_2hk9dmvq_1_1';release channel ch0;}
RMAN& run {allocate channel ch0send &NBBSA_SOURCE_MACHINE_NAME=linux-1&;release channel ch0;}
RMAN& run {allocate channel ch0send &NBBSA_SOURCE_MACHINE_NAME=linux-1&;release channel ch0;}
恢复过程有一个报错,内容如下:
RMAN& run {allocate channel ch0send &NBBSA_SOURCE_MACHINE_NAME=linux-1&;release channel ch0;}2& 3& 4& 5& 6&
allocated channel: ch0channel ch0: sid=156 devtype=SBT_TAPEchannel ch0: Symantec/BackupExec/1.1.0
sent command to channel: ch0
Starting recover at 08-MAR-09
starting media recovery
starting up daemon channel ch0: starting archive log restore to default destinationchannel ch0: restoring archive logarchive log thread=1 sequence=18channel ch0: reading from backup piece BE_2gk9dmvi_1_1starting up daemon channel ch0: restored backup piece 1piece handle=BE_2gk9dmvi_1_1 tag=TAG906channel ch0: restore complete, elapsed time: 00:00:15archive log filename=/u01/app/oracle/flash_recovery_area/ORACSSF/archivelog//o1_mf_1_18_4v70s2pj_.arc thread=1 sequence=18channel default: deleting archive log(s)archive log filename=/u01/app/oracle/flash_recovery_area/ORACSSF/archivelog//o1_mf_1_18_4v70s2pj_.arc recid=33 stamp=unable to find archive logarchive log thread=1 sequence=19released channel: ch0RMAN-00571: ===========================================================RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============RMAN-00571: ===========================================================RMAN-03002: failure of recover command at 03/08/:52RMAN-06054: media recovery requesting unknown log: thread 1 seq 19 lowscn
根据“BE备份牛人的文档”,上面红色的报警是正常的,
进入sqlplus alter dat成功恢复。
总结,当进行恢复(restore)的时候,从备份服务器上查看,发现备份服务器处于正在运行备份作业的状态上。
所有操作过程均有录像,详见我的资源
以上是的内容,更多
的内容,请您使用右上方搜索功能获取相关信息。
若你要投稿、删除文章请联系邮箱:zixun-group@service.aliyun.com,工作人员会在五个工作日内给你回复。
新用户大礼包!
现在注册,免费体验40+云产品,及域名优惠!
云服务器 ECS
可弹性伸缩、安全稳定、简单易用
&40.8元/月起
预测未发生的攻击
&24元/月起
你可能还喜欢
你可能感兴趣
阿里云教程中心为您免费提供
备份软件对oracle数据库进行恢复(BE对linux下oracle恢复)相关信息,包括
的信息,所有备份软件对oracle数据库进行恢复(BE对linux下oracle恢复)相关内容均不代表阿里云的意见!投稿删除文章请联系邮箱:zixun-group@service.aliyun.com,工作人员会在五个工作日内答复
售前咨询热线
支持与服务
资源和社区
关注阿里云
InternationalLinux环境下Oracle数据泵(expdp)备份报ORA-39006:internalerror - Oracle数据库栏目
作者:用户
问题描述:Oracle一直用数据泵备份,今天在终端备份时突然报ORA-39006: internal error错误。数据泵导出日志文件为以下信息:&ORA-39097: Data Pump job encountered unexpected error -31644ORA-39065: unexpected master process exception in FILE...
问题描述:
Oracle一直用数据泵备份,今天在终端备份时突然报ORA-39006: internal error错误。
数据泵导出日志文件为以下信息:
ORA-39097: Data Pump job encountered unexpected error -31644
ORA-39065: unexpected master process exception in FILE
ORA-31644: unable to position to block number 2 in dump file &/orabackup/sgtms_expdp_.dmp&
ORA-19502: write error on file &/orabackup/sgtms_expdp_.dmp&, block number 1 (block size=4096)
ORA-29701: unable to connect to Cluster Synchronization Service
ORA-29701: unable to connect to Cluster Synchronization Service
问题原因:
Oracle的安装目录使用率100%。删除相关的日志文件即可。
注:在Linux下可根据查看目录大小,来删除相关日志文件。(/os/689.html)
以上是互联网用户为您的的内容,在阿里云内部有更多的关于Linux环境下Oracle数据泵(expdp)备份报ORA-39006:internalerror - Oracle数据库栏目的内容,欢迎继续使用右上角搜索按钮进行搜索备份、数据、环境、以便于您获取更多的相关信息。
本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:zixun-group@service.aliyun.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。
若您要投稿,删除文章请联系邮箱:zixun-group@service.aliyun.com
工作人员会在5个工作日内回复
Oracle教程栏目为您免费提供
相关信息,包括
的信息 ,所有
相关内容均不代表阿里云的意见!投稿、删除文章请联系邮箱:zixun-group@service.aliyun.com,工作人员5个工作日内回复。扫一扫体验手机阅读
Linux环境下oracle数据库Rman备份异机恢复
<span type="1" blog_id="2058554" userid='
8篇文章,1W+人气,0粉丝
高并发架构之路
¥51.00164人订阅
MySQL全通晓
¥51.00142人订阅学习编程第一步
零基础上手Python开发
阅读: 1983下载: 51
Java编程入门官方教程(第7版)
阅读: 3634下载: 44
Oracle 18c生产部署之单节点安装
阅读: 777下载: 20
Spring Boot实战 ,丁雪丰 (译者)
阅读: 197下载: 19
Oracle Database 12cR2多租户权威指南
阅读: 875下载: 9
阅读: 21634下载: 3412
阅读: 14305下载: 2686
阅读: 21701下载: 2516
阅读: 12712下载: 2339
阅读: 17074下载: 2170
完全备份oracle数据库,再导出到另一服务器(linux下),bmc的数据系统
文件大小:21KBMB所需财富值:50
您当前剩余财富值:
完全备份oracle数据库,再导出到另一服务器(linux下),bmc的数据系统
文件大小:21KBMB所需财富值:40
您当前剩余财富值:
网站帮助:
盛拓传媒: |}

我要回帖

更多关于 oracle 备份数据库 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信