Data Guard主库添加数据文件或创建表空间

 管理主库能影响备库的事件

Reference

Change Made on Primary Database

Action Required on Standby Database

Section 8.3.1

Add a datafile or create a tablespace

添加文件或创建表空间

If you did not set the STANDBY_FILE_MANAGEMENT initialization parameter to AUTO, you must copy the new datafile to the standby database.

如果STANDBY_FILE_MANAGEMENT初始化参数没有设置为AUTO,那么你必须将新的数据文件拷贝到备库

Section 8.3.2

Drop or delete a tablespace or datafile

删除表空间或数据文件

Delete datafiles from primary and standby databases after the archived redo log file containing the DROP or DELETE command was applied.

从主库删除数据文件,备库机会应用包含DROP或者DELETE命令的归档重做日志来应用

Section 8.3.3

Use transportable tablespaces

使用传输表空间

Move tablespaces between the primary and standby databases.

在主备库之间移动表空间

Section 8.3.4

Rename a datafile

重命名一个数据文件

Rename the datafile on the standby database.

在备库重命令数据文件

Section 8.3.5

Add or drop redo log files

添加或删除重做日志文件爱你

Synchronize changes on the standby database.

在备库上同步改变

Section 8.3.6

Perform a DML or DDL operation using the NOLOGGING or UNRECOVERABLE clause

使用NOLOGGING 或者UNRECOVERABLE 执行DML或者DDL操作,

Send the datafile containing the unlogged changes to the standby database.

向备库发送包含没有日志记录的文件

Chapter 13

Change initialization parameters

改变初始化参数

Dynamically change the standby parameters or shut down the standby database and update the initialization parameter file.

动态的改变备用的参数或者关闭备库,再更新初始化参数文件

 8.3.1添加一个数据文件或者创建一个表空间

STANDBY_FILE_MANAGEMENT初始化参数文件,能使用控制是否在添加数据文件到主库自动传播到备库,如下:
如果STANDBY_FILE_MANAGEMENT这个初始化参数文件在备库中的spfile是AUTO,那么任何在主库上新创建的数据文件会自动的在备库创建。如果STANDBY_FILE_MANAGEMENT没有设置或者设置为MANUAL,那么当你在主库添加数据文件时,你必须手动拷贝新的数据文件到备库

注意,如果你从另一个数据库已存在的数据文件拷贝到到主库,那么你必须也要拷贝到倒库,然后重新创建备用控制文件,除非你设置了STANDBY_FILE_MANAGEMENT 初始化参数。

按以下提供的例子来添加一个数据文件到主库,备库的STANDBY_FILE_MANAGEMENT分别设置为AUTO和MANUAL。

8.3.1.1 当STANDBY_FILE_MANAGEMENT设置为AUTO时,

以下的例子给出了主库添加一个数据文件,备库的STANDBY_FILE_MANAGEMENT为AUTO时的步骤。

1.添加一个新的表空间到主库:

SQL> CREATE TABLESPACE new_ts DATAFILE '/disk1/oracle/oradata/payroll/t_db2.dbf'

  2> SIZE 1m AUTOEXTEND ON MAXSIZE UNLIMITED; 

2.归档当前现在重做日志,这样,重做日志会传输到备库,并且备库会应用传输过来的日志:

SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;

3.验证新的数据文件被添加到主库:

SQL> SELECT NAME FROM V$DATAFILE;

NAME

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

/disk1/oracle/oradata/payroll/t_db1.dbf

/disk1/oracle/oradata/payroll/t_db2.dbf


  1. 验证信的数据文件被添加到备库:

SQL> SELECT NAME FROM V$DATAFILE;

NAME

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

/disk1/oracle/oradata/payroll/s2t_db1.dbf

/disk1/oracle/oradata/payroll/s2t_db2.dbf


###########################################################################################################

我的实验:主库添加新的表空间,备库中的STANDBY_FILE_MANAGEMENT参数设置为AUTO

主库:PROD

备库:PRODSTD

1.查看备库STANDBY_FILE_MANAGEMENT参数是否为AUTO

SYS@PRODSTD>show parameter STANDBY_FILE_MANAGEMENT

NAME           TYPE        VALUE

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

standby_file_management              string      AUTO

2.在主库增加一个新的表空间

SYS@PROD>create tablespace SWTICH_TBS datafile '/u01/app/oracle/oradata/PROD/Disk1/swtich_tbs01.dbf' size 10m;

Tablespace created.

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

