在这里没有讨论多么深入的RMAN技术,也没有告诉大家这样去编写备份脚本,这并不是我的初衷,我只想把我会的写出来,和大家一起学习,一起进步,谢谢。
1、切换服务器归档模式,如果已经是归档模式可跳过此步:
%sqlplus /nolog (启动sqlplus)
SQL> conn / as sysdba (以DBA身份连接数据库)
SQL> shutdown immediate; (立即关闭数据库)
SQL> startup mount (启动实例并加载数据库,但不打开)
SQL> alter database archivelog; (更改数据库为归档模式)
SQL> alter database open; (打开数据库)
SQL> alter system archive log start; (启用自动归档)
SQL> exit (退出)
2、连接: %rman target=rman/rman@mydb (启动恢复管理器)
3、基本设置: RMAN> configure default device type to disk; (设置默认的备份设备为磁盘)
RMAN> configure device type disk parallelism 2; (设置备份的并行级别,通道数)
RMAN> configure channel 1 device type disk fromat '/backup1/backup_%U'; (设置备份的文件格式,只适用于磁盘设备)
RMAN> configure channel 2 device type disk fromat '/backup2/backup_%U'; (设置备份的文件格式,只适用于磁盘设备)
RMAN> configure controlfile autobackup on; (打开控制文件与服务器参数文件的自动备份)
RMAN> configure controlfile autobackup format for device type disk to '/backup1/ctl_%F'; (设置控制文件与服务器参数文件自动备份的文件格式)
4、查看所有设置:
RMAN> show all
5、查看数据库方案报表:
RMAN> report schema;
6、备份全库:
RMAN> backup database plus archivelog delete input; (备份全库及控制文件、服务器参数文件与所有归档的重做日志,并删除旧的归档日志)
7、备份表空间:
RMAN> backup tablespace system plus archivelog delete input; (备份指定表空间及归档的重做日志,并删除旧的归档日志)
8、备份归档日志:
RMAN> backup archivelog all delete input;
9、复制数据文件:
RMAN> copy datafile 1 to '/oracle/dbs/system.copy';
10、查看备份和文件复本:
RMAN> list backup;
11、验证备份:
RMAN> validate backupset 3;
12、从自动备份中恢复服务器参数文件:
RMAN> shutdown immediate; (立即关闭数据库)
RMAN> startup nomount; (启动实例)
RMAN> restore spfile to pfile '/backup1/mydb.ora' from autobackup; (从自动备份中恢复服务器参数文件)
13、从自动备份中恢复控制文件:
RMAN> shutdown immediate; (立即关闭数据库)
RMAN> startup nomount; (启动实例)
RMAN> restore controlfile to '/backup1' from autobackup; (从自动备份中恢复控制文件)
13、恢复和复原全数据库:
RMAN> shutdown immediate; (立即关闭数据库)
RMAN> exit (退出)
%mv /oracle/dbs/tbs_12.f /oracle/dbs/tbs_12.bak (将数据文件重命名)
%mv /oracle/dbs/tbs_13.f /oracle/dbs/tbs_13.bak (将数据文件重命名)
%mv /oracle/dbs/tbs_14.f /oracle/dbs/tbs_14.bak (将数据文件重命名)
%mv /oracle/dbs/tbs_15.f /oracle/dbs/tbs_15.bak (将数据文件重命名)
%rman target=rman/rman@mydb (启动恢复管理器)
RMAN> startup pfile=/oracle/admin/mydb/pfile/initmydb.ora (指定初始化参数文件启动数据库)
RMAN> restore database; (还原数据库) RMAN> recover database; (恢复数据库)
RMAN> alter database open; (打开数据库)
14、恢复和复原表空间:
RMAN> sql 'alter tablespace users offline immediate'; (将表空间脱机)
RMAN> exit (退出恢复管理器)
%mv /oracle/dbs/users01.dbf /oracle/dbs/users01.bak (将表空间重命名)
%rman target=rman/rman@mydb (启动恢复管理器)
RMAN> restore tablespace users; (还原表空间)
RMAN> recover tablespace users; (恢复表空间)
RMAN> sql 'alter tablespace users online'; (将表空间联机)
15、增量备份与恢复:
第一天的增量基本备份:
RMAN> backup incremental level=0 database plus archivelog delete input;
第二天的增量差异备份:
RMAN> backup incremental level=2 database plus archivelog delete input;
第三天的增量差异备份:
RMAN> backup incremental level=2 database plus archivelog delete input;
第四天的增量差异备份:
RMAN> backup incremental level=1 database plus archivelog delete input;
第五天的增量差异备份:
RMAN> backup incremental level=2 database plus archivelog delete input;
第六天的增量差异备份:
RMAN> backup incremental level=2 database plus archivelog delete input;
第七天的增量差异备份:
RMAN> backup incremental level=0 database plus archivelog delete input;
增量恢复:
RMAN> shutdown immediate;
RMAN> exit
%mv /oracle/dbs/tbs_12.f /oracle/dbs/tbs_12.bak
%mv /oracle/dbs/tbs_13.f /oracle/dbs/tbs_13.bak
%mv /oracle/dbs/tbs_14.f /oracle/dbs/tbs_14.bak
%mv /oracle/dbs/tbs_15.f /oracle/dbs/tbs_15.bak
%rman target=rman/rman@mydb
RMAN> startup pfile=/oracle/admin/mydb/pfile/initmydb.ora
RMAN> restore database;
RMAN> recover database;
RMAN> alter database open。
(e129)on.htm simulator/doc/license_keys.htm simulator/doc/sdk.style.css simulator/doc/davehitzforeword.htm simulator/doc/troubleshooting.htm simulator/readme.htm
simulator/doc/faq.htm simulator/license.htm simulator/setup.sh
simulator/runsim.sh
simulator/sim.tgz -- 在正式备份之前,一定按如下要求去做。 -- 版权声明如下: -- 读者可以任意拷贝、修改该备份脚本的内容,但不可以篡改作者。 -- 作者: 徐玉金
各文件的作用:
1.rman_db_all.sh :
备份整个oracle数据库,该文件会先后调用rman_db.sh,scp_rman_db_files.sh文件
2.rman_db.sh:
由rman_db_all.sh文件调用,实现用rman备份数据库. 该脚本会首先根据环境变量的设置: a.生成一个rman脚本文件(rman_arch_cr_g.sh), 去检查归档日志的情况 b.生成一个rman脚本文件(rman_db_backup_g.sh), 备份整个数据库
3.scp_rman_db_files.sh: 由rman_db_all.sh文件调用,将用rman备份出的数据文件拷贝到另外一个机器上,用scp拷贝
4.OS_bak_arch.sh: 用操作系统拷贝方法只备份归档日志文件,该文件会先后调
用OS_bak_arch.sh, scp_rman_arch_files.sh文件
5.OS_bak_arch.sh: 由OS_bak_arch.sh文件调用,实现将新产生的归档日志拷贝到指定的目录.
6.scp_rman_arch_files.sh 由OS_bak_arch.sh文件调用,将第5步的指定目录的归档日志用scp拷贝到另外一台机器上。
具体设置方法:
1.设置服务器,使之用ssh与scp密码登录时不用密码
2.在备份服务器上创建相应的备份目录, 为 BACKUP_SERVER_TARGET, BACKUP_SERVER_SCRIPT_TARGET 环境变量指定的值
3.在数据库服务器上创建相应的目录, 为 BACKUP_BASE, SCRIPT_FILE_TARGET 环境变量指定的值
3.修改所有文件中的相应环境变量的值,所有文件的环境变量都一样
4.运行前将rman_db_all.sh,rman_arch_all.sh文件前面有中文的行去掉
5.根据归档目录个数的不同,适当的修改脚本
6.将所有脚本拷贝到备份服务器的BACKUP_SERVER_SCRIPT_TARGET目录下,并使所有的脚本由可执行权限
10.将rman_db_all.sh文件加到cron中,每天运行一次。rman_arch_all.sh也加到cron中,每30分钟运行一次
11.根据需要修改,LOG_CHECKPOINT_TIMEOUT,使之在指定的时间内归档, 这样可以保证在整个系统硬盘都崩溃的情况的,只损失指定时间的记录
备注:
1.在oracle9i下测试通过
2.每个scrip中都设置enviroment variable的原因是:用ssh时,环境变量传不过去。
Oracle 恢复管理( RMAN )有很多可以用来帮助备份和恢复进程的功能,
该工具具有命令行和 GUI 两种版本。通常, RMAN 执行并标准化备份和恢复进程,并且通过其操作,减少 DBA 在此过程中犯的错误。
RMAN 的主要功能如下所示:
备份数据库、表空间、数据文件、控制文件和归档日志
RMAN 工具能以很多种方法备份 Oracle 数据库,给备份和恢复方法提供了很大的灵活性。
通过确定哪些块已经修改,并且仅备份修改过的块来压缩备份
RMAN 提高备份性能的方法之一就是压缩备份。
RMAN 能识别出哪些块被修改过,并且只备份这些修改过的块,不备份空块。
执行增量备份
RMAN 具有执行增量备份和完全备份的能力。
增量备份仅备份从上次备份后修改了的内容,此方法允许你一周只有一天执行完全备份,而其它几天都执行增量备份,这样就提高了备份的性能。
提供多项任务合并执行的脚本功能
RMAN 提高你备份、还原和恢复操作的方法之一就是允许 RMAN 命令脚本化。
该脚本可能饮食多个存储在恢复目录内的 RMAN 命令。
可以重复调用、执行这些脚本来完成任务。
日志备份操作
随着时间发展, RMAN 具有记录所有备份状态的能力。该信息存储在日志和跟踪文件中。
可第三方磁带介质软件集成
RMAN 工具有到很多第三方磁带介质软件的 API ,这就允许 RMAN 在其它非 Oracle 的备份工具中运行,也可以被某机构集成到通用备份策略中。
提供目录信息报表和列表
可以使用 RMAN LIST 和 REPORT 命令查询存储在必得目录中有关备份的信息,这些命令提供显示信息的有效方法。
在 Oracle 数据库的目录中存储有关备份的信息 有关备份的信息存储在恢复目录中。日后任何时候都可以还原该信息。
提供性能好处,如并行处理备份和还原操作
备份和还原操作可以并行处理。它支持将工作负载分配到不同的磁带头和磁盘设备上,
这样可以提高性能。 出于测试或开发目的创建数据库副本
可以从 RMAN 备份创建数据库副本,并可用于测试目的。
测试备份是否能成功还原
RMAN 提供的 VALID 命令可以检查备份是否有效的。
检测介质库中的备份是否依然可用
RMAN 提供的 CROSSCHECK 命令可以检测备份介质和目录信息是否匹配。