Chinaunix首页 | 论坛 | 博客
  • 博客访问: 29317
  • 博文数量: 14
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 180
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-03 12:58
文章分类

全部博文(14)

文章存档

2011年(1)

2010年(1)

2009年(12)

我的朋友

分类: Oracle

2009-01-21 11:21:18

RMAN实施
建立恢复目录服务器
由于从库负担较小,直接在从库上建立RMAN恢复目录数据库,备份主库
创建恢复目录数据库
关闭数据库
主库  shutdown
从库  alter database recover managed standby database cancel;
      shutdown;
修改生产库创建脚本,数据库名为SYRMAN,创建数据库
注意:sh文件把CP listener.ora tnsnames.ora的命令注释掉
修改 listener.ora
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.123.7)(PORT = 1688))
    )
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.123.7)(PORT = 1521))
    )
  )
 
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = SYTSP.PKIBM.COM)
      (ORACLE_HOME = /oraapp/oracle/92)
      (SID_NAME = SYTSP)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = SYRMAN.PKIBM.COM)
      (ORACLE_HOME = /oraapp/oracle/92)
      (SID_NAME = SYRMAN)
    )
修改tnsnames.ora 添加
RMAN =
(DESCRIPTION =
  (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.123.7)(PORT = 1521))
  )
  (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SID = SYRMAN)
  )
)
创建RMAN用户在目录数据库上
在目录数据库中创建恢复目录所需的表空间
  CREATE TABLESPACE rman_ts DATAFILE '/oradata/SYRMAN/data/SYRMAN_rman' SIZE 200m;
在目录数据库中创建RMAN用户
  CREATE USER rman IDENTIFIED BY rman
  DEFAULT TABLESPACE rman_ts
  TEMPORARY TABLESPACE TEMPTBS
  QUOTA UNLIMITED ON rman_ts;
rman用户授权
  GRANT recovery_catalog_owner,connect,resource TO rman;
建立恢复目录
  -$ /oraapp/oracle/92/bin/rman
  -RMAN>connect catalog ;
  -RMAN>create catalog tablespace rman_ts; //
创建catalogrman_ts表空间
登陆上生产数据库上创建备份用户
-SQL>STARTUP
  -SQL>CREATE USER rman IDENTIFIED BY rman
  -SQL>GRANT sysdba TO rman;
连接上生产数据库注册
  -RMAN>CONNECT TARGET
  -RMAN>REGISTER DATABASE;
创建RMAN脚本
在主库上创建备份暂存目录
[oracle@PKIBM6 dba]$ cd /oradata/
[oracle@PKIBM6 oradata]$ mkdir orabk
 
在目录库上创建脚本目录
[oracle@PKIBM7 admin]$ cd /oraapp/oracle/
[oracle@PKIBM7 oracle]$ mkdir dba
[oracle@PKIBM7 oracle]$ cd dba/
[oracle@PKIBM7 dba]$ mkdir log
 
在目录库上创建备份保存目录
[root@PKIBM7 ~]# mkdir /hotbkup
[root@PKIBM7 ~]# mkdir /offbkup
[root@PKIBM7 /]# chown oracle:dba /hotbkup/
[root@PKIBM7 /]# chown oracle:dba /offbkup
[root@PKIBM7 /]# su - oracle
[oracle@PKIBM7 ~]$ mkdir -p /hotbkup/data/orabk
[oracle@PKIBM7 ~]$ mkdir -p /hotbkup/data/day/
[oracle@PKIBM7 ~]$ mkdir -p /offbkup/data/cweek/
[oracle@PKIBM7 ~]$ mkdir -p /offbkup/data/pweek/
 
把主机备份目录挂载到备份存储机器上
[root@PKIBM6 oradata]# vi /etc/exports
/oradata/SYTSP/data/    192.168.123.7(rw)
/oradata/orabk/       192.168.123.7(rw)
[root@PKIBM6 oradata]# service portmap restart
[root@PKIBM6 oradata]# service nfs restart
[root@PKIBM7 /]# service portmap restart
[root@PKIBM7 /]# mount -t nfs 192.168.123.6:/oradata/orabk/ /hotbkup/data/orabk/
 
