近来第一次写了实施文档,也有一些收获,及时记录下来,以备后用。

数据库表空间

ORACLE数据库被划分成称作为表空间的逻辑区域——形成ORACLE数据库的逻辑结构。

一个ORACLE数据库能够有一个或多个表空间,

而一个表空间则对应着一个或多个物理的数据库文件。

表空间是ORACLE数据库恢复的最小单位,容纳着许多数据库实体,如表、视图、索引、聚簇、回退段和临时段等。

每个ORACLE数据库均有SYSTEM表空间,这是数据库创建时自动创建的。

SYSTEM表空间必须总要保持联机,因为其包含着数据库运行所要求的基本信息(关于整个数据库的数据字典、联机求助机制、所有回退段、临时段和自举段、所有的用户数据库实体、其它ORACLE软件产品要求的表)。

一个小型应用的ORACLE数据库通常仅包括SYSTEM表空间,然而一个稍大型应用的ORACLE数据库采用多个表空间会对数据库的使用带来更大的方便。

例如:便于理解,把oracle数据库看作一个实在房间,表空间可以看作这个房间的空间,是可以自由分配,在这空间里面可以堆放多个箱子(箱子可以看作数据库文件),箱子里面再装物件(物件看作表)。用户指定表空间也就是你希望把属于这个用户的表放在那个房间(表空间)里面。

表空间是一个虚拟的概念可以无限大,但是需要由数据文件作为载体。

1)查询当前用户表空间

select default_tablespace from dba_users where username='LHMZ_OA';

 

 

其中LHMZ_OA是我当前登录用户的用户名

2) 查询所有表空间

select * from dba_tablespaces;

 

 

另一种方法也可查询到

select * from v$tablespace;

 

 

3)查询表空间下的用户

select distinct s.owner from dba_segments s where s.tablespace_name ='LHMZ_OA';

其中LHMZ_OA是表空间名

 

 

 

数据库备份

1)       查看管理理员目录

select * from dba_directories;

 

 

2)       创建逻辑目录(使用system创建)

create directory dir_work as 'c:\test';

3)       按用户导出

例子:

expdp lhmz_oa/000000@platformdb schemas=lhmz_oa directory=dir_work dumpfile=lhmz_oa.dmp logfile=lhmz_oa.log

 

 

 

4)       按用户导入

例子:


impdp system/000000@platformdb directory=DIR_ZDL REMAP_SCHEMA=projectmanage:relief REMAP_TABLESPACE=tbs_project:RELIEF dumpfile=RELIEF.DMP

 

 

备注:exp和imp是客户端工具程序,既可以在客户端使用也可以在服务端使用。

Expdp和impdp是服务器端的工具程序,所以只能在oracle的服务端使用,不能在客户端使用

这两对对称使用,即谁导出的就用对应的导入。