`
xcfcky
  • 浏览: 13401 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

Oracle10G Physical Standby Database笔记

 
阅读更多

试验环境
primary server: 
windows2000 server + oracle 10.0.1.0.2 
ORACLE_SID:dgtest 
ORACLE_HOME: D:\oracle\product\10.1.0\db_1
standby server: 
windows XP pro + oracle 10.0.1.0.2
ORACLE_SID:dgtest
ORACLE_HOME: D:\oracle\product\10.1.0\db_1

配置步骤
首先,装好primary和standby上的oracle,建SID同为dgtest的库,所有设置完全相同。然后停止shutdown两台上的oracle,将primary上的所有数据文件,控制文件,redo文件和password文件都copy到standby机器的相应位置。(还可以利用热备,rman等来建立初始standby库)在我感觉在要配置完成,使用新参数文件启动standby的时候拷贝文件为好,这样,我们就拥有了两台完全一样的oracle server。

1.      在primary database上设置force logging
SQL>alter database force logging;

2.      修改primary databse的初始化参数 
创建pfile   SQL> create pfile='D:\oracle\product\pfdgtest.ora' from spfile;

修改参数:
#DB_UNIQUE_NAME=‘primary’
CONTROL_FILES='d:\oracle\product\oradata\control01.ctl','d:\oracle\product\oradata\control02.ctl','d:\oracle\product\oradata\control03.ctl'
LOG_ARCHIVE_DEST_1= 'LOCATION=d:\oracle\product\arch‘
LOG_ARCHIVE_DEST_2= 'SERVICE=standby’
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
LOG_ARCHIVE_FORMAT='arc%s%t%r.arc'
FAL_SERVER=standby
FAL_CLIENT=primary 
STANDBY_FILE_MANAGEMENT=AUTO
LOCK_NAME_SPACE   ---这是当主数据库和备用数据在同一台机上时要设该参数,设为备用数据库的SID

3.      设置primary database为archivelog模式
SQL>shutdown immediate;
SQL>startup mount;
SQL>alter database archivelog;
SQL>alter database open:

4.      在primary database上创建standby database的控制文件
SQL>shutdown immedaite;
SQL>startup mount;
SQL>alter database create standby controlfile as ‘d:\oracle\product\oradata\controlstandby.ctl’
SQL>alter database open;
然后将该controlfile复制到standby server的对应位置

5.      修改standby databse的初始化参数
#DB_UNIQUE_NAME=‘standby’
CONTROL_FILES='d:\oracle\product\oradata\controlstandby.ctl'
LOG_ARCHIVE_DEST_1= 'LOCATION=d:\oracle\product\arch’
LOG_ARCHIVE_DEST_2= 'SERVICE=primary‘
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
#STANDBY_ARCHIVE_DEST=‘d:\oracle\product\arch’ -- oracle 10gR2后不需要该参数,用log_archive_d
REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
FAL_SERVER=primary
FAL_CLIENT=standby
STANDBY_FILE_MANAGEMENT=AUTO
DB_FILE_NAME_CONVERT     ----当primary和standby的数据文件路径不一致时使用
LOG_FILE_NAME_CONVERT    ----当primary和standby的数据文件路径不一致时使用
LOCK_NAME_SPACE           ----当主数据库和备用数据在同一台机上时设为备用数据库的SID 
具体参数的说明请参考oracle在线文档

6.      设置primary database和standby database的tnsnames.ora
primary =
(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = primary_server)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = dgtest)
    )
)

standby =
(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = standby_server)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = dgtest)
    )
)

--使用TNSPING 测试一下listener

--拷贝数据库文件等

7.      启动standby database 
SQL>startup nomount pfile=’d:\oracle\product\initdgtest.ora’
SQL>alter database mount standby database;

8.      启动primary database
SQL>startup pfile=’d:\oracle\product\initdgtest.ora’

9.      启动standby database到recover manage模式
SQL>alter database recover managed standby database disconnect from session;

Switchover

在primary上

1.      SQL>select switchover_status from v$database
switchover_status的值入股是To standby,可以直接switchover,如果是sessions active,    
则需要在switchover的命令后面加上with session shutdown

2.      SQL>alter database commit to switchover to physical standby;

3.      SQL>shutdowm immediate;

4.      SQL>startup mount;

在standby上

1.      SQL> select switchover_status from v$database

    switchover_status的值入股是To primary,可以直接switchover,如果是sessions active,    
    则需要在switchover的命令后面加上with session shutdown

2.      SQL>alter database commit to switchover to primary;

3.      SQL>shutdown immediate;

4.      SQL>startup;

要想顺利的实现switchover,最好在每台server上都同时设置好primary和standby的一些初始化参数,虽然其中一些参数只有在primary或者standby其中之一上起作用

Failover

在standby上

1.      SQL>alter database recover managed standby database finish;
    or SQL>alter database recover managed standby database finish skip standby logfile;

2.      SQL>alter database commit to switchover to primary; 

3.      SQL>shutdown immediate;

4.      SQL>startup;

相关视图

v$archive_dest 
v$archive_dest_status
v$log_history
v$archvied_log
v$managed_standby
v$archive_gap

常见问题

1.      日志无法传送
SQL>select dest_name,status,error from v$archive_dest;
察看相应的归档路径的状态是否valid,否则根据error信息进行处理

2.      无法使用alter database重命名data file
在standby上,当设置standby_file_management为auto时,不允许下列操作
alter database rename
alter database add/drop logfile
alter database add/drop standby logfile member
alter database create datafile as

失败
SQL>alter database commit to switchover to physical standby
ORA-01093:alter database close only permitted with no session connected
察看引起该错误的活动session
SQL> select sid,process,program from v$session where type='USER' and
   sid<>(select distinct sid from v$mystat);
断开该session,或者使用如下命令来做switchover
SQL>lter database commit to switchover to physical standby with session shutdown;

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

我的试验环境:
Windows xp sp2 + oracle 10.2.0
ORACLE_SID: dgtest
ORACLE_HOME: D:\oracle\product\10.2.0\db_1

看过了《oracle高可用环境》那章,又体会到蛮多 o(∩_∩)o... 主要是一些参数了!

Validate whether received: 
SQL> SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME
          FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#

Validate whethere new archive redo log have been applied.
SQL> select SEQUENCE#,DEST_ID,ARCHIVED,APPLIED,DELETED,
STATUS from v$archived_log order by SEQUENCE#

查询库状态:
SQL> select name,open_mode,PROTECTION_MODE,DATABASE_ROLE from v$database;

------------------------
网络收集资料

总结:备库在起来时:
1.nomount:rfs服务没有起,因此主库文件不会传到备库;mrp进程没有起,因此也不会做recover,归档不

会applied。
2.mount:rfs服务启动,主库的归档能传输到备库(可以在主库switchlogfile几次,会发现归档已经传输过去

);mrp进程没有启动,归档不applied。
3.recover managed:rfs在上一步已经启动,归档能传输到备库;且mrp进程已经起来,apply 归档日志!
http://www.oracleblog.cn/study-note/different-stage-on-dataguard-startup/

主备切换:
1、primary——>phsical standby:
先确认能否转换:
SELECT SWITCHOVER_STATUS FROM V$DATABASE;
转换:
ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY;
SHUTDOWN IMMEDIATE;
STARTUP NOMOUNT;
ALTER DATABASE MOUNT STANDBY DATABASE;
2、phsical standby——>primary:
先确认能否转换:
SELECT SWITCHOVER_STATUS FROM V$DATABASE;
转换:
ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;
SHUTDOWN;
STARTUP;
3、新primary:
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
ALTER SYSTEM ARCHIVE LOG CURRENT;

分享到:
评论

相关推荐

    ORACLE 10G DATAGUARD 配置物理STANDBY 手记

    ORACLE 10G DATAGUARD 配置物理STANDBY 手记

    如何在Oracle 10g On Windows下创建standby database.doc

    在Oracle 10g环境下创建Standby Database是一个关键的高可用性设置,它可以在主数据库出现故障时提供即时恢复。以下是在Windows操作系统上执行此过程的详细步骤: 1. **环境准备**: - 确保主从两台服务器的操作...

    Oracle DataGuard物理Standby Database配置

    Oracle DataGuard物理Standby Database配置是一项关键任务,用于创建一个实时同步的备份数据库,以确保在主数据库出现故障时能够迅速切换,保障业务连续性。以下是配置物理Standby Database的详细步骤: 1. **启用...

    Oracle10g Data Guard学习笔记

    本学习笔记涵盖了Oracle 10g Data Guard的基础知识,包括其核心组件、配置过程、保护模式,以及如何管理和操作Standby数据库。 1.3. DataGuard配置 配置Data Guard涉及以下几个主要步骤: 1. 创建和配置主数据库。...

    oracle standby database

    ### Oracle Standby Database 创建与管理知识点详解 #### 一、Oracle Standby Database 概述 在Oracle数据库系统中,为了实现高可用性和灾难恢复能力,引入了Standby Database的概念。Standby Database是一种辅助...

    Oracle数据库中Standby Database的搭建和使用.pdf

    Oracle数据库中的Standby Database是一种高可用性和灾难恢复解决方案,它通过实时同步主数据库的数据到备用数据库,确保在主数据库出现故障时,可以迅速切换到备用数据库进行服务,从而最大限度地减少业务中断。...

    Oracle Standby Database技术的原理及实现.pdf

    Oracle Standby Database有两种主要类型:Physical Standby Database和Logical Standby Database。 - Physical Standby Database:物理备用数据库完全复制主数据库的物理结构,包括表空间、数据文件等。恢复过程是...

    oracle 11g rac to one standby database

    Oracle数据库11g是一个企业级关系型数据库管理系统,它支持高度的数据可用性和大规模数据量的管理。在本文中,我们将讨论如何将Oracle 11g RAC(Real Application Clusters)环境搭建为单实例的物理备库。这是一个...

    【DATAGUARD】 将11g物理备库转换为Snapshot Standby

    在 Oracle 11g 版本中,DataGuard 引入了一项新功能——Snapshot Standby 数据库,这项功能允许用户在不中断主数据库服务的情况下对备用数据库进行读写操作。 #### 二、Snapshot Standby 数据库的特点 Snapshot ...

    Oracle8i Standby Database Concepts and Administration Release 2

    Oracle8i Standby Database Concepts and Administration Release 2 (8.1.6) 是一份重要的文档,专注于介绍如何管理和实现Oracle数据库在8.1.6版本中的备用数据库(Standby Database)技术。备用数据库是Oracle...

    oracle 11g RAC<--&gt;单机 高可用dataguard 主备正确切换步骤

    SQL&gt; alter database commit to switchover to physical standby with session shutdown; 这条命令将使得当前的主数据库实例变成备用实例,并关闭当前实例。 二、单机切换回RAC 在单机模式下,数据库只有一个实例...

    ORACLE 10G OCA 042 笔记(zt)

    这个笔记将深入探讨Oracle 10g的核心概念和操作,帮助理解并掌握数据库管理系统的基础。 首先,Oracle数据库系统是一个关系型数据库管理系统(RDBMS),它以表格的形式存储数据,并通过SQL(结构化查询语言)进行...

    Oracle standby database的建立与维护.pdf

    Oracle Standby Database是一种重要的数据库高可用性和灾难恢复解决方案,它为Oracle数据库提供了一种容错机制,能够在主数据库出现故障时迅速切换到备用数据库,确保业务连续性。本文将详细介绍Oracle Standby ...

    Oracle Database 10gR2 Data Guard操作手册

    编写目的是为了提供一套详细的操作步骤,指导用户在Oracle 10g Release 2 (10gR2)环境中设置Data Guard。项目背景源于对数据库高可用性的需求,确保关键业务系统的稳定运行。定义部分涵盖了Data Guard的关键术语,...

    Oracle 10g RAC Grid,Services & Clustering

    Oracle 10g RAC(Real Application Clusters)Grid、Services及Clustering是Oracle数据库系统中的关键特性,它们为大型企业提供了高可用性、可扩展性和性能优化的解决方案。以下是对这些概念的详细阐述: 1. **...

    oracle 10g 物理与逻辑standby测试手册

    根据给定的文件信息,以下是对Oracle 10g物理与逻辑standby测试手册的关键知识点进行的详细解析: ### Oracle Dataguard与物理、逻辑Standby数据库 **Oracle Dataguard**是Oracle数据库的一项关键特性,它提供了...

    oracle 10 Ora 10G 官方文档

    Oracle 10g是Oracle公司推出的数据库管理系统的一个重要版本,主要关注高性能、高可用性和安全性。这个官方文档集合包含了丰富的信息,对学习和掌握Oracle 10g的各个方面都极其有益。以下是根据提供的信息,对Oracle...

    Oracle Database 11g完全参考手册

    《Oracle Database 11g完全参考手册》是Oracle数据库管理员和开发者的重要参考资料,它涵盖了Oracle 11g的所有核心功能和高级特性。Oracle 11g是Oracle公司推出的数据库管理系统的一个重要版本,提供了诸多增强的...

Global site tag (gtag.js) - Google Analytics