怎么将oracle数据库的数据迁移
打开要导出数据的PC,进入cmd界面
先进入数据库输入sqlplus,账号system密码508956.有权限的账户密码
2.
create directory dir_555 as 'd:/asd169';
到随便一个地方创建一个文件夹,随便起名asd169(不要有中文),自己手动创建
给文件夹一个DIR名字,这里是dir_555
输入Grant read,write on directory dir_555 to kbstest54;
给用户读写权限
回到CMD,不要在SQL模式下
expdp kbstest54/kbstest54@orcl DIRECTORY=dir_555 dumpfile=fu222.dmp schemas=kbstest54 logfile=kbstest54.log;
(expdp 账户/密码 数据库的名字 之前写的标记的名字 给DUMPFILE起文件名(随意), 要导出的方案的列表 (登录方案) LOG名字(如果你要导出日志))
directory=dir_dp必须放在前面,如果将其放置最后,会提示 ORA-39002: 操作无效
指令成功
没有提示错误
打开文件夹看到这两个文件
导出完成
复制这两个文件
在要导入数据的电脑上创建一个文件夹,起名asd69,我们选择同样的名字和地址
数据库创建用户
用户名和表空间名字必须和原数据库一致
如果EM打不开,下面是例句
create tablespace xiaoitest datafile 'D:\data' size 500m;建立表空间和地址,大小。一般设定10G,追加1G。
alter user kbstest54 default tablespace xiaoitest;给用户指定表空间
复制完成后,
进入CMD界面,进入数据库,用SYSTEM,给这边的文件夹一个DIR名字
create directory dir_555 as 'd:/asd169';
给用户文件夹的读写权限Grant read,write on directory dir_222 to kbstest54;
要导入日志必须修改注册表(此处修改的是计算机的注册表,改一次就行)
运行 -》 regedit -》查找 键值 NLS_LANG 将字符集 SIMPLIFIED CHINESE_CHINA.ZHS16GBK 修改为AMERICAN_AMERICA.AL32UTF8
注册表路径:HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMExx\NLS_LANG(或者直接搜索NLS_LANG)
准备工作做完,开始导入,退出SQL,在cmd下输入
impdp kbstest54/kbstest54 directory=dir_555 dumpfile=fu222.dmp schemas=kbstest54 logfile=kbstest54.log;
统计两边的表数量,进入用户名KBSTEST54
select count(table_name) from user_tables;(直接使用这一句)
表数量一致没有丢失。
完成
此处注意:用界面登录oracle数据库,只能用sys用户名;在cmd里面登录oracle数据库,只能用system用户名登录