加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

system、sysaux、users、undo、temp表空间的管理

(2017-07-13 23:37:06)

                                                                    表空间

     表空间的自动扩展三钟方法,,第一种方法是向表空间中添加一个或者多个数据文件,以后表空间中新的数据可以被写人新的数据文件中。第二种方法是手动扩展表空间中的数据文件。第三种方法是设置数据文件的自动扩展

查看各个表空间中的空闲空间

select tablespace_name,sum(bytes)/1024/1024 as MB from dba_free_space group by tablespace_name;

http://s14/mw690/006cnDEHzy7cCqfR7Dn2d&690

查询表空间是否是自动扩展

Select tablespace_name,file_name,autoextensible from dba_data_files;

结果是值为yes的为自动扩张no的不是自动扩展

http://s3/mw690/006cnDEHzy7cCqhtAgae2&690

查看表空间的状态

表空间的自动扩展

Alter tablespace t01 autoextend on;

手工扩展

当表空间创建成功之后,数据文件大小是确定的一旦数据文件被写满,新的数据就不能被写入这个文件了。此时可以通过sql手工扩展

Alter database  datafile ‘u01/oradata/oracl/tbs1.dbf’ resize 2048M;

 数据文件的自动扩展

Alter database  datafile‘u01/oradata/orcl/tbs1.dbf’ autoextend on next 10M MAXSIZE4096M

修改表空间的参数

Alter database datafile  # autoextend on next 1m  maxsize;

#可以是数据文件的编号也可以是路径,自动扩展的大小,最大扩展到多大。

表空间文件的重命名和重定位

如果需要改变某个数据文件的名称或者目录,可以使用两种方法来实现,分别适合数据库的两种状态

如果数据库当前运行在open状态,按照下面的步骤执行:

1、  将表空间的状态改为offline

2、  操作系统级移动数据文件或者改名

3、  执行rename命令,执行之前目标数据文件必须存在

Alter tablespace datas rename datafile ‘/u01/oradata/orcl/datas01.dbf’to ‘/u01/ oradata/orcl/datas02.dbf’;

4、  将表空间置为online

5、  备份控制文件

http://s5/mw690/006cnDEHzy7cCqmWDGYd4&690

我准备将users表空间中的一个数据文件改名改路径,没有将整个表空间置为offline,而是将需要修改的这个数据文件置为offline,然后通过操作系统拷贝,接着在数据库中重命名。将修改后的数据文件置为online时提示介质恢复。

http://s1/mw690/006cnDEHzy7cCqupj2g30&690

     在此时users这个表空间是不能正常offline和online的,因为别的数据文件已经在线,修改后的这个数据文件又不可用,恢复表空间也会恢复不了的,recover tablespace users;这时对表空间是无法操作。提示数据文件的介质恢复,我们恢复数据文件recover datafile '/u01/app/oracle/ora11g/users11.dbf';恢复完成后将表空间状态置为online。如果修改数据文件路径第一步我们开始将表空间置为offline的话,提示介质恢复的话,就使用recover tablespace users;注意这个方法是在数据库归档模式下,在mount状态下就不存在脱机联机。

      如果数据库没有在open状态,按照下面步骤执行:

1、    启动数据库到mount状态

2、    操作系统级移动数据文件

3、    执行rename命令,执行之前目标数据文件必须存在

4、    打开数据库

获取表空间和数据文件信息

管理表空间首先需要了解数据库的表空间和数据文件信息可以在下面的数据字典和动态性能视图中获取表空间和数据文件的信息;

表空间信息:

DBA_TABLESPACES

V$TABLESPACE

数据文件信息

  DBA_DATA_FILES

  V$DATAFILE

临时数据文件信息:

DBA_TEMP_FILES

V$TEMPFILE

系统表空间管理

1、   空间要够,可以设置自动扩张,可以设置大表空间

2、   单个数据文件即可

3、   系统表空间如何备份,备份的时候必须是归档模式才能在open下完成备份。备份的方式 :热备,rman。非归档模式下只能冷备。只要在系统中没有对数据文件做新的加入和删除,都可以通过这个备份恢复回去。

系统表空间的热备

SQL> alter tablespace system begin backup;

Tablespace altered.

SQL> ho cp /u01/app/oracle/ora11g/system01.dbf /u01/app/oracle/backup/

SQL> alter tablespace system end backup;

Tablespace altered.

http://s16/mw690/006cnDEHzy7cCqBX8f57f&690

Rman备份必须在归档模式下

RMAN> backup tablespace system;

System表空间的恢复

(1)    非归档模式没下备份,不能恢复

(2)    归档模式下有备份,日志完整可以恢复

(3)    归档模式下有备份,日志不完整可以恢复不能保证数据不丢失

    如果系统表空间的数据文件丢失怎么恢复,第一种方法通过热备来恢复,第二种通过rman来恢复。还原方式取决你的备份方式。

