oracle备份之备份测试脚本的方法(冷备、热备、rman)_oracle

来源:脚本之家  责任编辑:小易  

这个太多了,简单的2113说下吧5261物理备份:要看你数据库是不是归档,4102select log_mode from v$database;要是archivelog就是归档,noarchivelog就是非1653归档。归档模式下可以进行热备(开着数据库):用RMAN的话 登录rman:在数据库的服务器上rman target /backup database;或者增量backup incremental level X database;(X是你的增量级别),你也可以单个数据文件,控制文件,归档日志备份。或者镜像backup as copy database;你也可以在语句后面加format '路径/命名'对备份命名。不使用RMAN,先alter database begin backup;(全库)或alter tablespace 表空间名 begin backup;(单个表空间),然后到操作系统下直接复制数据文件,最后alter database end backup;或alter tablespace 表空间名 end backup;非归档:只能冷备(必须关闭数据库,只能备份全库)rman:先正常关闭数据库,登录RMAN:先startup mount,然后按热备的命令走可以增量,但只能备份全库;自己备的话:关库以后直接考,不用输alter database 那些命令。逻辑备份(只能恢复逻辑错误,不能回复受损文件的):10g、11g下面用expdp命令:expdp 登录名/密码@注册的实例 full=y parallel=1 dumpfile=名字.dmp compression=all;导出整个库,当然还可以单个表,或用户的对象导出等。9i以前的用exp命令,具体命令自己查查吧。物理备份相对安全,可以完全恢复数据库(当然是在归档模式下),逻辑备份只能恢复逻辑上的数据,文件恢复不了。逻辑备份比物理备份更快更省空间,推荐给你一个oracle视频,cuug官网上的Oracle备份与恢复,看过不错www.zgxue.com防采集请勿采集本网。

1、数据库环境

数据库DBID及打开模式

SQL> select dbid,open_mode from v$database; DBID OPEN_MODE---------- ----------4106451204 READ WRITE

数据文件:

SQL> select file#,status,enabled,name from v$datafile;FILE# STATUS ENABLED NAME---------- ------- ---------- --------------------------------------------------------------------------------1 SYSTEM READ WRITE /u01/app/oracle/oradata/ocmdb/dfile/system01.dbf2 ONLINE READ WRITE /u01/app/oracle/oradata/ocmdb/undotbs01.dbf3 ONLINE READ WRITE /u01/app/oracle/oradata/ocmdb/dfile/sysaux01.dbf4 ONLINE READ WRITE /u01/app/oracle/oradata/ocmdb/dfile/tbs_1.dbf5 ONLINE READ WRITE /u01/app/oracle/oradata/ocmdb/dfile/tbs3.dbf6 ONLINE READ WRITE /u01/app/oracle/oradata/ocmdb/dfile/tbs_big01.dbf7 ONLINE READ WRITE /u01/app/oracle/oradata/ocmdb/dfile/rman.dbf

控制文件:

SQL> select status,name from v$controlfile;STATUS NAME------- --------------------------------------------------------------------------------/u01/app/oracle/ocmdb/cfile/ora_control1/u01/app/oracle/ocmdb/cfile/ora_control2/u01/app/oracle/ocmdb/cfile/control3

联机日志:

SQL> select group#,status,type,member from v$logfile;GROUP# STATUS TYPE MEMBER---------- ------- ------- --------------------------------------------------------------------------------1 ONLINE /u01/app/oracle/oradata/ocmdb/lfile/redo01.log1 ONLINE /u01/app/oracle/oradata/ocmdb/lfile/redo11.log3 ONLINE /u01/app/oracle/oradata/ocmdb/lfile/redo03.log2 ONLINE /u01/app/oracle/oradata/ocmdb/lfile/redo02.log5 ONLINE /u01/app/oracle/oradata/ocmdb/lfile/redo05.log5 ONLINE /u01/app/oracle/oradata/ocmdb/lfile/redo55.log4 ONLINE /u01/app/oracle/oradata/ocmdb/lfile/redo04.log4 ONLINE /u01/app/oracle/oradata/ocmdb/lfile/redo44.log

2、数据库备份脚本

冷备份脚本

#rem script:coldbak.sh#rem creater:chon#rem date:2011#rem desc:offline full backup database#--connect databasesqlplus / as sysdba <<EOF#--shutdown databaseshutdown immediate;#--Copy Data file!cp /u01/app/oracle/oradata/ocmdb/dfile/*.dbf /backup!cp /u01/app/oracle/oradata/ocmdb/undotbs01.dbf /backup#--Copy Control file!cp /u01/app/oracle/ocmdb/cfile/* /backup#--Copy Log file!cp /u01/app/oracle/oradata/ocmdb/lfile/*.log /backup#--Copy archive log!cp -R /u01/app/oracle/rmanbak/OCMDB/archivelog/* /backup#--startup databasestartup;

