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

查看各个表空间中的空闲空间
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
Alter database
修改表空间的参数
Alter database datafile
#可以是数据文件的编号也可以是路径,自动扩展的大小,最大扩展到多大。
表空间文件的重命名和重定位
如果需要改变某个数据文件的名称或者目录,可以使用两种方法来实现,分别适合数据库的两种状态
如果数据库当前运行在open状态,按照下面的步骤执行:
1、
2、
3、
Alter tablespace datas rename datafile ‘/u01/oradata/orcl/datas01.dbf’to ‘/u01/ oradata/orcl/datas02.dbf’;
4、
5、
http://s5/mw690/006cnDEHzy7cCqmWDGYd4&690
我准备将users表空间中的一个数据文件改名改路径,没有将整个表空间置为offline,而是将需要修改的这个数据文件置为offline,然后通过操作系统拷贝,接着在数据库中重命名。将修改后的数据文件置为online时提示介质恢复。
http://s1/mw690/006cnDEHzy7cCqupj2g30&690
1、
2、
3、
4、
获取表空间和数据文件信息
管理表空间首先需要了解数据库的表空间和数据文件信息可以在下面的数据字典和动态性能视图中获取表空间和数据文件的信息;
表空间信息:
DBA_TABLESPACES
V$TABLESPACE
数据文件信息
临时数据文件信息:
DBA_TEMP_FILES
V$TEMPFILE
系统表空间管理
1、
2、
3、
系统表空间的热备
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)
http://s1/mw690/006cnDEHzy7cCqGav4Y40&690
通过rman来恢复,rman恢复的两个步骤,先还原在恢复
RMAN> restore tablespace system;
RMAN> recover tablespace system;
Sql->alter database open;
(4)
sysaux系统辅助表空间的管理
1、不能更改,不能drop ,不能read only 能offline但sysaux工具程序功能不能使用。
4、
有备份,先还原,在恢复
没有备份,将数据库脱机,将内容迁移到新库中去。
那么尝试创建这个文件
Sql->alter database create datafile 3 to ‘/u01/app/oracle/ora11g/sysaux01.dbf’
如果可以创建成功那么数据库还有救,如果不能创建将此文件进行脱机,然后打开数据库,把其他数据赶紧迁移走。
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->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
------- ----------
RECOVER READ WRITE
SQL> select tablespace_name,status from dba_data_files;
TABLESPACE_NAME
------------------------------ ---------
USERS
UNDOTBS1
SYSAUX
SYSTEM
USERS
USERS1
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#
Alter database open;
Temp有默认的临时表空间、不需要备份、
如何建立临时表空间、表空间组、
如何指定排序的表空间
临时表空间不在了 丢失了损坏了不存在了?1第一个办法建立新的设置为默认的,删除老的.2、第二个办法直接给临时表空间加tempfile就可以了。表空间组,加成员进去