`

安装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,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 /

OWNER SEGMENT_NAME TABLESPACE_NAME M
-------------------- -------------------- -------------------- ---------
SYS RB1 ROLLBACK_DATA .09765625
SYS RB10 ROLLBACK_DATA .09765625
SYS RB11 ROLLBACK_DATA .09765625
SYS RB12 ROLLBACK_DATA .09765625
SYS RB13 ROLLBACK_DATA .09765625
SYS RB14 ROLLBACK_DATA .09765625
SYS RB15 ROLLBACK_DATA .09765625
SYS RB16 ROLLBACK_DATA .09765625
SYS RB2 ROLLBACK_DATA .09765625
SYS RB3 ROLLBACK_DATA .09765625
SYS RB4 ROLLBACK_DATA .09765625
SYS RB5 ROLLBACK_DATA .09765625
SYS RB6 ROLLBACK_DATA .09765625
SYS RB7 ROLLBACK_DATA .09765625
SYS RB8 ROLLBACK_DATA .09765625
SYS RB9 ROLLBACK_DATA .09765625
SYS RB_TEMP SYSTEM .24414063
SYS SYSTEM SYSTEM .1953125

查询到18记录.

SQL> SELECT SEGMENT_NAME,OWNER,
2 TABLESPACE_NAME,SEGMENT_ID,FILE_ID,STATUS
3 FROM DBA_ROLLBACK_SEGS
4 /

SEGMENT_NAME OWNER TABLESPACE_NAME SEGMENT_ID FILE_ID STATUS
-------------------- -------------------- -------------------- ---------- --------- ----------
SYSTEM SYS SYSTEM 0 1 ONLINE
RB_TEMP SYS SYSTEM 1 1 OFFLINE
RB1 PUBLIC ROLLBACK_DATA 2 3 ONLINE
RB2 PUBLIC ROLLBACK_DATA 3 3 ONLINE
RB3 PUBLIC ROLLBACK_DATA 4 3 ONLINE
RB4 PUBLIC ROLLBACK_DATA 5 3 ONLINE
RB5 PUBLIC ROLLBACK_DATA 6 3 ONLINE
RB6 PUBLIC ROLLBACK_DATA 7 3 OFFLINE
RB7 PUBLIC ROLLBACK_DATA 8 3 OFFLINE
RB8 PUBLIC ROLLBACK_DATA 9 3 OFFLINE
RB9 PUBLIC ROLLBACK_DATA 10 3 OFFLINE
RB10 PUBLIC ROLLBACK_DATA 11 3 OFFLINE
RB11 PUBLIC ROLLBACK_DATA 12 3 OFFLINE
RB12 PUBLIC ROLLBACK_DATA 13 3 OFFLINE
RB13 PUBLIC ROLLBACK_DATA 14 3 OFFLINE
RB14 PUBLIC ROLLBACK_DATA 15 3 OFFLINE
RB15 PUBLIC ROLLBACK_DATA 16 3 OFFLINE
RB16 PUBLIC ROLLBACK_DATA 17 3 OFFLINE

查询到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 public rollback segment rb14 tablespace rollback_data2;
create public rollback segment rb15 tablespace rollback_data2;
create public rollback segment rb16 tablespace rollback_data2;
create public rollback segment rb17 tablespace rollback_data2;
create public rollback segment rb18 tablespace rollback_data2;
create public rollback segment rb19 tablespace rollback_data2;
create public rollback segment rb20 tablespace rollback_data2;

--使回滚段online,即有效
alter rollback segment rb01 online;
alter rollback segment rb02 online;
alter rollback segment rb03 online;
alter rollback segment rb04 online;
alter rollback segment rb05 online;
alter rollback segment rb06 online;
alter rollback segment rb07 online;
alter rollback segment rb08 online;
alter rollback segment rb09 online;
alter rollback segment rb10 online;
alter rollback segment rb11 online;
alter rollback segment rb12 online;
alter rollback segment rb13 online;
alter rollback segment rb14 online;
alter rollback segment rb15 online;
alter rollback segment rb16 online;
alter rollback segment rb17 online;
alter rollback segment rb18 online;
alter rollback segment rb19 online;
alter rollback segment rb20 online;

--查看现有回滚段及其状态
col segment format a30
SELECT SEGMENT_NAME,OWNER,TABLESPACE_NAME,SEGMENT_ID,FILE_ID,STATUS FROM DBA_ROLLBACK_SEGS;

--查看数据文件及其所在表空间、大小、状态
col file_name format a40
col tablespace_name format a20
select file_name,file_id,tablespace_name,bytes,status from dba_data_files;


至此,表空间重新规划完毕,这里讲的比较通俗,还有好多参数值得设置,能够把Oracle设置到最优的境界,
表空间设置完了,下面,就该好好的整理一下Oracle的内存区了,
Oracle很有意思,内存越大,效果越明显,所以有必要好好调整一下SGA区,也就是主要配置ininorcl.ora参数文件。

分享到:
评论

相关推荐

    oracle数据库扩展表空间代码

    本文介绍了Oracle数据库中关于表空间的一些基本操作,包括创建表空间、查询表空间使用情况、扩展表空间、重命名表空间等。通过这些操作,可以有效地管理和优化Oracle数据库的存储空间,提高系统的稳定性和性能。在...

    oracle创建表空间的sql

    ### Oracle 创建表空间的SQL详解 在Oracle数据库管理中,创建表空间是一项基本且重要的操作。表空间是Oracle数据库中的逻辑存储单元,用于组织物理存储结构。本文将详细介绍如何使用SQL语句创建表空间,并解释其中...

    Oracle_SQL_Developer_使用指南

    2. 对象右键菜单提供创建、修改、删除等操作,例如创建新表、修改表结构、删除表等。 3. “Data Modeler”工具可进行ER模型设计,支持逆向工程生成模型,便于数据库设计。 五、数据导入导出 1. 使用“Data Pump ...

    Oracle_SQL_Developer_使用简要说明.docx

    SQL Developer的主要功能包括但不限于:浏览数据库对象、执行SQL语句与脚本、编辑及调试PL/SQL代码、创建与运行自定义报表等。 - **跨平台特性**:由于其基于Java技术构建,SQL Developer能够支持Windows、Linux和...

    oracle SQL疑难解析 书中SQL

    Oracle SQL疑难解析是一本专为解决数据库操作中遇到的实际问题而编写的书籍,它涵盖了大量SQL查询、数据处理和性能优化的实用技巧。在"oracle-sql-recipes-master"这个压缩包中,很可能是包含了书中的示例代码和练习...

    Oracle10g创建、修改、删除用户和用户表空间

    在Oracle 10g数据库管理中,创建、修改和删除用户以及用户表空间是数据库管理员(DBA)的常见任务。这些操作对于维护数据库的安全性、性能和数据完整性至关重要。下面将详细阐述如何在Oracle 10g中执行这些操作。 ###...

    pl/sql试题,oracle基础知识

    了解这些基本概念对于理解和使用Oracle数据库以及编写PL/SQL代码至关重要,它们涉及到数据存储、并发控制、错误处理、性能优化等多个关键领域。通过练习和应用这些知识,可以有效地管理Oracle数据库并创建高效的应用...

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    该资料是《Oracle SQL高级编程》的源代码 对应的书籍资料见: Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐) 基本信息 原书名: Pro Oracle SQL 原出版社: Apress 作者: (美)Karen Morton Kerry ...

    Oracle安装教程+PL/SQL

    4. **使用PL/SQL Developer**:此工具提供了一个集成的环境,可以编写、调试、运行PL/SQL代码,管理表、视图、索引等数据库对象,以及执行SQL查询。 5. **汉化**:若提供的压缩包中包含汉化包,可按照汉化包的说明...

    Oracle可视化工具sqldeveloper-23.1.0.097.1607-x64

    SQL Developer 提供了图形化的界面来创建、修改和删除数据库对象,如表、索引、视图、序列、同义词等。这种直观的方式使得数据库管理员和开发者能够更轻松地管理数据库结构。 **7. 报表与分析** 该工具还支持生成...

    Oracle+SQL必备参考

    根据给定文件的信息,我们可以推断出这是一本关于Oracle数据库和SQL语言的参考资料书籍。虽然部分内容并未提供具体章节或知识点细节,但基于标题“Oracle+SQL必备参考”及描述中的重复信息,我们可以围绕Oracle...

    oracle常用经典sql查询功能代码

    - 在Oracle中可以对表空间进行重命名、修改大小、扩展数据文件空间、调整为OMF(Oracle Managed Files)状态以及移动表的分区。 - 数据库的调整能够优化性能并提升资源的使用效率。 - 通过手工分配表空间段的分区...

    oracle 经典资料及PL/SQL 使用指南 英文版

    2. 表空间与数据文件:Oracle使用表空间来存储数据库对象,如表、索引等。数据文件是实际存储数据的物理文件,它们属于特定的表空间。 3. 实体与对象:Oracle数据库中的实体包括表、视图、索引、存储过程等,学习者...

    实用Oracle SQL&PLSQL PPT

    存储过程是一组可重用的PL/SQL代码,用于执行特定任务,而函数则返回一个值。触发器在特定的数据库事件(如INSERT、UPDATE或DELETE)发生时自动执行。包是组织相关过程和函数的集合,它们共享相同的命名空间,增强了...

    Oracle官方客户端-Sql Developer

    3. **PL/SQL调试**:支持PL/SQL代码的调试,可以单步执行、设置断点、查看变量值等,大大提高了开发效率。 4. **对象管理**:可以方便地创建、修改或删除各种数据库对象,如表、视图、存储过程等。 5. **数据可视化*...

    oracle及sql命令大全

    - `CREATE PROCEDURE`:定义可重复使用的PL/SQL代码块,用于封装复杂的逻辑。 6. 权限与角色管理: - `GRANT`:赋予用户或角色特定的数据库权限。 - `REVOKE`:撤销已授予的权限。 - `CREATE ROLE`:创建新的...

    oracle创建表空间创建用户分配权限例程详解

    ### Oracle 创建表空间、创建用户及分配权限的例程详解 #### 一、概述 在 Oracle 数据库管理中,创建表空间、用户以及为这些用户分配相应的权限是一项基础且重要的任务。通过合理地规划和设置,可以有效地管理和...

    ORACLE常见错误代码的分析与解决

    总结来说,对于ORACLE数据库中常见的ORA-01650和ORA-01652错误代码,通过合理地增加回滚段表空间或临时表空间、修改存储参数和监控空间使用状况,可以有效地解决问题。数据库管理员在操作过程中,应根据数据库的具体...

    oracle管理常用sql脚本

    在Oracle数据库管理中,SQL(Structured Query Language)脚本扮演着至关重要的角色,尤其是在日常维护、性能监控和问题排查方面。以下是一些Oracle管理中常用的SQL脚本及其相关的知识点: 1. **数据查询与操作**:...

    Oracle创建表空间.txt

    创建表空间后,还需要为用户分配相应的权限,以便他们能够使用这些表空间。 **示例代码:** ```sql CREATE USER xiaoming IDENTIFIED BY xm123 DEFAULT TABLESPACE TEST_DATA TEMPORARY TABLESPACE TEST_TEMP; ``` ...

Global site tag (gtag.js) - Google Analytics