Oracle+11g+笔记(7)-数据库空间管理

Oracle+11g+笔记(7)-数据库空间管理

7、数据库空间管理

存储空间是数据库系统中非常重要的资源,无论是数据库中的对象还是数据库中的数据都需要空间进行存储,一旦

数据库空间被全部占用,那么该数据库系统就不能再接受任何对象和数据,数据库系统的运行基本上会处于停滞状

态。合理利用空间不但能节省空间,还可以提高数据库系统的效率和工作性能。对数据库空间的管理主要通过以下

几种方法。

  • 建立数据库时分配存储空间。建立数据库可以指定SYSTEM表空间和其他表空间的大小。

  • 空间充足时,通过动态空间监视和增加数据文件的方法管理数据库空间。

  • 空间不够用时,需要增加存储空间,增加存储空间的方法主要包括:改变系统表空间数据文件的大小、创建新

    表空间和增加表空间大小。

  • 减少存储空间的使用,主要方法包括:为表中的列设置合适的数据类型和长度、为对象设置合适的存储参数。

  • 回收存储空间,主要方法包括:对历史数据进行存档并回收相应的空间;删除无用的对象和表空间。

7.1 建立数据库时的空间设计

从逻辑上说,数据库空间是由若干个表空间组成的,而表空间只是一个逻辑概念,它与数据库的物理结构有着密切

的关系。表空间与磁盘上的若干个数据文件对应,表空间的所有内容其实都存储在数据文件中。数据文件是实际存

在的文件,在创建表空间时就需要指定该表空间中各个数据文件的大小。因此,为了防止以后数据库存储空间不够

用,在建立数据库时需要对可能的空间需求做出合理的估计,然后为其设置一个较大的预分配空间。

在建立数据库之初,合理估计可能用到的存储空间大小,并为表空间中的数据文件设置较大的存储空间,甚至设置

为空间大小不受限制,则在以后使用过程中就会较少或几乎碰不到空间不够用的情况。

根据表空间的类型不同,空间设计可分为以下两种:

  • system表空间初值:创建数据库时指定。

  • 其他表空间初值:创建表空间时指定。

7.1.1 指定system 表空间初值

数据库运行期间如果出现存储空间不够用的现象,会对数据库的运行造成较大的影响,虽然可以通过增加数据文件

以扩充存储空间,但还是会或多或少地影响数据库的性能,因此在创建数据库时,为表空间中的数据文件设置足够

大的值是必要的。下面我们通过两种方法来设置system表空间的初值。

1、通过DBCA工具创建数据库并指定system表空间的初值。

##############################################################################
# Copyright (c) 1991, 2001, 2002 by Oracle Corporation
##############################################################################
 
###########################################
# Shared Server
###########################################
dispatchers="(PROTOCOL=TCP) (SERVICE=mydbXDB)"
 
###########################################
# Miscellaneous
###########################################
compatible=11.2.0.0.0
diagnostic_dest=D:\app\zhangshixing
memory_target=1287651328
 
###########################################
# Security and Auditing
###########################################
audit_file_dest=D:\app\zhangshixing\admin\mydb\adump
audit_trail=db
remote_login_passwordfile=EXCLUSIVE
 
###########################################
# Database Identification
###########################################
db_domain=""
db_name=mydb
 
###########################################
# File Configuration
###########################################
control_files=("D:\app\zhangshixing\oradata\mydb\control01.ctl", "D:\app\zhangshixing\flash_recovery_area\mydb\control02.ctl")
db_recovery_file_dest=D:\app\zhangshixing\flash_recovery_area
db_recovery_file_dest_size=5218762752
 
###########################################
# Cursors and Library Cache
###########################################
open_cursors=300
 
###########################################
# System Managed Undo and Rollback Segments
###########################################
undo_tablespace=UNDOTBS1
 
###########################################
# Network Registration
###########################################
local_listener=LISTENER_MYDB
 
###########################################
# Processes and Sessions
###########################################
processes=150
 
###########################################
# Cache and I/O
###########################################
db_block_size=8192
CREATE DATABASE mynewdb
   USER SYS IDENTIFIED BY sys_password
   USER SYSTEM IDENTIFIED BY system_password
   LOGFILE GROUP 1 ('/u01/logs/my/redo01a.log','/u02/logs/my/redo01b.log') SIZE 100M BLOCKSIZE 512,
           GROUP 2 ('/u01/logs/my/redo02a.log','/u02/logs/my/redo02b.log') SIZE 100M BLOCKSIZE 512,
           GROUP 3 ('/u01/logs/my/redo03a.log','/u02/logs/my/redo03b.log') SIZE 100M BLOCKSIZE 512
   MAXLOGFILES 5
   MAXLOGMEMBERS 5
   MAXLOGHISTORY 1
   MAXDATAFILES 100
   CHARACTER SET AL32UTF8
   NATIONAL CHARACTER SET AL16UTF16
   EXTENT MANAGEMENT LOCAL
   DATAFILE '/u01/app/oracle/oradata/mynewdb/system01.dbf' SIZE 325M REUSE
   SYSAUX DATAFILE '/u01/app/oracle/oradata/mynewdb/sysaux01.dbf' SIZE 325M REUSE
   DEFAULT TABLESPACE users
      DATAFILE '/u01/app/oracle/oradata/mynewdb/users01.dbf'
      SIZE 500M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
   DEFAULT TEMPORARY TABLESPACE tempts1
      TEMPFILE '/u01/app/oracle/oradata/mynewdb/temp01.dbf'
      SIZE 20M REUSE
   UNDO TABLESPACE undotbs
      DATAFILE '/u01/app/oracle/oradata/mynewdb/undotbs01.dbf'
      SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;

2、通过命令方式创建数据库并指定system表空间的初值。

参考连接:

https://docs.oracle.com/cd/E11882_01/server.112/e25494/create.htm#ADMIN002

通过命令的方式创建数据库比较复杂,实现起来难度较大,下面将给出具体的实现步骤。

Step1创建文件目录,用于存放数据库的各个不同类型的文件。

C:\>mkdir D:\app\zhangshixing\product\11.2.0\dbhome_1\admin\eygle
C:\>mkdir D:\app\zhangs
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值