oracle移动数据/修改数据文件路径

oracle移动数据/修改数据文件路径 html

SQL> col TABLESPACE_NAME  format a20
SQL> col TOTAL_BYTES  format a20
SQL> select * from (Select a.tablespace_name, to_char(a.bytes/1024/1024,'99,999.999') total_bytes,  to_char(b.bytes/1024/1024,'99,999.999') free_bytes,  to_char(a.bytes/1024/1024 - b.bytes/1024/1024,'99,999.999') use_bytes,  to_char((1 - b.bytes/a.bytes)*100,'99.99') || '%' use from (select tablespace_name,  sum(bytes) bytes from dba_data_files  group by tablespace_name) a,  (select tablespace_name,  sum(bytes) bytes  from dba_free_space  group by tablespace_name) b where a.tablespace_name = b.tablespace_name  union all  select c.tablespace_name,  to_char(c.bytes/1024/1024,'99,999.999') total_bytes,  to_char( (c.bytes-d.bytes_used)/1024/1024,'99,999.999') free_bytes,  to_char(d.bytes_used/1024/1024,'99,999.999') use_bytes, to_char(d.bytes_used*100/c.bytes,'99.99') || '%' use  from (select tablespace_name,sum(bytes) bytes  from dba_temp_files group by tablespace_name) c, (select tablespace_name,sum(bytes_cached) bytes_used  from v$temp_extent_pool group by tablespace_name) d  where c.tablespace_name = d.tablespace_name);

TABLESPACE_NAME      TOTAL_BYTES          FREE_BYTES                        USE_BYTES                         USE
-------------------- -------------------- --------------------------------- --------------------------------- ---------------------
SYSAUX                   760.000               92.000                           668.000                        87.89%
USERS                      5.000                 .813                             4.188                        83.75%
SYSTEM                   828.000               71.188                           756.813                        91.40%
EXAMPLE                  100.000               21.250                            78.750                        78.75%
UNDOTBS2                 150.000               46.188                           103.813                        69.21%
MYMOTIF_TS               100.000               95.500                             4.500                         4.50%
TEMP                       8.992                 .992                             8.000                        88.97%

已选择7行。


SQL> col Schema for a25;
SQL> col Item for a25;
SQL> col move_procedure for a40;
SQL> SELECT occupant_name "Item", space_usage_kbytes / 1024 "Space Used (MB)", schema_name "Schema", move_procedure  FROM v$sysaux_occupants ORDER BY 1 ;

Item                      Space Used (MB) Schema                    MOVE_PROCEDURE
------------------------- --------------- ------------------------- ----------------------------------------
AO                                     42 SYS                       DBMS_AW.MOVE_AWMETA
AUDIT_TABLES                            0 SYS                       DBMS_AUDIT_MGMT.move_dbaudit_tables
AUTO_TASK                           .3125 SYS
EM                                99.6875 SYSMAN                    emd_maintenance.move_em_tblspc
EM_MONITORING_USER                 1.3125 DBSNMP
EXPRESSION_FILTER                   3.625 EXFSYS
JOB_SCHEDULER                      5.0625 SYS
LOGMNR                              7.875 SYSTEM                    SYS.DBMS_LOGMNR_D.SET_TABLESPACE
LOGSTDBY                            1.375 SYSTEM                    SYS.DBMS_LOGSTDBY.SET_TABLESPACE
ORDIM                               .4375 ORDSYS                    ordsys.ord_admin.move_ordim_tblspc
ORDIM/ORDDATA                       12.75 ORDDATA                   ordsys.ord_admin.move_ordim_tblspc

Item                      Space Used (MB) Schema                    MOVE_PROCEDURE
------------------------- --------------- ------------------------- ----------------------------------------
ORDIM/ORDPLUGINS                        0 ORDPLUGINS                ordsys.ord_admin.move_ordim_tblspc
ORDIM/SI_INFORMTN_SCHEMA                0 SI_INFORMTN_SCHEMA        ordsys.ord_admin.move_ordim_tblspc
PL/SCOPE                           1.5625 SYS
SDO                               53.0625 MDSYS                     MDSYS.MOVE_SDO
SM/ADVISOR                        30.0625 SYS
SM/AWR                                 94 SYS
SM/OPTSTAT                             58 SYS
SM/OTHER                              7.5 SYS
SMON_SCN_TIME                        3.25 SYS
SQL_MANAGEMENT_BASE                1.6875 SYS
STATSPACK                               0 PERFSTAT

