备份与恢复

部署Oracle 11g DataGuard 用Rman创建 standby database

时间:2014/9/7 19:26:01  作者:solgle  来源:solgle.com  查看:1884  评论:0
内容摘要:Oracle 11g Data Guard 使用duplicate from active database用这种方式来搭建DataGuard,主库的停机时间很少,只需要重启一下,使参数生效。也可以用这种方法进行数据迁移。Oracle 11G DataGuard 部署文档A:运...

Oracle 11g Data Guard 使用duplicate from active database

用这种方式来搭建DataGuard ,主库的停机时间很少,只需要重启一下,使参数生效。也可以用这种方法进行数据迁移。

本文出自:http://www.solgle.com/news/216.html

Oracle 11G DataGuard 部署文档

A:运行环境

 

操作系统:Oracle Enterprise Linux 6.5 x64

Oracle Version11.2.0.4x64

 

 

B:搭建步骤

 

一:配置主库

 

1:设置主库归档模式

 

SQL>Alter  database  archivelog;

 

查看数据库归档情况

SQL> archive  log  list

数据库日志模式            存档模式

自动存档             启用

存档终点            USE_DB_RECOVERY_FILE_DEST

最早的联机日志序列     538

下一个存档日志序列   540

当前日志序列           540

SQL>

 

2:设置主库强制归档force logging;

 

操作如下

SQL> alter  database  force  logging;

数据库已更改。

 

查看数据库归档情况

SQL> select log_mode,force_logging from v$database;

 

LOG_MODE                 FORCE_

------------------------ ------

ARCHIVELOG               YES

 

 

二:配置Oracle NET

 

 

1:配置listener.ora  (注:最好是静态注册)

 

[oracle@localhost admin]$vi listener.ora

# listener.ora Network Configuration File: /u01/app/product/11.2.0/dbname_1/network/admin/listener.ora

# Generated by Oracle configuration tools.

 

SID_LIST_LISTENER=

(SID_LIST=

       (SID_DESC=

        (GLOBAL_DBNAME=solgle)

        (ORACLE_HOME=/u01/app/product/11.2.0/dbname_1)

        (SID_NAME=solgle)

       )

)

 

LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.16.3.5)(PORT = 1521))

    )

  )

 

ADR_BASE_LISTENER = /u01/app

 

2:配置tnsnames.ora

 

[oracle@localhost admin]$ vi tnsnames.ora

# tnsnames.ora Network Configuration File: /u01/app/product/11.2.0/dbname_1/network/admin/tnsnames.ora

# Generated by Oracle configuration tools.

 

#主库

OS_solgle =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.16.3.5)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = solgle)

    )

  )

 

#备库

SD_solgle =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.16.3.6)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = solgle)

    )

  )

 

 

三:配置Oracle参数

 

1:创建pfile

 

SQL> create pfile='hao123.ora' from spfile;

文件已创建。

SQL>

 

2:配置pfile

 

[oracle@localhost admin]$ cd /u01/app/product/11.2.0/dbname_1/dbs/

[oracle@localhost dbs]$ vi hao123.ora

solgle.__db_cache_size=243269632

solgle.__java_pool_size=4194304

solgle.__large_pool_size=8388608

solgle.__oracle_base='/u01/app'#ORACLE_BASE set from environment

solgle.__pga_aggregate_target=360710144

solgle.__sga_target=671088640

solgle.__shared_io_pool_size=0

solgle.__shared_pool_size=394264576

solgle.__streams_pool_size=8388608

*.audit_file_dest='/u01/app/admin/solgle/adump'

*.audit_trail='db'

*.compatible='11.2.0.4.0'

*.control_files='/u01/data/solgle/control01.ctl','/u01/app/fast_recovery_area/solgle/control02.ctl'

*.cursor_sharing='FORCE'

*.db_block_size=8192

*.db_domain=''

*.db_name='solgle'

*.db_recovery_file_dest='/u01/data/bak_data'

*.db_recovery_file_dest_size=16106127360

*.diagnostic_dest='/u01/app'

*.dispatchers='(PROTOCOL=TCP) (SERVICE=solgleXDB)'