说明:

1、以上脚本在数据库关闭状态下备份数据库所有的数据文件,联机日志,控制文件,归档日志(在一个目录下),如果成功备份,所有文件是一致的。

2、没有备份参数文件,参数文件可以另外备份,没有必要每次都备份,只需要在改变设置后备份一次。

3、如果以上命令没有成功依次执行,那么备份将是无效的,如连接数据库不成功,那么肯定关闭数据库也不成功,那么备份则无效

4、冷备份建议下人工干预下执行。

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

OS热备份

查看表空间和数据文件对应关系

SQL> select file_id,tablespace_name,file_name from dba_data_files;FILE_ID TABLESPACE_NAME FILE_NAME---------- ------------------------------ --------------------------------------------------------------------------------7 RMAN_TS /u01/app/oracle/oradata/ocmdb/dfile/rman.dbf6 BIG_TBS /u01/app/oracle/oradata/ocmdb/dfile/tbs_big01.dbf5 TBS3 /u01/app/oracle/oradata/ocmdb/dfile/tbs3.dbf4 TBS_1 /u01/app/oracle/oradata/ocmdb/dfile/tbs_1.dbf3 SYSAUX /u01/app/oracle/oradata/ocmdb/dfile/sysaux01.dbf2 UNDOTBS /u01/app/oracle/oradata/ocmdb/undotbs01.dbf1 SYSTEM /u01/app/oracle/oradata/ocmdb/dfile/system01.dbf

数据库OS热全备份脚本

#rem script:hotbak.sh#rem creater:chon#rem date:2011#rem desc:backup all database datafile in archive#--connect databasesqlplus / as sysdba <<EOF#--archivealter system archive log current;#--start hotbakalter tablespace system begin backup;!cp /u01/app/oracle/oradata/ocmdb/dfile/system01.dbf /backupalter tablespace system end backup;alter tablespace UNDOTBS begin backup;!cp /u01/app/oracle/oradata/ocmdb/undotbs01.dbf /backupalter tablespace UNDOTBS end backup;alter tablespace SYSAUX begin backup;!cp /u01/app/oracle/oradata/ocmdb/dfile/sysaux01.dbf /backupalter tablespace SYSAUX end backup;alter tablespace TBS_1 begin backup;!cp /u01/app/oracle/oradata/ocmdb/dfile/tbs_1.dbf /backupalter tablespace TBS_1 end backup;alter tablespace TBS3 begin backup;!cp /u01/app/oracle/oradata/ocmdb/dfile/tbs3.dbf /backupalter tablespace TBS3 end backup;alter tablespace BIG_TBS begin backup;!cp /u01/app/oracle/oradata/ocmdb/dfile/tbs_big01.dbf /backupalter tablespace BIG_TBS end backup;alter tablespace RMAN_TS begin backup;!cp /u01/app/oracle/oradata/ocmdb/dfile/rman.dbf /backupalter tablespace RMAN_TS end backup;#--end#--bak control file#--binaryalter database backup controlfile to '/backup/controlbinbak.000';#--asciialter database backup controlfile to trace;alter system archive log current;

说明:

1、热备份必须在数据库归档方式下才可以运行

2、以上脚本可以在数据库运行状态下备份数据库所有的数据文件(除了临时数据文件),没有必要备份联机日志。

3、归档日志至少需要一次完整备份之后的所有日志。

4、如果以上命令没有成功依次执行,那么备份也是无效的,如连接数据库不成功,那么备份则无效

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

RMAN备份脚本

--本地

创建文件夹

mkdir /home/oracle/backupmkdir /home/oracle/backup/scriptmkdir /home/oracle/backup/logmkdir /home/oracle/backup/export

--备份目的地

mkdir /home/oracle/rman_backup

创建备份表空间

create tablespace rman_tbs datafile '/oradata/luke/rman_tbs01.dbf' size 1024M;

创建备份用户

create user rman identified by rman default tablespace rman_tbs temporary tablespace temp;

