欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

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

程序员文章站 2024-01-08 11:39:40
...

RMAN Duplicate 是从Oracle 10g就已经开始有的一个功能;但是在11g的时候进行了很多增强,免去了10g版本下需要人工复制到备机上过

前言:

上周刚做完一个项目,用户要求RAC的数据库能够自动备份到另外一个单节点上,单节点能够正常拿起来就能用。当时跟他们讨论的是用ADG来做,但通过描述后,用户觉得如果要人工干预的话太麻烦,它不想做任何的人工干预,实现数据自动到这台单机上来,那只是一台备用的数据库,没事的时候可以登录上去看看历史的数据情况。

这个时候我提出了11g的RMAN Duplicate方案,它可以在线实现异机的在线备份,且无需人工干预,通过网络将数据传输过来后能够自动open备机.

如图:

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

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操作。

一、环境介绍

Oracle 11gR2 使用RMAN 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

上一篇:

下一篇: