oracle管理(十八)数据文件整理

oracle管理(十八)数据文件整理,第1张

online redo log file:

查看redo日志组:

select * from v$log

查看redo日志文件

select * from v$logfile

/app/oracle/oradata/orcl/redo01.log

/app/oracle/oradata/orcl/redo02.log

/app/oracle/oradata/orcl/redo03.log

修改:

shutdown immediate

startup mount

mv /app/oracle/oradata/orcl/redo01.log /home/oradata/orcl/redo01.log

mv /app/oracle/oradata/orcl/redo02.log /home/oradata/orcl/redo02.log

mv /app/oracle/oradata/orcl/redo03.log /home/oradata/orcl/redo03.log

alter database rename file '/app/oracle/oradata/orcl/redo01.log' to '/home/oradata/orcl/redo01.log'

alter database rename file '/app/oracle/oradata/orcl/redo02.log' to '/home/oradata/orcl/redo02.log'

alter database rename file '/app/oracle/oradata/orcl/redo03.log' to '/home/oradata/orcl/redo03.log'

alter database open

验证redo日志文件:

select * from v$logfile

====================================

data file:

查看

select file_name from dba_data_files

select file_name from dba_temp_files

修改:

shutdown immediate

startup mount

mv /app/oracle/oradata/orcl/users01.dbf

mv /app/oracle/oradata/orcl/undotbs01.dbf

mv /app/oracle/oradata/orcl/sysaux01.dbf

mv /app/oracle/oradata/orcl/system01.dbf

mv /app/oracle/oradata/orcl/temp01.dbf

alter database rename file '/app/oracle/oradata/orcl/users01.dbf' to '/home/oradata/orcl/users01.dbf'

alter database rename file '/app/oracle/oradata/orcl/undotbs01.dbf' to '/home/oradata/orcl/undotbs01.dbf'

alter database rename file '/app/oracle/oradata/orcl/sysaux01.dbf'

alter database rename file '/app/oracle/oradata/orcl/system01.dbf'

alter database rename file '/app/oracle/oradata/orcl/temp01.dbf'

alter database open

验证:

select file_name from dba_data_files

select file_name from dba_temp_files

===========================

control file:

查看:

show parameter control_files

shutdown immediate

create pfile from spfile

修改initorcl.ora里面的control_files='/home/oradata/control01.ctl'

mv /app/oracle/oradata/orcl/control01.ctl /home/oradata/control01.ctl

rm -f /app/oracle/fast_recovery_area/orcl/control02.ctl

create spfile from pfile

alter database mount

alter database open

验证:

show parameter control_files

SQL>conn sys/xin as sysdba

已连接。

SQL>set wrap off

SQL>set linesize 100

1. 一些基本的 *** 作

(1) 查看表空间:

SQL>select * from v$tablespace

(2) 查看数据文件:

SQL>select * from v$datafile

(3) 查看tablespace 和data files之间的对应关系(通过表空间的号连接在一起):

SQL>select t1.name,t2.name

2 from v$tablespace t1, v$datafile t2

3 where t1.ts#=t2.ts#

4

(4) 更改表空间

SQL>alter tablespace users

2 add datafile 'E:\ORACLE\ORADATA\XINER\USERS02.DBF' size 10m

表空间已更改。

2. 管理表空间

在oracle 里将表空间分为系统表空间和非系统表空间。

(1) 系统表空间包括系统表,数据字典,以及系统回滚段等信息。

查看系统回滚段:

SQL>select * from dba_rollback_segs

(2) 非系统表空间用来分离段(分开临时数据和永久性数据,索引和表放在不同的表空间等等)可以给系统的性能带来

好处,同时可以控制分配给用户的空间限额。

控制用户对空间的使用:

SQL>alter user HR

2 quota 10m on users

用户已更改。

(3) 如何创建表空间:([]均表示可选)

create tablespace xxx

[datafile 'xxx']---OMF时可以不指定

[size xxx--kb,mb]

[extent management local/dictionary]

[default storage(xxx)]

dictionary-managed tablespaces在oracle 9i 里已经不建议使用。

SQL>create tablespace ice

2 datafile 'e:\oracle\oradata\xiner\ice.dbf' size 5m

3 extent management dictionary

4 default storage(

5 initial 100k

6 next 100k

7 pctincrease 10)

8 offline

表空间已创建。

如果表空间管理指定为Local型,则不能使用default storage。此时不会和数据字典表打交道,不会和系统表产生

资源争用,也不会产生回滚数据(因为不涉及修改系统表),其次也不会有递归的资源争用。

SQL>create tablespace ice1

2 datafile 'e:\oracle\oradata\xiner\ice1.dbf' size 5m

3 extent management local

4 uniform size 1m

表空间已创建。

SQL>create tablespace ice2