Sat Mar 29 16:27:18 2014

create tablespace SWTICH_TBS datafile '/u01/app/oracle/oradata/PROD/Disk1/swtich_tbs01.dbf' size 10m

Sat Mar 29 16:27:21 2014

Completed: create tablespace SWTICH_TBS datafile '/u01/app/oracle/oradata/PROD/Disk1/swtich_tbs01.dbf' size 10m

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

3.手动归档,查看主备库告警日志

SYS@PROD>alter system archive log current;

System altered.

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

主库告警日志:

LNS1 started with pid=55, OS id=3972

Sat Mar 29 16:29:54 2014

Thread 1 advanced to log sequence 32

  Current log# 5 seq# 32 mem# 0: /u01/app/oracle/oradata/PROD/Disk1/redo05.log

  Current log# 5 seq# 32 mem# 1: /u01/app/oracle/oradata/PROD/Disk2/redo05_1.log

Sat Mar 29 16:29:56 2014

LNS: Standby redo logfile selected for thread 1 sequence 32 for destination LOG_ARCHIVE_DEST_2

Sat Mar 29 16:29:58 2014

ARC7: Standby redo logfile selected for thread 1 sequence 31 for destination LOG_ARCHIVE_DEST_2


备库告警日志:

Sat Mar 29 16:29:55 2014

Redo Shipping Client Connected as PUBLIC

-- Connected User is Valid

RFS[2]: Assigned to RFS process 8613

RFS[2]: Identified database type as 'physical standby'

Primary database is in MAXIMUM PERFORMANCE mode

Primary database is in MAXIMUM PERFORMANCE mode

RFS[2]: Successfully opened standby log 7: '/u01/app/oracle/oradata/PRODSTD/Disk1/standby07.log'

Sat Mar 29 16:29:57 2014

Redo Shipping Client Connected as PUBLIC

-- Connected User is Valid

RFS[3]: Assigned to RFS process 8615

RFS[3]: Identified database type as 'physical standby'

RFS[3]: Successfully opened standby log 6: '/u01/app/oracle/oradata/PRODSTD/Disk1/standby06.log'

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

4,在主库验证是否有新的表空间和数据文件

SYS@PROD>select name from v$datafile;

NAME

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

/u01/app/oracle/oradata/PROD/Disk1/system01.dbf

/u01/app/oracle/oradata/PROD/Disk1/undotbs01.dbf

/u01/app/oracle/oradata/PROD/Disk1/sysaux01.dbf

/u01/app/oracle/oradata/PROD/Disk1/example01.dbf

/u01/app/oracle/oradata/PROD/Disk1/swtich_tbs01.dbf

/u01/app/oracle/oradata/PROD/Disk1/users01.dbf

6 rows selected.

5,在备库验证是否有新的表空间和数据文件

SYS@PRODSTD>select name from v$datafile;

NAME

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

/u01/app/oracle/oradata/PRODSTD/Disk1/system01.dbf

/u01/app/oracle/oradata/PRODSTD/Disk1/undotbs01.dbf

/u01/app/oracle/oradata/PRODSTD/Disk1/sysaux01.dbf

/u01/app/oracle/oradata/PRODSTD/Disk1/example01.dbf

/u01/app/oracle/oradata/PRODSTD/Disk1/PRODSTD/datafile/o1_mf_swtich_t_9m21f1f0_.dbf

/u01/app/oracle/oradata/PRODSTD/Disk1/users01.dbf

6 rows selected.

8.3.1.2 当STANDBY_FILE_MANAGEMENT设置为MANUAL时

这个部分展示的是添加一个新的数据文件到主库,而备库的STANDBY_FILE_MANAGEMENT参数设置为MAUNAL,当备库的数据文件放在裸设备时,你必须将STANDBY_FILE_MANAGEMENT初始化参数设置为MANUAL。这部分也描述怎么恢复遇到的错误。

数据库在OMF管理时不要使用以下的步骤,同样,如果裸设备路径不跟主库和备库的一样,使用DB_FILE_NAME_CONVERT初始化参数来转换路径的名称。

STANDBY_FILE_MANAGEMENT设置为AUTO,无论什么时候在主库上添加或删掉新的数据文件,备库不用人工干预相应的改变即可发生在备库。这是针对于备库为文件系统才行的。如果备库使用裸设备来放数据文件,那么 STANDBY_FILE_MANAGEMENT参数将继续工作,但是手动干预是必须的。这个手动干预包括确定裸设备是否存在在备库上日志应用服务恢复创建新的数据文件的重做日志。在主库上,在裸设备上创建一个新的表空间,同时,在备库创建相同的裸设备,例如:

