Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1193150
  • 博文数量: 245
  • 博客积分: 10185
  • 博客等级: 上将
  • 技术积分: 2744
  • 用 户 组: 普通用户
  • 注册时间: 2006-10-30 17:07
文章分类

全部博文(245)

文章存档

2015年(1)

2014年(1)

2013年(1)

2012年(1)

2011年(37)

2010年(20)

2009年(14)

2008年(38)

2007年(88)

2006年(44)

分类: Oracle

2007-08-03 23:49:22

检查配置是否成功:

在主库rac1上创建一个新表

SQL> create table t as select * from dba_users;

Table created.

SQL>  alter system switch logfile;

System altered.

 在辅库rac3上检查

SQL> select username from t;

select username from t

                     *

ERROR at line 1:

ORA-01219: database not open: queries allowed on fixed tables/views only

 SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

Database altered.

SQL> ALTER DATABASE OPEN READ ONLY;

Database altered.

SQL> select username from t;

 USERNAME

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

MGMT_VIEW

SYS

------

 21 rows selected.            成功

 SQL> create tablespace wyl datafile '/home/oracle/oradata/rac/wyl.dbf' size 200M;

Tablespace created.

SQL> alter system switch logfile;

   System altered.

SQL> select name from v$datafile;

NAME

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

/home/oracle/oradata/rac/wyl.dbf

Rac3

SQL> select name from v$datafile;

NAME

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

/home/oracle/oradata/rac/users01.dbf

 SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

*

ERROR at line 1:ORA-16136: Managed Standby Recovery not active

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

Database altered.

 SQL> select name from v$datafile;

 NAME

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

/home/oracle/product/10.2.0/db_1/dbs/UNNAMED00005

 SQL> select name from v$datafile;

 NAME

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

/home/oracle/oradata/rac/users01.dbf

/home/oracle/oradata/rac/wyl.dbf

  9.主辅数据库的切换(停止主数据库,启用备用数据库)

修改rac1(原来做primary)的参数文件initrac.ora

增加

*.standby_archive_dest='/home/oracle/oradata/standbyarch'

*.fal_server='rac3'

*.fal_client='rac1'

*.DB_FILE_NAME_CONVERT=("/home/oracle/oradata/primary","/home/oracle/oradata/oracle")

*.LOG_FILE_NAME_CONVERT=("/home/oracle/oradata/archive","/home/oracle/oradata/archive")

*.STANDBY_FILE_MANAGEMENT='AUTO'

删除  log_archive_dest_2参数

修改rac3主机(原来做standby)的参数文件initrac.ora(先备份)

增加

*.log_archive_dest_2='service=primary mandatory reopen=60'

*.log_archive_dest_state_2='ENABLE'

删除

*.STANDBY_ARCHIVE_DEST=/home/oracle/oradata/archivelog

*.fal_server='standby'

*.fal_client='primary'

*.DB_FILE_NAME_CONVERT=("/home/oracle/oradata/primary","/home/oracle/oradata/oracle")

*.LOG_FILE_NAME_CONVERT=("/home/oracle/oradata/archivelog","/home/oracle/oradata/archivelog")

*.STANDBY_FILE_MANAGEMENT=AUTO

 rac1主机上执行

SQL> alter database commit to switchover to physical standby with session shutdown ;

Database altered.

察看rac1主机上的后台日志

 

SQL> shutdown immediate

ORA-01507: database not mounted

ORACLE instance shut down.

rac1主机上以备用模式(standby)启动

SQL> create spfile from pfile;

SQL> startup nomount;

ORACLE instance started.

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

SQL> show parameter standby_file_management;

 

NAME                  TYPE-------------------------------- ----------------------VALUE

standby_file_management         string

 SQL> alter database mount standby database;

Database altered.

rac3主机上执行以下命令,切换为primary

[oracle@rac3]$ sqlplus "/ as sysdba"

 SQL> alter database commit to switchover to primary with session shutdown ;

Database altered.

SQL> shutdown immediate;

     ORA-01507: database not mounted

ORACLE instance shut down

SQL>create spfile from pfile;

SQL> startup;

        ……

Database mounted.

Database opened.

SQL> select SEQUENCE#,GROUP#,STATUS from v$log;

SQL> select sequence#,group#,status from v$log;

 

 SEQUENCE#     GROUP# STATUS

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

        72          1 INACTIVE

        73          2 INACTIVE

        74          3 CURRENT

 SQL> alter system switch logfile;

       System altered.

 SQL> select sequence#,group#,status from v$log;

 

 SEQUENCE#     GROUP# STATUS

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

        75          1 CURRENT

        73          2 INACTIVE

        74          3 ACTIVE

rac3主机上执行

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

Database altered.

rac3主机上观察日志应用情况

 10.现在可做一个测试,在rac3主机上进行数据修改(rac3主机现在做primary

  SQL> create table t as select * from dba_users;

Table created.

SQL> alter system switch logfile;     

System altered.

 

从库上(rac1主机上)read only打开数据库,执行查询

SQL> select username from t;

select username from t

 *

ERROR at line 1:

ORA-01219: database not open: queries allowed on fixed tables/views only

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

Database altered.

SQL> ALTER DATABASE OPEN READ ONLY;

Database altered.

SQL> select username from t;

USERNAME

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

--------

WMSYS

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

Database altered.

switchover过程: 

12.把数据库再次切换回到主节点

先将rac3此时的initoracle.ora恢复为以前是standby时的参数。

在主节点(rac3主机上)

SQL> alter database commit to switchover to physical standby;

Database altered.

SQL> shutdown immediate

ORA-01507: database not mounted

ORACLE instance shut down.

 SQL> create spfile from pfile;

File created.

 SQL> startup nomount;

ORACLE instance started.

SQL> alter database mount standby database;

Database altered.

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

Database altered.

 在备用节点(在rac1主机上)

先将primary此时的initoracle.ora恢复为以前是primary时的参数。

SQL> alter database commit to switchover to primary;

Database altered.

SQL> alter database commit to switchover to primary;

      Database altered.

 SQL> shutdown immediate;

ORA-01507: database not mounted

ORACLE instance shut down.

SQL> create spfile from pfile;

File created.

SQL> startup;

ORACLE instance started.

 Database mounted.

Database opened.   

阅读(1860) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~