grant connect,resource ,recovery_catalog_owner to rman;rman catalog rman/rmancreate catalog tablespace rman_tbs;connect target sys/lukewhx@lukeregister database;report schema;configure retention policy to redundancy 2;configure retention policy to recovery window of 7 days;--倒出RMAN用户数据脚本exp_rman.par (即备份catalog库)userid=rman/rmanfile=/home/oracle/backup/export/rman.dmplog=/home/oracle/backup/log/rman.log-- 倒出RMAN数据SHELL脚本exp_rman.sh#!/bin/bashcd $HOME. .bash_profilecd $HOME/backup/scriptexp parfile=exp_rman.par-- 零级备份RMAN脚本level0_backup.rcvconnect catalog rman/rmanconnect target sys/unumall@unu2run {CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 14 DAYS; CONFIGURE CONTROLFILE AUTOBACKUP ON; allocate channel d1 type disk;allocate channel d2 type disk;backup incremental level 0 database format '/home/oracle/rman_backup/level0_%d_%s_%p_%u.bak'tag='level 0' include current controlfile;sql 'alter system archive log current';backup archivelog all format '/home/oracle/rman_backup/log_%d_%s_%p_%u.bak' delete all input;release channel d2;release channel d1;}crosscheck backup;delete noprompt expired backup;delete noprompt obsolete;resync catalog;--零级备份SHELL脚本的level0_backup.sh#!/bin/bashcd $HOME. .bash_profilecd $HOME/backup/scriptrman cmdfile=level0_backup.rcv msglog=$HOME/backup/log/level0_backup.log. /home/oracle/backup/script/exp_rman.sh--一级差异增量备份RMAN脚本 level1_backup.rcvconnect catalog rman/rmanconnect target sys/luke@lukerun {allocate channel d1 type disk;backup incremental level 1 format '/home/oracle/rman_backup/level1_%d_%s_%p_%u.bak' tag = 'level 1' database;sql 'alter system archive log current';backup archivelog all format '/home/oracle/rman_backup/log_%d_%s_%p_%u.bak' delete all input;release channel d1;}crosscheck backup;delete noprompt expired backup;delete noprompt obsolete;resync catalog;--一级差异增量备份SHELL脚本level1_backup.sh#!/bin/bashcd $HOME. .bash_profilecd /home/oracle/backup/scriptrman cmdfile=level1_backup.rcv msglog=$HOME/backup/log/level1.log. /home/oracle/backup/script/exp_rman.sh--二级差异增量备份RMAN脚本 level2_backup.rcvconnect catalog rman/rmanconnect target sys/luke@lukerun {allocate channel d1 type disk;backup incremental level 2 format '/home/oracle/rman_backup/level2_%d_%s_%p_%u.bak' tag = 'level 2' database;sql 'alter system archive log current';backup archivelog all format '/home/oracle/rman_backup/log_%d_%s_%p_%u.bak' delete all input;release channel d1;}crosscheck backup;delete noprompt expired backup;delete noprompt obsolete;resync catalog;

--二级差异增量备份SHELL脚本level2_backup.sh

#!/bin/bashcd $HOME. .bash_profilecd /home/oracle/backup/scriptrman cmdfile=level2_backup.rcv msglog=$HOME/backup/log/level2.log. /home/oracle/backup/script/exp_rman.sh

提高 RMAN增量备份性能

alter database enable block change tracking using file'/u01/app/oracle/admin/devdb/bdump/luke.log';desc v$block_change_tracking;

linux下定时执行备份脚本

crontab -e -u oracleSHELL=/bin/bash --以下脚本在bash下执行MAILTO=oracle --执行日志以邮件形式邮给oracle用户,可以/var/spool/mail/oracle下查收10 1 * * 0 /home/oracle/backup/script/level0_backup.sh10 1 * * 1 /home/oracle/backup/script/level2_backup.sh10 1 * * 2 /home/oracle/backup/script/level2_backup.sh10 1 * * 3 /home/oracle/backup/script/level1_backup.sh10 1 * * 4 /home/oracle/backup/script/level2_backup.sh10 1 * * 5 /home/oracle/backup/script/level2_backup.sh10 1 * * 6 /home/oracle/backup/script/level2_backup.sh

一周差异备份策略:

备份目标库和catalog库

周日0级全备,周一周二为2级,周三为1级,周四周五周六为2级。

每天凌晨1点10分开始备份

零级备份

backup incremental level 0 database;

 

一级差异增量 差异增量是默认增量备份方式

backup incremental level 1 database;

一级累计增量

backup incremental level 1 cumulative database;

总结

到此这篇关于oracle备份之备份测试脚本的方法(冷备、热备、rman)的文章就介绍到这了,更多相关oracle备份测试脚本内容请搜索真格学网以前的文章或继续浏览下面的相关文章希望大家以后多多支持真格学网! 您可能感兴趣的文章:mysql数据库和oracle数据库之间互相导入备份Oracle数据库自动备份脚本分享(超实用)Python读写及备份oracle数据库操作示例Windows系统下Oracle数据库每天自动备份Linux 自动备份oracle数据库详解PL/SQL远程备份和恢复Oracle数据库Oracle自动备份及自动备份步骤