*.memory_target=1028653056

*.open_cursors=300

*.optimizer_mode='FIRST_ROWS_1000'

*.processes=300

*.remote_login_passwordfile='EXCLUSIVE'

*.undo_tablespace='UNDOTBS1'

*.db_unique_name='os_solgle'

*.log_archive_config='dg_config=(os_solgle,sd_solgle)'

*.log_archive_dest_1='location=USE_DB_RECOVERY_FILE_DEST valid_for=(all_logfiles,all_roles) db_unique_name=os_solgle'

*.log_archive_dest_2='service=sd_solgle reopen=120 lgwr async valid_for=(online_logfiles,primary_role) db_unique_name=sd_solgle'

*.log_archive_dest_state_1=enable

*.log_archive_dest_state_2=enable

*.standby_file_managment='auto'

*.fal_server='sd_solgle'

*.fal_client='os_solgle'

 

 

 

3:关闭数据库,创建spfile 用于启动数据库

 

SQL> shutdown immediate;

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

SQL> create spfile from pfile='hao123.ora';

文件已创建。

SQL> startup

ORACLE 例程已经启动。

Total System Global Area 1027182592 bytes

Fixed Size                  2259680 bytes

Variable Size             645924128 bytes

Database Buffers          373293056 bytes

Redo Buffers                5705728 bytes

数据库装载完毕。

数据库已经打开。

 

 

 

四:备库配置

 

1:配置listener.ora为静态

 

[oracle@sd1 admin]$ vi listener.ora

 

LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = TCP)(HOST =192.16.3.6)(PORT = 1521))

    )

  )

 

ADR_BASE_LISTENER = /u01/app

 

SID_LIST_LISTENER=

(SID_LIST=

        (SID_DESC=

                (GLOBAL_DBNAME=solgle)

                (ORACLE_HOME=/u01/app/product/11.2.0/dbname_1)

                (SID_NAME=solgle)

        )

)

 

2:配置tnsnames.ora,让其跟主库互连互通

 

[oracle@sd1 admin]$ vi tnsnames.ora

 

SD_solgle =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.16.3.6)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = solgle)

    )

  )

 

OS_solgle =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.16.3.5)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = solgle)

    )

  )

 

五:配置系统参数

 

1:创建pfile,用于生成spfile

 

SQL> create pfile='hao123.ora' from spfile;

文件已创建。

SQL>

 

2:修改pfile参数

 

[oracle@sd1 dbs]$ cd /u01/app/product/11.2.0/dbname_1/dbs/

[oracle@sd1 dbs]$ vi hao123.ora 

solgle.__db_cache_size=419430400

solgle.__java_pool_size=16777216

solgle.__large_pool_size=33554432

solgle.__oracle_base='/u01/app'#ORACLE_BASE set from environment

solgle.__pga_aggregate_target=503316480

solgle.__sga_target=754974720

solgle.__shared_io_pool_size=0

solgle.__shared_pool_size=268435456

solgle.__streams_pool_size=0

*.audit_file_dest='/u01/app/admin/solgle/adump'

*.audit_trail='db'

*.compatible='11.2.0.4.0'

*.control_files='/u01/data/solgle/control01.ctl','/u01/app/fast_recovery_area/solgle/control02.ctl'

*.db_block_size=8192

*.db_domain=''

*.db_name='solgle'

*.db_recovery_file_dest='/u01/bak_data'

*.db_recovery_file_dest_size=16106127360

*.diagnostic_dest='/u01/app'

*.dispatchers='(PROTOCOL=TCP) (SERVICE=solgleXDB)'

*.memory_target=1244659712

*.open_cursors=300

*.processes=300

*.remote_login_passwordfile='EXCLUSIVE'

*.sessions=335

*.undo_tablespace='UNDOTBS1'

*.db_unique_name='sd_solgle'

*.log_archive_config='dg_config=(os_solgle,sd_solgle)'

*.log_archive_dest_1='location=USE_DB_RECOVERY_FILE_DEST valid_for=(all_logfiles,all_roles) db_unique_name=sd_solgle'

