ITPub博客

首页 > 数据库 > Oracle > 表空间与数据文件管理

表空间与数据文件管理

原创 Oracle 作者:StevenBeijing 时间:2015-06-07 19:37:22 1 删除 编辑
1. 表空间的两种管理方式:一是数据字典管理,而是本地管理


2. 查看表空间信息
SYS@orcl>select TABLESPACE_NAME,STATUS,RETENTION,EXTENT_MANAGEMENT from dba_tablespaces;


TABLESPACE_NAME       STATUS RETENTION   EXTENT_MAN
------------------------------ --------- ----------- ----------
SYSTEM             ONLINE NOT APPLY   LOCAL
SYSAUX             ONLINE NOT APPLY   LOCAL
UNDOTBS1             ONLINE NOGUARANTEE LOCAL
TEMP               ONLINE NOT APPLY   LOCAL
USERS               ONLINE NOT APPLY   LOCAL
EXAMPLE             ONLINE NOT APPLY   LOCAL
TBS_GGUSER           ONLINE NOT APPLY   LOCAL


3. 创建还原(undo)表空间
SYS@orcl>create undo tablespace user_undo  datafile '/u01/app/oracle/oradata/orcl/user_undo.dbf' size 50M;
Tablespace created.


4. 查看是否创建成功
SYS@orcl>select tablespace_name,status,EXTENT_MANAGEMENT from dba_tablespaces;


TABLESPACE_NAME       STATUS EXTENT_MAN
------------------------------ --------- ----------
SYSTEM            ONLINE LOCAL
SYSAUX            ONLINE LOCAL
UNDOTBS1            ONLINE LOCAL
TEMP              ONLINE LOCAL
USERS              ONLINE LOCAL
EXAMPLE            ONLINE LOCAL
TBS_GGUSER          ONLINE LOCAL
USER_UNDO            ONLINE LOCAL


5. 查看user_UNDO的存储参数
SYS@orcl>select TABLESPACE_NAME,BLOCK_SIZE,INITIAL_EXTENT,NEXT_EXTENT,MIN_EXTENTS,MAX_EXTENTS,CONTENTS from dba_tablespaces where CONTENTS='UNDO';


TABLESPACE_NAME       BLOCK_SIZE INITIAL_EXTENT NEXT_EXTENT MIN_EXTENTS
------------------------------ ---------- -------------- ----------- -----------
MAX_EXTENTS CONTENTS
----------- ---------
UNDOTBS1     8192   65536       1
 2147483645 UNDO


USER_UNDO     8192   65536       1
 2147483645 UNDO
 
6. 查看USER_UNDO的数据文件
SYS@orcl>select FILE_NAME,FILE_ID,BYTES/1024/1024,TABLESPACE_NAME from dba_data_files where tablespace_name='USER_UNDO';


FILE_NAME  FILE_ID BYTES/1024/1024 TABLESPACE_NAME
------------------------------ ---------- --------------- --------------------
/u01/app/oracle/oradata/orcl/u 7       50 USER_UNDO
ser_undo.dbf


7. 创建临时表空间USER_TEMP
SYS@orcl>create temporary tablespace user_temp tempfile '/u01/app/oracle/oradata/orcl/user_temp.dbf' size 20M 
         extent management local uniform size 1M;


8. 查看临时表空间是否创建成功
SYS@orcl>select TABLESPACE_NAME,LOGGING,CONTENTS,STATUS from dba_tablespaces;


TABLESPACE_NAME       LOGGING CONTENTS  STATUS
------------------------------ --------- --------- ---------
SYSTEM             LOGGING PERMANENT ONLINE
SYSAUX             LOGGING PERMANENT ONLINE
UNDOTBS1             LOGGING UNDO     ONLINE
TEMP               NOLOGGING TEMPORARY ONLINE
USERS               LOGGING PERMANENT ONLINE
EXAMPLE             NOLOGGING PERMANENT ONLINE
TBS_GGUSER           LOGGING PERMANENT ONLINE
USER_UNDO             LOGGING UNDO     ONLINE
USER_TEMP             NOLOGGING TEMPORARY ONLINE


9. 默认临时表空间(用于存放用户会话数据如排序)
查看当前数据库默认临时表空间
SYS@orcl>select * from database_properties where property_name like 'DEFAULT%';


10.创建大文件表空间
SYS@orcl>create bigfile tablespace bigfiletbs datafile '/u01/app/oracle/oradata/orcl/bfile_tbs.dba' size 2G;
Tablespace created.
  
  
  
表空间的脱机管理


1. SYS@orcl>select tablespace_name,status from dba_tablespaces;


