oracle客户端备份导入导出数据库(exp,imp)

 
  
 
当从服务器上备份数据到本地 
          
 
   exp  HPTDATA/HPTDATA@HPTDATA F:\backup\1.dmp  
说明 exp是orcale 备份数据库操作语句
第一个 HPTDATA 是服务器数据库用户名  ,第二个HPTDATA是服务器密码 “F:\backup\1.dmp”是备份到本地的路径,1.dmp 
不用新建,可以随便给定名称,会自动生成。
(这里可能有会出现点问题,即:你有没有oracle客户端,没有就玩蛋了(自己玩),如果有那个@HPTDATA即是服务名,也可以用sid(这个吊),那么问题来了,学挖掘机那家强?答:曼陀罗   @HPTDATA怎么来的呢,如果你配置了net manager,如果配置了这个就是了
看截图
 
然后按回车,然后经过漫长的蜗牛般的速度的前进了4多小时,11.5g的数据库就备份完成
到这,才刚刚开始,马蛋,时间不要钱啊!
 
然后在本地oracle服务端,建立和服务器上的oracle服务端一样的表空间,好的瞧下面截图(为毛要截图呢,小编要做一个有图有真相的文档)
 
create tablespace HptData datafile 'F:\backup\HptData.dbf' size 200m autoextend OFF ;
 
了解的情况的曼陀罗的同学可能已经发现了端倪 看下面(不是裤裆!别误会)
好了表空间这样就建立好了 
 
下面就是建立user:
可是我已经有这个用户了,怎么办,just do it 干掉它 (如果仅仅是用户名有了表名,视图,存储过程,作业,触发器,函数and name not in(服务器里对应的名称) 这个效率高
declare 
   i integer;
begin
  select count(*) into i from  Select * from本地的orcale服务端对应的名称 t  where  Exists (select 1 from服务器里orcale服务端对应的名称 h where  h.name =t.name);
if i>0 then
dbms_output.put_line(‘玩蛋不可用,你必须删掉重名的!’);
end if;
end;
,就不用干掉了,留着把,有总不没有强) 反正我已经切掉了,不是! 是干掉了。切的语句drop user HptData cascade;cascade是把数据也一起删掉 ,不删不行
下面就是建立user(即:用户)看截图
 
 
create user HptData identified by HptData default tablespace HptData;(不用多解释了吧)
好了到这用户就建立好了,下面就应该授权了
 
grant connect,dba to HptData;
 
好了接下来就该用户的限额 (为毛啊,这是几个意思啊)(原因:例如某个用户的users表空间限额为30M,当用户试图存储数据到表空间时,如果会导致空间使用超过30M,就会被拒绝。
 
ALTER USER HptData QUOTA UNLIMITED ON HptData;
好了设置好了
好了,到这才刚刚开始,马蛋
开始导入数据
 
好了开始导入了
 
  
 
可是过了一会(也就10秒,传说中的10秒男)马蛋,报错
IMP-00003: 遇到 ORACLE 错误 1659
ORA-01659: 无法分配超出 1 的 MINEXTENTS (在表空间 HPTDATA 中)
IMP-00017: 由于 ORACLE 错误 1659, 以下语句失败:
 
什么原因呢:哦!问题在裤裆那,瞧上面(裤裆那)
在创建表空间时把自动自动增长的属性制成OFF了(autoextend OFF ;)怎么办呢
修改吧
alter database datafile 'F:\backup\HPTDATA.dbf' autoextend on next 100m;
这就修改成没次增长100了哦,
 
小心了哦。
开始导入,马蛋,更慢,擦,好吧一点脾气都没有了
 
其实有效率高点的导入导出的方法,下期奉上
 
要注意的几点,
1)  不要再数据繁忙时导出导入,不然出问题,你就逗比了(数据库没有备份完成就宕掉,画面太美,完全不可想象)
2)  选一个磁盘容量多一点,进行备份(实际上最好在服务器上备份,让后再拷出来,这样效率稍微高点)
3)  导出是哪个@服务名是net manager 配置的
4)  创建表空间要不表空间的扩展属性设置成 on (即:autoextend on;)
拓展:
1)  查看表空间的属性,用dba用户 登录 select * from dba_data_files 
2)  查看表空间的容量 select tablespace_name,sum(bytes)/1024/1024 from dba_data_files t where t.tablespace_name = 'HPTDATA' GROUP BY T.tablespace_name;
3)查看这个用户下的所有单位
select uo.object_name,uo.object_type from user_objects uo where uo.object_type<>'LOB' order by uo.object_type desc
4)干掉用户 drop user HptData cascade;
5)干掉表空间 DROP TABLESPACE HptData INCLUDING CONTENTS AND DATAFILES;
6)修改表空间属性 alter database datafile 'F:\backup\HPTDATA.dbf' autoextend on next 100m;
 
总结:这样的效率太慢,9i以后有效率快的数据泵的技术 下期奉上

你可能感兴趣的:(数据库备份,和导出数据库和迁移数据库)