使用PL sql提供的功能可以快速的备份恢复oracle数据。
1 导出存储过程,触发器,序列等所有用户对象。(备份)
在PL/SQL Developer的菜单Tools(工具) => Export User Objects(导出用户对象)中出来一个对话框界面

建议红色框住部分都不选,这样执行这个sql 时,就根据当前你的登录账户来进行创建。 在对象列表中ctrl+a 全选所有(如果你只导出部分,可单独选择)
设置 输出文件地址,文件名。 点击导出完成。
2 导出数据。(备份)
在PL/SQL Developer的菜单Tools(工具) => 导出表 中出来一个对话框界面

如果 数据量较大,选择oracle导出,勾压缩选项,然后设置输出文件地址。 如果只导出部分数据,可以在Where 处添加条件。例如 rownum<=1000 ( 导出1000条记录),此种方式导出dmp 格式文件。
如果数据量较小,可以选择sql 插入,此种方式导出sql文件。
上图的选项,勾选 约束,索引,行数,触发器。
注意:如果表中包含clob 或nclob 字段,就只能用dmp格式进行导入,如果是少量表,不包含这种字段,可以用sql插入方式。
还原时,注意需要先还原dmp文件。
3 表数据还原 。
a. 如果dmp 文件,那么在PL/SQL Developer的菜单Tools(工具) => 导入表 中出来一个对话框界面

