Oracle迁移数据库

1.迁移方法概述:

使用Navicat Premium 分别与源数据库和目标数据库创建链接,而后借助Navicat Premium自带的数据传输功能,实现Oracle数据库的迁移.其实跟从MySQL数据库迁移到Oracle数据库是一个套路.java

O(∩_∩)O~ 听起来,是否是很简单,其实就是很简单!下边我就讲一下具体实现的细节流程:mysql

2.实现步骤:

第一步:在目标数据库中建立表空间和用户

这点我再次向对Oracle数据库不熟悉的同窗强调一下,对于Oracle数据库不像MySQL中,一个用户能够管理多个数据库,对Oracle来讲,一个用户只对应一个数据库,而新建立的用户是没有任何资源和权限的,因此须要管理员用户为其分配资源权限.sql

在控制台以管理员权限登陆创建链接:数据库

sqlplus system/admin@192.168.10.112:1521/orcl
conn /as sysdba;

 

若是你不当心忘记了密码,能够参考个人另一篇专门将建立表空间和用户的博文:Oracle数据库建立表空间和用户及删除数据库(用户)oracle

创建链接

建立表空间与用户:ide

<!-- 建立表空间 datafile为你oracle安装文件的路径,其中casic_smart.dbf是本身随便命名的 -->
create tablespace casic_smart datafile 'E:\oracle\product\10.2.0\oradata\orcl\casic_smart.dbf' size 1000m;
<!-- 建立用户 并为其指定表空间 -->
create user tianzhi_smart identified by tianzhi_smart default tablespace casic_smart quota 500m on users;
<!-- 授予权限 -->
grant all privileges to tianzhi_smart;

 

建立表空间与用户名

第二步:使用Navicat Premium 分别与源数据库和目标数据库创建链接

使用Navicat Premium链接Oracle数据库时,可能会报出以下错误:
链接异常信息展现
具体解决方案,可参考个人另一篇博文: Navicat 提示Cannot create oci environment 解决方案学习

数据库链接成功后以下图:spa

链接数据库

进行数据输出:.net

这里写图片描述
这里写图片描述
这里写图片描述

3.其余方法:

若是这种方法迁移不成功,那就来试试一个更简单的方法:使用Oracel数据库的imp,exp语句.命令行

 

 

 

1.从源数据库导出数据:

语法:

exp user1/pwd1@test1 file='E:test.dmp';

 

示例:

 

exp tianzhi_smart/tianzhi_smart@192.168.56.60:1521/orcl file='E:\tianzhi_smart.dmp';

 

应用截图:
本人愚钝,初次使用时,都不知道在哪里输入这导出语句,因此专门贴出来,以备像我同样的小伙伴,少走些弯路.

 

这里写图片描述

2.向目标数据库导入数据:

语法:

imp user2/pwd@test2 file='E:test.dmp' full=y;

 

示例:

 

imp tianzhi_smart/tianzhi_smart@192.168.10.129:1521/orcl file='E:\tianzhi_smart.dmp' full=y;

 

应用截图:
这里写图片描述

 

 

 

 

 

前言

 

关于dmp文件咱们用的仍是比较多的,dmp文件它是做为oracle导入和导出表使用的文件格式,今天就将dmp文件导出和导入进行学习。

 

dmp文件导出

 

dmp文件导出用的比较多的通常是三种,他们分别是:导出整个数据库实例下的全部数据、导出指定用户的全部表、导出指定表。

 

这里已个人数据库为例,进行介绍,个人Oracle数据库实例为"ORACLE",查看本身数据库实例能够从"任务管理器-->服务"中进行查看,以下图

 

 

打开命令行:

1,将数据库ORACLE彻底导出,用户名system密码manager 导出到c:\daochu.dmp中

exp system/manager@ORACLE file=c:\daochu.dmp full=y

 

2,将数据库中RFD用户与,JYZGCX用户的表导出

exp system/manager@ORACLE file=d:\daochu.dmpowner=(RFD,JYZGCX)

 

3,将数据库中的表T_USER、T_ROLE导出

expJYZGCX/JYZGCX@ORACLEfile= d:\data\newsmgnt.dmp tables=(T_USER,T_ROLE)

 

上面的system为用户名,manager为密码,ORACLE为数据库实例名,其实不必定非的用system用户,只要是拥有管理员权限的用户均可以。

 

dmp文件导入

 

1,打开“开始”-->输入cmd—> sqlplus /nolog;

2,输入 conn / as sysdba管理员帐户登陆;

3,须要建立表空间,若是咱们知道须要导入的数据库的表空间直接建立就能够,若是不不知道,也没有关系,咱们能够用txt打开dmp文件,使用快捷键ctrl+F,查找tablespace,就能够找到这个dmp文件所对应数据库的表空间,而后建立咱们找到的表空间就能够;

步,不建立的表空间,建立用户,并分配权限;

5,打开“开始”-->输入cmd(注意:这里是cmd窗口,不是sqlplus窗口!!!),输入如下语句:“imp kang/123456@localhost/ORACLEfile="C:\daochu.dmp"full=y ignore=y”

上述语句说明以下:

kang是建立的登陆数据库用户名;

123456是登陆数据库的密码;

localhost:表明当前数据库的地址是本机,若是是远程导入,替换成对应的ip地址就行

ORACLE:是实例名称)

file:后面的是你当前dmp文件存放的路径

full=y,这个貌似是所有

ignore=y,忽略一些错误

 

备注:关于数据库实例、表空间、用户等基本概念和建立的语句可参考前面的文章“Oracle学习——扫盲篇”

 

小结

 

本篇文章主要讲述了,oracle数据导出和导入的具体步骤,其中导入dmp文件的时候即使不知道表空间、用户名和密码也能够进行导入。Oracle的学习确实是路漫漫其修远兮啊!

 

1.建立Oracle表空间与用户

Oracle数据库不像MySQL数据库,一个用户能够管理多个数据库,对Oracle来讲,一个用户只对应一个数据库,而新建立的用户是没有任何资源和权限的,因此须要管理员用户为其分配资源权限.而建立用户时,须要为用户指定表空间.

(1) 因为scott权限不够,不能建立用户,另外由于其余较高权限的帐号密码忘记了,因此这里补充一下Oracle更改密码的方法:

A.在控制台输入`sqlplus  scott/tiger@192.168.56.6:1521/orcl `链接Oracle;
B.输入`conn /as sysdba`以DBA角色登陆;

这里写图片描述

C.链接成功后,输入“select username from all_users”查看用户列表。
D.若修改某一个用户密码, 修改用户口令 格式为:alter user 用户名 identified by 新密码;

这里写图片描述

(2) 使用用户system登陆PL/SQL Developer,建立表空间和用户

这里写图片描述

create tablespace casic_smart datafile 'C:\oracle\product\10.2.0\oradata\orcl\casic_smart.dbf' size 1000m;
create user tianzhi_smart identified by tianzhi_smart default tablespace casic_smart quota 500m on users;
grant all privileges to tianzhi_smart;
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

2.删除Oracle数据库(用户)

删除oracle数据库其实也就是删除oracle用户,由于在oracle中数据库与用户是一一对应的.而删除数据库(用户)以后,再建立用户,就至关于清空了数据库里面的数据.

<!-- 以管理员用户登陆 -->
sqlplus /nolog
conn /as sysdba;
<!-- 删除数据库(用户) -->
drop user test1 cascade;
<!-- 建立表空间 -->
create tablespace casic_smart datafile 'C:\oracle\product\10.2.0\oradata\orcl\casic_smart.dbf' size 1000m;
<!-- 建立用户,并指定表空间 -->
<!-- 有些是没有指定表空间的,不知是否可行,何尝试,保险起见仍是按下面方式来 -->
create user test1 identified by pwd1 default tablespace casic_smart quota 500m on users;
<!-- 授予权限 -->
grant all privileges to test1  ;
相关文章
相关标签/搜索