Chinaunix首页 | 论坛 | 博客
  • 博客访问: 676317
  • 博文数量: 163
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1625
  • 用 户 组: 普通用户
  • 注册时间: 2014-11-24 11:40
个人简介

资深Oracle数据库专家 OCM认证大师 10年数据库相关服务及开发经验 各类数据库相关方案的编写,管理及实施 数据中心数据库日常运维、大型项目割接、性能优化等方面有丰富的实战经验 客户包括: 电信,银行,保险,航空,国网,汽车,烟草等 想要一起学习探讨数据安全技术的请加qq群 256041954

文章分类

全部博文(163)

文章存档

2017年(2)

2016年(112)

2015年(38)

2014年(11)

我的朋友

分类: Oracle

2015-01-07 16:59:47

甘肃RMAN 配置流程

 

1.  备份配置规范

l    操作系统字符集 配置为 ZHS16GBK

l    备份远程挂接目录 配置为/back/rmanbackup

l    NFS 挂接采用异同步方式

2.  备份脚本执行流程


3.  相关备份脚本目录(脚本信息应该放在双机热备NFS客户端服务器上)

l  脚本总目录为/bossdata/backupScripts

l  全备份脚本/bossdata/backupScripts/backup.rman

l  日志备份脚本/bossdata/backupScripts/backup_arch.rman

l  全备份启动脚本/bossdata/backupScripts/bossdb_backup.sh

l  日志备份启动脚本/bossdata/backupScripts/bossdb_backup_arch.sh

4.  备份文件存储位置列表(在备份服务器上)

l  数据文件和控制文件备份存储位置     /back/rmanbackup/bossdb*

l  日志文件备份存储位置               /back/rmanbackup/bossdblog*

5.  执行计划和配置策略

l  每月2日~月底最后一天凌晨0030分别进行数据库联机物理全备份

l  小时单位中在15分和45分,即每间隔30分钟备份归档日志

l  月末夜间到次月1日凌晨出帐不做数据库备份,日志文件保留3

l  任何时候最少保留三份备份集

l  启动控制文件和参数文件的自动备份

6.  备份监控

l  通过日志文件/back/rmanbackup/archive_log.rman查看备份情况;

l  监控备份服务器/back/rmanbackup分区的磁盘空间情况,如果空间使用率超过70%,请考虑增加磁盘空间

l  /bossdata/arch_log存放的是数据库的归档日志,需要监控其空间使用情况(由于备份服务器上空间有限,归档日志存放在双机热备的共享盘阵上)

7.  备份部署

7.1. 备份服务器分区挂载

数据库主机操作系统为solaris,备份服务器操作系统为linux,使用如下方法将linux分区挂载到solaris

?   在备份服务器上建立分区/back/rmanbackup,空间要求至少为生产库所有数据文件大小的5

 (备份策略为保存2份完整备份集的前提下).

?  修改备份服务器/etc/exports,增加共享目录

/back/rmanbackup 192.168.1.205(rw,async,no_root_squash)

/back/rmanbackup 192.168.1.215(rw,async,no_root_squash)

其中IP地址分别为双机中两台机器的IP地址

?  启动与停止备份服务器的nfs服务

/etc/rc.d/init.d/portmap  start (在redhatportmap是默认启动的)

/etc/rc.d/init.d/nfs  start  启动

/etc/rc.d/init.d/nfs  stop  停止

 

注:修改/etc/exports文件增加新的共享之后应先停止NFS服务,再启动NFS服务方能是新增加的共享起作用。使用命令exportfs -rv 也可以达到同样的效果。

设置备份服务器的nfs服务开机自启动

# chkconfig --list|grep nfs ——查看nfs自启动状态

nfs             0:off   1:off   2:off   3:off   4:off   5:off   6:off

nfslock         0:off   1:off   2:off   3:on    4:on    5:on    6:off

# chkconfig nfs on      ——设置nfs服务的开机自启动

# chkconfig --list|grep nfs ——查看nfs自启动状态

nfs             0:off   1:off   2:on    3:on    4:on    5:on    6:off

nfslock         0:off   1:off   2:off   3:on    4:on    5:on    6:off

