一步一步学DataGuard(9)物理standby之高级管理2

 管理影响standby的primary数据库事件

为预防可能的错误,你必须知道primary数据库的某些事件可能影响standby数据库,并且了解如何处理。

某些情况下,primary数据库的某些改动会自动通过redo数据传播到standby数据库,因此不需要在standby数据库做额外的操作,而某些情况,则需要你手工调整。

下列事件会由redo传输服务及redo应用自动处理,不需要dba的干预,分别是:

ALTER DATABASE ENABLE|DISABLE THREAD 语句(主要针对rac环境,目前基本已废弃,因为ENABLE|DISABLE INSTANCE子句完全能够实现类似功能)

修改表空间状态(例如read-write到read-only,online到offline)

创建修改删除表空间或数据文件(如果初始化参数STANDBY_FILE_MANAGEMENT被设置为AUTO的话,这点在前面第一章的时候提到过)

下列事情则需要dba手工干预:

1、 添加修改删除数据文件或表空间

前面提到了,初始化参数STANDBY_FILE_MANAGEMENT可以控制是否自动将primary数据库增加删除表空间、数据文件的改动继承到standby。

如果该参数值设置为auto,则自动创建。

如果设置为manual,则需要手工复制新创建的数据文件到standby服务器。

不过需要注意一点,如果数据文件是从其它数据库复制而来(比如通过tts),则不管STANDBY_FILE_MANAGEMENT参数值如何设置,都必须同时复制到standby数据库,并注意要修改standby数据库的控制文件。

下面分别通过示例演示STANDBY_FILE_MANAGEMENT参数值为AUTO/MANUAL值时增加及删除数据文件时的情形:

1) .STANDBY_FILE_MANAGEMENT设置为AUTO,增加及删除表空间和数据文件

我们先来看看初始化参数的设置:  ----standby数据库操作

SQL> show parameter standby_file

NAME                                 TYPE        VALUE

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

standby_file_management              string      AUTO

A) .增加新的表空间    --primary数据库操作

SQL> create tablespace mytmp datafile 'e:\ora10g\oradata\jssweb\mytmp01.dbf' size 20m;

表空间已创建。

检查刚添加的数据文件

SQL> select name from v$datafile;

NAME

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

E:\ORA10G\ORADATA\JSSWEB\SYSTEM01.DBF

E:\ORA10G\ORADATA\JSSWEB\UNDOTBS01.DBF

E:\ORA10G\ORADATA\JSSWEB\SYSAUX01.DBF

E:\ORA10G\ORADATA\JSSWEB\USERS01.DBF

E:\ORA10G\ORADATA\JSSWEB\WEBTBS01.DBF

E:\ORA10G\ORADATA\JSSWEB\MYTMP01.DBF

已选择6行。

切换日志

SQL> alter system switch logfile;

系统已更改。

B) .验证standby库    --standby数据库操作

SQL> select name from v$datafile;

NAME

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

E:\ORA10G\ORADATA\JSSPDG\SYSTEM01.DBF

E:\ORA10G\ORADATA\JSSPDG\UNDOTBS01.DBF

E:\ORA10G\ORADATA\JSSPDG\SYSAUX01.DBF

E:\ORA10G\ORADATA\JSSPDG\USERS01.DBF

E:\ORA10G\ORADATA\JSSPDG\WEBTBS01.DBF

E:\ORA10G\ORADATA\JSSPDG\MYTMP01.DBF

已选择6行。

SQL> select name from v$tablespace;

NAME

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

SYSTEM

UNDOTBS1

SYSAUX

TEMP

USERS

WEBTBS

MYTMP

已选择7行。

可以看到,表空间和数据文件已经自动创建,你是不是奇怪为什么数据文件路径自动变成了jsspdg,赫赫,因为我们设置了db_file_name_convert嘛。

C) .删除表空间   --primary数据库操作

SQL> drop tablespace mytmp including contents and datafiles;

表空间已删除。

SQL> select name from v$datafile;

NAME

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

E:\ORA10G\ORADATA\JSSWEB\SYSTEM01.DBF

E:\ORA10G\ORADATA\JSSWEB\UNDOTBS01.DBF