Item                      Space Used (MB) Schema                    MOVE_PROCEDURE
------------------------- --------------- ------------------------- ----------------------------------------
STREAMS                                 1 SYS
TEXT                                  3.5 CTXSYS                    DRI_MOVE_CTXSYS
TSM                                     0 TSMSYS
ULTRASEARCH                             0 WKSYS                     MOVE_WK
ULTRASEARCH_DEMO_USER                   0 WK_TEST                   MOVE_WK
WM                                 3.0625 WMSYS                     DBMS_WM.move_proc
XDB                              128.0625 XDB                       XDB.DBMS_XDB.MOVEXDB_TABLESPACE
XSAMD                              7.3125 OLAPSYS                   DBMS_AMD.Move_OLAP_Catalog
XSOQHIST                               42 SYS                       DBMS_XSOQ.OlapiMoveProc

已选择31行。

 

SQL> col PARTITION_NAME  format a30
SQL> col SEGMENT_NAME  format a30
SQL> col SEGMENT_TYPE   format a15

SQL> select * from (select segment_name,PARTITION_NAME,segment_type,bytes/1024/1024 from dba_segments where tablespace_name='SYSTEM' order by 4 desc) where rownum<=20;

SEGMENT_NAME                   PARTITION_NAME                 SEGMENT_TYPE    BYTES/1024/1024
------------------------------ ------------------------------ --------------- ---------------
IDL_UB1$                                                      TABLE                       248
SOURCE$                                                       TABLE                        64
IDL_UB2$                                                      TABLE                        30
C_TOID_VERSION#                                               CLUSTER                      23
C_OBJ#_INTCOL#                                                CLUSTER                      15
I_SOURCE1                                                     INDEX                        12
C_OBJ#                                                        CLUSTER                      11
JAVA$MC$                                                      TABLE                        11
ARGUMENT$                                                     TABLE                        11
IDL_CHAR$                                                     TABLE                        10
OBJ$                                                          TABLE                         8

SEGMENT_NAME                   PARTITION_NAME                 SEGMENT_TYPE    BYTES/1024/1024
------------------------------ ------------------------------ --------------- ---------------
SYS_LOB0000001021C00003$$                                     LOBSEGMENT                    8
I_ARGUMENT1                                                   INDEX                         8
VIEW$                                                         TABLE                         7
DEPENDENCY$                                                   TABLE                         7
I_OBJ2                                                        INDEX                         6
I_ARGUMENT2                                                   INDEX                         6
I_DEPENDENCY2                                                 INDEX                         6
I_DEPENDENCY1                                                 INDEX                         6
I_OBJ5                                                        INDEX                         6

已选择20行。

参考:http://wwyz998.blog.163.com/blog/static/321867852011117111832334/
oracle移动数据文件
1.链接到数据库
 [oracle@linux]$ sqlplus /nolog
 SQL> conn / as sysdba
2. 查看数据文件位置
SQL> select file_name from sys.dba_data_files;

SQL> select name from v$datafile;
FILE_NAME
------------------------------------------------------------------------
/oradata/PMPTGDB/users01.dbf
/oradata/PMPTGDB/undotbs01.dbf
/oradata/PMPTGDB/sysaux01.dbf
/oradata/PMPTGDB/system01.dbf
/oradata/PMPTGDB/work.dbf
 
2. 关闭数据库
SQL> shutdown immediate;
 
4. 移动文件到新的位置(好比新的位置为/media/hdd1/oradata/PMPTGDB )
cd /oradata/PMPTGDB/
mv users01.dbf undotbs01.dbf sysaux01.dbf system01.dbf work.dbf /media/hdd1/oradata/PMPTGDB 
 
5. 以mount模式启动数据库
SQL> startup mount;
SQL> alter database rename file   'C:\APP\WANGXW\ORADATA\ORCL\MYMOTIF_TS.DBF'   to   'D:\oradata\orcl\MYMOTIF_TS.DBF'; 
对每个要移动的文件重复执行上面的alter database rename file ... to ...
 