2 datafile 'e:\oracle\oradata\xiner\ice2.dbf' size 5m

3 extent management local autoallocate

表空间已创建。

(4) Undo 表空间用来存储undo段,不能包括其他的数据对象,使用locally管理。

undo 段主要用来保存数据改变的旧值,可以回滚transcation(rollback)。

SQL>show parameter undo

SQL>create undo tablespace ice3

2 datafile 'e:\oracle\oradata\xiner\ice3.ora' size 5m

3 extent management local

4 uniform size 1m//此时不能定义uniform size

uniform size 1m

*

ERROR 位于第 4 行:

ORA-30024: CREATE UNDO TABLESPACE 的说明无效

SQL>del 4

SQL>run

1 create undo tablespace ice3

2 datafile 'e:\oracle\oradata\xiner\ice3.ora' size 5m

3* extent management local

表空间已创建。

不能在回滚表空间建立表对象(不能放其他的数据对象):

SQL>create table tt1

2 (id int)

3 tablespace ice3

create table tt1

*

ERROR 位于第 1 行:

ORA-30022: 无法在撤消表空间中创建段

(5) 临时表空间用来支持排序,不能包括永久的数据对象,建议使用locally管理。

SQL>create temporary tablespace ice4

2 tempfile 'e:\oracle\oradata\xiner\ice4.ora' size 5m

3 extent management local

表空间已创建。

SQL>create table tt1

2 (id int)

3 tablespace ice4

create table tt1

*

ERROR 位于第 1 行:

ORA-02195: 尝试创建的PERMANENT对象在TEMPORARY表空间中

(6) 缺省的临时表空间:

SQL>alter database default temporary tablespace ice4

数据库已更改。

临时表空间不可以被置为offline,也不能指定为read only,不可以被删除,除非用另外一个表空间代替它。

SQL>alter talbespace ice4 offline

alter talbespace ice4 offline

*

ERROR 位于第 1 行:

ORA-00940: 无效的 ALTER 命令

SQL>alter tablespace ice4

2 read only

alter tablespace ice4

*

ERROR 位于第 1 行:

ORA-03217: 变更 TEMPORARY TABLESPACE 无效的选项

(7) offline状态:对数据文件改名or搬动数据文件的位置or对数据库进行部分的修复

(7) offline状态:对数据文件改名or搬动数据文件的位置or对数据库进行部分的修复

SQL>alter tablespace users offline

表空间已更改。

SQL>alter tablespace users online

表空间已更改。

不可以置为offline状态的表空间包括:system表空间(如果要对系统表空间的文件进行改变则要关闭数据库)

包括active undo 段的表空间缺省的临时表空间

(8) read only 表空间:对表空间只能进行读 *** 作数据对象可以从表空间删除

SQL>alter tablespace users read only

表空间已更改。

(9) 删除表空间:

SQL>create table tt1

2 (id int)

3 tablespace ice

表已创建。

SQL>drop tablespace ice1

表空间已丢弃。

SQL>drop tablespace ice2

2 including contents and datafiles

表空间已丢弃。

(10) resize表空间:自动扩张(autoextend on)、手动(resize)

3. 管理数据文件

(1) 移动data files:

表空间必须是offline(使用alter tablespace xxx rename datafile 'xx' to 'xx')

目标数据文件必须已经存在

如果是不能处于offline状态的表空间则要关闭数据库,将其启动到mount状态,同时目标数据文件必须已经存在。

(使用alter database rename file 'xx' to 'xx')

(2) 配置OMF文件来创建表空间的时候DB_CREATE_FILE_DEST会将数据文件存放在缺省的位置。如果想要更改位置则用

alter system set db_create_file_dest='xx'

用OMF创建表空间:create tablespace xxx删除:drop tablespace xxx

 select

b.file_name 物理文件名,

b.tablespace_name 表空间,

b.bytes/1024/1024 大小M,

(b.bytes-sum(nvl(a.bytes,0)))/1024/1024 已使用M,

substr((b.bytes-sum(nvl(a.bytes,0)))/(b.bytes)*100,1,5) 利用率

from dba_free_space a,dba_data_files b

where a.file_id=b.file_id

group by b.tablespace_name,b.file_name,b.bytes

order by b.tablespace_name

该语句通过查询dba_free_space,dba_data_files,dba_tablespaces这三个数据字典表,得到了表空间名称,表空间类型,区管理类型,以”兆”为单位的表空间大小,已使用的表空间大小及表空间利用率。dba_free_space表描述了表空间的空闲大小,dba_data_files表描述了数据库中的数据文件,dba_tablespaces表描述了数据库中的表空间。

上面语句中from子句后有三个select语句,每个select语句相当于一个视图,视图的名称分别为a、b、c,通过它们之间的关联关系,我们得到了表空间的相关信息。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11495000.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存