RMAN 创建物理standby到新主机
2010-09-23 13:36
477 查看
上篇采用RMAN duplicate database,同样也可以用rman duplicate创建physical
standby,步骤完全一样,只是脚本稍有不同。
metalink[[ 374069.1]]给出了duplicate创建physical standby的相关步骤:
1. Backup of the primary database.
2. Determine how much disk space will be required.
3. Ensuring you have enough space on your target server.
4. Making the backup available for the duplicate process.
5. Creating the init.ora & administration directories for the duplicate database.
6. Ensuring SQL*NET connections to primary database and RMAN catalog are working.
7. Prepare RMAN duplicate script.
8. Execute the RMAN script.
1. 因为duplicate database 是一个备份与恢复的过程,备份是必须的。当然也要备份归档日志.
简单脚本如下:
run {
allocate channel dup type disk;
backup format '/opt/guo/backup/df_t%t_s%s_p%p' database;
backup current controlfile for standby format '/opt/guo/backup/df_t%t_s%s_p%p';
sql 'alter system archive log current';
backup format '/opt/guo/backup/al_t%t_s%s_p%p' archivelog all;
release channel dup;
}
在primary database上执行:
Rman target / cmdfile=/opt/guo/dup.rmv
生成了数据文悠件备份,controlfile+spfile备份(这个不需要,因为我们备份了datafile 1,
所以RMAN自动备份了controlfile+spfile),归档日志备份,这比上一篇多了:
backup current controlfile for standby,因为standby controlfile 对于创建physical standby
是必须的.
2,3 两步是确认the duplicate database数据库的空间是否足够,与上一篇没有变化 脚本类似如下:
select DF.TOTAL/1048576 "DataFile Size Mb",
LOG.TOTAL/1048576 "Redo Log Size Mb",
CONTROL.TOTAL/1048576 "Control File Size Mb",
(DF.TOTAL + LOG.TOTAL + CONTROL.TOTAL)/1048576 "Total Size Mb"
from dual,
(select sum(a.bytes) TOTAL from dba_data_files a) DF,
(select sum(b.bytes) TOTAL from v$log b) LOG,
(select sum((cffsz+1)*cfbsz) TOTAL from x$kcccf c) CONTROL
4. 与上一篇没有变化, 我们要把数据备份,包括归档备份拷到新主机的相同目录上,使得duplicate process进程
可以访问得到. 我想过用catalog命令修改备份集的路径,但duplicate数据库此时还没有
控制文件, 所以行不通,只能拷贝到相同路径上。
如:scp -r root@192.168.0.106:/opt/guo/backup /opt/guo/backup
5. 为duplicate数据库创建init.ora文件,以及相应的目录.启动duplicate数据库到nomout状态。
duplicate命令需要duplicate数据库处于nomount状态。
SQL>create spfile from pfile='init.ora'
SQL>startup nomount
这一步主要是添加一些初始化参数:
log_archive_config='dg_config=(guostandby,guoprimary)'
log_archive_dest_1='service=standby db_unique_name=guostandby'
log_archive_dest_state_1=enable
FAL_CLIENT=standby
FAL_SERVER=primary
...
6. 确认两台主机SQL.net是畅通的. duplicate target database 可以任何一台可以SQL.net到
目标主机与新主机的主机上执行。
$ sqlplus sys/system@primary
这里两点需要注意的1.主备数据库sys用户的密码要一样,这个通过orapwd来完成
2.主备数据库最好都采用静态注册的方式,因为备库只启动到mount状态,
不能完成动态注册
7. 创建duplicate script如下:
duplicate target database for standby nofilenamecheck dorecover;
因为target数据库与duplicate数据库的目录结构是一样的,虽然他们位于不面的主机. 所以
加nofilenamecheck参数,否则会报ora-050001错误。我们可以用init.ora文件中添加
db_file_name_convert,log_file_name_convert参数更改duplicate数据库的目录结构.oracle
document 有详细的描述
8. 执行相关命令.
$ rman target sys/system@primary;
rman> connect auxiliary /
rman>duplicate target database for standby nofilenamecheck dorecover;
即完成了physical standby。
standby,步骤完全一样,只是脚本稍有不同。
metalink[[ 374069.1]]给出了duplicate创建physical standby的相关步骤:
1. Backup of the primary database.
2. Determine how much disk space will be required.
3. Ensuring you have enough space on your target server.
4. Making the backup available for the duplicate process.
5. Creating the init.ora & administration directories for the duplicate database.
6. Ensuring SQL*NET connections to primary database and RMAN catalog are working.
7. Prepare RMAN duplicate script.
8. Execute the RMAN script.
1. 因为duplicate database 是一个备份与恢复的过程,备份是必须的。当然也要备份归档日志.
简单脚本如下:
run {
allocate channel dup type disk;
backup format '/opt/guo/backup/df_t%t_s%s_p%p' database;
backup current controlfile for standby format '/opt/guo/backup/df_t%t_s%s_p%p';
sql 'alter system archive log current';
backup format '/opt/guo/backup/al_t%t_s%s_p%p' archivelog all;
release channel dup;
}
在primary database上执行:
Rman target / cmdfile=/opt/guo/dup.rmv
生成了数据文悠件备份,controlfile+spfile备份(这个不需要,因为我们备份了datafile 1,
所以RMAN自动备份了controlfile+spfile),归档日志备份,这比上一篇多了:
backup current controlfile for standby,因为standby controlfile 对于创建physical standby
是必须的.
2,3 两步是确认the duplicate database数据库的空间是否足够,与上一篇没有变化 脚本类似如下:
select DF.TOTAL/1048576 "DataFile Size Mb",
LOG.TOTAL/1048576 "Redo Log Size Mb",
CONTROL.TOTAL/1048576 "Control File Size Mb",
(DF.TOTAL + LOG.TOTAL + CONTROL.TOTAL)/1048576 "Total Size Mb"
from dual,
(select sum(a.bytes) TOTAL from dba_data_files a) DF,
(select sum(b.bytes) TOTAL from v$log b) LOG,
(select sum((cffsz+1)*cfbsz) TOTAL from x$kcccf c) CONTROL
4. 与上一篇没有变化, 我们要把数据备份,包括归档备份拷到新主机的相同目录上,使得duplicate process进程
可以访问得到. 我想过用catalog命令修改备份集的路径,但duplicate数据库此时还没有
控制文件, 所以行不通,只能拷贝到相同路径上。
如:scp -r root@192.168.0.106:/opt/guo/backup /opt/guo/backup
5. 为duplicate数据库创建init.ora文件,以及相应的目录.启动duplicate数据库到nomout状态。
duplicate命令需要duplicate数据库处于nomount状态。
SQL>create spfile from pfile='init.ora'
SQL>startup nomount
这一步主要是添加一些初始化参数:
log_archive_config='dg_config=(guostandby,guoprimary)'
log_archive_dest_1='service=standby db_unique_name=guostandby'
log_archive_dest_state_1=enable
FAL_CLIENT=standby
FAL_SERVER=primary
...
6. 确认两台主机SQL.net是畅通的. duplicate target database 可以任何一台可以SQL.net到
目标主机与新主机的主机上执行。
$ sqlplus sys/system@primary
这里两点需要注意的1.主备数据库sys用户的密码要一样,这个通过orapwd来完成
2.主备数据库最好都采用静态注册的方式,因为备库只启动到mount状态,
不能完成动态注册
7. 创建duplicate script如下:
duplicate target database for standby nofilenamecheck dorecover;
因为target数据库与duplicate数据库的目录结构是一样的,虽然他们位于不面的主机. 所以
加nofilenamecheck参数,否则会报ora-050001错误。我们可以用init.ora文件中添加
db_file_name_convert,log_file_name_convert参数更改duplicate数据库的目录结构.oracle
document 有详细的描述
8. 执行相关命令.
$ rman target sys/system@primary;
rman> connect auxiliary /
rman>duplicate target database for standby nofilenamecheck dorecover;
即完成了physical standby。
相关文章推荐
- Data Guard——使用 RMAN 创建单实例物理(physical) standby 数据库
- Oracle 11.2.0.1.0通过rman在win xp上创建物理standby
- 创建物理standby过程(rman1)
- 创建物理standby过程(rman2)
- primary主库上创建表空间无法同步到物理standby和逻辑standby
- Duplicate复制数据库并创建物理StandBy(spfile+不同实例名)
- 18.3.2 在不同主机上使用 RMAN 备份建立物理备用数据库
- Rman通过duplicate创建standby
- 18.3.2 在不同主机上使用 RMAN 备份建立物理备用数据库
- dataguard 创建物理standby
- 在单机上创建物理的Oracle9i standby数据库
- 18.3.2 在不同主机上使用 RMAN 备份建立物理备用数据库
- 11g使用非duplicate方式创建物理standby要注意的问题总结
- RAC11.2.0.4+单节点物理standby dataguard-rman恢复方式
- 创建物理standby (data guard)
- Oracle Data Guard 创建物理Standby数据库
- 一步一步学DataGuard(3)物理standby之创建步骤(1)
- 使用RMAN的Duplicate功能创建物理DataGuard
- ORA-17629:rman创建 standby数据库时报错
- 使用 RMAN DUPLICATE...FROM ACTIVE DATABASE 创建物理备用数据库的分步指南