Oracle数据库用户数据完整备份与恢复
- 备份:
1.1 PL/SQL->工具->导出用户对象,选项如图
常用的用户对象包括:
TABLE,SEQUENCE,VIEW,PACKAGE,TYPE,FUNCTION,PROCEDURE,PACKAGE BODY,TREGGER
1.2 PL/SQL->工具->导出表,选项如图
上一步中导出的表中没有数据,所以这一步是要导出表中的所有数据
至此,备份完成,通常SQL文件大也只有几兆,PDE文件有上百兆。
2.恢复
2.1 由于上面我们导出的是一个用户下完整的数据,所以如果要恢复的数据库里面有这个用户,我们首先执行删除用户及用户下所有数据的操作,并结束相关进程,脚本如下:
drop user lqpvplmuser cascade;
select sid,serial# from v$session where username='username';
alter system kill session '150,9019';
2.2 创建用户并赋予权限,脚本如下:
CREATE USER username PROFILE "DEFAULT" IDENTIFIED BY "tyinteplm" ACCOUNT UNLOCK;
GRANT "CONNECT" TO username;
GRANT "RESOURCE" TO username;
grant create cluster to username;
grant create database link to username;
grant create procedure to username;
grant create sequence to username;
grant create table to username;
grant create trigger to username;
grant create type to username;
grant create view to username;
grant debug any procedure to username;
grant debug connect session to username;
grant select any dictionary to username;
2.3 打开一个命令窗口,将备份好的SQL文本内容复制到命令窗口执行,这一步是创建所有的用户对象,包括表,存储过程,函数,序列…… 但是此时表中是没有数据的
2.4 导入表
在PL/SQL->工具->导入表
将会依次执行 禁止所有触发器,禁止所有外键约束,删除所有表数据,插入所有表数据,启用外键约束,启用触发器的操作。
导入用户对象通常几分钟就能解决,导入表中的数据通常要几十分钟甚至几个小时。
当然,上述导出的文件大小和导入所需要的时间都是针对我平常的工作所言,只是起一个参考作用。具体的要视大家的数据量和电脑性能而定。