科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道安装Oracle后,经常使用的修改表空间的SQL代码

安装Oracle后,经常使用的修改表空间的SQL代码

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

  配置:   Windows NT 4.0 中文版   5块10.2GB SCSI硬盘   分:C:盘、D:盘、E:盘、F:盘、G:盘   Oracle 8.0.4 for Windows NT   NT安装在C:\WINNT。

作者:中国IT实验室 来源:中国IT实验室 2007年10月7日

关键字: 新手入门 数据库 ORACLE

  • 评论
  • 分享微博
  • 分享邮件

  配置:
  Windows NT 4.0 中文版
  5块10.2GB SCSI硬盘
  分:C:盘、D:盘、E:盘、F:盘、G:盘
  Oracle 8.0.4 for Windows NT
  NT安装在C:\WINNT,Oracle安装在C:\ORANT
  
  目标:
  因系统的回滚段太小,现打算生成新的回滚段,
  建立大的、新的表空间(数据表空间、索引表空间、回滚表空间、临时表空间、)
  建两个数据表空间、两个索引表空间,这样建的目的是根据实际应用,
  如:现有10个应用用户,每个用户是一个独立子系统(如:商业进销存MIS系统中的财务、收款、库存、人事、总经理等)
  尤其大型商场中收款机众多,同时访问进程很多,经常达到50-100个进程同时访问,
  这样,通过建立多个用户表空间、索引表空间,把各个用户分别建在不同的表空间里(多个用户表空间放在不同的物理磁盘上),
  减少了用户之间的I/O竞争、读写数据与写读索引的竞争(用户表空间、索引表空间也分别放在不同的物理磁盘上)
  
  规划:
  C:盘、NT系统,Oracle系统
  D:盘、数据表空间1(3GB、自动扩展)、回滚表空间1(1GB、自动扩展)
  E:盘、数据表空间2(3GB、自动扩展)、回滚表空间2(1GB、自动扩展)
  F:盘、索引表空间1(2GB、自动扩展)、临时表空间1(0.5GB、不自动扩展)
  G:盘、索引表空间2(2GB、自动扩展)、临时表空间2(0.5GB、不自动扩展)
  
  注:这只是一个简单的规划,实际规划要依系统需求来定,尽量减少I/O竞争
  
  实现:
  1、首先查看系统有哪些回滚段及其状态。
  
  SQL> col owner format a20
  SQL> col status format a10
  SQL> col segment_name format a20
  SQL> col tablespace_name format a20
  
  SQL> SELECT OWNER,SEGMENT_NAME,TABLESPACE_NAME,SUM(BYTES)/1024/1024 M
   2 FROM DBA_SEGMENTS
   3 WHERE SEGMENT_TYPE='ROLLBACK'
   4 GROUP BY OWNER,SEGMENT_NAME,TABLESPACE_NAME
   5 /
   
  
  查询到18记录.
  
  SQL> SELECT SEGMENT_NAME,OWNER,
   2     TABLESPACE_NAME,SEGMENT_ID,FILE_ID,STATUS
   3     FROM DBA_ROLLBACK_SEGS
   4 /
  
  
  查询到18记录.
  
  2、修改代码如下,可把以下代码存入一.sql文件,如cg_sys.sql,然后以SQL> @cg_sys.sql调用执行。
  
  --注意:各个硬盘上要事先建好oradata目录
  
  --修改现有回滚段,使之失效,下线
  alter rollback segment rb1 offline;
  alter rollback segment rb2 offline;
  alter rollback segment rb3 offline;
  alter rollback segment rb4 offline;
  alter rollback segment rb5 offline;
  alter rollback segment rb6 offline;
  alter rollback segment rb7 offline;
  alter rollback segment rb8 offline;
  alter rollback segment rb9 offline;
  alter rollback segment rb10 offline;
  alter rollback segment rb11 offline;
  alter rollback segment rb12 offline;
  alter rollback segment rb13 offline;
  alter rollback segment rb14 offline;
  alter rollback segment rb15 offline;
  alter rollback segment rb16 offline;
  
  --删除原有回滚段
  drop rollback segment rb1;
  drop rollback segment rb2;
  drop rollback segment rb3;
  drop rollback segment rb4;
  drop rollback segment rb5;
  drop rollback segment rb6;
  drop rollback segment rb7;
  drop rollback segment rb8;
  drop rollback segment rb9;
  drop rollback segment rb10;
  drop rollback segment rb11;
  drop rollback segment rb12;
  drop rollback segment rb13;
  drop rollback segment rb14;
  drop rollback segment rb15;
  drop rollback segment rb16;
  
  --建数据表空间1
  --收款、库存、订货、远程通信
  create tablespace USER_DATA1 datafile
  'd:\oradata\user1_1.ora' size 512M,
  'd:\oradata\user1_2.ora' size 512M,
  'd:\oradata\user1_3.ora' size 512M,
  'd:\oradata\user1_4.ora' size 512M,
  'd:\oradata\user1_5.ora' size 512M,
  'd:\oradata\user1_6.ora' size 512M
  AUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITED
  default storage (initial 128K next 2M pctincrease 0);
  --initial 128K,因为,用户建在表空间上,而表建在用户里,为用户所拥有,
  --用户继承数据表空间的存储参数,表继承用户的存储参数
  --如果initial设的过大,如:5M,则每建一个空表就要占用5M的空间,即使一条记录也没有
  --AUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITED,设置数据文件自动扩展,每一次扩展增加5M,最大空间不受限
  
  --建数据表空间2
  --物价、人事、结算、财务、总经理、合同、统计
  create tablespace USER_DATA2 datafile
  'e:\oradata\user2_1.ora' size 512M,
  'e:\oradata\user2_2.ora' size 512M,
  'e:\oradata\user2_3.ora' size 512M,
  'e:\oradata\user2_4.ora' size 512M,
  'e:\oradata\user2_5.ora' size 512M,
  'e:\oradata\user2_6.ora' size 512M
  AUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITED
  default storage (initial 128K next 2M pctincrease 0);
  
  --建索引表空间1
  create tablespace INDEX_DATA1 datafile
  'f:\oradata\index1_1.ora' size 512M,
  'f:\oradata\index1_2.ora' size 512M,
  'f:\oradata\index1_3.ora' size 512M,
  'f:\oradata\index1_4.ora' size 512M
  AUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITED
  default storage (initial 128K next 2M pctincrease 0);
  
  --建索引表空间2
  create tablespace INDEX_DATA2 datafile
  'g:\oradata\index2_1.ora' size 512M,
  'g:\oradata\index2_2.ora' size 512M,
  'g:\oradata\index2_3.ora' size 512M,
  'g:\oradata\index2_4.ora' size 512M
  AUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITED
  default storage (initial 128K next 2M pctincrease 0);
  
  --建回滚表空间1
  --设置初始值40M(initial 40M),则每在这个表空间中建一个回滚段,
  --此回滚段自动继承此回滚表空间的存储参数,也即默认文件为40M
  create tablespace ROLLBACK_DATA1 datafile
  'd:\oradata\roll1_1.ora' size 512M,
  'd:\oradata\roll1_2.ora' size 512M
  AUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITED
  default storage (initial 40M next 5M pctincrease 0);
  
  --建回滚表空间2
  create tablespace ROLLBACK_DATA2 datafile
  'e:\oradata\roll2_1.ora' size 512M,
  'e:\oradata\roll2_2.ora' size 512M
  AUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITED
  default storage (initial 40M next 5M pctincrease 0);
  
  --建临时表空间1
  create tablespace TEMPORARY_DATA1 datafile
  'f:\oradata\temp1_1.ora' size 512M
  default storage (initial 10M next 3M pctincrease 0);
  
  --建临时表空间2
  create tablespace TEMPORARY_DATA2 datafile
  'g:\oradata\temp2_1.ora' size 512M
  default storage (initial 10M next 3M pctincrease 0);
  
  --使其真正成为临时的
  alter tablespace TEMPORARY_DATA1 temporary;
  alter tablespace TEMPORARY_DATA2 temporary;
  
  --建立新的回滚段,每个都一样大,不同大小的回滚段没有什么意义,系统是随机选择的。
  --建多少个,根据并发访问用户的多少,
  --如果你们公司每天有50-100个人员使用Oracle系统开发的管理软件,应该20个以上
  
  create public rollback segment rb01 tablespace rollback_data1;
  create public rollback segment rb02 tablespace rollback_data1;
  create public rollback segment rb03 tablespace rollback_data1;
  create public rollback segment rb04 tablespace rollback_data1;
  create public rollback segment rb05 tablespace rollback_data1;
  create public rollback segment rb06 tablespace rollback_data1;
  create public rollback segment rb07 tablespace rollback_data1;
  create public rollback segment rb08 tablespace rollback_data1;
  create public rollback segment rb09 tablespace rollback_data2;
  create public rollback segment rb10 tablespace rollback_data2;
  --前8个建在回滚表空间1中,后8个在回滚表空间2
  create public rollback segment rb11 tablespace rollback_data2;
  create public rollback segment rb12 tablespace rollback_data2;
  create public rollback segment rb13 tablespace rollback_data2;
  create pub

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章