Data Guard主库删除表空间

 删除表空间和删除数据文件

当你在主库删除一个或多个数据文件或者删除一个或多个表空间时,你也需要在备库删除相关的数据文件,以下部分提供的例子,当STANDBY_FILE_MANAGEMENT参数设置为AUTO或者MANUAL时关于删除表空间和删除数据文件。

当STANDBY_FILE_MANAGEMENT设置为AUTO或者MANUAL时

The following procedure works whether the STANDBY_FILE_MANAGEMENT initialization parameter is set to either MANUAL or AUTO, as follows:

以下的步骤不管STANDBY_FILE_MANAGEMENT参数设置为MANUAL还是AUTO,都能工作,如下:

  1. Drop the tablespace from the primary database:

1.从主库删除一个表空间

SQL> DROP TABLESPACE tbs_4;

SQL> ALTER SYSTEM SWITCH LOGFILE;

  1. 确保重做应用在运行,这样备库就会应用这些变化。如果以下的查询返回的MRP或者MRP0进程,则说明重做应用在运行 

SQL> SELECT PROCESS, STATUS FROM V$MANAGED_STANDBY; 

验证已经删除的数据文件不再存在数据库中,可查询V$DATAFILE视图。

 

  1. 在归档重做日志被应用再备库之后,在备库删除相应的数据文件,例如:

% rm /disk1/oracle/oradata/payroll/s2tbs_4.dbf

  1. 在主库中,确保备库应用删除表空间的重做信息之后,你可以从表空间移除数据文件,例如:

% rm /disk1/oracle/oradata/payroll/tbs_4.dbf

使用DROP TABLESPACE INCLUDING CONTENTS AND DATAFILES

你可以在主库上使用DROP TABLESPACE INCLUDING CONTENTS AND DATAFILES来删除主库和备库的数据文件,前提是STANDBY_FILE_MANAGEMENT必须设置为AUTO,例如,在主库上删除一个表空间:

SQL> DROP TABLESPACE INCLUDING CONTENTS AND DATAFILES tbs_4;

SQL> ALTER SYSTEM SWITCH LOGFILE;


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

我的实验:主库使用DROP TABLESPACE INCLUDING CONTENTS AND DATAFILES删除表空间,备库中的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>select file_name,tablespace_name from dba_data_files;

FILE_NAME                                          TABLESPACE_NAME

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

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

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

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

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

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

/u01/app/oracle/oradata/PROD/Disk1/swtich_tbs01.db SWTICH_TBS

f

6 rows selected.

备库:

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.

3.在主库执行删除表空间及数据文件

SYS@PROD>drop tablespace SWTICH_TBS including contents and datafiles;

Tablespace dropped.

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

主库告警日志:

Sun Mar 30 10:47:37 2014

drop tablespace SWTICH_TBS including contents and datafiles

Sun Mar 30 10:47:42 2014

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

Completed: drop tablespace SWTICH_TBS including contents and datafiles

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

4.再次查看两边的表空间以及数据文件

主库:

SYS@PROD>select file_name,tablespace_name from dba_data_files;

 

FILE_NAME                                          TABLESPACE_NAME

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

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

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

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

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

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

备库:

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.

此时主库的归档重做日志还没有传到备库。

5.手动切换日志,同步主备库,让备库应用重做日志。

SYS@PROD>alter system switch logfile;

System altered.

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

主库告警日志:

LNS1 started with pid=57, OS id=3000

Sun Mar 30 10:58:08 2014

Thread 1 advanced to log sequence 34

  Current log# 2 seq# 34 mem# 0: /u01/app/oracle/oradata/PROD/Disk1/redo02.log

  Current log# 2 seq# 34 mem# 1: /u01/app/oracle/oradata/PROD/Disk2/redo02_1.log

Sun Mar 30 10:58:10 2014

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

Sun Mar 30 10:58:11 2014

ARC5: Standby redo logfile selected for thread 1 sequence 33 for destination LOG_ARCHIVE_DEST_2

备库告警日志:

Sun Mar 30 10:58:11 2014

Redo Shipping Client Connected as PUBLIC

-- Connected User is Valid

RFS[3]: Assigned to RFS process 2939

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

Sun Mar 30 10:58:11 2014

Redo Shipping Client Connected as PUBLIC

-- Connected User is Valid

RFS[4]: Assigned to RFS process 2941

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

Primary database is in MAXIMUM PERFORMANCE mode

Primary database is in MAXIMUM PERFORMANCE mode

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

Sun Mar 30 10:58:12 2014

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

Sun Mar 30 10:58:17 2014

Media Recovery Log /u01/app/oracle/oradata/PRODSTD/Disk2/arch/1_33_842523531.arc

Recovery deleting file #5:'/u01/app/oracle/oradata/PRODSTD/Disk1/PRODSTD/datafile/o1_mf_swtich_t_9mh1rzf6_.dbf' from controlfile.

Deleted Oracle managed file /u01/app/oracle/oradata/PRODSTD/Disk1/PRODSTD/datafile/o1_mf_swtich_t_9mh1rzf6_.dbf

Recovery dropped tablespace 'SWTICH_TBS'

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

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

6.查看备库数据文件

SYS@PRODSTD>select file#,name from v$datafile;

     FILE# NAME

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

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

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

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

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

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

此时备库的SWITCH_TBS表空间已经被删除。

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

 

 

请使用浏览器的分享功能分享到微信等