E:\ORA10G\ORADATA\JSSWEB\SYSAUX01.DBF

E:\ORA10G\ORADATA\JSSWEB\USERS01.DBF

E:\ORA10G\ORADATA\JSSWEB\WEBTBS01.DBF

SQL> alter system switch logfile;

系统已更改。

提示:使用including子句删除表空间时,

D) .验证standby数据库    --standby数据库操作

SQL> select name from v$datafile;

NAME

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

E:\ORA10G\ORADATA\JSSPDG\SYSTEM01.DBF

E:\ORA10G\ORADATA\JSSPDG\UNDOTBS01.DBF

E:\ORA10G\ORADATA\JSSPDG\SYSAUX01.DBF

E:\ORA10G\ORADATA\JSSPDG\USERS01.DBF

E:\ORA10G\ORADATA\JSSPDG\WEBTBS01.DBF

SQL> select name from v$tablespace;

NAME

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

SYSTEM

UNDOTBS1

SYSAUX

TEMP

USERS

WEBTBS

已选择6行。

得出结论,对于初始化参数STANDBY_FILE_MANAGMENT设置为auto的话,对于表空间和数据文件的操作完全无须dba手工干预,primary和standby都能很好的处理。

2) .STANDBY_FILE_MANAGEMENT设置为MANUAL,增加及删除表空间和数据文件

A) .增加新的表空间    --primary数据库操作

SQL> create tablespace mytmp datafile 'e:\ora10g\oradata\jssweb\mytmp01.dbf' size 20m;

表空间已创建。

检查刚添加的数据文件

SQL> select name from v$datafile;

NAME

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

E:\ORA10G\ORADATA\JSSWEB\SYSTEM01.DBF

E:\ORA10G\ORADATA\JSSWEB\UNDOTBS01.DBF

E:\ORA10G\ORADATA\JSSWEB\SYSAUX01.DBF

E:\ORA10G\ORADATA\JSSWEB\USERS01.DBF

E:\ORA10G\ORADATA\JSSWEB\WEBTBS01.DBF

E:\ORA10G\ORADATA\JSSWEB\MYTMP01.DBF

已选择6行。

切换日志

SQL> alter system switch logfile;

系统已更改。

B) .验证standby库    --standby数据库操作

SQL> select name from v$datafile;

NAME

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

E:\ORA10G\ORADATA\JSSPDG\SYSTEM01.DBF

E:\ORA10G\ORADATA\JSSPDG\UNDOTBS01.DBF

E:\ORA10G\ORADATA\JSSPDG\SYSAUX01.DBF

E:\ORA10G\ORADATA\JSSPDG\USERS01.DBF

E:\ORA10G\ORADATA\JSSPDG\WEBTBS01.DBF

E:\ORA10G\PRODUCT\10.2.0\DB_1\DATABASE\UNNAMED00006

已选择6行。

SQL> select name from v$tablespace;

NAME

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

SYSTEM

UNDOTBS1

SYSAUX

TEMP

USERS

WEBTBS

MYTMP

已选择7行。

可以看到,表空间已经自动创建,但是,数据文件却被起了个怪名字,手工修改其与primary数据库保持一致,如下(注意执行命令之后手工复制数据文件到standby):

SQL> alter database create datafile 'E:\ORA10G\PRODUCT\10.2.0\DB_1\DATABASE\UNNAMED00006'

 2  as 'E:\ora10g\oradata\jsspdg\mytmp01.dbf' ;

数据库已更改。

C) .删除表空间   --primary数据库操作

SQL> drop tablespace mytmp including contents and datafiles;

表空间已删除。

SQL> select name from v$datafile;

NAME

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

E:\ORA10G\ORADATA\JSSWEB\SYSTEM01.DBF

E:\ORA10G\ORADATA\JSSWEB\UNDOTBS01.DBF

E:\ORA10G\ORADATA\JSSWEB\SYSAUX01.DBF

字数受限,详细请查看:

一步一步学DataGuard(9)物理standby之高级管理2全文

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7607759/viewspace-214912/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/7607759/viewspace-214912/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值