*.log_archive_dest_2='service=os_solgle reopen=120 lgwr async valid_for=(online_logfiles,primary_role) db_unique_name=os_solgle'

*.log_archive_dest_state_1=enable

*.log_archive_dest_state_2=enable

*.standby_file_management='auto'

*.fal_server='os_solgle'

*.fal_client='sd_solgle'

 

 

注:如果两库的路径发生变化,则用下面的参数定义方式切换,如果路径相同,则duplicate时需要加参数nofilenamecheck

 

*.log_file_name_convert=’/u01/app/old_path_data’,’/u01/app/new_path_data’

*.db_file_name_convert=’/u01/app/old_path_log’,’/u01/app/new_path_log’

 

 

3:关闭数据库,生成spfile文件用于启动到nomount

 

SQL> shutdown  immediate

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

SQL> create spfile from pfile='hao123.ora';

文件已创建。

SQL> startup nomount;

ORACLE 例程已经启动。

Total System Global Area 1252663296 bytes

Fixed Size                  2252824 bytes

Variable Size             838864872 bytes

Database Buffers          402653184 bytes

Redo Buffers                8892416 bytes

 

 

4:配置好hosts,加入主库及备库的名称(两台服务器,均需要配置)

 

[oracle@ps1 dbs]$ vi /etc/hosts

127.0.0.1   ps1  localhost localhost.localdomain localhost4 localhost4.localdomain4

192.16.3.5  ps1  localhost localhost.localdomain localhost6 localhost6.localdomain6

192.16.3.6  sd1

 

 

5:复制密码文件,让两库密码一致,否则会出现错误:ora-16191

 

[oracle@sd1 dbs]$ scp ps1:/u01/app/product/11.2.0/dbname_1/dbs/orapwsolgle  /u01/app/product/11.2.0/dbname_1/dbs/

The authenticity of host 'ps1 (192.16.3.5)' can't be established.

RSA key fingerprint is a0:69:e1:a2:9c:fe:71:a3:a6:2a:45:f4:f6:74:a7:69.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added 'ps1,192.16.3.5' (RSA) to the list of known hosts.

oracle@ps1's password:

orapwsolgle                                                                                   100% 1536     1.5KB/s   00:00  

 

六:使用Rman duplicate复制数据库

 

1:执行rman

 

