oracle备份、还原

 ----第一步:设置空表导出

----由于Oracle 11G在用EXPORT导出时,空表不能导出。解决方法如下:(11G中有个新特性,当表无数据时,不分配segment,以节省空间)

select 'alter table '||table_name||' allocate extent(size 64k);' from tabs t
where not exists (select segment_name from user_segments s where s.segment_name=t.table_name);

--在plsql里面执行以上语句 然后把查询结果集复制出来,执行复制的语句数据

2、首次安装完oracle数据库,用sysdba登录plsql执行如下语句,再进行表空间及用户创建:

将创建segment的参数设置为false,以后空表就可以任意导入导出。

alter system set deferred_segment_creation=false;

---注意:修改此设置后创建库的表空间可以实现空表任意导入导出,但修改设置前的数据库,必须执行第一步的导出空表设置语句。

 

---第二步:备份数据库

---开始——运行,输入CMD,输入备份语句

exp userid=abc/abc@orcl file=D:\01abc\数据库备份\abc20160520.dmp   log=D:\01abc\数据库备份\abc20160520.log

---说明:exp userid=用户名/密码@net服务名 file=(备份数据库文件路径)\备份文件名称.dmp   log=(日志路径)\日志路径.log

 

---第三步:还原数据库

---开始——运行,输入CMD,输入还原语句

imp userid=abc/abc@orcl  file=D:\01abc\数据库备份\abc20160520.dmp  full=y   log=D:\01abc\数据库备份\abc20160907.log

---说明:imp userid=用户名/密码@net服务名 file=(备份数据库文件路径)\备份文件名称.dmp   full=y   log=(日志路径)\日志路径.log,注意和备份语句的区别在于①命令不同是imp ②增加了full=y

 

--其他

1、如果是备份一张表或几张表,可以在plsql里面通过“工具——导出表”,选择一张或多张表完成,但是这种方式不能备份视图等,全库备份需要用语句的方式备份。

2、oracle用户的密码必须在180天内更改,否则启动数据库的时候会提示连接失败。防止oracle用户密码过期:

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

posted @ 2017-06-10 13:12  GIS喜喜  阅读(217)  评论(0编辑  收藏  举报