# chkconfig --list|grep portmap——查看portmap自启动状态

portmap         0:off   1:off   2:off   3:on    4:on    5:on    6:off

# chkconfig portmap on  ——设置portmap开机自启动

# chkconfig --list|grep portmap——查看portmap自启动状态

portmap         0:off   1:off   2:on    3:on    4:on    5:on    6:off

?  在两台主应用服务器建立目录/rmanbackup

?  在两台主应用服务器挂载备份目录

mount -o vers=3,bg,hard,nointr,rsize=32768,wsize=32768,timeo=600,actimeo=0 192.168.1.225:/back/rmanbackup /rmanbackup

其中IP地址为备份服务器的IP地址

 

 

8.  修改数据库为归档模式

如果数据库为非归档模式,需要将数据库修改为归档模式。

?  查看数据库是否处于归档模式

SQL> archive log list;

Database log mode              Archive Mode

Automatic archival              Enabled

Archive destination             /bossdata/archData

Oldest online log sequence       20208

Next log sequence to archive      20210

Current log sequence            20210

?  设置归档日志存放位置(如果你想的话)

SQL> alter system set log_archive_dest_1='location=/star_db/arch_log’;(红色路径随意)

如果数据库启动在双机上,将$ORACLE_HOME/dbs/spfilestarsms.ora文件拷贝到另外一台

主机的相同的位置下

 

?  停止数据库

如果数据库是启动在双机上,请使用集群停止数据库,并手工挂载磁盘阵列到一台主机上。

可以用菜单停止oracle-app任务,不需要手工挂载磁盘阵列,然后就启动数据库到mount状态按要求执行命令。

如果是单机,直接执行

SQL>shutdown immediate;

?  启动数据库到mount状态

SQL>startup mount;

?  修改数据库为归档模式

SQL> alter database archivelog;

如果是oracle10g之前版本,需再执行

SQL> alter system set log_archive_start=true scope=spfile;

?  确认数据库已修改为归档模式

SQL> archive log list;

?  启动数据库

如果数据库运行在双机上,执行

SQL>shutdown immediate;

停止数据库,并使用集群软件正常启动数据库。

如果数据库运行在单机上,执行

SQL>alter database open;

直接打开数据库即可。

?  验证归档是否正常,执行

SQL> alter system switch logfile;

并到归档日志存放位置(/bossdata/archData/)下查看是否有归档文件产生。

9.  备份策略配置

ORACLE用户执行以下命令以RMAN登录数据库

bash-2.05$rman target /

执行以下命令查看当前备份策略,同时判断备份策略是否已经调整正确。

RMAN>show all;

?  修改备份文件保持策略配置

RMAN>CONFIGURE RETENTION POLICY TO REDUNDANCY 3;

表示任何时候最少保留一份备份集。

?  控制文件自动备份配置

RMAN>CONFIGURE CONTROLFILE AUTOBACKUP ON;

表示开启自动备份控制文件和参数文件。

10.部署备份脚本

?  部署脚本bossdb_backup.shbossdb_backup_arch.shbackup_arch.rmanbackup.rman/bossdata/backupScripts/目录,并赋予可执行权限

?  以ORACLE用户执行脚本bossdb_backup.sh,查看输出日志和/rmanbackup目录,测

 试备份是否成功。如果成功,会在备份目录下生成类似bossdbSTARSMS04nctsv6_1_1.dbf.20120607的文件和lkSTARSMSorapwstarsms两个目录。

?  以ORACLE用户执行归档日志备份脚本bossdb_backup_arch.sh,查看输出日志和

/rmanbackup目录,测试备份是否成功

?  增加ORALCE用户的crontab,定时自动执行备份脚本

命令栏输入crontab -e oracle

--物理全备份,出账日不需要全备份

30 00 2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31**

/star_db/backup/bossdb_backup.sh >> /star_db/backup/log.rman

--每隔30分钟归档日志备份

15,45****/star_db/backup/bossdb_backup_arch.sh>>/star_db/backup/archive_log.rman

 

11.脚本内容

文件:backup.rman

report obsolete;

delete noprompt obsolete;