可以在 “到用户” 处 选择你登录的账户。
b 如果是sql 格式文件,一样在PLSQL中新建一个命令窗口 (command windows) , 粘贴(ctrl+v) 刚才负责的sql内容。然后就开始自动执行还原了。
4 还原其他对象(存储过程,触发器,序列,函数等)
a. 用PLSQL 登录要还原的Oracle。此时你登录的账号是什么,还原就在该账号下。
b. 把先前备份的表结构sql文件打开,全选内容。 然后在PLSQL中新建一个命令窗口 (command windows) , 粘贴(ctrl+v) 刚才负责的sql内容。然后就开始自动执行还原了。
以前导数据库信息的时候,总是会先开启sql窗口,把自己手写的建表文件复制进去,然后再导入数据信息。 今天突然懒得去找以前的建表文件,而想用SLSQL直接从一个数据库中导出信息,导入到另外一个数据库中,发现自己对PLSQL的导入导出完全不了解。下面详细记录一下。 先写一个正确的方法: 导出步骤: 1 tools ->export user object 选择选项,导出.sql文件 2 tools ->export tables-> Oracle Export 选择选项导出.dmp文件 导入步骤: 1 tools->import tables->SQL Inserts 导入.sql文件 2 tools->import talbes->Oracle Import然后再导入dmp文件 数据库的导入导出成功 Tools->Export User Objects导出的是建表语句(包括存储结构) Tools->Export Tables里面包含三种导出方式: 三种方式都能导出表结构以及数据,网上说三种方法有区别,如下: Oracle Export,Sql Insert,pl/sql developer 第一种是导出为.dmp的文件格式,.dmp文件是二进制的,可以跨平台,还能包含权限,效率也很不错,用得最广 第二种是导出为.sql文件的,可用文本编辑器查看,通用性比较好,但效率不如第一种,适合小数据量导入导出。尤其注意的是表中不能有大字段(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自己导入导出;不能用编辑器查看。 个人比较中意第二种方法,毕竟是SQL文件嘛,自己还可以看,想改也方便 操作选项 一般一些选项选择看字面意思就可以了,重要的上面已经写了(主要include privilege只是包含一些建表信息,并不包括存储过程信息,话说我被这个选项骗了……还是忽略它吧……) 选择drop tables信息中会包含删表语句(注意:选了drop tables就已经默认选了create tables 和 truncate tables),create tables是建表信息,truncate tables和delete tables都是再再插入数据前先删除原有的信息,这两个是二选一,但是truncate tables效率高很多。 where clause可以输入很多命令,比如rownum < 10000只导出每个表的前10000行,等等信息,具体在查信息。 命令形式的导入导出: |
PLSQL导入导出数据库-1
如果只导出表的结构(建表语句),不导出表的数据,可用Tools--Export User Objects
选中要导出的表,设置好导出的路径和各个参数后,点击Export就OK
PS:这种方式只能导出属于这个用户的表,其他用户的表不能导出,建议用命令行导出(exp, imp)
如果想将表结构,表的数据,触发器,函数之类的全部导出,可用Tools--Export Tables
选中要导出的表(可选多个),导出方式有三种:
Oracle Export,Sql Insert,pl/sql developer
第一种是导出为.dmp的文件格式,.dmp文件是二进制的,可以跨平台,还能包含权限,效率也很不错,用得最广
第二种是导出为.sql文件的,可用文本编辑器查看,通用性比较好,但效率不如第一种,适合小数据量导入导出。尤其注意的是表中不能有大字段(blob,clob),如果有,会提示不能导出,可以用第一种和第三种方式导出。
第三种是导出为.pde格式的,.pde为Pl/sql developer自有的文件格式,只能用Pl/sql developer自己导入导出;不能用编辑器查看,效率不知道怎么样
PS:只有“Oracle Export”方式导出再导入后,表结构和索引结构没有发生变化,另两种方式都改变了索引类型。
导入的情况和导出一样
1.完整的导出整个数据库表结构即dmp文件方法:
Tools-->Export Tables ,选择Oracle Export 默认选项即可,在Output file选择一个输出目标
点击Export,即可导出表结构
2.导出表中数据:
Tools-->Export Tables :选择SQL Inserts 遇到大字段(clob,blob)会出问题导不出来,在此可以
选择需要导出的表,在Output file中选择导出的目标,点击Export即可导出,在此有几个选项
可以去掉所有的可选项直接导出
3.导出数据库中所有的或是所选表的数据库建表脚本:
Tools-->Export User Objects去掉下面三个include *可选项,选择Single file)在Output file
中选择输出目标,点击Export即可
PLSQL导入导出数据库-2
导出步骤:
1 tools ->export user object 选择选项,导出.sql文件
2 tools ->export tables-> Oracle Export 选择选项导出.dmp文件
导入步骤:
1 tools->import tables->SQL Inserts 导入.sql文件
2 tools->import talbes->Oracle Import然后再导入dmp文件
数据库的导入导出成功
Tools->Export User Objects导出的是建表语句(包括存储结构)
Tools->Export Tables里面包含三种导出方式:
三种方式都能导出表结构以及数据,网上说三种方法有区别,如下:
Oracle Export,Sql Insert,pl/sql developer
第一种是导出为.dmp的文件格式,.dmp文件是二进制的,可以跨平台,还能包含权限,效率也很不错,用得最广
第二种是导出为.sql文件的,可用文本编辑器查看,通用性比较好,但效率不如第一种,适合小数据量导入导出。尤其注意的是表中不能有大字段(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自己导入导出;不能用编辑器查看。
个人比较中意第二种方法,毕竟是SQL文件嘛,自己还可以看,想改也方便
操作选项
一般一些选项选择看字面意思就可以了,重要的上面已经写了(主要include privilege只是包含一些建表信息,并不包括存储过程信息,话说我被这个选项骗了……还是忽略它吧……)
选择drop tables信息中会包含删表语句(注意:选了drop tables就已经默认选了create tables 和 truncate tables),create tables是建表信息,truncate tables和delete tables都是再再插入数据前先删除原有的信息,这两个是二选一,但是truncate tables效率高很多。
where clause可以输入很多命令,比如rownum < 10000只导出每个表的前10000行,等等信息,具体在查信息。
命令形式的导入导出:
暂未查信息……
PLSQL导入导出数据库-3
导出数据库
建议使用plsql6.0,这样可以在导出sql文件的时候不记录原有表空间的名字
步骤:
1 tools --export user object:去除 include storage 选项,点击"export"按钮
这里不要用export tables 这样就没法导出存储过程,只有表结构
2 tools --export tables 导出dmp文件
导入数据库
步骤:
1 tools--import tables 导入sql文件,然后再导入dmp文件
=================================
在plsql中如何导出dmp文件
tool - export tables 选中要导出的表点击第一个选项卡 oracle export 选择文件保存的路径,确认下导出所用的exp.exe应用程序和要导出的数据库的版本是一致的,才能正确导出,否则会报版本不一致的错误,默认导出文件的后缀是dmp
同理,导入dmp文件,tool - import tables 点击第一个选项卡 oracle import 选择导入文件的路径,确认下导入所用的imp.exe应用程序和要导入的数据库的版本是一致的,才能正确导出,否则会报版本不一致的错误
==================================
导出数据到excel文件:
选中数据表--query data--选中要导出的数据--右键copy to excel
excel数据导入到数据库:
1.在Excel中准备好要导入的数据。具体操作:在Excel中,把第一列设置为空列,第二列以后的列应与要导入的数据表的字段相对应。
2.登录PLSQL Developer,找到需要导入数据的数据库表后,点击右键--edit data,进入了编辑此表的数据对话框,并点击最左侧选中一空行。
3.copy Excel表中的数据记录,将数据粘贴到上步中PLSQL Developer显示的表列中。
4.点击PLSQL Developer中的对号按钮进行Post。
注意:PLSQL Developer不认识“-” ?