oracle -1659 导入数据超过值X时

  2017-02-21 15:50

--在恢复数据时,经常会出现表空间超过值X(表空间不足),导致部分数据及对象恢复不完整
--表空间不足,有三种情况
--数据文件没有自增长、数据文件达到上限值MAXBYTES、磁盘空间不足
--根据报错信息,找到表空间的数据文件及存放路径、已使用大小、是否自增长
 
--1.查看所有表空间 使用情况
select b.file_id 文件ID号,
b.tablespace_name 表空间名,
b.bytes / 1024 / 1024 || 'M' 字节数,
(b.bytes - sum(nvl(a.bytes, 0))) / 1024 / 1024 || 'M' 已使用,
sum(nvl(a.bytes, 0)) / 1024 / 1024 || 'M' 剩余空间,
100 - sum(nvl(a.bytes, 0)) / (b.bytes) * 100 占用百分比
from dba_free_space a, dba_data_files b
where a.file_id = b.file_id
group by b.tablespace_name, b.file_id, b.bytes
order by b.file_id;
--2.查询所有表空间的所有数据文件 存放路径、及是否自动扩展
select file_name , tablespace_name, AUTOEXTENSIBLE from dba_data_files;
--3.三种解决方法
--3.1 清理对应表空间下多余用户,释放更多空间给需要的用户
select username,default_tablespace from dba_users;--查看所有用户 默认表空间
/*select tablespace_name,sum(bytes)/1024/1024 from dba_data_files  group by tablespace_name;--dba登录 查看所有表空间大小
select tablespace_name,sum(bytes)/1024/1024 from dba_free_space group by tablespace_name;--dba登录 查看所有表空间空闲大小
select * from dba_tablespaces;--查出来有MAX_EXTENTS、  BLOCK_SIZE
--:这里是指表空间数据区的最大设置值,就是表空间一次自动增长允许扩充的最大值。
select * from dba_data_files;--查出来有MAXBYTES、MAXBLOCKS字段
--MAXBYTES=MAXBLOCKS*BLOCK_SIZE(8192B)
--这里是指数据文件中数据块的最大设置值,就是数据文件中一个块数据满了之后,需要再建立一个数据库来填充数据,这个MAX值就是重建数据文件的时候允许的最大值。
*/
--3.2针对对应表空间,追加数据文件,且自增长
/*
--oracle数据库表空间追加数据库文件方法
--针对非大文件方式表空间,允许追加文件进行表空间的扩展,单个文件最大大小是32G
--第一种方式:表空间增加数据文件
alter tablespace spacess1 add datafile '***\as01.DBF' size 30000M;
--第二种方式:表空间增加数据文件,设置自增长,限制最大值
alter tablespace spacess1 add datafile '***\as01.DBF' size 500M autoextend on maxsize 3072M;
--第三种方式:已存在表空间数据文件设置自增长
alter datapace datafile '***\as01.DBF' autoextend on maxsize 3072M;
--第四种方式:已存在表空间数据文件重新设置大小
alter datapace datafile '***\as01.DBF' resize 3072M;
*/
--实例:给表空间加数据文件(初始大小、自动扩展值、最大值)
ALTER TABLESPACE  hbfs ADD DATAFILE '***\hbfs02.DBF' SIZE 500M AUTOEXTEND ON  NEXT 1M MAXSIZE UNLIMITED;
--3.3 移动数据文件至空闲空间大的磁盘
--将对应的表空间offline(系统会等待当前事务结束)
alter tablespace user rename datafile '***as01.dbf' to '***as02.dbf';
  • 你好,游客!(点击更改信息)

    您的电子邮件不会被公布,带*为必填。


  • *

    code

      正在提交中,请稍候...
      评论提交成功
    回复 的评论,点击取消回复。