TABLESPACE_NAME       STATUS
------------------------------ ---------
SYSTEM            ONLINE
SYSAUX            ONLINE
UNDOTBS1            ONLINE
TEMP              ONLINE
USERS              ONLINE
EXAMPLE            ONLINE
TBS_GGUSER          ONLINE
USER_UNDO            ONLINE
USER_TEMP            ONLINE
BIGFILETBS          ONLINE


2. 查看表空间是否存在
SYS@orcl>select table_name,owner from dba_tables where tablespace_name ='EXAMPLE';


TABLE_NAME       OWNER
------------------------------ ------------------------------
REGIONS       HR
LOCATIONS       HR


3. 把表空间脱机
SYS@orcl>alter tablespace example offline;
Tablespace altered.


4. 查看表空间是否脱机
SYS@orcl>select tablespace_name,status from dba_tablespaces;


TABLESPACE_NAME       STATUS
------------------------------ ---------
SYSTEM             ONLINE
SYSAUX             ONLINE
UNDOTBS1             ONLINE
TEMP               ONLINE
USERS               ONLINE
EXAMPLE             OFFLINE


5.查看example表空间数据文件的状态
SYS@orcl>select FILE#,name,status from v$datafile;


     FILE# NAME    STATUS
---------- ---------------------------------------- -------
1 /u01/app/oracle/oradata/orcl/system01.db SYSTEM
  f


2 /u01/app/oracle/oradata/orcl/sysaux01.db ONLINE
  f


3 /u01/app/oracle/oradata/orcl/undotbs01.d ONLINE
  bf


4 /u01/app/oracle/oradata/orcl/users01.dbf ONLINE
5 /u01/app/oracle/oradata/orcl/example01.d OFFLINE
  bf
6. 这个时候连接hr用户,查看hr自己的表,信息是查不到的




表空间的只读管理


表空间设置为只读,用户只能读取数据,不能进行插入和修改操作
1. 将表空间设置为只读
SYS@orcl>alter tablespace users read only;
Tablespace altered.


2. 查看表空间状态
SYS@orcl>select tablespace_name,status from dba_tablespaces;


TABLESPACE_NAME       STATUS
------------------------------ ---------
SYSTEM            ONLINE
SYSAUX            ONLINE
UNDOTBS1            ONLINE
TEMP              ONLINE
USERS              READ ONLY


3.查看users中Scott用户的信息
SYS@orcl>select OWNER,TABLE_NAME,TABLESPACE_NAME from dba_tables where owner='SCOTT';


OWNER       TABLE_NAME
------------------------------ ------------------------------
TABLESPACE_NAME
------------------------------
SCOTT       DEPT
USERS


SCOTT       EMP
USERS


SCOTT       BONUS
USERS


SCOTT       SALGRADE
USERS


4. 查询dept表
SYS@orcl>select * from scott.dept;


    DEPTNO DNAME  LOC                       显然可以查询出来
---------- -------------- -------------
10 ACCOUNTING   NEW YORK
20 RESEARCH     DALLAS
30 SALES       CHICAGO
40 OPERATIONS   BOSTON 

5. 删除信息操作
SYS@orcl>delete from scott.dept where deptno=40;
delete from scott.dept where deptno=40                 *
ERROR at line 1:
ORA-00372: file 4 cannot be modified at this time
ORA-01110: data file 4: '/u01/app/oracle/oradata/orcl/users01.dbf'        无法删除


6. 将users改为正常状态
SYS@orcl>alter tablespace users read write;
Tablespace altered.






表空间和数据文件管理


1. 查看数据文件的自动扩展模式
SYS@orcl>select FILE_NAME,FILE_ID,TABLESPACE_NAME,AUTOEXTENSIBLE from dba_data_files;


FILE_NAME  FILE_ID TABLESPACE_NAME AUT
------------------------------ ---------- ------------------------------ ---
/u01/app/oracle/oradata/orcl/u 4 USERS YES
sers01.dbf


/u01/app/oracle/oradata/orcl/u 3 UNDOTBS1 YES
ndotbs01.dbf


/u01/app/oracle/oradata/orcl/s 2 SYSAUX YES
ysaux01.dbf


/u01/app/oracle/oradata/orcl/s 1 SYSTEM YES
ystem01.dbf


/u01/app/oracle/oradata/orcl/e 5 EXAMPLE YES
xample01.dbf


/u01/app/oracle/oradata/orcl/g 6 TBS_GGUSER YES
guser.dbf


/u01/app/oracle/oradata/orcl/u 7 USER_UNDO NO
ser_undo.dbf


/u01/app/oracle/oradata/orcl/b 8 BIGFILETBS NO
file_tbs.dba