SQL> CREATE TABLESPACE MTS2 DATAFILE '/dev/raw/raw100' size 1m;

Tablespace created.

SQL> ALTER SYSTEM SWITCH LOGFILE;

System altered.

备库自动添加数据文件到以存在的裸设备,备用告警之日如下:

Fri Apr  8 09:49:31 2005

Media Recovery Log /u01/MILLER/flash_recovery_area/MTS_STBY/archivelog/2005_04_08/o1_mf_1_7_15ffgt0z_.arc

Recovery created file /dev/raw/raw100

Successfully added datafile 6 to media recovery

Datafile #6: '/dev/raw/raw100'

Media Recovery Waiting for thread 1 sequence 8 (in transit)

然而,如果在主库上创建了裸设备而没有在备库上创建裸设备,那么MRP进程会因为文件创建错误而关闭,例如,在主库上发出以下语句:

SQL> CREATE TABLESPACE MTS3 DATAFILE '/dev/raw/raw101' size 1m;

Tablespace created.

SQL> ALTER SYSTEM SWITCH LOGFILE;

System altered.

The standby system does not have the /Dave/raw/raw101 raw device created. The standby alert log shows the following messages when recovering the archive:

备用系统没有创建/dev/raw/raw101这个裸设备,备用告警日志如下:

Fri Apr  8 10:00:22 2005

Media Recovery Log /u01/MILLER/flash_recovery_area/MTS_STBY/archivelog/2005_04_08/o1_mf_1_8_15ffjrov_.arc

File #7 added to control file as 'UNNAMED00007'.

Originally created as:

'/dev/raw/raw101'

Recovery was unable to create the file as:

'/dev/raw/raw101'

MRP0: Background Media Recovery terminated with error 1274

Fri Apr  8 10:00:22 2005

Errors in file /u01/MILLER/MTS/dump/mts_mrp0_21851.trc:

ORA-01274: cannot add datafile '/dev/raw/raw101' - file could not be created

ORA-01119: error in creating database file '/dev/raw/raw101'

ORA-27041: unable to open file

Linux Error: 13: Permission denied

Additional information: 1

Some recovered datafiles maybe left media fuzzy

Media recovery may continue but open resetlogs may fail

Fri Apr  8 10:00:22 2005

Errors in file /u01/MILLER/MTS/dump/mts_mrp0_21851.trc:

ORA-01274: cannot add datafile '/dev/raw/raw101' - file could not be created

ORA-01119: error in creating database file '/dev/raw/raw101'

ORA-27041: unable to open file

Linux Error: 13: Permission denied

Additional information: 1

Fri Apr  8 10:00:22 2005

MTS; MRP0: Background Media Recovery process shutdown

ARCH: Connecting to console port...

8.3.1.2.2 恢复以上错误

修改上节提到的错误,执行以下步骤:

  1. 在备库上创建裸设备,赋予oracle用户权限

SQL> SELECT NAME FROM V$DATAFILE;


NAME

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

/u01/MILLER/MTS/system01.dbf

/u01/MILLER/MTS/undotbs01.dbf

/u01/MILLER/MTS/sysaux01.dbf

/u01/MILLER/MTS/users01.dbf

/u01/MILLER/MTS/mts.dbf

/dev/raw/raw100

/u01/app/oracle/product/10.1.0/dbs/UNNAMED00007


SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=MANUAL;

SQL> ALTER DATABASE CREATE DATAFILE

  2  '/u01/app/oracle/product/10.1.0/dbs/UNNAMED00007'

  3  AS

  4  '/dev/raw/raw101';

  1. 在备用告警日志里你应该会看见以下相似的信息:

Fri Apr  8 10:09:30 2005

alter database create datafile

'/dev/raw/raw101' as '/dev/raw/raw101'

Fri Apr  8 10:09:30 2005

Completed: alter database create datafile

'/dev/raw/raw101' a

  1. 在备库,设置STANDBY_FILE_MANAGEMENT 为AUTO,然后重新启用重做应用:

SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO;

SQL> RECOVER MANAGED STANDBY DATABASE DISCONNECT;

At this point Redo Apply uses the new raw device datafile and recovery continues.

在这一点,重做应用使用新的裸设备上的数据文件并继续恢复。


 

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

转载于:http://blog.itpub.net/31448824/viewspace-2138152/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值