oracle常用命令 下载本文

令中,没有指明存储参数,则会使用表空间中存储的缺省参数。存储参数指定了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