6. 打开数据库
SQL> alter database open;
再次查看文件位置,发现已经更该。java

第 1 行出现错误:
ORA-01125: 没法禁用介质恢复 - 文件 1 设置了联机[url=]备份[/url]
ORA-01110: 数据文件 1: 'G:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF'linux

SQL>
是在归档模式下出现的问题, 
解决办法是:sql

conn /  as sysdba
startup mount
recover datafile "select name from v$datafile;"  ;
alter databae open;
临时表空间重建:
更多temp表空间维护可参考:http://www.blogjava.net/japper/archive/2012/06/28/381721.html数据库

create temporary tablespace temp2 tempfile 'D:\oradata\orcl\temp1.DBF' size 50M autoextend off;
alter database default temporary tablespace temp2;
drop tablespace temp including contents and datafiles cascade constraints;


create temporary tablespace TEMP tempfile 'D:\oradata\orcl\TEMP01.DBF' size 50M autoextend on;
alter database default temporary tablespace TEMP;
drop tablespace temp2 including contents and datafiles cascade constraints;


------------------------------------------------------------------------------------------------------------------------------------------------------------api

UNDO 表空间重建(清理),释放磁盘内存的办法
原文:https://blog.csdn.net/sinat_27933301/article/details/80932226 
col FREE_RATE format a30
SELECT   a.tablespace_name,ROUND (a.total_size) "total_size(MB)",ROUND (a.total_size) - ROUND (b.free_size, 3) "used_size(MB)",ROUND (b.free_size, 3) "free_size(MB)",ROUND (b.free_size / total_size * 100, 2) || '%' free_rate  FROM   (  SELECT   tablespace_name, SUM (bytes) / 1024 / 1024 total_size FROM   dba_data_files GROUP BY   tablespace_name) a, (  SELECT   tablespace_name, SUM (bytes) / 1024 / 1024 free_size FROM   dba_free_space GROUP BY   tablespace_name) b WHERE   a.tablespace_name = b.tablespace_name(+);服务器

TABLESPACE_NAME      total_size(MB) used_size(MB) free_size(MB) FREE_RATE
-------------------- -------------- ------------- ------------- ------------------------------
SYSAUX                          720       636.062        83.938 11.66%
UNDOTBS1                        150       149.125          .875 .58%
USERS                             5         4.125          .875 17.5%
SYSTEM                          828       694.937       133.063 16.07%
EXAMPLE                         100         78.75         21.25 21.25%
MYMOTIF_TS                      100         4.437        95.563 95.56%oracle

确认文件:
select file_name,bytes/1024/1024 from dba_data_files where tablespace_name like 'UNDOTBS1';
检查UNDO Segment状态
select usn,xacts,rssize/1024/1024/1024,hwmsize/1024/1024/1024,shrinks from v$rollstat order by rssize;app

一、建立一个新的小空间的undo tablespace
create undo tablespace UNDOTBS2 datafile 'D:\oradata\orcl\UNDOTBS02.DBF' size 150m autoextend off;url

二、设置新的表空间为系统undo_tablespace
alter system set undo_tablespace=UNDOTBS2;

3.等待原UNDO表空间全部UNDO SEGMENT OFFLINE 
  select usn,xacts,status,rssize/1024/1024/1024,hwmsize/1024/1024/1024,shrinks from v$rollstat order by rssize;
四、删除旧的表空间
alter tablespace UNDOTBS1 offline;
drop tablespace UNDOTBS1 including contents and datafiles;
5.检查空间状况
     往后增长数据文件方法
ALTER TABLESPACE UNDOTBS2 ADD DATAFILE 'D:\oradata\orcl\UNDOTBS03.DBF' size 150M reuse AUTOEXTEND ON;

 询回滚段状况(原undo表空间的回滚段所有offline,能够删除相关表空间)
select tablespace_name,segment_name,status from dba_rollback_segs;
 
离线原undo表空间
alter tablespace undotbs1 offline;
 
肯定原undo回滚段所有offline,直接删除
drop tablespace undotbs1 including contents and datafiles;