2. 向表空间添加数据文件
SYS@orcl>alter tablespace USER_UNDO add datafile '/u01/app/oracle/oradata/orcl/000.dbf' size 20M;
Tablespace altered.


3. 验证数据文件是否添加
SYS@orcl>select FILE_NAME,BYTES/1024/1024,STATUS,AUTOEXTENSIBLE,ONLINE_STATUS from dba_data_files where TABLESPACE_NAME='USER_UNDO';


FILE_NAME       BYTES/1024/1024 STATUS AUT ONLINE_
------------------------------ --------------- --------- --- -------
/u01/app/oracle/oradata/orcl/u    50 AVAILABLE NO  ONLINE
ser_undo.dbf


/u01/app/oracle/oradata/orcl/0    20 AVAILABLE NO  ONLINE
00.dbf


4. 删除表空间的某个数据文件
SYS@orcl>alter tablespace USER_UNDO drop datafile '/u01/app/oracle/oradata/orcl/000.dbf';
Tablespace altered.








迁移数据文件(分为系统表空间数据文件和非系统表空间数据文件)


迁移系统表空间数据文件


1. 查看system表空间信息
SYS@orcl>select FILE_NAME,TABLESPACE_NAME,STATUS from dba_data_files;


FILE_NAME       TABLESPACE_NAME      STATUS
------------------------------ ------------------------------ ---------
/u01/app/oracle/oradata/orcl/u USERS      AVAILABLE
sers01.dbf


/u01/app/oracle/oradata/orcl/u UNDOTBS1    AVAILABLE
ndotbs01.dbf


/u01/app/oracle/oradata/orcl/s SYSAUX      AVAILABLE
ysaux01.dbf


/u01/app/oracle/oradata/orcl/s SYSTEM      AVAILABLE
ystem01.dbf


2. 关闭数据库并且将库启动到mount状态,进行rename操作
SYS@orcl>alter database rename file '/u01/app/oracle/oradata/orcl/system01.dbf' to '/u01/app/oracle/oradata/system01.dbf';


3. 开库并且进行验证
SYS@orcl>alter database open;
Database altered.


SYS@orcl>col file_name for a30
11:15:58 SYS@orcl>select FILE_NAME,TABLESPACE_NAME,STATUS from dba_data_files;


FILE_NAME       TABLESPACE_NAME      STATUS
------------------------------ ------------------------------ ---------
/u01/app/oracle/oradata/orcl/u USERS      AVAILABLE
sers01.dbf


/u01/app/oracle/oradata/orcl/u UNDOTBS1      AVAILABLE
ndotbs01.dbf


/u01/app/oracle/oradata/orcl/s SYSAUX      AVAILABLE
ysaux01.dbf


/u01/app/oracle/oradata/system SYSTEM      AVAILABLE
01.dbf








迁移非系统表空间数据文件


1. 将要迁移的表空间offline
SYS@orcl>alter tablespace  users offline;


2. 拷贝数据文件并且做rename操作
YS@orcl>alter database rename file '/u01/app/oracle/oradata/orcl/users01.dbf' to '/u01/app/oracle/oradata/users01.dbf';
Database altered.


3. 将表空间online
YS@orcl>alter tablespace users online;
Tablespace altered.


4. 查看数据文件的状态
SYS@orcl>col fale_name for a30
11:36:33 SYS@orcl>select FILE_NAME,FILE_ID,TABLESPACE_NAME,BYTES/1024/1024,status from dba_data_files;


FILE_NAME  FILE_ID TABLESPACE_NAME
------------------------------ ---------- ------------------------------
BYTES/1024/1024 STATUS
--------------- ---------
/u01/app/oracle/oradata/users0 4 USERS
1.dbf
  3000 AVAILABLE


/u01/app/oracle/oradata/orcl/u 3 UNDOTBS1
ndotbs01.dbf
   105 AVAILABLE


/u01/app/oracle/oradata/orcl/s 2 SYSAUX


FILE_NAME  FILE_ID TABLESPACE_NAME
------------------------------ ---------- ------------------------------
BYTES/1024/1024 STATUS
--------------- ---------
ysaux01.dbf
   510 AVAILABLE


/u01/app/oracle/oradata/system 1 SYSTEM
01.dbf
   680 AVAILABLE


/u01/app/oracle/oradata/orcl/e 5 EXAMPLE
xample01.dbf


FILE_NAME  FILE_ID TABLESPACE_NAME
------------------------------ ---------- ------------------------------
BYTES/1024/1024 STATUS
--------------- ---------
   100 AVAILABLE
    

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30135314/viewspace-1690715/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: 归档管理
请登录后发表评论 登录
全部评论

注册时间:2015-02-10

  • 博文量
    244
  • 访问量
    325274