一、备份/恢复(整个用户)
1、备份(整个用户)
(1)、检查oracle客户端的字符集和服务端oracle实例的字符集是否一致,服务端可以问DBA,客户端的字符集:注册表--HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0,看NLS_LANG的值,比如:SIMPLIFIED CHINESE_CHINA.WE8ISO8859P1。那么服务端的字符集也必须是:WE8ISO8859P1。
(2)、cmd下执行命令:exp user/password@netname file=back.dmp
2、恢复(整个用户)
(1)首先定位要恢复到的数据库服务器,即确定目标,恢复到什么机器上(假设为机器Tornado);
(2)要么是直接在这个服务器上操作,执行有关恢复操作,这时要预先把备份文件user.dmp拷贝到这个tornado上;要么是通过客户端机器执行恢复操作,那么要把备份文件拷贝到这个客户端上。
(3)无论直接在服务器还是通过客户端,都要检查客户端字符集(注册表)和服务器的实例的字符集是否一致,要求保持一致,并且和备份的时候用到的字符集也相同;
(4)创建要恢复到的用户,可能和备份时使用的用户名相同,也可以和备份时使用的用户名不同;如果恢复到的用户已经存在,要先把这个用户删除,然后再重新创建,创建oracle用户的方法如下图:
(5)cmd下执行命令:
如果恢复时的用户和备份时的用户名相同,使用命令:
imp user/password@netname file=back.dmp ignore=Y
如果恢复时的用户user2和备份时的用户user1不同,使用命令:
imp system/syspassword@netname fromuser=user1 touser=user2 file=back.dmp ignore=Y
二、备份/恢复(几个表)
1、备份(几个表)
exp user/password@netname file=someTable.dmp tables=(user,customer,teacher)
2、恢复(几个表)
(1)清理目标数据库中几个表中的数据
truncate table user;
truncate table customer;
truncate table teacher;
(2)imp user/password@netname file=someTable.dmp ignore=Y
注意:整个用户备份时,不存在sequence问题,但是部分表做备份时就可能存在sequence问题,导入的数据中的id,大于sequence中定义的最大值。
解决办法:删除sequence,重新建。
Oracle数据备份和恢复的三种方法:
http://tech.ccidnet.com/art/1107/20061019/926277_1.html