Oracle重建表空間操作實例


   由於環境維護或者性能測試需要,經常需要對表空間進行重建操作。重建表空間操作主要分3中情況介紹,分別是業務表空間、臨時表空間和回滾段表空間的重建。

重建業務表空間

  由於業務規划要求,重建后的業務表空間名需要與原有的一致。操作上和重建臨時表空間和重建回滾段表空間有不同。

1、備份當前需要使用的數據庫,可以使用Oracle自帶的expdp或者exp命令。

2、刪除業務數據庫。

3、停掉ORACLE監聽,重啟ORACLE實例,確保斷開已有的連接和新連接的建立。

4、刪除業務表空間

5、新建業務表空間

6、使用impdp/imp命令導入備份的數據庫,還原業務數據庫。

重建undo表空間

1、查看當前使用undo表空間和對應數據文件路徑

SQL> show parameter undo
SQL> select file_name,tablespace_name from dba_data_files where tablespace_name='UNDOTBS1';

2、創建新的undo表空間

SQL> create undo tablespace undotbs2  datafile '/home/oracle/oradata/undotbs2.dbf' size 1024M;

3、修改使用新建的回滾表空間

SQL> alter system set undo_tablespace='undotbs2' scope=both;

4、查看所有在UNDOTBS1的undo segment都已offline。

SQL> select SEGMENT_NAME ,STATUS ,TABLESPACE_NAME from dba_rollback_segs where TABLESPACE_NAME='UNDOTBS1' and STATUS='OFFLINE'; 

5、步驟4中的狀態全部offline后,將舊的回滾表空間udotbs1狀態修改為offline。

SQL> alter tablespace undotbs1 offline;

6、刪除舊的undo表空間

SQL> drop tablespace undotbs1 including contents and datafiles;

7、操作完成。

重建temp表空間

1、查看當前使用的temp表空間相關信息

SQL> select tablespace_name,file_name,bytes/1024/1024 file_size,autoextensible from dba_temp_files;
SQL> select name,bytes/1024/1024 file_size,status,enabled from v$tempfile;

2、查看用戶使用的默認臨時表空間

SQL> select username,temporary_tablespace from dba_users;

3、創建新的temp表空間

CREATE TEMPOARY TABLESPACE  TEMP1 TEMPFILE  '/home/oracle/oradata/TEMP1.dbf' SIZE 1024M;

4、修改默認表空間為新創建的臨時表空間temp2

ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMP1;

5、offline舊的臨時表空間temp

ALTER DATABASE TEMPFILE '/home/oracle/oradata/TEMP.dbf' OFFLINE;

6、刪除舊的臨時表空間temp

DROP TABLESPACE TEMP INCLUDING CONTENTS AND DATAFILES;

7、操作完成


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM