[ 实施目标]
实现数据库的远程自动备份
[ 项目环境]
操作系统 AIX5.3
主机名 AIX229
数据库版本 oracle 10.2.0
实例名 prod
[ 前期工作进展]
清理环境
一、卸载原来系统中 RAC 环境
1、卸载数据库
用 dbca 自动删库
2、卸载 ORACLE 软件
手工删除数据库软件:
(1)先删除/u01/app 下的/oracle 文件夹
rm -fr /u01/app/oracle
(2)删除/usr/local/bin 下的 coraenv dbhome oraenv
rm -fr /usr/local/bin/coraenv
rm -fr /usr/local/bin/dbhome
rm -fr /usr/local/bin/oraenv
(3)删除/etc 下的带 ora 的
ls /etc |grep ora
rm -fr /etc/ora*
(4)删除/opt 下的 ORCLfmap
rm -fr /opt/ORCLfmap/
(5)删除/u01 下与 oracle 相关的
rm –rf /u01/ora*
(6)删除/var 下与 oracle 相关的
rm –rf /var/ora*
3、卸载集群软件
(1)在所有节点停止 nodeapps
#srvctl stop nodeapps -n aix229
#srvctl stop nodeapps -n aix230
#stopsrc -s clsmuxpdES
#stopsrc -s clstrmgrES
(2)删除 crs 自动启动程序
rm /etc/init.cssd
rm /etc/init.crs
rm /etc/init.crsd
rm /etc/init.evmd
rm /etc/rc.d/rc2.d/K96init.crs
rm /etc/rc.d/rc2.d/S96init.crs
rm -rf /etc/oracle/scls_scr
rm -rf /etc/oracle/oprocd
rm /etc/inittab.crs
cp /etc/inittab.orig /etc/inittab
(3)kill css/crs/evm 进程,并重启
ps -ef | grep css/crs/evm
kill -9 processid
(4)删除其他相关文件
rm -rf /tmp/.oracle
rm -rf /var/tmp/.oracle
rm -rf /etc/oracle/orc.loc
rm -rf /opt/ORCLcluster
rm -rf /tmp/Ora*
rm -rf /tmp/CVU*
(5)删除 crs 安装目录
rm -rf /u01/crs_1
rm -rf /u01/app/oracle/oraInventory
二、卸载 HACMP
1、修改/etc/inittab 文件以防止删除 hacmp 后自动重启
#vi /etc/inittab
注释以下语句
clcomdES:2:once:startsrc -s clcomdES >/dev/console 2>&1
hacmp6000:2:wait:/usr/es/sbin/cluster/etc/rc.cluster -boot -b
h1:2:respawn:/etc/init.evmd run >/dev/null 2>&1 h2:2:respawn:/etc/init.cssd fatal >/dev/null 2>&1 h3:2:respawn:/etc/init.crsd run >/dev/null 2>&1 2、使用 smit 删除 hacmp
#stopsrc -s clcomdES
# smit remove
删除 cluster 相关的文件
#lslpp -l |grep cluster
确保没有残留
三、删除 RAC 共享的磁盘
1、先删除 VG 上的 LV
#lspv
#smit reducevg
2、再将 hdisk1 从系统中删除
#varyonvg racvg
#rmdev -l hdisk1 –d
3、最后在阵列中把共享磁盘删除
volslice list
volslice remove aix229_230
[ 实施步骤]
一、构建单实例库环境
1、安装 oracle 10.2.0 软件
2、从阵列上划分一块 20G 的磁盘给系统
A、在阵列上:创建一块 20G 的磁盘
vol list
volslice list
volslice create aix229 -z 20gb v01
volslice list
B、在主机上:读取主机网络地址代码
#lscfg -vpl fcs0
Network Address.............10000000C95C8BC8
C、在阵列上:使主机与阵列上的 lun 相关联
volslice list
lun perm lun 14 rw wwn 10000000C95C8BC8
lun perm list
D、在主机上:使系统识别阵列的相关联的磁盘
#cfgmgr -v
3、构建 3 个文件系统
A、创建 datavg
#smit mkvg
B、创建、挂载文件系统
#smit fs #创建 /disk1 /disk2 /disk3 三个文件系统
#lsvg -l datavg
#mount -a #挂载新创建的三个文件系统
#chown -R oracle:dba /disk1
#chown -R oracle:dba /disk2
#chown -R oracle:dba /disk3 #修改用户和组
4、dbca 建库将 datafile、redo logfile、archive logfile 存储在不同的
文件系统
datafile-------?/disk3
redo logfile---?/disk1 /disk2
controlfile ---?/disk1 /disk2
archive logfile?/disk2
启用块跟踪
SQL>alter database enable block change tracking using file
'/home/oracle/rman_bak/tracking.log';
二、将备份服务器共享目录 mount 到本地文件系统
1、建立挂载目录
#mkdir /backup
2、修改 hosts 信息
#vi /etc/hosts
192.168.8.152 rehl152
#showmount -e rehl152
3、利用 smit nfs 将备份服务器共享目录 mount 到本地文件系统
4、修改文件系统信息
#vi /etc/filesystems
/backup:
dev = /backup/cuug03/storage05
vfs = nfs
nodename = rhel152
mount = true
options = rw,bg,hard,intr,rsize=65536,wsize=65536,
time=600,vers=3,sec=sys
account = false
5、添加系统启动信息以保证开机自动挂载
#vi /etc/rc.d/rc2.d/Src.local
nfso -o nfs_use_reserved_ports=1
mount -o rw,bg,hard,intr,rsize=65536,wsize=65536,
time=600,vers=3,
sec=sys rhel152:/backup/cuug03/storage05 /backup
三、配置 rman 参数
CONFIGURE RETENTION POLICY TO REDUNDANCY 2; #冗余度为 2
CONFIGURE BACKUP OPTIMIZATION ON; #开启备份优化
CONFIGURE CONTROLFILE AUTOBACKUP ON; #开启自动备份控制文件
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO
'/home/oracle/backup/control/%F'; #备份控制文件路径
CONFIGURE DEVICE TYPE DISK PARALLELISM 2 BACKUP TYPE TO COMPRESSED
BACKUPSET; #并发度为 2,压缩备份
四、建立 rman 备份脚本
1、差异增量备份 0 级 /home/oracle/script/bin/dif_bak_0.sql
#!/bin/bash
export ORACLE_SID=prod
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export PATH=$ORACLE_HOME/bin:/usr/bin:/usr/sbin:/usr/ucb:/usr/bin/X11:
/sbin:/home/oracle/script/bin.
rman target / < run{
sql 'alter system switch logfile';
allocate channel c1 type disk;
allocate channel c2 type disk;
backup incremental level 0 database format
'/backup/prod/rman_bak/hot_bak/data_%s_%p_hot_0.bak'
include current controlfile plus archivelog format
'/backup/prod/rman_bak/hot_bak/arch_%U_0.bak'
filesperset 3;
delete noprompt obsolete;
sql 'alter system switch logfile';
}
quit
EOF
2、差异增量备份 1 级 /home/oracle/script/bin/dif_bak_1.sql
#!/bin/bash
export ORACLE_SID=prod
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export PATH=$ORACLE_HOME/bin:/usr/bin:/usr/sbin:/usr/ucb:/usr/bin/X11:
/sbin:/home/oracle/script/bin.
rman target / < run{
sql 'alter system switch logfile';
allocate channel c1 type disk;
allocate channel c2 type disk;
backup incremental level 1 database format
'/backup/prod/rman_bak/hot_bak/data_%s_%p_hot_1.bak'
include current controlfile plus archivelog format
'/backup/prod/rman_bak/hot_bak/arch_%U_1.bak'
filesperset 3;
delete noprompt obsolete;
sql 'alter system switch logfile';
}
quit
EOF
五、通过 crontab 建立备份计划
编辑 crontab 脚本
整点执行 di_bak_0.sh 实现 0 级增量备份
每 15 分钟、30 分钟或 45 分钟执行 dif_bak_1.sh 实现 1 级增量备份
$crontab -e
0 * * * * sh /home/oracle/script/bin/dif_bak_0.sh >
/home/oracle/script/log/backup0.log 2>&1
15,30,45 * * * * sh /home/oracle/script/bin/dif_bak_1.sh >
/home/oracle/script/log/backup1.log 2>&1
[ 项目验收]
经过多次测试,项目成功实现:
1、集中备份到备份服务器
2、整点做 0 级备份
3、非整点每 15 分钟做 1 级备份
4、备份同时记录日志
5、备份删除 obsolete 备份
实现数据库的远程自动备份
[ 项目环境]
操作系统 AIX5.3
主机名 AIX229
数据库版本 oracle 10.2.0
实例名 prod
[ 前期工作进展]
清理环境
一、卸载原来系统中 RAC 环境
1、卸载数据库
用 dbca 自动删库
2、卸载 ORACLE 软件
手工删除数据库软件:
(1)先删除/u01/app 下的/oracle 文件夹
rm -fr /u01/app/oracle
(2)删除/usr/local/bin 下的 coraenv dbhome oraenv
rm -fr /usr/local/bin/coraenv
rm -fr /usr/local/bin/dbhome
rm -fr /usr/local/bin/oraenv
(3)删除/etc 下的带 ora 的
ls /etc |grep ora
rm -fr /etc/ora*
(4)删除/opt 下的 ORCLfmap
rm -fr /opt/ORCLfmap/
(5)删除/u01 下与 oracle 相关的
rm –rf /u01/ora*
(6)删除/var 下与 oracle 相关的
rm –rf /var/ora*
3、卸载集群软件
(1)在所有节点停止 nodeapps
#srvctl stop nodeapps -n aix229
#srvctl stop nodeapps -n aix230
#stopsrc -s clsmuxpdES
#stopsrc -s clstrmgrES
(2)删除 crs 自动启动程序
rm /etc/init.cssd
rm /etc/init.crs
rm /etc/init.crsd
rm /etc/init.evmd
rm /etc/rc.d/rc2.d/K96init.crs
rm /etc/rc.d/rc2.d/S96init.crs
rm -rf /etc/oracle/scls_scr
rm -rf /etc/oracle/oprocd
rm /etc/inittab.crs
cp /etc/inittab.orig /etc/inittab
(3)kill css/crs/evm 进程,并重启
ps -ef | grep css/crs/evm
kill -9 processid
(4)删除其他相关文件
rm -rf /tmp/.oracle
rm -rf /var/tmp/.oracle
rm -rf /etc/oracle/orc.loc
rm -rf /opt/ORCLcluster
rm -rf /tmp/Ora*
rm -rf /tmp/CVU*
(5)删除 crs 安装目录
rm -rf /u01/crs_1
rm -rf /u01/app/oracle/oraInventory
二、卸载 HACMP
1、修改/etc/inittab 文件以防止删除 hacmp 后自动重启
#vi /etc/inittab
注释以下语句
clcomdES:2:once:startsrc -s clcomdES >/dev/console 2>&1
hacmp6000:2:wait:/usr/es/sbin/cluster/etc/rc.cluster -boot -b
h1:2:respawn:/etc/init.evmd run >/dev/null 2>&1 h2:2:respawn:/etc/init.cssd fatal >/dev/null 2>&1 h3:2:respawn:/etc/init.crsd run >/dev/null 2>&1 2、使用 smit 删除 hacmp
#stopsrc -s clcomdES
# smit remove
删除 cluster 相关的文件
#lslpp -l |grep cluster
确保没有残留
三、删除 RAC 共享的磁盘
1、先删除 VG 上的 LV
#lspv
#smit reducevg
2、再将 hdisk1 从系统中删除
#varyonvg racvg
#rmdev -l hdisk1 –d
3、最后在阵列中把共享磁盘删除
volslice list
volslice remove aix229_230
[ 实施步骤]
一、构建单实例库环境
1、安装 oracle 10.2.0 软件
2、从阵列上划分一块 20G 的磁盘给系统
A、在阵列上:创建一块 20G 的磁盘
vol list
volslice list
volslice create aix229 -z 20gb v01
volslice list
B、在主机上:读取主机网络地址代码
#lscfg -vpl fcs0
Network Address.............10000000C95C8BC8
C、在阵列上:使主机与阵列上的 lun 相关联
volslice list
lun perm lun 14 rw wwn 10000000C95C8BC8
lun perm list
D、在主机上:使系统识别阵列的相关联的磁盘
#cfgmgr -v
3、构建 3 个文件系统
A、创建 datavg
#smit mkvg
B、创建、挂载文件系统
#smit fs #创建 /disk1 /disk2 /disk3 三个文件系统
#lsvg -l datavg
#mount -a #挂载新创建的三个文件系统
#chown -R oracle:dba /disk1
#chown -R oracle:dba /disk2
#chown -R oracle:dba /disk3 #修改用户和组
4、dbca 建库将 datafile、redo logfile、archive logfile 存储在不同的
文件系统
datafile-------?/disk3
redo logfile---?/disk1 /disk2
controlfile ---?/disk1 /disk2
archive logfile?/disk2
启用块跟踪
SQL>alter database enable block change tracking using file
'/home/oracle/rman_bak/tracking.log';
二、将备份服务器共享目录 mount 到本地文件系统
1、建立挂载目录
#mkdir /backup
2、修改 hosts 信息
#vi /etc/hosts
192.168.8.152 rehl152
#showmount -e rehl152
3、利用 smit nfs 将备份服务器共享目录 mount 到本地文件系统
4、修改文件系统信息
#vi /etc/filesystems
/backup:
dev = /backup/cuug03/storage05
vfs = nfs
nodename = rhel152
mount = true
options = rw,bg,hard,intr,rsize=65536,wsize=65536,
time=600,vers=3,sec=sys
account = false
5、添加系统启动信息以保证开机自动挂载
#vi /etc/rc.d/rc2.d/Src.local
nfso -o nfs_use_reserved_ports=1
mount -o rw,bg,hard,intr,rsize=65536,wsize=65536,
time=600,vers=3,
sec=sys rhel152:/backup/cuug03/storage05 /backup
三、配置 rman 参数
CONFIGURE RETENTION POLICY TO REDUNDANCY 2; #冗余度为 2
CONFIGURE BACKUP OPTIMIZATION ON; #开启备份优化
CONFIGURE CONTROLFILE AUTOBACKUP ON; #开启自动备份控制文件
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO
'/home/oracle/backup/control/%F'; #备份控制文件路径
CONFIGURE DEVICE TYPE DISK PARALLELISM 2 BACKUP TYPE TO COMPRESSED
BACKUPSET; #并发度为 2,压缩备份
四、建立 rman 备份脚本
1、差异增量备份 0 级 /home/oracle/script/bin/dif_bak_0.sql
#!/bin/bash
export ORACLE_SID=prod
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export PATH=$ORACLE_HOME/bin:/usr/bin:/usr/sbin:/usr/ucb:/usr/bin/X11:
/sbin:/home/oracle/script/bin.
rman target / < run{
sql 'alter system switch logfile';
allocate channel c1 type disk;
allocate channel c2 type disk;
backup incremental level 0 database format
'/backup/prod/rman_bak/hot_bak/data_%s_%p_hot_0.bak'
include current controlfile plus archivelog format
'/backup/prod/rman_bak/hot_bak/arch_%U_0.bak'
filesperset 3;
delete noprompt obsolete;
sql 'alter system switch logfile';
}
quit
EOF
2、差异增量备份 1 级 /home/oracle/script/bin/dif_bak_1.sql
#!/bin/bash
export ORACLE_SID=prod
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export PATH=$ORACLE_HOME/bin:/usr/bin:/usr/sbin:/usr/ucb:/usr/bin/X11:
/sbin:/home/oracle/script/bin.
rman target / < run{
sql 'alter system switch logfile';
allocate channel c1 type disk;
allocate channel c2 type disk;
backup incremental level 1 database format
'/backup/prod/rman_bak/hot_bak/data_%s_%p_hot_1.bak'
include current controlfile plus archivelog format
'/backup/prod/rman_bak/hot_bak/arch_%U_1.bak'
filesperset 3;
delete noprompt obsolete;
sql 'alter system switch logfile';
}
quit
EOF
五、通过 crontab 建立备份计划
编辑 crontab 脚本
整点执行 di_bak_0.sh 实现 0 级增量备份
每 15 分钟、30 分钟或 45 分钟执行 dif_bak_1.sh 实现 1 级增量备份
$crontab -e
0 * * * * sh /home/oracle/script/bin/dif_bak_0.sh >
/home/oracle/script/log/backup0.log 2>&1
15,30,45 * * * * sh /home/oracle/script/bin/dif_bak_1.sh >
/home/oracle/script/log/backup1.log 2>&1
[ 项目验收]
经过多次测试,项目成功实现:
1、集中备份到备份服务器
2、整点做 0 级备份
3、非整点每 15 分钟做 1 级备份
4、备份同时记录日志
5、备份删除 obsolete 备份
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29767738/viewspace-1275698/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29767738/viewspace-1275698/