Meathod1:给表空间增加数据文件
ALTER TABLESPACE app_data ADD DATAFILE
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP03.DBF' SIZE 50M;
Meathod2:新增数据文件,并且允许数据文件自动增长
ALTER TABLESPACE app_data ADD DATAFILE
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP04.DBF' SIZE 50M
AUTOEXTEND ON NEXT 5M MAXSIZE 100M;
Meathod3:允许已存在的数据文件自动增长
ALTER DATABASE DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP03.DBF'
AUTOEXTEND ON NEXT 5M MAXSIZE 100M;
Meathod4:手工改变已存在数据文件的大小
ALTER DATABASE DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP02.DBF'
RESIZE 100M;
自动添加数据文件
set serveroutput on;
declare
Tablespacename Varchar(500);
temp_file_name Varchar(500);
file_name Varchar(500);
free Number(10,2);
rate Number(10,2);
total Number(10,2);
used Number(10,2);
Vs_Sql Varchar2(500);
Data_File_No Number(4);
cursor cur_t is
select a.tablespace_name tablespace_name,a.total as total,a.total-a.free_space as used,(a.total-a.free_space)/a.total as rate, b.file_name file_name from (
select f.tablespace_name tablespace_name,sum(f.bytes)/(1024*1024) as free_space,sum(d.bytes)/(1024*1024) as total
from dba_free_space f,dba_data_files d
where f.tablespace_name=d.tablespace_name and f.tablespace_name like '%GPS%' group by f.tablespace_name) a,(select max(file_name) file_name,tablespace_name from dba_data_files group by tablespace_name ) b where a.tablespace_name=b.tablespace_name;
tablespace_info cur_t%rowtype;
Begin
for tablespace_info in cur_t loop
rate:=tablespace_info.rate;
total:=tablespace_info.total;
used:=tablespace_info.used;
Tablespacename:=tablespace_info.tablespace_name;
file_name:=tablespace_info.file_name;
If rate >=80 Then
dbms_output.put_line(Tablespacename||' '||file_name||' '||rate);
temp_file_name:=file_name;
temp_file_name:=substr(file_name,0,INSTR (file_name, '.')-1);
temp_file_name:=temp_file_name||'_'||to_char(sysdate,'yyyymmddhh24miss')||'.dbf';
Vs_Sql := 'alter tablespace '||Tablespacename||' add datafile '''||temp_file_name||''' size 200M autoextend on next 100m maxsize UNLIMITED ';
dbms_output.put_line(Vs_Sql);
--alter中的路径需要根据本地数据库的安装路径修改
Execute Immediate Vs_Sql;
End If;
end loop;
End ;
修改索引表空间
select 'alter index ' ||index_name|| ' rebuild tablespace FLTIDX;' index_name from dba_indexes where owner like '%FLT%' and table_owner='FLT' and tablespace_name='FLT' and index_name like '%PK%';
select index_name,table_owner,tablespace_name from dba_indexes where owner like '%FLT%' and table_owner='FLT' and tablespace_name='FLTIDX' ;
select index_name,table_owner,tablespace_name from dba_indexes where owner like '%FLT%' and table_owner='FLT' and tablespace_name='FLT' and index_name not like '%PK%';
select * from dba_indexes where owner like '%FLT%' and table_owner='FLT';
alter index ANSWER_PK rebuild tablespace FLTIDX;
删除重复数据
delete from 表名 a
where a.rowid !=
(
select max(b.rowid) from 表名 b
where a.字段1 = b.字段1 and
a.字段2 = b.字段2
)
查找session的psid
select a.sid, a.SERIAL#, b.spid, a.status, a.PROGRAM
from v$session a, V$PROCESS b
where a.sid in (29, 30, 32, 77, 120, 144, 151)
and a.paddr=b.ADDR
order by a.sid;
清除归档日志
rman target/
或rman target/@orcl
在命令窗口里面执行
DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';
魏健康 09:41:17
ALTER DATABASE ARCHIVELOG;
魏健康 09:41:31
ALTER DATABASE NOARCHIVELOG;
魏健康 09:41:37
ARCHIVE LOG LIST
RAC 启动和停止
[oracle@node1 ~]$ crs_stat
[oracle@node1 ~]$ crs_start -all
[oracle@node1 ~]$ crs_stop -all
[oracle@node1 ~]$ crs_stop "ora.fyweb.db"
[oracle@node1 ~]$ crs_start "ora.fyweb.db"
删除表空间,表分区
alter table ALARM_REALTIME drop partition flt_data_part_201301;
drop tablespace test_data including contents and datafiles;
查询oracle进程现在执行的sql
SELECT /*+ ORDERED */
sql_text
FROM v$sqltext a
WHERE (a.hash_value, a.address) IN (
SELECT DECODE (sql_hash_value,
0, prev_hash_value,
sql_hash_value
),
DECODE (sql_hash_value, 0, prev_sql_addr, sql_address)
FROM v$session b
WHERE b.paddr = (SELECT addr
FROM v$process c
WHERE c.spid = 5396))
ORDER BY piece ASC;
文章出处:http://blog.itpub.net/29119536/viewspace-1138006/