六、其余方法 
  禁止undo tablespace自动增加
   alter database datafile 'C:\APP\WANGXW\ORADATA\ORCL\UNDOTBS01.DBF' autoextend off;
  扩大undo tablespace的大小:
   alter database datafile 'C:\APP\WANGXW\ORADATA\ORCL\UNDOTBS01.DBF' resize 200m;


  system表空间满:
其解决的方法有两个:
1)扩SYSTEM表空间,或者清理SYS.AUD$表;安装数据库时报以下错误:

ORA-00604:ERROR occurred at recursive SQL level 1
ORA-01653:unable to extend table SYS.AUD$ by 8192 in tablespace SYSTEM
ORA-02002:ERROR while writing to audit trail
ORA-00604:ERROR occurred at recursive SQL level 1
ORA-01653:unable to exten table SYS.AUD$ by 8192 in tablespace SYSTEM
WARNING:You are no longer connected to ORACLE.
SQL>SP2-0640:Not connected

报system系统表空间不足

能够使用以下语句查询system表空间中什么对象占用空间最大:

select SEGMENT_NAME,SEGMENT_TYPE,BYTES/1024/1024 from dba_segments where TABLESPACE_NAME='SYSTEM' and rownum < 10 order by BYTES/1024/1024 desc;

并对其进行分析,看system表空间过大的问题。


但如上显示的错误信息已经直接说明:一是:数据库的审计功能已经开启(SYS.AUD$表,只有开了审计功能才会向其中插入数据),如何开启和关闭oracle数据库中的审计功能?

扩展表空间能够参考以下方法:

  方法一:手动重设并增长表空间tbsk的数据文件大小

      SQL> alter database datafile '/opt/oracle/oradata/ora11g/system.dbf' resize 20G;

  方法二:把表空间的数据文件设为自动增加(不建议使用此方法)

      SQL> alter database datafile '/opt/oracle/oradata/ora11g/system.dbf' autoextend on next 10M maxsize unlimited;

      一个表空间数据库文件最大能够扩展到32G。

  方法三:增长新的数据文件(建议使用此方法)

      SQL> alter tablespace system add datafile '/opt/oracle/oradata/ora11g/system2.dbf' size 10G autoextend off;

 

下面语句清理审计表,释放系统表空间:

sqlplus / as sysdba

truncate table SYS.AUD$;

 

2)关闭审计功能:(关闭审计须要从新启动Oracle)

SQL> show parameter audit
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
audit_file_dest                      string      /oracle/app/admin/ora11g/adump
audit_sys_operations                 boolean     TRUE
audit_syslog_level                   string
audit_trail                          string      DB  -->说明已经开启审计功能
SQL>

执行下面SQL:

SQL>alter system set audit_trail=none scope=spfile;

直接使用spfile文件中的审计功能参考audit_trail为none,即关闭审计功能。

执行完后,重启数据库。

 

启动后查看:

SQL> show parameter audit_trail

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
audit_trail                          string      NONE

 

SYSTEM表空间如今又能插入数据了。

 
原文连接:

oracle 删除表空间及数据文件方法

oracle 关闭audit 功能

http://zxf261.blog.51cto.com/701797/762048

Oracle 11g缺省安装数据库启动了audit功能,致使oracle不断累积sys.aud$表及相关索引数据量增长;
若是致使表空间满了,在alert日志中将会报ORA-1654: unable to extend index SYS....错误。
若是不用到审计功能,建议关闭审计。

处理过程: 
一、用oracle用户登陆到数据库服务器,执行:
sqlplus / as sysdba
二、取消audit,将初始化参数audit_trail设置为NONE
alter system set audit_trail=none scope=spfile;
三、而后重启数据库.
shutdown immediate;
sqlplus / as sysdba
startup;
四、删除签权数据,oracle用户登陆到数据库服务器:
sqlplus / as sysdba
truncate table SYS.AUD$;

关闭审计功能:
 sqlplus / as sysdba
 SQL> alter system set audit_trail=none scope=spfile;
 SQL> shutdown immediate;
 SQL> startup;
 SQL> truncate table SYS.AUD$;
相关文章
相关标签/搜索