http://s1/mw690/006cnDEHzy7cCqGav4Y40&690

通过rman来恢复,rman恢复的两个步骤,先还原在恢复

RMAN> restore tablespace system;

RMAN> recover tablespace system;

Sql->alter database open;

(4)    system表空间不能脱机,不能只读,不能改名

sysaux系统辅助表空间的管理

1、不能更改,不能drop ,不能read only 能offline但sysaux工具程序功能不能使用。

         2、备份,在归档模式下热备和rman备。

       Sql->alter tablespace sysaux begin backup;

       Sql-> ho cp /u01/app/oracle/ora11g/sysaux.dbf /u01/app/oracle/backup/

       Sql->alter tablespace sysaux end backup;

       Rman 备份

        Rman->backup tablespace sysaux;

4、   损坏了怎么办?

有备份,先还原,在恢复

没有备份,将数据库脱机,将内容迁移到新库中去。

那么尝试创建这个文件

Sql->alter database create datafile 3 to ‘/u01/app/oracle/ora11g/sysaux01.dbf’

如果可以创建成功那么数据库还有救,如果不能创建将此文件进行脱机,然后打开数据库,把其他数据赶紧迁移走。

 

                       Users表空间的管理

10g以后默认的用户表空间,当你创建用户之后用户的资料放在user表空间。

查看用户默认的表空间

select * from database_properties where property_name like '�F%';

更改用户默认表空间

Alter database default tablespace users1;

指定单个用户的表空间

create user yankefei identified by oracle default tablespace users1;

如果你创建用户不指定的话就使用我们的默认表空间

查询每个用户的默认表空间可以查看dba_users视图

select username,default_tablespace from dba_users;

Users表空间的备份和恢复

热备

Sql->alter tablespace users1 begin backup;

 Sql->ho cp /u01/app/oracle/ora11g/users1.dbf /u01/app/oracle/backup

Sql->alter tablespace users1 end backup;

Rman备份

RMAN> backup tablespace users1;

表空间有故障丢失损坏,有热备就用热备的恢复方法,rman备用rman恢复方法

假如我们删除uses1表空间的dbf

Sql->alter tablespace users1 offline

*

ERROR at line 1:

ORA-01116: error in opening database file 6

ORA-01110: data file 6: '/u01/app/oracle/ora11g/users1.dbf'

ORA-27041: unable to open file

Linux-x86_64 Error: 2: No such file or directory

Additional information: 3

Sql->alter database datafile 6 offline;

Database altered.

SQL> select status,enabled from v$datafile where file#=6;

STATUS  ENABLED

------- ----------

RECOVER READ WRITE

SQL> select tablespace_name,status from dba_data_files;

TABLESPACE_NAME                STATUS

------------------------------ ---------

USERS                          AVAILABLE

UNDOTBS1                       AVAILABLE

SYSAUX                         AVAILABLE

SYSTEM                         AVAILABLE

USERS                          AVAILABLE

USERS1                         AVAILABLE

SQL> ho cp /u01/app/oracle/backup/users1.dbf /u01/app/oracle/ora11g/

SQL> alter tablespace users1 online;

alter tablespace users1 online

*

ERROR at line 1:

ORA-01113: file 6 needs media recovery

ORA-01110: data file 6: '/u01/app/oracle/ora11g/users1.dbf'

SQL> recover tablespace users1;

Media recovery complete.

SQL> alter tablespace users1 online;

Tablespace altered.

使用rman恢复

RMAN> restore tablespace users1;

RMAN> recover tablespace users1;

SQL> alter tablespace users1 online;

Tablespace altered.

用户自定义的表空间没有备份,而且日志完整是可以恢复,不建议用时间长了归档不完整就不能保证恢复

Alter database create ‘.....’ as .......

SQL> alter tablespace users1 offline;

alter tablespace users1 offline

*

ERROR at line 1:

ORA-01116: error in opening database file 6

ORA-01110: data file 6: '/u01/app/oracle/ora11g/users1.dbf'

ORA-27041: unable to open file

Linux-x86_64 Error: 2: No such file or directory

Additional information: 3

SQL> alter database datafile 6 offline;

Database altered.

SQL> alter database create datafile 6 as '/u01/app/oracle/ora11g/users1.dbf';

Database altered.

SQL> recover tablespace users1;

Media recovery complete.

SQL> alter tablespace users1 online;

Tablespace altered.

没有备份,日志不完整,不能完成恢复的,怎么办?

Alter database datafile#  offline;

Alter database open;

                      临时表空间

Temp有默认的临时表空间、不需要备份、

如何建立临时表空间、表空间组、

如何指定排序的表空间

临时表空间不在了 丢失了损坏了不存在了?1第一个办法建立新的设置为默认的,删除老的.2、第二个办法直接给临时表空间加tempfile就可以了。表空间组,加成员进去

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有