命
令中,没有指明存储参数,则会使用表空间中存储的缺省参数。存储参数指定了initial( 初始化)扩展块尺寸,next(下一个)扩展块尺寸,以及pctincrease、maxextents、minextents值。在段生成后 ,不能改变initial和minextents值。每一个表空间的缺省存储参数一般存储在DBA_TABLE SPACE和USER_TABLESPACE视图中。
Pctincrease为扩展块数据量增长的百分比值。比如一个initial 为20,next为20,pctinc rease为50的一个数据段中,扩展块以下列的方式增长: 扩展数 块数 总块数 扩展容量 1 20 20 Initial 2 20 40 Next 3 30 70 Next*1.5
4 45 115 Next*1.5*1.5
表空间在多次分配与回收其空间之后,会出现一个自由空间碎片,后台进程SMON会周期 性地合并表空间内相邻的自由范围,然而,如果表空间缺省的pctincrease 为0,则不会自 动实现空间合并。所以一般我们至少设置pctincrease为1。当然,我们也可以使用SQL命令
强制合并表空间中相邻的自由空间: alter tablespace data coalesce; 增加空间至已有表空间
我们知道,一个表空间由一个或多个数据文件组成,当一个表空间将被用尽时,除非其 所用的数据文件有自动扩展,否则我们必须为其增加新的数据文件。数据库创建时指定的 那几个数据文件都没有自动扩展选项。
比如我们可以用以下命令给USERS表空间增加空间 ALTER TABLESPACE \
ADD DATAFILE '/oracle/ctl2/oradata/ora/users_data.dbf' SIZE 1000K AUTOEXTEND ON NEXT 100K MAXSIZE 10M;
新建表空间
数据库建立时只创建了SYSTEM、RBS、TEMP、TOOLS、USERS这几个表空间,随着应用的增长 ,你可能想把自己的应用建立在一个新的表空间上,或是想把不同的应用建立在不同的表 空间之上,这时,我们就必须建立新的表空间。 例如,我们用以下命令创建了一个myapp的表空间: CREATE TABLESPACE myapp
DATAFILE '/oracle/ctl3/oradata/ora/myapp_data.dbf' SIZE 5M
AUTOEXTEND ON NEXT 1M MAXSIZE 10M DEFAULT STORAGE
( INITIAL 100K
NEXT 100K
MAXEXTENTS 10M PCTINCREASE 1 ) MINIMUM EXTENT 100K;
建立表空间时我们同时建立了一个数据文件,因为一个表空间至少要有一个数据文件。
移动数据文件
创建时指定的数据文件存放位置,基于某些原因(比如你在做目录规划调整、或是基于I/ O管理考虑想移动它),你可能想移动数据文件到另的目录, 有两种移动数据库的方法:通过alter database或通过alter tablespace命令。后者仅用 于不包括SYSTEM的表空间、回滚段或临时段的数据文件。前者可用于所有数据文件。 alter database方法:
使用alter database的方法,数据文件在实例关闭后进行移动。下面是具体步骤: 1).关闭数据库
SVRMGR>connect internal SVRMGR>shutdown SVRMGR>exit
2).使用操作系统命令移动数据文件到新的位置 mv ?
3).装载数据库并用alter database来改变数据中的文件名。 Svrmgrl
SVRMGR>connect internal SVRMGR>startup mount ora;
SVRMGR>alter database rename file ‘/oracle/ctl1/????.dbf’ to ‘/oracle/ctl3/????.dbf;
执行alter database时,Oracle会检查要改变的文件名是否存在。如果引步骤失败, 则需要检查要改变的文件名是否正确。 4). SVRMGR>alter database open; Alter tablespace方法
使用此方法,数据文件可在实例运行当中进行移动。 1).置表空间状态为脱机(offline)
SVRMGR>alter tablespace myapp offline 2).使用操作系统命令移动文件
mv /oracle/ctl3/oradata/ora/myapp_data.dbf /oracle/ctl2/oradata/ora/my_ap p_data.dbf
3).使用alter tablespace命令来更改数据库中的文件名 SVRMGR>alter tablespace myapp rename datafile ‘/oracle/ctl3/oradata/ora/myapp_data.dbf’ to ‘/oracle/ctl2/oradata/ora/myapp_data.dbf’ 4).重新置表空间状态为联机(online)
SVRMGR>alter tablespace myapp online 四.管理重演日志组
Oracle向重演日志文件记录事务信息,可将重演日志组想象为活期存款,它就像一个检
查帐号记录对数据库所做的修改。一个重演日志组由一个或多个同样大小的重演日志文件 组成,一个重演日志组中至少两个成员,如果Oracle向其中一个重演成员写记录受阻,则 继续写同组中的另一个成员。
同时,应有多个重演日志组,供Oracle循环使用,Oracle要求至少有两个重演日志组。 增加新的重演日志组
在增加之前,我们先用select * from v$logfile查看一下原有的重演日志组。 SQLWKS> select * from v$logfile;
GROUP# STATUS MEMBER
---------- ------- ---------------------------------------- 1 /oracle/ctl1/oradata/ora/redoora01.log
2 /oracle/ctl2/oradata/ora/redoora02.log
3 /oracle/ctl3/oradata/ora/redoora03.log
然后我们用以下命令新增一组4.
alter database add logfile group 4
('/oracle/ctl1/oradata/ora/redoora04_1.log',
'/oracle/ctl2/oradata/ora/redoora04_2.log') size 500k; 之后可以再查v$logfile验证一下。 删除已有的重演日志组 用户可以用
alter database drop logfile group 4命令删除一个重演日志组。 删除时可能会出现两种情况:
1).可能出现试图删除一个重演日志组后使Oracle中重演日志组数小于两下组。如果出现 这种情况,必须在删除组2之前,先增加第三个组。
2). 可能出现试图删除一个已被激活的重演日志组,将被报告ORA-01623错误。这时,必 须等待至该组不再为激活状态时才能删除。 五.控制文件职责
当启动数据库时,Oracle读取初始化参数和文件控制文件。文件中的信息是数据库运行必 不可少的。可将控制文件看作汽车的传动装置,当二者正常运转时,都不需要关注。而一 旦失常,将是很头疼的事。
每个Oracle数据库有一个或多个控制文件。控制文件保存有关数据库创建时间、数据库名 、以及数据库运行时使用的所有文件的位置和名称。用户指示Oracle根据需要以数据库控 制文件的多个(通常为两个或更多)拷贝维护控制文件。Oracle运行时,写控制文件,每 当执行维持操作时,例如,增加数据文件或配置重演日志文件组,控制文件将自动地被修改,以反映变化的情况?br /> S行┛刂莆募奈ぴ谑菘鈊own(关闭)状态下完成,有的控制文件维护则是在数据库
非安装(nomount)状态下完成。当启动Oracle数据库时,首先打开控制文件,然后检查参 加操作的全部文件在存在以及状态,并确认可访问所有重演日志文件。作为一名DBA,有责任保证在需要时Orac
le可打开控制文件。在备份过程中应包括对控制文件的拷贝操作。 删除、增加控制文件
关闭数据库。Shutdown
修改init.ora文件中的control_files, 删除或增加你想操作的指定文件, 然后重新启动数据库实例。
例如: uibm上的Initora.ora 中 ifile = ?. / configora.ora 中有
control_files = (/oracle/ctl1/oradata/ora/control01.ctl, /oracle/ctl2/oradata/ora/control02.ctl, /oracle/ctl3/oradata/ora/control03.ctl) 移动功更名控制文件,也用同样的操作步骤。 六.初始化参文件
初始化参数可能是Oracle数据库最神秘的组成部分之一。启动实例时Oracle读取设置 初始化参数文件,也称“init.ora”或pfile。在这个文件中有多个项,说明待访问的数据 以及控制Oracle启动设置的环境参数。这些参数可用于: .定义数据库使用的文件名和位置
.控制计算机内存分配,以支持数据库配置 .指定一些可以访问数据库的会话
初始化参数文件中一些参数的设置将影响数据库的性能。
在初始化参数文件中有两类参数:显式参数和隐式参数。显式参数在init.ora文件中有一 项;隐式参数不出现在init.ora文件中并假定为默认值,除非将其值放置于init.ora文件 中。
参数格式为
pfile_keyword=keyword_value
参数文件中的项,如果超过一行,则需要用连续符“\\”。
在服务器管理器中,我们可以通过下述步骤得到参数(显式和隐式)的完整列表: SVRMGR>connect internal SVRMGR>show parameters
NAME TYPE VALUE
----------------------------------- ------- ---------------------- O7_DICTIONARY_ACCESSIBILITY boolean TRUE allow_partial_sn_results boolean FALSE
always_anti_join string NESTED_LOOPS always_semi_join string standard aq_tm_processes integer 0 arch_io_slaves integer 0
audit_file_dest string ?/rdbms/audit audit_trail string NONE b_tree_bitmap_plans boolean FALSE background_core_dump string full
列出的参数很多,须好几屏才能显示完,如果我们想查看参数的某些字集,比如我们想 查看所有包含“sort”的参数,则启动服务器管理器后,按下述步骤操作: SVRMGR>show parameters sort
NAME TYPE VALUE
----------------------------------- ------- ------------------- nls_sort string sort_area_retained_size integer 0