oracle为什么逻辑恢复一定要保证表空间名与备份的dmp一致?
一、概念:
表空间是数据库的逻辑划分,一个表空间只能属于一个数据库。所有的数据库对象都存放在指定的表空间中。但主要存放的是表, 所以称作表空间。
oracle中至少存在一个表空间,即SYSTEM的表空间。
二、创建表
-- Create table
create table test
(
ID INTEGER,
)
tablespace HOHEHOT
pctfree 0
initrans 4
maxtrans 255
storage
(
initial
400
minextents
1
maxextents
unlimited
);
从以上语句与表空间的概念不难理解,表空间是逻辑存放表的地方。而每张表的创建都指定了表空间。dmp逻辑恢复的过程如果找不到相应的表空间,则恢复过程中执行create
table时便会报错,提示找不到相应表空间。
三、如何恢复到新的表空间中
在实际应用过程中可能,一个服务器上要部署多个不同地方的相同服务。但是不能放在同一个表空间下。这时我们可以在备份之前或者恢复之后需要修改下表空间名(注:oracle10g以上支持alter
tablespace tablespace_name rename to
tablespace_name_new语句修改表空间名),修改为自己熟悉的表空间名后再备份出相应的dmp文件。注意修改表空间名后应该修改相应用户下默认表空间名。如:alter
user user_name identified by passwd default tablespace
tablespace_name_new temporary tablespace temp;