管理主库能影响备库的事件
Reference | Change Made on Primary Database | Action Required on Standby Database |
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,那么你必须将新的数据文件拷贝到备库 | |
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命令的归档重做日志来应用 | |
Use transportable tablespaces 使用传输表空间 | Move tablespaces between the primary and standby databases. 在主备库之间移动表空间 | |
Rename a datafile 重命名一个数据文件 | Rename the datafile on the standby database. 在备库重命令数据文件 | |
Add or drop redo log files 添加或删除重做日志文件爱你 | Synchronize changes on the standby database. 在备库上同步改变 | |
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. 向备库发送包含没有日志记录的文件 | |
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
- 验证信的数据文件被添加到备库:
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 恢复以上错误
修改上节提到的错误,执行以下步骤:
- 在备库上创建裸设备,赋予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';
- 在备用告警日志里你应该会看见以下相似的信息:
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
- 在备库,设置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/