oracle导出导入数据库
- 一.给空表分配空间:
这一步一定要做,否则空表不能导出.
首先连接你要导出的库,在该库上执行以下sql:
select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows = 0
执行结果是一连串的sql语句,类似alter table tablename allocate extent;选择所有结果,复制,在库里统一执行一下.
我在网上看好多人要在后面加一句 where num_rows = 0,意思我懂,就是只对数据条数为0的表生成要执行的sql语句,但是这样似乎仍然会有漏的表,我使用
select table_name,num_rows from user_tables 在库里执行一下发现num_rows的值有的为null,不是0,反正看需要选择加不加吧

当然后面不加where条件的话,就把所有的表都设置了一遍,事实上有数据的表时不需要设置的,如果不想这样,就加个where num_rows = 0 or num_rows is null,这样应该就没有遗漏的表了.
- 二.导出dmp文件
在cmd中执行一下命令导出dmp文件:
exp 用户名/密码@监听名 file=E:\数据库名.dmp owner=(用户名) log=E:\日志名.log indexes=n statistics=none
这里加了owner表示将该用户下所有表导出
注意@后的监听名,一般你的oracle安装目录下有个tnsnames.ora文件,玩过pl/sql应该知道,经常要改它的,在这个文件加入监听配置

经过一段时间后控制台会提示导出成功,取决于数据库大小.
- 三.创建表空间
- 1.先查看以往数据库对应的文件路径在哪里:
SELECT t1.name, t2.name FROM v$tablespace t1, v$datafile t2 WHERE t1.ts#=t2.ts# order by t1.name;
注意在本地执行该命令的用户需拥有dba权限,否则会提示该表不存在,可以登录sqlplus,使用 conn / as sysdba登录,然后GRANT "DBA" TO 用户; 或者直接在sysdba中执行该sql,查看结果.
- 2.创建表空间
create tablespace mytisjs datafile 'E:\APP\ADMINISTRATOR\ORADATA\ORCL\mytisjs.dbf' (mytisjs.dbf前面的路径为你之前查询出来的路径,其实这里路径可以写任何位置,只是和之前的数据库统一存放在同一位置比较好) size 2000m autoextend on next 500m maxsize 10096m extent management local;
- 3.创建临时表空间
create temporary tablespace mytisjs_temp tempfile 'E:\APP\ADMINISTRATOR\ORADATA\ORCL\mytisjs_temp.dbf' size 500m autoextend on next 500m maxsize 2048m extent management local;
- 4.创建用户
CREATE USER test IDENTIFIED BY test
DEFAULT TABLESPACE "MYTISJS" (指定表空间为刚刚创建的表空间,注意表空间名称要大写)
TEMPORARY TABLESPACE "MYTISJS_TEMP";
- 5.授予权限
GRANT "DBA" TO test;
GRANT "CONNECT" TO test;
GRANT "RESOURCE" TO test;
- 四.导入dmp文件
用imp命令导入
imp test/test@mytisjs file=E:\tisjs.dmp log=E:\tisjs.log full=y ignore=y
其中test/test是用户名/密码 mytisjs和之前一样,在tnsnames.ora文件加入对应的配置,如果我要导入本地,就HOST就为localhost,file后的路径就是你之前导出的dmp文件路径,log也一样.
等一段时间就会提示导入成功,数据库就可以使用了.
如果dmp文件在本地,导入到本地数据库,直接imp test/test file=E:\tisjs.dmp log=E:\tisjs.log full=y ignore=y就可以了,不用配置监听也可以
- 五.表空间相关说明:
- 1.查看数据库的表空间,包括临时表空间
select * from (
Select a.tablespace_name,
to_char(a.bytes/1024/1024,'99,999.999') total_bytes,
to_char(b.bytes/1024/1024,'99,999.999') free_bytes,
to_char(a.bytes/1024/1024 - b.bytes/1024/1024,'99,999.999') use_bytes,
to_char((1 - b.bytes/a.bytes)*100,'99.99') || '%' use
from (select tablespace_name,
sum(bytes) bytes
from dba_data_files
group by tablespace_name) a,
(select tablespace_name,
sum(bytes) bytes
from dba_free_space
group by tablespace_name) b
where a.tablespace_name = b.tablespace_name
union all
select c.tablespace_name,
to_char(c.bytes/1024/1024,'99,999.999') total_bytes,
to_char( (c.bytes-d.bytes_used)/1024/1024,'99,999.999') free_bytes,
to_char(d.bytes_used/1024/1024,'99,999.999') use_bytes,
to_char(d.bytes_used*100/c.bytes,'99.99') || '%' use
from
(select tablespace_name,sum(bytes) bytes
from dba_temp_files group by tablespace_name) c,
(select tablespace_name,sum(bytes_cached) bytes_used
from v$temp_extent_pool group by tablespace_name) d
where c.tablespace_name = d.tablespace_name
)
- 2. 查看当前用户的使用的表空间及默认表空间,如果结果太多可以自己添加where条件过滤到当前用户
select username,default_tablespace,temporary_tablespace
from dba_users
- 3.临时表空间满了查询可能会报错,执行如下命令收缩临时表空间
ALTER TABLESPACE MYTISJS_TEMP SHRINK SPACE
其中MYTISJS_TEMP为要收缩的临时表空间名
- 4.删除用户及表空间
DROP USER TISJS5 CASCADE;
drop tablespace MYTISJS5 including contents and datafiles;
drop tablespace MYTISJS5_TEMP including contents and datafiles;
oracle导出导入数据库的更多相关文章
- Oracle导出/导入数据库的三种模式
导出 模式一:全量导出(慎用) exp 用户名/密码@数据库实例 owner=用户名 file=文件存储路径 log=日志存储路径 full=y 栗子:exp Mark/123456@151.2.*. ...
- Oracle导出导入数据库的方式
一.导入导出.dmp文件 利用cmd的操作命令导出,详情如下(备注:方法二是转载网上的教程):1:G:\Oracle\product\10.1.0\Client_1\NETWORK\ADMIN目录下有 ...
- atitit.sql server2008导出导入数据库大的表格文件... oracle mysql
atitit.sql server2008导出导入数据库大的表格文件... 1. 超过80M的文件是不能在查询分析器中执行的 1 2. Oracle ,mysql大的文件导入 1 2.1. 使用sql ...
- mysql进阶(十三)命令行导出导入数据库
MySQL命令行导出导入数据库 MySQL命令行导出数据库: 1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录 如我输入的命令行:cd D:\Program Files\ ...
- 第二百九十节,MySQL数据库-MySQL命令行导出导入数据库,数据库备份还原
MySQL命令行导出导入数据库,数据库备份还原 MySQL命令行导出数据库:1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录如我输入的命令行:cd C:\Program ...
- oracle 导出导入常见问题
oracle 导入导出常见有两种方法 EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用.EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户 ...
- Oracle导出导入数据
Oracle数据导入导出imp/exp就相当与oracle数据还原与备份, 利用这个功能你可以构建俩个相同的数据库,一个用来测试,一个用来正式使用. 可以在SQLPLUS.EXE或者DOS(命令行)中 ...
- oracle导出/导入 expdp/impdp
Oracle使用EXPDP和IMPDP数据泵进行导出导入的方法(常用方法) 使用expdp和impdp时应该注重的事项: 1.exp和imp是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用 ...
- Oracle导出导入
导出 exp 用户名/密码 file=文件名.dmp full=y; 导入 imp 用户名/密码 file=文件名.dmp full=y; 使用EXPDP和IMPDP时应该注意的事项: EXP和IMP ...
随机推荐
- 简单的策略模式Strategy演示
策略模式,即规则在变化之中,结果终归为一. 公司给员工计算工资,如有加班费,差旅费,每个月的生活补帖等等其它费用需要计算.这个费的规则是不尽相同. 不管策略的规则怎样,终归需要计算出一个结果 工资: ...
- Ubuntu 16.04 下部署Node.js+MySQL微信小程序商城
转载于这篇文章 关于pm2看这篇文章 最近在研究小程序,申请了域名之后,再一次来配置环境,根据作者的步骤基本上完成了网站的架构,但由于环境路径等不同,配置上会有所不同,因此记录下来. 1.更新系统和安 ...
- 【php增删改查实例】第十二节 - 数据删除功能
1.单条数据删除 思路:首先,需要也只能允许用户勾选一条数据,然后弹出一个确认框,问用户是否真的要删除?如果是,就把ID传递到PHP,然后写一个delete语句,通过ID去删除即可. 画好了按钮之后, ...
- [C#]使用Windows Form开发的百度网盘搜索工具
BaiduDiskSearcher 用C#编写的百度网盘搜索工具(.NET4.0 & Visual Studio 2017) 功能 1.搜索任意名称的百度网盘共享文件 2.可以左键双击打开网盘 ...
- Linux下针对服务器网卡流量和磁盘的监控脚本
1)实时监控网卡流量的通用脚本: [root@ceph-node1 ~]# cat /root/net_monit.sh #!/bin/bash PATH=/bin:/usr/bin:/sbin:/u ...
- Openstack架构概念图-简单汇总
OpenStack是一个云平台管理的项目,它不是一个软件.这个项目由几个主要的组件组合起来完成一些具体的工作.想要了解openstack,第一步我们可以观察他的概念图: 针对上图的翻译+解释: 上图主 ...
- MySQL两种存储引擎: MyISAM和InnoDB 简单总结
MyISAM是MySQL的默认数据库引擎(5.5版之前),由早期的ISAM(Indexed Sequential Access Method:有索引的顺序访问方法)所改良.虽然性能极佳,但却有一个缺点 ...
- AnyProxy做App网络流量测试
前言: AnyProxy是一个开放式的HTTP代理服务器.Github主页:[https://github.com/alibaba/anyproxy]主要特性包括: 基于Node.js,开放二次开发能 ...
- xcode archive 去掉dsym文件和添加dsym文件
打包慢,让人发狂!!! 所以我们尝试的去掉一些测试时候用不到的东西 比如DSYM: 这DSYM是收集奔溃的.在测试的时候不需要这些东西的所以去掉就好: 项目 Build Settings -> ...
- Peer Programming Project: 4 Elevators Scheduler 学号后三位 157,165
1.Advantages and disanvantages of Peer Programming advantages The code are constantly validated by t ...