首页 >数据库 >mysql教程 >通过RMAN备份duplicate创建DataGuard

通过RMAN备份duplicate创建DataGuard

WBOY
WBOY原创
2016-06-07 17:31:29704浏览

创建dataguard方式很多,本文分绍了其中一种方式, 10g/11g都适用。本文通过RMAN target主库与本地辅助库,通过本地备份恢复数据文

说明:
创建dataguard方式很多,本文分绍了其中一种方式, 10g/11g都适用。
本文通过RMAN target主库与本地辅助库,,通过本地备份恢复数据文件创建Oracle 11g Dataguard物理备库。

相关阅读:

使用RMAN的Duplicate功能创建物理DataGuard 

Oracle基础教程之通过RMAN复制数据库

RMAN备份策略制定参考内容

RMAN备份学习笔记

Oracle数据库备份加密 RMAN加密

一、环境介绍
1. 主数据库环境
操作系统版本  : OEL5.8 x64
数据库版本    : Oracle 11.2.0.3 x64
数据库名      : orcl
数据库SID    : orcl
db_unique_name: orcl
instance_name : orcl

2. 备库环境
操作系统版本  : OEL5.8 x64
数据库版本    : Oracle 11.2.0.3 x64 (只安装oracle数据库软件,no netca dbca)
数据库名      : slave
数据库SID    : slave
db_unique_name: slave
instance_name : slave

3. DataGuard启动顺序
启动顺序:先启备库,后启主库
关闭顺序:先关主库,后关备库
 
二、主数据库环境准备

1. 主库环境对比
重新创建口令文件
# su - oracle
$ orapwd file='/u01/app/oracle/product/11.2.0/db_1/dbs/orapworcl' password=oracle entries=10 force=y

2. 修改配置lisener监听文件
说明:添加dgmgrl静态监听配置,为后面的dg broker配置打基础。
$ cat /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora 
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.233.200)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = orcl)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)
      (SID_NAME = orcl)
    )
  )
ADR_BASE_LISTENER = /u01/app/oracle

4. 修改配置tnsname.ora文件
说明:ORCL是主库的服务名,DG是备库的服务名。
$ vi /u01/app/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora
ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.233.200)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )
SLAVE =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.233.150)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = slave)
    )
  )

5. 修改配置成规档模式
1)、检查数据库是否处于归档状态
SQL> archive log list;
SQL> shutdown immediate;
SQL> startup mount;
SQL> alter database archivelog;
SQL> alter database open;

2)、将主库设置为 FORCE LOGGING 模式
SQL> alter database force logging;
SQL> select force_logging from v$database;
FOR
---
YES

6. 修改主库参数文件
SQL>
改变系统设置instance_name='orcl'scope=spfile; 
改变系统设置db_unique_name='orcl'scope=spfile; 
改变系统设置local_listener='orcl'scope=spfile;
改变系统设置log_archive_config='DG_CONFIG=(orcl,slave)'; 
改变系统设置log_archive_dest_1='LOCATION=/u01/archivelog/ valid_for=(all_logfiles,all_roles) db_unique_name=orcl'scope=spfile;
改变系统设置log_archive_dest_2='SERVICE=slave lgwr async valid_for=(online_logfiles,primary_role) db_unique_name=slave'scope=spfile; 
改变系统设置log_archive_format='arch_%r_%t_%s.arc'scope=spfile;
改变系统设置fal_client='orcl'scope=spfile;
改变系统设置fal_server='slave'scope=spfile; 
更改系统设置standby_file_management=AUTO; 
alter database 添加备用日志文件组 4 '/u01/app/oracle/oradata/orcl/standby_redo04.log' 大小 50M; 
alter数据库添加备用日志文件组5'/u01/app/oracle/oradata/orcl/standby_redo05.log'大小50M; 
alter数据库添加备用日志文件组6'/u01/app/oracle/oradata/orcl/standby_redo06.log'大小50M; 
alter数据库添加备用日志文件组7'/u01/app/oracle/oradata/orcl/standby_redo07.log'大小50M; 
SQL>立即关闭;
SQL>;启动;

#准备一些测试数据,只创建表结构
SQL> conn / as sysdba;
SQL>;创建由 abc 标识的用户 abc ;
SQL>;授予 dba 给 abc;
SQL> conn abc/abc
SQL> create table abc ( id integer , name char(10));
在备份之前该表还没有数据。下面备份的集中表记录。

通过RMAN备份duplicate创建DataGuard

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn