Sqlserver 和Oracle的导入导出数据

一、.导入dmp文件
预备操作
1.–查看目录
/*导出指定用户数据–服务器A/
select * from dba_directories;
/*导入指定用户下–服务器B/
——–用户、表空间已经存在的情况下,PL/SQL下操作
– 删除user
drop user xtepkms cascade;
– 删除tablespace
drop tablespace xtepkms including contents;

drop tablespace xtepkms_TEMP including contents;

查看当前用户所对应的表空间和对应的数据文件
–当前用户的表空间和临时表空间–select username,default_tablespace,temporary_tablespace from user_users;

–表空间所对应的文件位置select t1.name,t2.name
from v tablespacet1,v t a b l e s p a c e t 1 , v datafile t2
where t1.ts# = t2.ts#;
–查看当前用户所对应的临时表空间和对应的数据文件
–临时表空间苏对应的位置 select tablespace_name,file_name,bytes/1024/1024 file_size,autoextensible from dba_temp_files;

1>创建临时表空间及表空间(d:/xtep目录要物理盘有,否则会报错os无法操作)
CREATE
TEMPORARY TABLESPACE xtepkms_TEMP
TEMPFILE ‘D:\app\Administrator\admin\orcl\dpdump\xtepkms_TEMP .DBF’
SIZE 1024M
REUSE
AUTOEXTEND
ON NEXT 100M
MAXSIZE unlimited
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1024K;

CREATE
TABLESPACE xtepkms
DATAFILE ‘D:\app\Administrator\admin\orcl\dpdump\xtepkms .dbf’
SIZE 1024M
REUSE
AUTOEXTEND
ON NEXT 100M
MAXSIZE unlimited
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1024K;

2>创建用户对应表空间–用户名YPHOA,密码YPHOA
create user xtepkms identified by xtepkms default tablespace xtepkms temporary tablespace xtepkms_TEMP ;
3>用户授权给用户赋予在指定目录的操作权限,最好以system等管理员赋予
grant connect,resource,dba to xtepkms;
4>创建数据还原目录,创建逻辑目录,该命令不会在操作系统创建真正的目录,最好以system等管理员创建

create or replace directory dump_file as 'D:\xtep\'; 该文件夹必须存在于物理盘

5>把这个主目录授权给待导出数据的用户
grant read,write on directory DATA_PUMP_DIR to xtepkms;
6>在CMD命令窗口下还原数据库
导入的命令:
imp 用户名/密码@ip地址:端口号/数据库实例 file=’需要导入的dmp文件的路径’ full = y(可能需要)ignore=y

(1).impdp xtepkms/xtepkms directory=dump_file dumpfile=VELCROKMS20171130.dmp cluster=N full = y ignore=y REMAP_SCHEMA=VELCROKMS:xtepkms REMAP_TABLESPACE=KMS:xtepkms

(2).imp YPHOA/YPHOA@ORCL file=D:\DB\YPHOA.dmp full=y
–解释
REMAP_TABLESPACE=KMS:xtepkms–>替换源表和目标表空间
REMAP_SCHEMA=VELCROKMS:xtepkms–>替换dbo
导出命令
(1).exp velcrokms/amt11qq@orcl file=d:\xtep.dmp full=y
–dos下操作,remap_schema当你从A用户导出的数据,想要导入到B用户中去,就使用这个:remap_schema=A:B
(2).expdp KMS/KMS716@orcl schemas=KMS DIRECTORY=dpdata1 dumpfile=KMS71620170605.dmp logfile=kmsexpdp.log nologfile=y cluster=N
–解释
–dumpfile –>指定的导出文件的名字(会自动创建)
–logfile制定导出数据库后日志文件的名字(会自动创建)在directory目录里可以看具体导入导出相关的日志,若是导入导出有问题可以查看这个
–DIRECTORY –>指定导出文件存放的路径目录dpdata1
–nologfile=y –>日志写入错误,可以用这个跳过日志

/*检查SQL***********/
–当前用户及默认表空间
select username,default_tablespace from user_users

–用户表,是否全部都在
select table_name from user_tables

–用户表空间
select
TABLESPACE_NAME
–table_name,
from user_tables
group by tablespace_name;

linux下导入oracle
准备工作:首先用Xshell连接到Linux服务器,并切换至oracle账号,
[root@localhost ~]# su - oracle
Last login: Fri Jul 21 13:49:22 CST 2017 on pts/1 (成功切换)
[oracle@localhost ~]$ sqlplus sys/ as sysdba
切换到SQL>
然后依次执行如下命令:
0.查看创建的目录
select * from dba_directories;
1、sys用户登录创建目录
SQL>create or replace directory DIR_YPH as ‘/oradata’; (创建目录并分配还原的dmp文件存放路径)
– chmod 777 /oradata(不给该目录权限,那么导入数据库时会报错-SYS.UTL_FILE)
–drop directory DIR_YPH

2、sys用户下创建表空间(oracle中如何不是创建在默认表空间,那么会报错,没有权限,故需创建在oracle默认表空间)
SQL>create TABLESPACE yph
logging
datafile ‘/opt/oracle/app/oradata/yph/YPHOA.dbf’
size 100m
autoextend on
next 100m maxsize 8192m
extent management local;
(创建表空间,设置文件自动增长空间大小)
–默认表空间的位置
select t.tablespace_name,
t.file_name,
t.bytes / 1024 / 1024,
t.autoextensible,
t.maxbytes / 1024 / 1024
from dba_data_files t;

3、sys用户下创建用户
SQL>create user YPHOA identified by YPHOA default tablespace yph(创建用户名,设置密码,并指明默认表空间和临时表空间)
SQL>grant dba,connect,resource to YPHOA; (给用户授予dba、基础、开发权限)

4、sys用户下
SQL>Grant read,write on directory DIR_YPH to YPHOA; (将目录的读写权限授予用户)
5、DOS下Impdp还原
impdp YPHOA/YPHOA directory=DIR_YPH dumpfile=YPHOA.dmp cluster=N full = y ignore=y

[oracle@localhost ~]$impdp iirsuser/”iirsuser”@orcl directory=dir_iirsuserbaknew dumpfile=ExpIirspublish20170814.dmp remap_tablespace=IIRSPublish:IIRSUSER remap_schema=iirspublish:iirsuser logfile=impdbiirspublish20170814.log transform=oid:n
第5步需要退出(exit)SQL命令行至Oracle账号下执行。

二、导出数据:
1. 将数据库test完全导出,导出到D:tianma.dmp
exp system/manager@test file=d:\tianma.dmp full=y

sqlserver导入
1.执行sql脚本数据结构和数据导入超过100兆报错
解决方案:
step1: 在查询分析器中执行下面的sql语句
select @@servername ;获得数据库服务器名称
step2:通过运行指令执行脚本
sqlcmd -S SQLExpress -U sa -P -d trw -r -i db.sql——–(SQLExpress 为数据库服务器的名字,trw为数据库的名字)
eg:->sqlcmd -s user-207 -u sa -p 123 -i d:\project\t.sql
正确的是:osql -s 127.0.0.1 -u sa -p Header87582280 -d HF -i D:\sqlbak\script.sql是微软的odbc连数据库命令,不支持08 导入hf.sql能成功
正确的是: sqlcmd -S “127.0.0.1” -U “sa” -P “123456” -d “test” -i “D:\testscript.sql” 导入自己建立的库能成功,导入hf.sql不行
注意:双引号只在路径中包含空格时才是必需的,可要可不要
若是指定了数据库-d db,则在数据库一定要建立这个数据库,也可以不指定

导入相关问题
正确导入成功界面,一般若是出现有xxxx个错误,就要看下这个错误是否真的有影响,一般也可能是视图编译有问题错误,这个就不影响
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值