Oracle数据库用户数据完整备份与恢复

使用PLSQL-Developer工具可以快速便捷地完成Oracle数据库用户、表的备份恢复。

Oracle数据库用户数据完整备份与恢复

1. 备份

1.1   PL/SQL->工具->导出用户对象,选项如图

常用的用户对象包括:

TABLE,SEQUENCE,VIEW,PACKAGE,TYPE,FUNCTION,PROCEDURE,PACKAGE BODY,TREGGER

选择需要导入的用户对象,导出.sql文件,此步骤导出的是建表语句,包括存储过程、触发器、视图等 。

1.2  PL/SQL->工具->导出表,选项如图

按ctrl键选择需要导出的所有对象

上一步中导出的表中没有数据,所以这一步是要导出表中的所有数据(选择PL/SQL Developer方式。另外两种方式Oracle导出、SQL插入后边再介绍)

至此,备份完成,通常SQL文件大也只有几兆,PDE文件有上百兆。

2.恢复

2.1   由于上面我们导出的是一个用户下完整的数据,所以如果要恢复的数据库里面有这个用户,我们首先执行删除用户及用户下所有数据的操作,并结束相关进程,脚本如下:

drop user username cascade;

select sid,serial# from v$session where username=‘username‘;

alter system kill session sessionID;

说明:如果要把备份还原到其它数据库上,则不需要做上面的操作。

2.2   创建用户并赋予权限,脚本如下:

说明:要创建用户自己的数据表空间及临时表空间

CREATE USER username IDENTIFIED BY 12345678 DEFAULT TABLESPACE test_data TEMPORARY TABLESPACE test_temp;

Grant create session to username;
grant connect to username with admin option; 
grant resource to username with admin option;
-- Grant/Revoke system privileges
grant alter any role to username; 
grant alter any sequence to username; 
grant alter any table to username; 
grant alter any trigger to username; 
grant alter tablespace to username; 
grant comment any table to username; 
grant create any sequence to username; 
grant create any table to username; 
grant create any trigger to username; 
grant create any view to username; 
grant create materialized view to username with admin option; 
grant create public synonym to username with admin option; 
grant create role to username; 
grant create session to username with admin option; 
grant create synonym to username with admin option; 
grant create tablespace to username; 
grant create user to username; 
grant create view to username with admin option; 
grant drop any role to username; 
grant drop any sequence to username; 
grant drop any table to username; 
grant drop any trigger to username; 
grant drop tablespace to username; 
grant drop user to username; 
grant grant any role to username; 
grant insert any table to username; 
grant select any table to username; 
grant unlimited tablespace to username with admin option; 
grant update any table to username;

2.3   打开一个命令窗口,将备份好的SQL文本内容复制到命令窗口执行,这一步是创建所有的用户对象,包括表,存储过程,函数,序列…… 但是此时表中是没有数据的

2.4   导入表

在PL/SQL->工具->导入表(按ctrl键选择需要导入的表)

将会依次执行 禁止所有触发器,禁止所有外键约束,删除所有表数据,插入所有表数据,启用外键约束,启用触发器的操作。导入用户对象通常几分钟就能解决,导入表中的数据通常要几十分钟甚至几个小时。

=======================

PLSQL工具导出表时三种导出方式说明:

PL/SQL工具导出表时包含三种方式导出Oracle表结构及数据,三种方式分别为:Oracle Export (客户端exp工具)、SQL Inserts、PL/SQL Developer,下面分别简单介绍下区别:

第一种方式是导出.dmp格式的文件,.dmp是二进制文件,可跨平台,还能包含权限,效率不错,用的最为广泛。跟exp/imp工具进行导入导出方式一致。http://www.cnblogs.com/rusking/p/4006166.html

第二种方式导出.sql格式的insert into 脚本,可用文本编辑器查看,通用性比较好,效率不如第一种,适合小数据量导入导出。尤其注意的是表中不能有大字段(blob,clob,long),如果有,会提示不能导出(提示如下: table contains one or more LONG columns cannot export in sql format,user Pl/sql developer format instead)。

第三种方式导出.pde格式的文件,.pde为PL/SQL Developer自有的文件格式,只能用PL/SQL Developer工具导入导出,不能用文本编辑器查看。

导入数据时,也有以上三种导出方式对应的导入方式:

原文链接:http://www.cnblogs.com/Acamy/p/5893724.html

时间: 2024-10-12 20:37:31

Oracle数据库用户数据完整备份与恢复的相关文章

Oracle数据库批量数据导出工具开发