run{

allocate channel d1 type disk;

allocate channel d2 type disk;

allocate channel d3 type disk;

allocate channel d4 type disk;

allocate channel d5 type disk;

backup filesperset 20 database tag gsbossdb include current controlfile format '/rmanbackup/bossdb%d%U.dbf.%T';

sql 'alter system archive log current';

sql 'alter system archive log current';

backup filesperset 200 format '/rmanbackup/bossdblog_t%t_s%s_p%p' archivelog all;

backup current controlfile format '/rmanbackup/controlfile%d%U.dbf.%T';

release channel d1;

release channel d2;

release channel d3;

release channel d4;

release channel d5;

}

delete archivelog until time 'sysdate-3';

quit

 

 

文件:backup_arch.rman

run{

#crosscheck backup;

Crosscheck archivelog all;

delete noprompt archivelog until time 'SYSDATE-3';

allocate channel d1 type disk;

sql 'alter system archive log current';

sql 'alter system archive log current';

backup filesperset 20 format '/rmanbackup/archlog_t%t_s%s_p%p' archivelog all  delete input;

backup current controlfile format '/rmanbackup/controlfile%d%U.dbf.%T';

release channel d1;

}

quit

 

文件:bossdb_backup.sh

#!/bin/bash

export ORACLE_BASE=/opt/oracle

export ORACLE_HOME=/opt/oracle/gs/product/11.2.0/dbhome_1

export ORACLE_SID=stardb

export ORACLE_TERM=sun5

#NLS_LANG='SIMPLIFIED CHINESE_CHINA'.ZHS16GBK .......

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

export LANG=zh_CN

export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data

export CLASSPATH=$ORACLE_HOME/jdbc/lib/classes111.zip

export LD_LIBRARY_PATH=$ORACLE_HOME/lib32:$ORACLE_HOME/rdbms/lib:$ORACLE_HOME/rdbms/demo:/usr/lib:/usr/openwin/lib:/usr/dt/lib

export PATH=/opt/oracle/gs/product/11.2.0/dbhome_1/bin:/bin:/sbin:/usr/ccs/bin:/usr/local/bin

/bin:$ORACLE_HOME/bin:$PATH

echo "Single Backup Beginning time:" `date +'%Y-%m-%d %H:%M'`

#env

/opt/oracle/gs/product/11.2.0/dbhome_1/bin/rman target / nocatalog

@/bossdata/backupScripts/backup.rman

cp $ORACLE_HOME/dbs/lkSTARDB* /rmanbackup

cp $ORACLE_HOME/dbs/orapwstardb /rmanbackup

echo "Single Backup End time:" `date +'%Y-%m-%d %H:%M'`

 

文件bossdb_backup_arch.sh

#!/bin/bash

export ORACLE_BASE=/opt/oracle

export ORACLE_HOME=/opt/oracle/gs/product/11.2.0/dbhome_1

export ORACLE_SID=stardb

export ORACLE_TERM=sun5

#NLS_LANG='SIMPLIFIED CHINESE_CHINA'.ZHS16GBK .......

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

export LANG=zh_CN

export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data

export CLASSPATH=$ORACLE_HOME/jdbc/lib/classes111.zip

export LD_LIBRARY_PATH=$ORACLE_HOME/lib32:$ORACLE_HOME/rdbms/lib:$ORACLE_HOME/rdbms/demo:/usr/lib:/usr/openwin/lib:/usr/dt/lib

export PATH=/opt/oracle/gs/product/11.2.0/dbhome_1/bin:/bin:/sbin:/usr/ccs/bin:/usr/local/bin

echo "Archive Backup Beginning time:" `date +'%Y-%m-%d %H:%M'`

#env

/opt/ora10/product/10.2.0/bin/rman target / nocatalog

@/opt/ora10/product/10.2.0/backup_arch.rman

#cp $ORACLE_HOME/dbs/lkSTARSMS* /rmanbackup/

#cp $ORACLE_HOME/dbs/orapwstarsms /rmanbackup/

echo "Archive Backup End time:" `date +'%Y-%m-%d %H:%M'`

 

 

 

 

阅读(1062) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~