rman 数据备份与恢复配置指南

mousefat 贡献于2012-06-28

作者 user  创建于2012-05-07 09:29:00   修改者user  修改于2012-05-14 04:37:00字数4818

文档摘要:rman 数据备份与恢复配置指南
关键词:

系统配置 主数据库服务器 操作系统CentOS IP:192.168.0.11 Oracle 11g NFS服务器 操作系统 Linux IP: 192.168.0.74 IP: 192.168.0.75 配置NFS 服务 配置NFS服务 NFS服务包括服务端和客户端,提供跨网络的文件存储服务。安装NFS服务包括如下组件: l rpcbind l nfs l nfslock 安装方式(CentOS) 下载并安装 yum whatprovides rpcbind yum install rpcbind 启动服务 service nfs status; service nfs start; (CentOS) 或 service nfs restart; 检查服务是否启动 rpcinfo -p localhost | grep nfs 配置服务开机启动 使用setup 工具进入服务配置界面,选择System Services, 选中nfs nfslock rpcbind,然后确定并退出。 服务端配置 分别在74,75机器上以root用户登录并配置可访问NFS目录的机器IP及权限 vi /etc/exports 添加下面两行: 74: /var/nfs/rman/backup/74 192.168.0.11(rw,root_squash,sync) 75: /var/nfs/rman/backup/75 192.168.0.11(rw,root_squash,sync) 然后创建目录: 74: mkdir /var/nfs/rman/backup/74 75: mkdir /var/nfs/rman/backup/75 启用新配置 /etc/init.d/nfs restart 客户端配置 在11机器上挂载NFS目录 mkdir /mnt/74 /mnt/75 chmod 777 74 75 mount -o rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,vers=3,timeo=600,actimeo=0 -t nfs 192.168.0.74:/var/nfs/rman/backup/74 /mnt/74 mount -o rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,vers=3,timeo=600,actimeo=0 -t nfs 192.168.0.75:/var/nfs/rman/backup/75 /mnt/75 配置开机自动挂载 vi /etc/fstab 加入下面内容: 192.168.0.74:/var/nfs/rman/backup/74 /mnt/74 nfs rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,vers=3,timeo=600,actimeo=0 0 0 192.168.0.75:/var/nfs/rman/backup/75 /mnt/75 nfs rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,vers=3,timeo=600,actimeo=0 0 0 配置脚本 安装脚本 复制脚本到目录 $HOME/oracle/scripts l db_full_bak.sh l db_full_res.sh l hot_arc_log_bak.sh l hot_db_inc_bak.sh 配置脚本属组、属主与权限 su –l oracle cd $HOME/oracle/scripts ls -l chmod 744 db_full_bak.sh db_full_res.sh hot_arc_log_bak.sh hot_db_inc_bak.sh ls -l chgrp group db_full_bak.sh db_full_res.sh hot_arc_log_bak.sh hot_db_inc_bak.sh chown user db_full_bak.sh db_full_res.sh hot_arc_log_bak.sh hot_db_inc_bak.sh 配置脚本 配置ORACLE_HOME 路径 vi db_full_bak.sh vi hot_arc_log_bak.sh vi hot_db_inc_bak.sh vi db_full_res.sh 配置DBID 获取DBID: select dbid from v$database; 或 通过备份文件获取,比如: db_full_PRSDB11_DBID2049974761_20120507_T782643578_9snaccbq_1_1 vi db_full_res.sh 退出 wq! 配置数据库 设置数据库运行在归档模式 sqlplus /nolog connect / as sysdba shutdown immediate; startup mount; alter database archivelog; archive log list; alter database open; 配置控制文件多元复用 多元复用控制文件应该保存在不同磁盘上,降低控制文件丢失概率。 select name from v$controlfile;  alter system set control_files= ' /opt/oracle/oradata/prsdb11/CONTROL01.CTL '/mnt/74/CONTROL01.CTL'  scope=spfile; shutdown immediate;  host copy /opt/oracle/oradata/prsdb11/CONTROL01.CTL /mnt/74/CONTROL01.CTL;  startup 配置联机重做日志文件多元复用 联机重做日志默认有三个组。当日志组中有一个重做日志介质失效时,可以使用备用的联机重做日志,它是联机重做日志的镜像。 多元复用重做日志文件应该保存在不同磁盘上,提高可用性。 查询重做日志信息: select * from v$log; // STATUS: INACTIVE | CURRENT  select group#,member from v$logfile;  为每一组添加新的备用重做日志成员: ALTER DATABASE ADD LOGFILE MEMBER  'F:\ORABAK\REDO01.LOG' TO GROUP 1,  'F:\ORABAK\REDO02.LOG' TO GROUP 2,  'F:\ORABAK\REDO03.LOG' TO GROUP 3;  配置闪回特性(可选) 启用闪回 startup mount;   alter database flashback on;   禁用闪回 alter database flashback off; 设置闪回日志保留时间 alter system set db_flashback_retention_target=4320; #3days 设置闪回区 alter system set db_recovery_file_dest= /opt/oracle/flash_recovery_area; alter system set db_recovery_file_dest_size=8G; show parameter db_recovery_file_dest;  alter database open; select flashback_on from v$database;  闪回表需要启用行移动 alter table tablename enable row movement; 以sys用户登录授权给用户闪回权限 grant flashback any table to user; 查询当前SCN select current_scn from v$database; 查询最早可闪回的SCN select * from v$flashback_database_log;  配置RMAN su –l oracle rman target / nocatalog show all; configure retention policy to recovery window of 7 days; configure backup optimization on; configure controlfile autobackup on; configure controlfile autobackup format for device type disk to '/mnt/74/AUTOBACKUP/%F'; configure datafile backup copies for device type disk to 2; configure archivelog backup copies for device type disk to 2; CONFIGURE DEVICE TYPE DISK PARALLELISM 2 BACKUP TYPE TO BACKUPSET; show all; mkdir /mnt/74/AUTOBACKUP 启用块跟踪功能 ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE 'RmanBlockChangeTrack.f'; SELECT STATUS FROM V$BLOCK_CHANGE_TRACKING; 联机备份 配置备份脚本运行时间 以oracle 用户登录 su -l oracle 编辑任务: l 周六3:00执行0级备份 l 周日到周五1:00执行1级备份 l 每天6:30 12:30 18:30 23:30执行归档日志备份 crontab -e 0 3 * * 6 /home/oracle/oracle/scripts/hot_db_inc_bak.sh 0 1 * * 0-5 /home/oracle/oracle/scripts/hot_db_inc_bak.sh 30 6,12,18,23 * * * /home/oracle/oracle/scripts/hot_arc_log_bak.sh 编辑完成后保存并退出 wq! 查看任务配置 crontab –u oracle -l 应用新配置 以root用户登录 su root 重启crond 服务 cd /etc/init.d ./crond restart ps -ef | grep crond l 注意:保证只有一个crond 进程,如果有多个,定时任务会执行多次。 完全恢复 执行db_full_res.sh执行数据库完全恢复。 11: su –l oracle cd $HOME/oracle/scripts ls –l ./db_full_res.sh 如完全恢复失败,请联系系统维护人员。 手动恢复 恢复参数文件 编辑init.ora db_name= instance_name=SID control_files=’…/CONTROL01.CTL’ db_block_size=8192 shared_pool_size=104857600 使用init.ora 启动数据库 RMAN> startup nomount pfile= ‘…/init.ora’; restore spfile; shutdown immediate; startup; 恢复用户表 根据SCN恢复 restore database; recover database until scn scn#; 根据时间恢复 restore database; recover database until time “to_date(‘20120513111000’, ‘yyyymmddhh24miss’ )”; 恢复incarnation 使用resetlogs 打开数据库时,表示新的数据库逻辑生存周期的开始,每个逻辑生存周期用incarnation(对应物)表示。 当使用 resetlog 打开数据库时,若要使用之前的备份数据,需要恢复为前一个incarnation 。 list incarnation; reset database to incarnation incarnation#; shutdown immediate; startup nomount; 错误解决方案 ORA-01152: alter system set "_ALLOW_RESETLOGS_CORRUPTION"=true scope=spfile; startup force mount;

下载文档到电脑,查找使用更方便

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 5 金币 [ 分享文档获得金币 ] 0 人已下载

下载文档