rman target=sys/********@os_solgle  nocatalog  auxiliary=sys/********@sd_solgle

 

恢复管理器: Release 11.2.0.1.0 - Production on 星期四 9 4 17:05:36 2014

 

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

 

连接到目标数据库: solgle (DBID=1370340464)

使用目标数据库控制文件替代恢复目录

已连接到辅助数据库: solgle (未装载)

 

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

(注:保持两边数据文件目录路径一致,则加上nofilenamecheck)

启动 Duplicate Db 04-9 -14

分配的通道: ORA_AUX_DISK_1

通道 ORA_AUX_DISK_1: SID=19 设备类型=DISK

 

内存脚本的内容:

{

   backup as copy reuse

   targetfile  '/u01/app/product/11.2.0/dbname_1/dbs/orapwsolgle' auxiliary form

……
……

正在执行命令: SET NEWNAME

 

正在执行命令: SET NEWNAME

 

启动 backup 04-9 -14

使用通道 ORA_DISK_1

通道 ORA_DISK_1: 启动数据文件副本

输入数据文件: 文件号=00011 名称=/u01/data/user_data/p7_data001.dbf

输出文件名=/u01/data/user_data/p7_data001.dbf 标记=TAG20140904T172632

通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:01:35

通道 ORA_DISK_1: 启动数据文件副本

输入数据文件: 文件号=00025 名称=/u01/data/user_data/p21_data001.dbf

输出文件名=/u01/data/user_data/p21_data001.dbf 标记=TAG20140904T172632

通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:01:36

通道 ORA_DISK_1: 启动数据文件副本

输入数据文件: 文件号=00010 名称=/u01/data/user_data/p6_data001.dbf

输出文件名=/u01/data/user_data/p6_data001.dbf 标记=TAG20140904T172632

通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:01:36

……

……

数据文件 28 已转换成数据文件副本

输入数据文件副本 RECID=29 STAMP=857410812 文件名=/u01/data/user_data/EML_RECEIVE

_P1_01.dbf

数据文件 29 已转换成数据文件副本

输入数据文件副本 RECID=30 STAMP=857410812 文件名=/u01/data/user_data/EML_RECEIVE

_P2_01.dbf

数据文件 30 已转换成数据文件副本

输入数据文件副本 RECID=31 STAMP=857410812 文件名=/u01/data/user_data/EML_RECEIVE

_P3_01.dbf

数据文件 31 已转换成数据文件副本

输入数据文件副本 RECID=32 STAMP=857410812 文件名=/u01/data/user_data/EML_RECEIVE

_P4_01.dbf

数据文件 32 已转换成数据文件副本

输入数据文件副本 RECID=33 STAMP=857410812 文件名=/u01/data/user_data/EML_RECEIVE

_P5_01.dbf

数据文件 33 已转换成数据文件副本

输入数据文件副本 RECID=34 STAMP=857410812 文件名=/u01/data/user_data/EML_RECEIVE

_P6_01.dbf

数据文件 34 已转换成数据文件副本

输入数据文件副本 RECID=35 STAMP=857410812 文件名=/u01/data/user_data/user_data00

2.dbf

完成 Duplicate Db 04-9 -14

 

RMAN>

 

 

 

 

七:后续配置

 

1sqlplus连接上备库,查看数据库状态

 

SQL> select open_mode,log_mode from v$database;

 

OPEN_MODE                                LOG_MODE

---------------------------------------- ------------------------

MOUNTED                                  ARCHIVELOG

 

2:启动同步进程

 

SQL> alter database recover managed standby database disconnect from session;

数据库已更改。

 

(该步就已经完成了主要配置,但是备库不提供数据查询访问)

 

 

八:重新配置real-time apply,让备份库可读

 

1:增加standby log,得先取消当前进程

SQL> alter database recover managed standby database cancel;

数据库已更改。

 

2:增加standby log (注:相应目录请先创建)

SQL> alter database add standby logfile '/u01/data/standby_redo/stdredo01.log' s

ize 50m;

数据库已更改。

 

SQL> alter database add standby logfile '/u01/data/standby_redo/stdredo02.log' s

ize 50m;

数据库已更改。

 

SQL> alter database add standby logfile '/u01/data/standby_redo/stdredo03.log' s

ize 50m;

数据库已更改。

 

SQL> alter database add standby logfile '/u01/data/standby_redo/stdredo04.log' s

ize 50m;

数据库已更改。

 

注:该步骤,主库也添加,主库不需要取消什么,直接添加就可以了

 

3:打开备库

SQL> alter database open;

数据库已更改。

 

SQL> alter database recover managed standby database using current logfile disco

nnect;

数据库已更改。

 

4:查询验证

 

SQL> select open_mode,log_mode from v$database;

OPEN_MODE                                LOG_MODE

---------------------------------------- ------------------------

READ ONLY WITH APPLY                     ARCHIVELOG

SQL>

 

 

5:查看日志,验证数据同步

 

SQL> select * from v$dataguard_status order by timestamp desc;

……


补充手动故障转移测试

1:主库 alter database commit to switchover to physical standby with session shutdown;
   startup;
   alter database recover managed standby database using current logfile disconnect;
2:备库 alter database commit to switchover to primary with session shutdown;
        alter database open; 

逻辑备用参考:http://www.solgle.com/news/?143.html


标签:部署Oracle 11g DataGuard 部署Oracle 11g DataGuard 用Rman创建 standby database 

solgle.com 版权所有,欢迎分享!!!

相关评论
 img1 img2 img3 img4 img5 img6 img7 img8 img9 img10
评论者:      验证码:  点击获取验证码
   Copyright © 2013-2028 solgle.com,All rights reserved.[solgle.com] 公安机关备案号:51010802000219
Email:solgle@solgle.com; weixin:cd1008610000 ICP:蜀ICP备14011070号-1