您好,欢迎访问一九零五行业门户网

Oracle 11gR2 使用RMAN Duplicate复制数据库

rman duplicate 是从oracle 10g就已经开始有的一个功能;但是在11g的时候进行了很多增强,免去了10g版本下需要人工复制到备机上过
前言:
上周刚做完一个项目,用户要求rac的数据库能够自动备份到另外一个单节点上,单节点能够正常拿起来就能用。当时跟他们讨论的是用adg来做,但通过描述后,用户觉得如果要人工干预的话太麻烦,它不想做任何的人工干预,实现数据自动到这台单机上来,那只是一台备用的数据库,没事的时候可以登录上去看看历史的数据情况。
这个时候我提出了11g的rman duplicate方案,它可以在线实现异机的在线备份,且无需人工干预,通过网络将数据传输过来后能够自动open备机.
如图:
rman duplicate 是从oracle 10g就已经开始有的一个功能;但是在11g的时候进行了很多增强,免去了10g版本下需要人工复制到备机上过来进行恢复的尴尬境地。通过11g的duplicate可以创建一个完全相同但dbid不同的备机数据库。在11g的rman duplicate中可以通过active database duplicate和backup-based duplicate两种方法实现。我们在用户现场采用的是active database duplicate;因为它不用先把目标数据库进行rman备份,只需要目标数据库处于归档模式下即可通过网络对数据库进行恢复,且恢复完成后能够自动open duplicate database。这样就正好满足了用户不用人工干预的需求。尤其是对于大数据库特别是tb级别的数据库其优点时非常明显,恢复前不需要进行单独的备份,,减少了备份及拷贝备份文件的时间,同时还节省了备份空间。下面我们来进行完整的rac to single instance的active database duplicate操作。
一、环境介绍
hostname
dbname
public ip
11gr2
rac
db01
woo1
192.168.7.51
db02
woo2
192.168.7.52
duplicate
standby
woo
192.168.7.55
二、开始配置duplicate database,步骤如下:
2.1 构建辅助数据库目录结构,配置辅助数据库相关系统参数。
2.2 安装软件并创建数据库。
2.3 开启归档
2.3 创建pfile,并修改
2.4 创建辅助数据库实例口令文件
2.5 配置静态监听
2.6 用pfile文件,将辅助数据库启动到nomount状态
2.7 执行rman duplicate命令复制数据库
2.8 创建spfile文件
三、构建辅助数据库目录结构,配置辅助数据库相关参数。(简)
/usr/sbin/groupadd -g 502 dba
/usr/sbin/groupadd -g 501 oinstall
/usr/sbin/useradd -u 502 -g oinstall -g dba oracle
mkdir -p /dbsoft/orainventory
mkdir -p /dbsoft/oracle/product/11.2.4/dbhome_1
chown -r oracle:oinstall /dbsoft
chmod -r 775 /dbsoft
echo oracle|passwd --stdin oracle
yum install -y setarch binutils compat-libstdc++-33 compat-libcap1 compat-db compat-libstdc++ compat-gcc elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc
-devel libaio libaio-devel libgcc libstdc++ libstdc++-devel make ksh numactl sysstat libxp unixodbc unixodbc-devel udev
cat >> /etc/sysctl.conf kernel.shmall = 4294967296
kernel.sem = 510 65280 510 128
kernel.shmmni = 4096
kernel.shmmax = 137438953472
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 1048576
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
fs.file-max = 6815744
fs.aio-max-nr = 1048576
vm.swappiness = 0
vm.dirty_background_ratio = 3
vm.dirty_ratio = 80
vm.dirty_expire_centisecs = 500
vm.dirty_writeback_centisecs = 100
net.ipv4.tcp_sack = 0
net.ipv4.tcp_timestamps = 0
net.ipv4.conf.default.rp_filter = 0
net.ipv4.tcp_wmem = 262144
net.ipv4.tcp_rmem = 4194304
eof
/sbin/sysctl –p
cat >> /etc/security/limits.conf oracle          soft    nproc          2047
oracle          hard    nproc          16384
oracle          soft    nofile          65536
oracle          hard    nofile          65536
oracle          soft    memlock        3145728
oracle          hard    memlock        3145728
#signaturelevin
eof
cat >> /etc/profile
if [ \$user = oracle ]; then
    if [ \$shell = /bin/ksh ]; then
                ulimit -p 16384
                ulimit -n 65536
        else
                ulimit -u 16384 -n 65536
        fi
fi
eof
其它类似信息

推荐信息