脚本
日志文件改名
/oraapp/oracle/dba/DBA_rename.sql
connect RMAN/RMAN@RMAN;
set echo off
set feedback off
set linesize 1000
set pagesize 0
set verify off
spool /oraapp/oracle/dba/log/rename.txt
select 'dd bs=1024 if=&1 of=/oraapp/oracle/dba/log/RLog_'||to_char(sysdate,'d')||'.txt' from dual;
spool off
host chmod 755 /oraapp/oracle/dba/log/rename.txt
host /oraapp/oracle/dba/log/rename.txt
host rm -rf /oraapp/oracle/dba/log/rename.txt
exit;
拷贝备份到备份设备
/oraapp/oracle/dba/ora_os.sh
#!/bin/sh
#
# copy all backup files from the db server72
#
cp /hotbkup/data/orabk/* /hotbkup/data/tmp/ >>/oraapp/oracle/dba/log/bkup.log
#
# move the daily backup to current week directory
#
cp /hotbkup/data/tmp/* /offbkup/data/cweek/ >>/oraapp/oracle/dba/log/bkup.log
#
# remove the yestoday's backup files
#
rm -rf /hotbkup/data/day/* >>/oraapp/oracle/dba/log/bkup.log
#
# copy all the backup file to day directory
#
mv /hotbkup/data/tmp/* /hotbkup/data/day/ >>/oraapp/oracle/dba/log/bkup.log
#
# delete all the db server72's backup files to free diskspace
# must delete at last for security
#
rm -rf /hotbkup/data/orabk/* >>/oraapp/oracle/dba/log/bkup.log
#
# list all the backup file
#
ls -l /hotbkup/data/orabk/ >>/oraapp/oracle/dba/log/bkup.log
ls -l /hotbkup/data/tmp/ >>/oraapp/oracle/dba/log/bkup.log
ls -l /hotbkup/data/day/ >>/oraapp/oracle/dba/log/bkup.log
ls -l /offbkup/data/cweek/ >>/oraapp/oracle/dba/log/bkup.log
#
# send email to dba
#
mail -s "BK_`date "+%Y-%m-%d"`_log" westzq@hotmail.com
全备份
/oraapp/oracle/dba/full_bkup.sh
#!/bin/sh
export ORACLE_HOME=/oraapp/oracle/92
export DBA_HOME=/oraapp/oracle/dba
export ORACLE_SID=RMAN
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export NLS_DATE_FORMAT='YYYY-MM-DD_HH24:MI:SS'
$ORACLE_HOME/bin/rman cmdfile $DBA_HOME/full_bkup.rcv msglog $DBA_HOME/log/bkup.log
$ORACLE_HOME/bin/sqlplus /nolog @$DBA_HOME/DBA_rename.sql $DBA_HOME/log/bkup.log
/oraapp/oracle/dba/ora_os.sh &
 
/oraapp/oracle/dba/full_bkup.rcv
connect catalog RMAN/RMAN@RMAN;
connect target RMAN/RMAN@primary;
run {
allocate channel ch1 device type disk;
allocate channel ch2 device type disk;
backup spfile format='/oradata/orabk/%T_spfile_%d_%s_%p';
backup full filesperset=2 tag='Full_%d' format='/oradata/orabk/%T_full_%d_%s_%p'
database include current controlfile;
sql 'alter system archive log current';
backup filesperset=4 format='/oradata/orabk/%T_arch_%d_%s_%p' archivelog all delete input;
release channel ch1;
release channel ch2;
}
quit;
0级备份
/oraapp/oracle/dba/lev0_bkup.sh
#!/bin/sh
export ORACLE_HOME=/oraapp/oracle/92
export DBA_HOME=/oraapp/oracle/dba
export ORACLE_SID=RMAN
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export NLS_DATE_FORMAT='YYYY-MM-DD_HH24:MI:SS'
$ORACLE_HOME/bin/rman cmdfile $DBA_HOME/lev0_bkup.rcv log $DBA_HOME/log/bkup.log
$ORACLE_HOME/bin/sqlplus /nolog @$DBA_HOME/DBA_rename.sql $DBA_HOME/log/bkup.log
/oraapp/oracle/dba/ora_os.sh &
 
/oraapp/oracle/dba/lev0_bkup.rcv
connect catalog RMAN/RMAN@RMAN;
connect target RMAN/RMAN@primary;
run {
allocate channel ch1 device type disk;
allocate channel ch2 device type disk;
backup spfile format='/oradata/orabk/%T_spfile_%d_%s_%p';
backup incremental level=0
filesperset=2 tag='Lev0_%d'
format='/oradata/orabk/%T_lev0_%d_%s_%p'
database include current controlfile;
sql 'alter system archive log current';
backup filesperset=4 format='/oradata/orabk/arch_%T_%d_%s_%p'
archivelog all delete input;
release channel ch1;
release channel ch2;
}
quit;
1级备份
/oraapp/oracle/dba/lev1_bkup.sh
#!/bin/sh
export ORACLE_HOME=/oraapp/oracle/92
export DBA_HOME=/oraapp/oracle/dba
export ORACLE_SID=RMAN
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export NLS_DATE_FORMAT='YYYY-MM-DD_HH24:MI:SS'
$ORACLE_HOME/bin/rman cmdfile $DBA_HOME/lev1_bkup.rcv log $DBA_HOME/log/bkup.log
$ORACLE_HOME/bin/sqlplus /nolog @$DBA_HOME/DBA_rename.sql $DBA_HOME/log/bkup.log
/oraapp/oracle/dba/ora_os.sh &
 
/oraapp/oracle/dba/lev1_bkup.rcv
connect catalog RMAN/RMAN@RMAN;
connect target RMAN/RMAN@primary;
run {
allocate channel ch1 device type disk;
allocate channel ch2 device type disk;
backup spfile format='/oradata/orabk/%T_spfile_%d_%s_%p';
backup incremental
level=1
filesperset=2
tag='Lev1_%d'
format='/oradata/orabk/%T_lev1_%d_%s_%p'
database include current controlfile;
sql 'alter system archive log current';
backup filesperset=4
format='/oradata/orabk/arch_%T_%d_%s_%p'
archivelog all delete input;
release channel ch1;
release channel ch2;
}
quit;
2级备份
/oraapp/oracle/dba/lev2_bkup.sh
#!/bin/sh
export ORACLE_HOME=/oraapp/oracle/92
export DBA_HOME=/oraapp/oracle/dba
export ORACLE_SID=RMAN
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export NLS_DATE_FORMAT='YYYY-MM-DD_HH24:MI:SS'
$ORACLE_HOME/bin/rman cmdfile $DBA_HOME/lev2_bkup.rcv log $DBA_HOME/log/bkup.log
$ORACLE_HOME/bin/sqlplus /nolog @$DBA_HOME/DBA_rename.sql $DBA_HOME/log/bkup.log
/oraapp/oracle/dba/ora_os.sh &
 
/oraapp/oracle/dba/lev2_bkup.rcv
connect catalog RMAN/RMAN@RMAN;
connect target RMAN/RMAN@primary;
run {
allocate channel ch1 device type disk;
allocate channel ch2 device type disk;
backup spfile format='/oradata/orabk/%T_spfile_%d_%s_%p';
backup incremental
level=2
filesperset=2
tag='Lev2_%d'
format='/oradata/orabk/%T_lev2_%d_%s_%p'
database include current controlfile;
sql 'alter system archive log current';
backup filesperset=4
format='/oradata/orabk/arch_%T_%d_%s_%p'
archivelog all delete input;
release channel ch1;
release channel ch2;
}
quit;
 
/oraapp/oracle/dba/ora_wk.sh   
#!/bin/sh
#
# remove all the last week backup files
#
rm -rf /offbkup/data/pweek/*
#
# move current week backup file to preview week folder
#
mv /offbkup/data/cweek/* /offbkup/data/pweek/
日志调度
crontab -e
0 2 28 1 *    /oraapp/oracle/dba/full_bkup.sh
10 0 * * 0    /oraapp/oracle/dba/lev0_bkup.sh
10 0 * * 1-2  /oraapp/oracle/dba/lev2_bkup.sh
10 0 * * 3    /oraapp/oracle/dba/lev1_bkup.sh
10 0 * * 4-6  /oraapp/oracle/dba/lev2_bkup.sh
10 3 * * 0    /oraapp/oracle/dba/ora_wk.sh
 
 
阅读(836) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~