采用RMAN duplicate 方式做备库 可以说是ORACLE 公司对 以前做DATA GUARD 方式的 用户友好性的提升.

这样我们不用去 备份数据文件,然后网络传送, 再还原恢复操作了.

这里就一个简单的命令搞定一切

那就是

duplicate target database for standby from active database nofilenamecheck;

0 前提是你已经搞定了 LISTENER.ORA TNS_NAME.ORA 和环境变量`/.bash_profile

里面的名字关系.

1 设置主库归档模式和强制模式
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE FORCE LOGGING;


 
2 修改主库参数
ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(DBMAST,DBSALVE,DBSALVE2)' SCOPE=BOTH;
ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=DBSALVE LGWR SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=DBSALVE' SCOPE=BOTH;
ALTER SYSTEM SET LOG_ARCHIVE_DEST_3='SERVICE=DBSALVE2 LGWR ASYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=DBSALVE2' SCOPE=BOTH;
ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2='DEFER' SCOPE=BOTH;
ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_3='DEFER' SCOPE=BOTH;
ALTER SYSTEM SET FAL_SERVER=DBSALVE SCOPE=BOTH;
ALTER SYSTEM SET FAL_CLIENT=DBMAST SCOPE=BOTH;
ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO SCOPE=BOTH;

2 创建备用库参数文件
create pfile='/home/oracle/initDBSALVE.ora' from spfile;
3 把监听,密码文件 TNSNAME.ORA 传到备库
3.5 重新创建密码方法: orapwd file=orapwdbt password=lotery1401 entries=10
   创建完了后要从主库复制过去,才能保持一致,并且备库要重启才能应用新的密码文件

4 备库操作
修改监听文件,改名密码文件,修改TNSNAME.ORA
创建相应的目录,审计目录,数据文件目录,日志目录
修改备用库参数文件
注意各个名字,除了DB_NAME 跟主库一样外.如果只是复制一个数据库,则全部都不一样.
日志文件转换,数据文件转换,目录要重新检查一遍.

*.audit_file_dest='/u01/app/software/oracle/admin/DBSALVE/adump'
*.audit_trail='db'
*.compatible='11.2.0.4.0'
*.control_files='/u04/DBSALVE/control01.ctl','/u02/fast_recovery_area/DBSALVE/control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='DBMAST'
*.db_unique_name='DBSALVE'
*.service_names='DBSALVE'
*.db_file_name_convert='/u04/DBMAST','/u04/DBSALVE'
*.log_file_name_convert='/u01/online_log_flash/DBMAST','/u02/onlinelog/DBSALVE'
*.db_recovery_file_dest='/u02/fast_recovery_area'
*.db_recovery_file_dest_size=1073741824
*.diagnostic_dest='/u01/app/software/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=DBMASTXDB)'
*.fal_client='DBSALVE'
*.fal_server='DBMAST'
*.log_archive_config='DG_CONFIG=(DBMAST,DBSALVE,DBSALVE2)'
*.log_archive_dest_1='LOCATION=/u05/arch_backup'
*.log_archive_dest_2='SERVICE=DBMAST LGWR SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=DBMAST'
*.LOG_ARCHIVE_DEST_3='SERVICE=DBSALVE2 LGWR ASYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=DBSALVE2'
*.log_archive_dest_state_2='DEFER'
*.log_archive_dest_state_3='DEFER'
*.log_archive_format='%t_%s_%r.archlog'
*.memory_target=445644800
*.nls_language='SIMPLIFIED CHINESE'
*.nls_territory='CHINA'
*.open_cursors=300
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.standby_file_management='AUTO'
*.undo_tablespace='UNDOTBS1'

5  启动实列
ORACLE] sqlplus / as sysdba
startup nomount pfile=$ORACLE_HOME/dbs/initDBSALVE.ora;

6 开始复制
ORACLE] rman target sys/oracle@DBMAST auxiliary sys/oracle@DBSALVE

--该命令只是复制出一个一样的数据库
duplicate target database to DBSALVE from active database nofilenamecheck;
--这个是复制出一个备用库
duplicate target database for standby from active database nofilenamecheck;

--如果数据库很大的话
run
{
    allocate channel p1 type disk;
    allocate channel p2 type disk;
    allocate auxiliary channel a1 type disk;
    duplicate target database for standby from active database nofilenamecheck;
};

 注意 这里最好不用把参数放进这里面跑,如果参数不对要重跑一次,另外不要在RMAN这里

执行SQL语句和shutdown操作. 因为你不清楚目前连接的是什么数据库.


6.5 运行信息参考后面

6.6 执行完了后它会把备库启动在MOUNT下


7 备库添加日志
alter database add standby logfile group 4 '/u02/onlinelog/DBSALVE/standby_redo04.log' size 50m;
alter database add standby logfile group 5 '/u02/onlinelog/DBSALVE/standby_redo05.log' size 50m;
alter database add standby logfile group 6 '/u02/onlinelog/DBSALVE/standby_redo06.log' size 50m;
alter database add standby logfile group 7 '/u02/onlinelog/DBSALVE/standby_redo07.log' size 50m;

8主库添加日志
alter database add standby logfile group 4 '/u01/online_log_flash/DBMAST/standby_redo04.log' size 50m;
alter database add standby logfile group 5 '/u01/online_log_flash/DBMAST/standby_redo05.log' size 50m;
alter database add standby logfile group 6 '/u01/online_log_flash/DBMAST/standby_redo06.log' size 50m;
alter database add standby logfile group 7 '/u01/online_log_flash/DBMAST/standby_redo07.log' size 50m;

 


9 备库启动恢复模式
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;

10 主库开始向备库传日志
alter system set log_archive_dest_state_2='enable' scope =both;

11 当主备库日志一致后 开启备库只读模式
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
ALTER DATABASE OPEN read only;
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;


12
检查最大归档
SELECT THREAD#,MAX(SEQUENCE#) FROM V$ARCHIVED_LOG  GROUP BY THREAD#;
select thread#,applied,t.DELETED,t.ARCHIVED,max(sequence#) from v$archived_log t where applied='YES'group by thread#,applied,t.DELETED,t.ARCHIVED;

select thread#,applied,max(sequence#) from v$archived_log t where applied='YES'group by thread#,applied;

备库检查
查看数据库角色
col name format a10
SELECT NAME,OPEN_MODE,PROTECTION_MODE,DATABASE_ROLE,SWITCHOVER_STATUS,DB_UNIQUE_NAME FROM V$DATABASE;

仅供参考

cat tnsnames.ora

orcl_pd =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.231)(PORT = 1521))
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )

orcl_st =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.232)(PORT = 1521))
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )

cat listener.ora

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = orcl)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
      (SID_NAME = orcl)  
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.231)(PORT = 1521))
    )
  )

ADR_BASE_LISTENER = /u01/app/oracle

RMAN> connect auxiliary sys/pbs123@orcl_st;

connected to auxiliary database: ORCL (not mounted)

RMAN> duplicate target database for standby from active database nofilenamecheck;

Starting Duplicate Db at 2016-04-28 02:31:19
using target database control file instead of recovery catalog
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=189 device type=DISK

contents of Memory Script:
{
   backup as copy reuse
   targetfile  '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/orapworcl' auxiliary format 
 '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/orapworcl'   ;
}
executing Memory Script

Starting backup at 2016-04-28 02:31:19
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=35 device type=DISK
Finished backup at 2016-04-28 02:31:21

contents of Memory Script:
{
   backup as copy current controlfile for standby auxiliary format  '/u01/app/oracle/oradata/orcl/control01.ctl';
   restore clone controlfile to  '/u01/app/oracle/flash_recovery_area/orcl/control02.ctl' from 
 '/u01/app/oracle/oradata/orcl/control01.ctl';
}
executing Memory Script

Starting backup at 2016-04-28 02:31:21
using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile copy
copying standby control file
output file name=/u01/app/oracle/product/11.2.0/dbhome_1/dbs/snapcf_orcl.f tag=TAG20160428T023121 RECID=254 STAMP=910319481
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:03
Finished backup at 2016-04-28 02:31:24

Starting restore at 2016-04-28 02:31:24
using channel ORA_AUX_DISK_1

channel ORA_AUX_DISK_1: copied control file copy
Finished restore at 2016-04-28 02:31:25

contents of Memory Script:
{
   sql clone 'alter database mount standby database';
}
executing Memory Script

sql statement: alter database mount standby database

contents of Memory Script:
{
   set newname for tempfile  1 to 
 "/u01/app/oracle/oradata/orcl/temp01.dbf";
   switch clone tempfile all;
   set newname for datafile  1 to 
 "/u01/app/oracle/oradata/orcl/system01.dbf";
   set newname for datafile  2 to 
 "/u01/app/oracle/oradata/orcl/sysaux01.dbf";
   set newname for datafile  3 to 
 "/u01/app/oracle/oradata/orcl/undotbs01.dbf";
   set newname for datafile  4 to 
 "/u01/app/oracle/oradata/orcl/users01.dbf";
   set newname for datafile  5 to 
 "/u01/app/oracle/oradata/orcl/example01.dbf";
   set newname for datafile  6 to 
 "/u01/app/oracle/oradata/orcl/osscdata.dbf";
   set newname for datafile  7 to 
 "/u01/app/oracle/oradata/orcl/ccps.dbf";
   set newname for datafile  8 to 
 "/u01/app/oracle/oradata/orcl/ccps1.dbf";
   set newname for datafile  9 to 
 "/u01/app/oracle/oradata/orcl/CCPS1_INX.dbf";
   set newname for datafile  10 to 
 "/u01/app/oracle/oradata/orcl/CCPS_INX.dbf";
   backup as copy reuse
   datafile  1 auxiliary format 
 "/u01/app/oracle/oradata/orcl/system01.dbf"   datafile 
 2 auxiliary format 
 "/u01/app/oracle/oradata/orcl/sysaux01.dbf"   datafile 
 3 auxiliary format 
 "/u01/app/oracle/oradata/orcl/undotbs01.dbf"   datafile 
 4 auxiliary format 
 "/u01/app/oracle/oradata/orcl/users01.dbf"   datafile 
 5 auxiliary format 
 "/u01/app/oracle/oradata/orcl/example01.dbf"   datafile 
 6 auxiliary format 
 "/u01/app/oracle/oradata/orcl/osscdata.dbf"   datafile 
 7 auxiliary format 
 "/u01/app/oracle/oradata/orcl/ccps.dbf"   datafile 
 8 auxiliary format 
 "/u01/app/oracle/oradata/orcl/ccps1.dbf"   datafile 
 9 auxiliary format 
 "/u01/app/oracle/oradata/orcl/CCPS1_INX.dbf"   datafile 
 10 auxiliary format 
 "/u01/app/oracle/oradata/orcl/CCPS_INX.dbf"   ;
   sql 'alter system archive log current';
}
executing Memory Script

executing command: SET NEWNAME

renamed tempfile 1 to /u01/app/oracle/oradata/orcl/temp01.dbf in control file

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

Starting backup at 2016-04-28 02:31:31
using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile copy
input datafile file number=00008 name=/u01/app/oracle/oradata/orcl/ccps1.dbf
output file name=/u01/app/oracle/oradata/orcl/ccps1.dbf tag=TAG20160428T023131
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:02:06
channel ORA_DISK_1: starting datafile copy
input datafile file number=00002 name=/u01/app/oracle/oradata/orcl/sysaux01.dbf
output file name=/u01/app/oracle/oradata/orcl/sysaux01.dbf tag=TAG20160428T023131
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:01:15
channel ORA_DISK_1: starting datafile copy
input datafile file number=00001 name=/u01/app/oracle/oradata/orcl/system01.dbf
output file name=/u01/app/oracle/oradata/orcl/system01.dbf tag=TAG20160428T023131
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:01:05
channel ORA_DISK_1: starting datafile copy
input datafile file number=00009 name=/u01/app/oracle/oradata/orcl/CCPS1_INX.dbf
output file name=/u01/app/oracle/oradata/orcl/CCPS1_INX.dbf tag=TAG20160428T023131
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:45
channel ORA_DISK_1: starting datafile copy
input datafile file number=00003 name=/u01/app/oracle/oradata/orcl/undotbs01.dbf
output file name=/u01/app/oracle/oradata/orcl/undotbs01.dbf tag=TAG20160428T023131
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:35
channel ORA_DISK_1: starting datafile copy
input datafile file number=00005 name=/u01/app/oracle/oradata/orcl/example01.dbf
output file name=/u01/app/oracle/oradata/orcl/example01.dbf tag=TAG20160428T023131
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:15
channel ORA_DISK_1: starting datafile copy
input datafile file number=00006 name=/u01/app/oracle/oradata/orcl/osscdata.dbf
output file name=/u01/app/oracle/oradata/orcl/osscdata.dbf tag=TAG20160428T023131
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:15
channel ORA_DISK_1: starting datafile copy
input datafile file number=00007 name=/u01/app/oracle/oradata/orcl/ccps.dbf
output file name=/u01/app/oracle/oradata/orcl/ccps.dbf tag=TAG20160428T023131
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:15
channel ORA_DISK_1: starting datafile copy
input datafile file number=00010 name=/u01/app/oracle/oradata/orcl/CCPS_INX.dbf
output file name=/u01/app/oracle/oradata/orcl/CCPS_INX.dbf tag=TAG20160428T023131
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:15
channel ORA_DISK_1: starting datafile copy
input datafile file number=00004 name=/u01/app/oracle/oradata/orcl/users01.dbf
output file name=/u01/app/oracle/oradata/orcl/users01.dbf tag=TAG20160428T023131
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01
Finished backup at 2016-04-28 02:38:19

sql statement: alter system archive log current

contents of Memory Script:
{
   switch clone datafile all;
}
executing Memory Script

datafile 1 switched to datafile copy
input datafile copy RECID=254 STAMP=910319900 file name=/u01/app/oracle/oradata/orcl/system01.dbf
datafile 2 switched to datafile copy
input datafile copy RECID=255 STAMP=910319900 file name=/u01/app/oracle/oradata/orcl/sysaux01.dbf
datafile 3 switched to datafile copy
input datafile copy RECID=256 STAMP=910319900 file name=/u01/app/oracle/oradata/orcl/undotbs01.dbf
datafile 4 switched to datafile copy
input datafile copy RECID=257 STAMP=910319900 file name=/u01/app/oracle/oradata/orcl/users01.dbf
datafile 5 switched to datafile copy
input datafile copy RECID=258 STAMP=910319900 file name=/u01/app/oracle/oradata/orcl/example01.dbf
datafile 6 switched to datafile copy
input datafile copy RECID=259 STAMP=910319900 file name=/u01/app/oracle/oradata/orcl/osscdata.dbf
datafile 7 switched to datafile copy
input datafile copy RECID=260 STAMP=910319900 file name=/u01/app/oracle/oradata/orcl/ccps.dbf
datafile 8 switched to datafile copy
input datafile copy RECID=261 STAMP=910319900 file name=/u01/app/oracle/oradata/orcl/ccps1.dbf
datafile 9 switched to datafile copy
input datafile copy RECID=262 STAMP=910319900 file name=/u01/app/oracle/oradata/orcl/CCPS1_INX.dbf
datafile 10 switched to datafile copy
input datafile copy RECID=263 STAMP=910319900 file name=/u01/app/oracle/oradata/orcl/CCPS_INX.dbf
Finished Duplicate Db at 2016-04-28 02:38:25

RMAN duplicate 方式 做个备库相关推荐

  1. Oracle 11g Dataguard 物理备库配置(一)之Duplicate配置

    Oracle 11g Dataguard Duplicate物理备库配置(一)之物理备库创建配置 # ver:1.5 第五次修改 # modify: 2013.8.16 # author: koumm ...

  2. oracle dataguard in-memory,Oracle 11g Dataguard 物理备库配置(一)之Duplicate配置

    Oracle 11g Dataguard Duplicate物理备库配置(一)之物理备库创建配置 # ver:1.5 第五次修改 # modify: 2013.8.16 # author: koumm ...

  3. Oracle主库、备库redo日志管理

    文章目录 官方参考: 1.添加日志组以及日志成员 3.删除日志组或成员 3.1.日志的重定位及重命名 3.2.清空日志文件组 3.3.删除日志成员 3.4.删除日志组 5.删除单实例数据库多余节点的日 ...

  4. oracle的可读可写可执行,OracleDataGuard_备库以只读或读写方式打开访问

    Oracle Data Guard_ 备库以只读或读写方式打开访问 Opening a Standby Database for Read-Only or Read/Write Access 8.2以 ...

  5. Oracle 12C 利用Rman Duplicate搭建 Data Guard

    环境(备库只需要安装数据库软件): 主库:192.168.1.100        OS: CentOS 7.3 X64        DB:    ORACLE12.2.0.1        SID ...

  6. DG备库磁盘空间满导致无法创建归档

    上周五去某客户那里做数据库巡检.是window 2008系统上10g的一套NC系统的库,已经配置了DG,可是巡检时发现数据库报错: Tue Nov 11 10:13:57 2014 LNS: Stan ...

  7. 如何使用RMAN duplicate搭建12C的Data Guard环境?

    墨墨导读:本文来自墨天轮用户投稿,介绍使用RMAN duplicate搭建12C的Data Guard环境的全过程. 1. 实验环境 2. 主端的数据库环境 [oracle@dg1 ~]$ sqlpl ...

  8. oracle dg备库恢复

    standby在standby状态下的备份方式如下,生成一个控制文件备份control_1,一个数据文件备份full_data RMAN> backup database format '/is ...

  9. Oracle11g DG实战配置(Windows版)(五)主备库DG配置

    5.1 DG主库配置(主库操作) 5.1.1 配置Oracle Data Guard # 登录数据库 sqlplus / as sysdba # 查看数据库归档模式,确认Archivelog已启用 s ...

最新文章

  1. Linux下开发优秀链接
  2. AI帮你写Python,安装只需5步,还能任你调教 | 开源
  3. 渗透知识-CSRF攻击
  4. Spark SQL 源代码分析系列
  5. 使用VC++2015 实现XP按钮效果
  6. FileZilla 连接不上虚拟机 ubuntu
  7. Python爬虫开发:url中文字符编码的两种解决方式
  8. QML基础类型之enumeration
  9. HTML+CSS+JS实现 ❤️仿切水果小游戏❤️
  10. 虚方法的使用 c# 1613719803
  11. .net WebApi开发
  12. ping端口怎么ping_英雄联盟手游ping信号怎么发送 ping信号发送方法介绍_游戏攻略...
  13. Warning: Division by zero in 错误处理
  14. 软件测试三种错误的是,软件测试中的三种排错方法(知识篇)
  15. python 生成器_python 生成器 - 刘江的python教程
  16. js系列教程8-事件全解
  17. c# 找出目录下的所有子目录_C#遍历文件夹,其实只需要一句话!
  18. IDEA如何使用SVN插件
  19. 王学岗移动架构34——IOC注入框架设计
  20. 【Flink Rest-ful API 】

热门文章

  1. Ubuntu18.04 RTL8169驱动更换RTL8168驱动
  2. 计算机网络协会宣传文案,心理协会 | 一千句招新文案,不及你出现的一刻
  3. glTF模型在线查看利器【glTF Viewer 2.0】
  4. 实例讲解基于 React+Redux 的前端开发流程
  5. 2010年01期《程序员》配套源码及相关链接
  6. 小型水库雨水情测报设施建设-水库大坝水文监测
  7. Github连接不上问题
  8. Sql serever的语句
  9. java设计模式 建造模式_java设计模式(三)建造者模式
  10. mac格式化系统恢复|mac格式化后怎么恢复?