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;