1.备份方式:
在M模块数据库各节点使用nfs方式挂载10.30.1.12的/billbak4/MDSPDBbak目录,作为备份存储空间,可以满足RAC架构数据库备份的需求。
2.配置NFS服务器(以下操作需要有root 用户权限):
2.1使用以下命令检查NFS服务是否启动:
# service nfs status
# chkconfig –list nfs
# service nfs restart
2.2.配置文件中指定共享目录(生产环境中要对应修改为12个节点的IP)
# vi /etc/exports
/orabk 172.30.4.26(rw,async,no_root_squash)
/orabk 172.30.4.27(rw,async,no_root_squash)
2.3生效新的exports 内容。
# exportfs –rv
3.Oracle 服务器上挂载nfs共享目录(以下操作在M模块的每个节点上都要执行)
3.1.建立本地备份目录,如 /rmanbk。
3.2使用mount命令进行挂载。
# mount -t nfs -o rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,actimeo=0,
vers=3,timeo=600 172.30.1.78:/u01/rmanbk /rmanbk
3.3修改备份目录的权限:
#chown oracle:oinstall /rmanbk
#chmod 755 /rmanbk
3.4修改fstab文件,设置NFS自动挂载
# vi /etc/fstab
172.30.1.78:/u01/rmanbk /rmanbk nfs rw,hard,nointr,tcp,noac,vers=3,timeo=600,rsize=32768,wsize=32768 0 0[@more@]
ORACLE数据库RMAN实现自动备份:
1.备份方式:
在M模块数据库各节点使用nfs方式挂载10.30.1.12的/billbak4/MDSPDBbak目录,作为备份存储空间,可以满足RAC架构数据库备份的需求。
2.配置NFS服务器(以下操作需要有root 用户权限):
2.1使用以下命令检查NFS服务是否启动:
# service nfs status
# chkconfig –list nfs
# service nfs restart
2.2.配置文件中指定共享目录(生产环境中要对应修改为12个节点的IP)
# vi /etc/exports
/orabk 172.30.4.26(rw,async,no_root_squash)
/orabk 172.30.4.27(rw,async,no_root_squash)
2.3生效新的exports 内容。
# exportfs –rv
3.Oracle 服务器上挂载nfs共享目录(以下操作在M模块的每个节点上都要执行)
3.1.建立本地备份目录,如 /rmanbk。
3.2使用mount命令进行挂载。
# mount -t nfs -o rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,actimeo=0,
vers=3,timeo=600 172.30.1.78:/u01/rmanbk /rmanbk
3.3修改备份目录的权限:
#chown oracle:oinstall /rmanbk
#chmod 755 /rmanbk
3.4修改fstab文件,设置NFS自动挂载
# vi /etc/fstab
172.30.1.78:/u01/rmanbk /rmanbk nfs rw,hard,nointr,tcp,noac,vers=3,timeo=600,rsize=32768,wsize=32768 0 0
4.编写RMAN 备份脚本(以下在其中的一个节点上执行,其它节点上会看到共享的脚本文件)
4.1在其中一个节点上建立备份脚本和备份日志的存放目录
$ mkdir /rmanbk/script
$ mkdir /rmanbk/logs
$ cd /rmanbk/script
4.2编写0级备份脚本(oracle用户进行):
注:以下脚本中用到的节点名字及文件路径在生产环境都应按照实际情况进行修改。
$ cat rman_level_0.rman
run{
allocate channel d1 device type disk MAXPIECESIZE=8G connect ;
allocate channel d2 device type disk MAXPIECESIZE=8G connect ;
backup incremental level 0 database format '/rmanbk/db_%d_%s_%c_%p_%t.dbf'
plus archivelog delete all input format '/rmanbk/arc_%d_%s_%c_%p_%t.dbf';
crosscheck backupset;
delete noprompt expired backupset;
delete noprompt obsolete;
release channel d1;
release channel d2;
}
run
{
allocate channel d1 device type disk connect ;
delete archivelog all backed up 1 times to device type disk like '/arch1/%.dbf';
release channel d1;
}
run
{
allocate channel d2 device type disk connect ;
delete archivelog all backed up 1 times to device type disk like '/arch2/%.dbf';
release channel d2;
}
4.3编写1级增量备份脚本(oracle用户进行):
$ cat rman_level_1.rman
run{
allocate channel d1 device type disk MAXPIECESIZE=8G connect ;
allocate channel d2 device type disk MAXPIECESIZE=8G connect ;
backup incremental level 1 database format '/rmanbk/db_%d_%s_%c_%p_%t.dbf'
plus archivelog delete all input format '/rmanbk/arc_%d_%s_%c_%p_%t.dbf';
crosscheck backupset;
delete noprompt expired backupset;
delete noprompt obsolete;
release channel d1;
release channel d2;
}
run
{
allocate channel d1 device type disk connect ;
delete archivelog all backed up 1 times to device type disk like '/arch1/%.dbf';
release channel d1;
}
run
{
allocate channel d2 device type disk connect ;
delete archivelog all backed up 1 times to device type disk like '/arch2/%.dbf';
release channel d2;
}
4.4编写0级shell脚本(oracle用户进行):
$ vi backup_level_0.sh
#!/bin/bash
DATE=`date +%Y%m%d`
DATE_BEGIN_BACKUP=`date +%Y-%m-%d" "%H:%M:%S`
echo "------------- Start at " $DATE_BEGIN_BACKUP "--------------------"
export PATH=/u01/app/oracle/product/10.2.0/db_1/bin:/bin:/sbin:/usr/css/bin:/usr/local/bin
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1
export TERM=linux
export NLS_LANG=american_america.zhs16gbk
export LD_LIBRARY_PATH=/u01/app/oracle/product/10.2.0/db_1/lib
export HOME=/home/oracle
export ORACLE_SID=sid_name
rman target / log=/rmanbk/logs/$DATE.log append cmdfile=/rmanbk/script/rman_level_0.rman
#DATE_END_BACKUP=`date +%Y-%m-%d" "%H:%M:%S`
echo ""
#echo "------------- End at " $DATE_END_BACKUP "--------------------"
4.5编写1级shell脚本(oracle用户进行):
$ cat backup_level_1.sh
#!/bin/bash
DATE=`date +%Y%m%d`
DATE_BEGIN_BACKUP=`date +%Y-%m-%d" "%H:%M:%S`
echo "------------- Start at " $DATE_BEGIN_BACKUP "--------------------"
export PATH=/u01/app/oracle/product/10.2.0/db_1/bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1
export TERM=linux
export NLS_LANG=american_america.zhs16gbk
export LD_LIBRARY_PATH=/u01/app/oracle/product/10.2.0/db_1/lib
export HOME=/home/oracle
export ORACLE_SID=klir2
rman target / log=/orabk/logs/$DATE.log append cmdfile=/orabk/script/rman_level_1.rman
DATE_END_BACKUP=`date +%Y-%m-%d" "%H:%M:%S`
echo ""
echo "------------- End at " $DATE_END_BACKUP "--------------------"
5.在一个节点上编写oracle的crontab脚本,启动定时备份操作:
$ crontab -e
0 2 * * 0 /rmanbk/script/backup_level_0.sh
0 2 * * 1,2,3,4,5,6 /rmanbk/script/backup_level_1.sh
6. 设置增量备份的trace文件,
SQL> ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE '/orabk/a.f' REUSE;