都可以用作备份,但是exp类似冷备份, 你只能够恢复到某一点而rman的话,需要开启归e68a84e8a2ad62616964757a686964616f31333337626137档,那样就可以进行无数据丢失的恢复。详细点说就是:在不开归档日志的情况下,Oracle数据库的备份只能依赖exp命令(逻辑备份)导出数据文件(注意:不包括日志文件以及控制文件等),导出的所有数据仅仅以一个大文件的方式来存放,但是这种备份容易导致丢失数据。举个例子:如果5号晚上进行了exp数据导出,但是在6号的运行过程中发生宕机,数据丢失,这个时候从5号备份后一直到6号宕机前的数据将全部丢失(即使将日志文件和控制文件拷出来都无法恢复,因为exp导出的数据无法与这些日志文件一一对应起来恢复)。所以采用exp方式备份数据还是存在很大风险的。另一种方式就是使用Oracle自带的备份工具rman。一次rman备份(物理备份)的全过程如下:因为使用rman备份不会产生数据丢失的情况,所以必须有一个全备份的文件,使用rman需要先进行一次全备份,相当于将当前数据库里面的所有文件以及日志都全盘拷贝一份到备份介质中,然后通过归档日志(实时更新的)的记录看每个进程都对数据库做了哪些修改,只要保留了一份物理备份以及物理备份之后的所有归档日志,就能够将数据库恢复到宕机前一刻的状态,将数据丢失降到最低。(每个redo log写满之后就开始写到achive log里面进行归档,这个里面还是有个时间段的,不能做到完全的实时),rman是物理备份,可以备份数据文件,表空间,数据库,几乎没有数据丢失,速度快exp是逻辑备份,可以备份单个表,用起来比较灵活,但是两个备份之间的数据会丢失,速度慢,rman是物理备份,exp是逻辑备份,如果仅从备份角度来讲的话,rman备份要稍好点,说白了抄rman就是个工具,rman备份是基于的袭rman工具,bai高级点就到dukonsole终端控制喽,自己也菜zhi过一段时间深度只了dao解到的就是挂双数据库一个rman备份,一个挂在裸设备做异地备...EXP是逻辑备份,这个是基础也是底层,rman好多还是基于这些本回答被网友采纳,rman 是热备 exp 是冷备 具体看数据的重要程度内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • oracle数据库优化策略总结篇
  • oracle中left join和right join的区别浅谈
  • 解决ora-12170:tns connect timeout occurred问题
  • oracle查看字符集后修改oracle服务端和客户端字符集的步骤
  • oracle数据库的十种重新启动步骤
  • oracle10g 安装方法
  • 解决plsql连接失败,弹出空白提示框的方法详解
  • oracle自动清理archivelog文件的具体方法
  • oracle 11g密码180天过期后的修改方法
  • oracle用户密码设为不过期的两种方法
  • ORACLE的RMAN备份和EXP备份,用哪个备份数据库比较...
  • oracle数据库备份怎么做?
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全mssqlmysqlmariadboracledb2mssql2008mssql2005sqlitepostgresqlmongodbredisaccess数据库文摘数据库其它首页mysql数据库和oracle数据库之间互相导入备份oracle数据库自动备份脚本分享(超实用)python读写及备份oracle数据库操作示例windows系统下oracle数据库每天自动备份linux 自动备份oracle数据库详解pl/sql远程备份和恢复oracle数据库oracle自动备份及自动备份步骤oracle数据库优化策略总结篇oracle中left join和right join的区别浅谈解决ora-12170:tns connect timeout occurred问题oracle查看字符集后修改oracle服务端和客户端字符集的步骤oracle数据库的十种重新启动步骤oracle10g 安装方法解决plsql连接失败,弹出空白提示框的方法详解oracle自动清理archivelog文件的具体方法oracle 11g密码180天过期后的修改方法oracle用户密码设为不过期的两种方法oracle 查看表空间的大小及使用情linux系统(x64)安装oracle11g完oracle数据库下载及安装图文操作oracle存储过程基本语法介绍oracle 10g 安装教程[图文]oracle 如何查询被锁定表及如何解基于ora-12170 tns 连接超时解决oracle数据库tns配置方法详解oracle中to_date详细用法示例(ororacle 创建表空间详细介绍oracle table demo语句应用介绍oracle密码错误次数过多账号锁定的问题(推oracle exp不能导出空表的原因分析及解决oracle逻辑运算符与其优先级简介oracle通过行范围查询取4至10行并排序oracle出现错误1033和错误ora-00600的解决oracle connect to idle instance解决方法win7下oracle 10g安装图文教程oracle 分页问题解决方案如何解决ora-01843与nls_date_format问题
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved