用drbd模拟盘阵镜像进行oracle备份测试(五):问题与思考
作者:blue_stone(blue_stone@xinhuanet.com)转载请注明出处: http://bluestone.cublog.cn
一 关于磁盘阵列
磁盘阵列实现了很复杂的东西, 实现了令人眼花缭乱的功能, 如snapview, mirrorview, consistent group等, 但对于系统, 对于应用来说, 磁盘阵列就是一组虚拟的磁盘, 提供给一台或几台主机访问. 从系统的角度来看, snapview和mirrorview可以对生产系统的磁盘做个快照, 将快照提供给别的机器访问, 从而将原本需要在生产系统上做的备份操作迁移到另外的服务器来做. 当生产系统负载比较大的时候, 这种方案比较有意义. 可以有多种不同的方式来模拟snapview 及mirrorview, 比如使用本文中的使用DRBD方案; 比如使用GPFS快照, 建立一个2节点的GPFS集群, 进行一个节点上的数据库访问真实数据库, 一个节点访问可写的快照; 或者lvm快照+NFS, 将真实数据与可写快照分别通过NFS共享给不同的主机. AIX上的glvm也是一个可选的额方案.
二 关于备份软件与带库
rman可以配合备份软件如legato, commvault, netbackup等, 将数据库备份到带库. 如果要实现备份和恢复在不同服务器上的方案, 则需在备份服务器(备份执行的服务器)和恢复服务器(恢复执行的服务器, 通常是生产服务器)都可以访问到相同的备份. 在本例中, 为求简单, 我们将数据备份到了了NFS文件系统上, 以确保2台服务器都可以访问到备份数据.
三 关于恢复目录数据库
在使用rman对数据库进行备份时, 备份信息会写2份, 一份到控制文件, 一份到恢复目录数据库. 由于生产数据库并不包含全部备份信息, 此时恢复目录就显得尤为重要. 如果不使用恢复目录, 则在进行恢复时, 将会非常麻烦, 并且, 即使只恢复一个数据文件, 也需要将生产数据库停下来, 非常麻烦, 也对生产数据库的可用性, 产生重大的影响.
四 其他问题
为防止数据库被重复启动, oracle在启动时会写一个锁文件到$ORACLE_HOME/dbs目录下, 如果2个服务器使用同一份$ORACLE_HOME, 则数据库将无法在2个机器上同时启动, 一个可行的办法是建立链接, 将目录指向一个位置, 这个位置, 对于不同的机器, 名称相同, 但内容可以不同(比如本地磁盘上的一个目录). 在linux上有另外一个方案, 使用bind参数挂载:
blueice2:/tmp# mkdir dir1 blueice2:/tmp# touch dir1/dir1 blueice2:/tmp# mkdir dir2 blueice2:/tmp# touch dir2/dir2 blueice2:/tmp# ls -al dir1 总计 20 drwxr-xr-x 2 root root 4096 01-11 18:08 . drwxrwxrwt 13 root root 16384 01-11 18:08 .. -rw-r--r-- 1 root root 0 01-11 18:08 dir1 blueice2:/tmp# ls -al der2 ls: 无法访问 der2: 没有那个文件或目录 blueice2:/tmp# ls -al dir2 总计 20 drwxr-xr-x 2 root root 4096 01-11 18:08 . drwxrwxrwt 13 root root 16384 01-11 18:08 .. -rw-r--r-- 1 root root 0 01-11 18:08 dir2 blueice2:/tmp# mount -o bind dir2 dir1 blueice2:/tmp# ls -al dir1 总计 20 drwxr-xr-x 2 root root 4096 01-11 18:08 . drwxrwxrwt 13 root root 16384 01-11 18:08 .. -rw-r--r-- 1 root root 0 01-11 18:08 dir2 blueice2:/tmp# mount |grep dir /tmp/dir2 on /tmp/dir1 type none (rw,bind) blueice2:/tmp# umount dir1 blueice2:/tmp# ls -al dir1 总计 20 drwxr-xr-x 2 root root 4096 01-11 18:08 . drwxrwxrwt 13 root root 16384 01-11 18:08 .. -rw-r--r-- 1 root root 0 01-11 18:08 dir1 blueice2:/tmp# |