近来第一次写了实施文档,也有一些收获,及时记录下来,以备后用。
数据库表空间
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的服务端使用,不能在客户端使用
这两对对称使用,即谁导出的就用对应的导入。