oracle-常用数据库问题解决
1、解决oracle记录被另一用户锁住select object_id,session_id,locked_mode from v$locked_object;select t2.username,t2.sid,t2.serial#,t2.logon_time from v$locked_object t1,v$session t2 where t1.session_id=t2.sid order
1、解决oracle 记录被另一用户锁住
select object_id,session_id,locked_mode from v$locked_object;
select t2.username,t2.sid,t2.serial#,t2.logon_time from v$locked_object t1,v$session t2 where t1.session_id=t2.sid order by t2.logon_time;
alter system kill session '2357,5644';
alter system kill session '163,23831';
2、ORA-01653 无法通过表空间扩展
说明表空间可能已经不够用了,此时可以扩展一下表空间的大小。
(1)、用system账户登陆plsql,或者其他可视化工具。(普通用户无法查看表空间文件)
(2)、查看表空间大小及使用情况(使用超过90%的建议可扩展)
SELECT a.tablespace_name "表空间名",
a.bytes / 1024 / 1024 "表空间大小(M)",
(a.bytes - b.bytes) / 1024 / 1024 "已使用空间(M)",
b.bytes / 1024 / 1024 "空闲空间(M)",
round(((a.bytes - b.bytes) / a.bytes) * 100, 2) "使用比"
FROM (SELECT tablespace_name, sum(bytes) bytes
FROM dba_data_files
GROUP BY tablespace_name) a,
(SELECT tablespace_name, sum(bytes) bytes, max(bytes) largest
FROM dba_free_space
GROUP BY tablespace_name) b
WHERE a.tablespace_name = b.tablespace_name
ORDER BY ((a.bytes - b.bytes) / a.bytes) DESC ;
(3)、查看具体表空间的位置
SELECT file_name,
tablespace_name,
bytes / 1024 / 1024 "bytes MB",
maxbytes / 1024 / 1024 "maxbytes MB"
FROM dba_data_files
WHERE tablespace_name = 'WHSFFZ_V2';
(4)、查看表空间是否自动扩展
SELECT file_id, file_name, tablespace_name, autoextensible, increment_by
FROM dba_data_files
WHERE tablespace_name = 'WHSFFZ_V2'
ORDER BY file_id desc;
上AUTOEXTENSIBLE为YES说明开启了自动扩展。
(5)、扩大表空间大小方法
(5.1)、方法一:扩大表空间文件的大小
----先查表空间文件的全路径
SELECT t.bytes / 1024 / 1024 "表空间大小(M)",t.* FROM dba_data_files t WHERE t.tablespace_name='GFPORTAL';
----重新设置表空间大小(上面看到1000M,以为设置为1001M,验证扩展1M)
alter database datafile 'D:\ORACLE_DATABASE\PRODUCT\11.2.0\DBHOME_1\DATABASE\GFPORTAL.DBF' resize 1001M;
----再次查询验证表空间大小修改后的情况
SELECT t.bytes / 1024 / 1024 "表空间大小(M)",t.* FROM dba_data_files t WHERE t.tablespace_name='GFPORTAL';
(5.2)、方法二:增加数据文件(需要确认磁盘空间大小是否足够)
----给需要扩展的表空间增加数据文件,size指定新数据文件大小,autoextend on maxsize 1M为开启数据文件自动扩展,每次扩展1M (注:本例仅为测试验证,生产建议以G为单位扩展)
alter tablespace GFPORTAL add datafile 'D:\ORACLE_DATABASE\PRODUCT\11.2.0\DBHOME_1\DATABASE\GFPORTAL1.DBF' size 1M
autoextend on maxsize 1M;
----再次查询验证表空间大小修改后的情况,可以查看到该表空间对应有两个数据文件,说明上执行成功了。
SELECT t.bytes / 1024 / 1024 "表空间大小(M)",t.* FROM dba_data_files t WHERE t.tablespace_name='GFPORTAL';
---删除表空间数据文件(如果需要的话)
alter tablespace GFPORTAL
DROP datafile 'D:\ORACLE_DATABASE\PRODUCT\11.2.0\DBHOME_1\DATABASE\GFPORTAL1.DBF'
----再次查询验证表空间情况
SELECT t.bytes / 1024 / 1024 "表空间大小(M)",t.* FROM dba_data_files t WHERE t.tablespace_name='GFPORTAL';
(6)、查看表空间的创建语句
SELECT dbms_metadata.get_ddl('TABLESPACE', 'GFPORTAL') FROM dual;
(7)、创建表空间,将表空间赋给指定的用户
创建表空间
create tablespace AAA datafile '/data/oracle/product/11.2.0/db_1/dbs/AAA.dbf'
size 1000M autoextend on next 100M;
赋给用户
alter user AAA identified by AAA default tablespace AAA;
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)