Oracle数据库批量数据导出工具开发 需求 最近工作中遇到一个需求,用户频繁要求从后台批量导出大量数据.目前的导出方式是使用PL/SQL Developer工具连接Oracle数据库,编写SQL语句,使用PL/SQL Developer工具自带的导出Excel文件的功能进行导出. 编写SQL查询结果 2.选择导出Excel文件 选择导出Excel文件时可以选择导出XLS.XLSX两种格式的文件. 遇到的问题:当用户要求导出的数据条数太大,超过XLS或者XLSX两种文件可以存储的最大行数时即导出

删除oracle数据库用户

手工删除ORACLE数据库用户时常会出现会话进程仍在使用导致删除失败的情况.需要查询会话并将会话删除才能成功将数据库用户删除,比较不方便. 适用场景 自动删除oracle数据库用户 脚本代码 脚本名称:drop_user.sh #!/bin/bash function isExist_dbuser() { [ $# -ne 1 ] && { printf "Call the function isExist_dbuser error.\n";return 1;} loc

oracle数据库删除数据Delete语句和Truncate语句的对比

oracle数据库删除数据Delete语句和Truncate语句的对比 当表中的数据不需要时,则应该删除该数据并释放所占用的空间,删除表中的数据可以使用Delete语句或者Truncate语句,下面分别介绍. 一.delete语句 (1)有条件删除    语法格式:delete [from]  table_name  [where condition]; 如:删除users表中的userid为‘001’的数据:delete from users where userid='001'; (2)无条

Oracle数据库用户及权限管理_超越OCP精通Oracle视频课程培训08

课程目标 Oracle视频教程,风哥本套oracle教程培训学习用户的管理/创建/删除/修改,.权限与角色的创建与管理,密码策略180天过期的处理,数据库监控与备份权限的用户等的Oracle数据库用户的日常管理与维护. 适用人群 IT相关从业人员.Oracle数据库技术人员.想加工资的.想升职的都可以. 课程地址: http://edu.51cto.com/course/course_id-6472.html 课程简介 本课程介绍: Oracle视频教程,风哥本套oracle教程培训学习用户的管

简便删除已经存在的oracle数据库用户UPAY3LINGXI_YS

简便删除已经存在的oracle数据库用户UPAY3LINGXI_YS:1.Toad工具用oracle最大权限用户登录system2.查看正在使用UPAY3LINGXI_YS的进程select * from v$session where username='UPAY3LINGXI_YS'3.停掉所有使用UPAY3LINGXI_YS的进程4.删除表空间(drop)5.删除用户(drop)

C#连接Oracle数据库查询数据

C#连接Oracle数据库可以实现许多我们需要的功能,下面介绍的是C#连接Oracle数据库查询数据的方法,如果您对C#连接Oracle数据库方面感兴趣的话,不妨一看. using System; using System.Collections.Generic; using System.ComponentModel using System.Data.OracleClient;;//这行和下一行都要先在引用中填加system.data.oracleclient using System.Da

Oracle数据库用户密码设为无限期

oracle数据库用户密码默认为180天,密码过期后将无法登陆数据库. 一.查询用户所属PROFILE SQL> SELECT username,PROFILE FROM dba_users; USERNAME PROFILE ------------------------------ ------------------------------ MGMT_VIEW DEFAULT SYS DEFAULT SYSTEM DEFAULT DBSNMP MONITORING_PROFILE SYS

Navicat连接Oracle数据库用户权限问题

解决Navicat连接Oracle数据库用户权限问题: 第一步:在cmd窗口运行[sqlplus] 第二步:输入Oracle的用户名和口令连接Oracle数据库. 第三步:执行授权代码 [grant dba to 用户名;] 第四部:执行[grant all privileges to 用户名;] 原文地址:https://www.cnblogs.com/lyang-a/p/11638494.html

Oracle数据库备份数据缺失的问题

项目中一直在使用Oracle数据库,由于我之前更多的是关注ORM映射框架,几乎没有关注过Oracle特性的东西,很多东西都不知道,而且项目中换数据库的概率几乎为零,所以有必要好好研究一下Oracle.正所谓,不怕不知道,就怕不知道嘛.不然遇到问题,都不知道从哪里下手. 这两天的Oracle学习,收获不小.前几天测试中遇到很多的稀奇古怪的问题,都被很好的解释了.这里就一个典型的例子谈一谈. 就是在测试阶段,看着经理熟练的操作Oracle的各个指令,内心就已经有了一点不平静.经理就是经理,这都是多少