天天看點

data gurad實體備份方式下standby_file_management為manual時修改表空間的操作

standby_file_management設定為manual,增加及删除表空間和資料檔案

sql> show parameter standby_file_management

name                                 type        value

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

standby_file_management              string      auto

sql> alter system set standby_file_management='manual' scope=both;

system altered.

standby_file_management              string      manual

sql>

a).增加新的表空間--primary 資料庫操作

sql>create  tablespace mytest datafile '/u01/app/oracle/oradata/jytest/mytest01.dbf' size 20m

sql> select name from v$datafile;

name

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

/u01/app/oracle/oradata/jytest/system01.dbf

/u01/app/oracle/oradata/jytest/undotbs01.dbf

/u01/app/oracle/oradata/jytest/sysaux01.dbf

/u01/app/oracle/oradata/jytest/users01.dbf

/u01/app/oracle/oradata/jytest/hygeia01.dbf

/u01/app/oracle/oradata/jytest/mytest01.dbf

6 rows selected

切換日志

sql> alter system switch logfile;

system altered

b).驗證standby 庫--standby 資料庫操作

/u01/app/oracle/product/10.2.0/db/dbs/unnamed00006

6 rows selected.

sql> select name from v$tablespace;

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

system

undotbs1

sysaux

users

temp

hygeia

mytest

7 rows selected.

可以看到,表空間已經自動建立,但是,資料檔案卻被起了個怪名字,手工修改其與primary

資料庫保持一緻.

sql>alter database create datafile

'/u01/app/oracle/product/10.2.0/db/dbs/unnamed00006'

as '/u01/app/oracle/oradata/jytest/mytest01.dbf';

c).删除表空間--primary 資料庫操作

sql> drop tablespace mytest including contents and datafiles;

tablespace dropped

d).驗證standby 資料庫--standby 資料庫操作

資料還在啊。檢視alertjytest.log 檔案,發現如下

mrp0: background media recovery terminated with error 1274

mon dec  3 17:03:34 2012

重新開機redo 應用再來看看:

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

database altered.

sql>  select name from v$tablespace;

注意,既使你在primary 資料庫執行删除時加上了including 子句,在standby 資料庫仍然隻會

将表空間和資料檔案從資料字典中删除,你還需要手工删除表空間涉及的資料檔案。