如何将Oracle Linux下的数据库完整的导入windows下
Oracle服务器是Linux系统,现在需要将其中一个数据库完整的导入到一台WinXP下的Oracle里,里面包括很多表和用户什么的,我实在没做过数据库的工作,请详细指教...
Oracle服务器是Linux系统,现在需要将其中一个数据库完整的导入到一台WinXP下的 Oracle里,里面包括很多表和用户什么的,我实在没做过数据库的工作,请详细指教。
展开
5个回答
展开全部
一、设置Linux电脑字符集,使其跟电脑上的Oracle数据库字符集一致;
在Linux命令行界面,
查询Oracle数据库字符集:
select * from nls_database_parameters t where t.parameter=’NLS_CHARACTERSET’;
查询结果:ZHS16CGB231280
然后vi /home/oracle/.bash_profile
export NLS_LANG=american_america.ZHS16CGB231280
source /home/oracle/.bash_profile
二、导出属于wcall用户的Oracle数据库
exp wcall/wcall@eoss file=wcall.dmp owner=wcall; //导出数据库
三、在Windows中安装Oracle.10g.for.Windows,(示例中数据库安装在D盘,如果按照在其他磁盘,下面创建表空间的时候,需要做相应的修改)然后创建数据库eoss,注意安装的数据库字符集要跟原来数据库的相同。然后打开SQLPLUS,用system帐户登陆后创建用户wcall。
create user wcall identified by wcall; //创建用户
GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW ,
DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,
DBA,CONNECT,RESOURCE,CREATE SESSION TO wcall; //授予权限
create tablespace CC_CALL
logging
datafile 'D:\oracle\product\10.1.0\Db_1\cc.dbf'
size 32m
autoextend on
next 32m maxsize 2048m
extent management local; //创建表空间CC_CALL
create tablespace CC_CALL_HIS
logging
datafile 'D:\oracle\product\10.1.0\Db_1\cc_his.dbf'
size 32m
autoextend on
next 32m maxsize 2048m
extent management local; //创建表空间CC_CALL_HIS
四、导入数据库
IMP wcall/wcall@eoss fromuser=wcall touser=wcall file=wcall.dmp STATISTICS =none;
在Linux命令行界面,
查询Oracle数据库字符集:
select * from nls_database_parameters t where t.parameter=’NLS_CHARACTERSET’;
查询结果:ZHS16CGB231280
然后vi /home/oracle/.bash_profile
export NLS_LANG=american_america.ZHS16CGB231280
source /home/oracle/.bash_profile
二、导出属于wcall用户的Oracle数据库
exp wcall/wcall@eoss file=wcall.dmp owner=wcall; //导出数据库
三、在Windows中安装Oracle.10g.for.Windows,(示例中数据库安装在D盘,如果按照在其他磁盘,下面创建表空间的时候,需要做相应的修改)然后创建数据库eoss,注意安装的数据库字符集要跟原来数据库的相同。然后打开SQLPLUS,用system帐户登陆后创建用户wcall。
create user wcall identified by wcall; //创建用户
GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW ,
DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,
DBA,CONNECT,RESOURCE,CREATE SESSION TO wcall; //授予权限
create tablespace CC_CALL
logging
datafile 'D:\oracle\product\10.1.0\Db_1\cc.dbf'
size 32m
autoextend on
next 32m maxsize 2048m
extent management local; //创建表空间CC_CALL
create tablespace CC_CALL_HIS
logging
datafile 'D:\oracle\product\10.1.0\Db_1\cc_his.dbf'
size 32m
autoextend on
next 32m maxsize 2048m
extent management local; //创建表空间CC_CALL_HIS
四、导入数据库
IMP wcall/wcall@eoss fromuser=wcall touser=wcall file=wcall.dmp STATISTICS =none;
展开全部
首先,数据库的导入和导出跟操作系统关系不大,跟数据库版本关系比较有关系,如果不一致的话容易增加出错误几率
第二,在linux下执行
exp 用户名/密码 file=oracle.dmp log=oracle.log full=y
然后在你执行这个语句的路径下会产生一个叫oracle.dmp的文件,你可以把这个文件down下来到你的XP系统某某路径下
然后用cmd进到XP系统你保存这个oracle.dmp的路径下,执行
imp 用户名/密码 file=oracle.dmp log=oracle.log full=y ignore=y
等执行完就OK了
第二,在linux下执行
exp 用户名/密码 file=oracle.dmp log=oracle.log full=y
然后在你执行这个语句的路径下会产生一个叫oracle.dmp的文件,你可以把这个文件down下来到你的XP系统某某路径下
然后用cmd进到XP系统你保存这个oracle.dmp的路径下,执行
imp 用户名/密码 file=oracle.dmp log=oracle.log full=y ignore=y
等执行完就OK了
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
还可以利用第三方工具。如PL/SQL developer.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用 EXP命令导出
用 IMP命令导入
以上是核心思想:
这样导入导出的,要求库版本一致,字符集一致,块大小一致。
具体指令,很简单
EXP SYSTEM/MANAGER@TNSNAME FILE=/OPT/FULL.DMP FULL=Y
IMP SYSTEM/MANAGER@TNSNAME FILE=C:\FULL.DMP FULL=Y IGNORE=Y
用 IMP命令导入
以上是核心思想:
这样导入导出的,要求库版本一致,字符集一致,块大小一致。
具体指令,很简单
EXP SYSTEM/MANAGER@TNSNAME FILE=/OPT/FULL.DMP FULL=Y
IMP SYSTEM/MANAGER@TNSNAME FILE=C:\FULL.DMP FULL=Y IGNORE=Y
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
最简单的方法:
1、在Windows上建一个和linux一模一样的数据库,数据库版本和实例名等都要一模一样。
2、停止oracle上的所有oracle相关的服务。
3、将linux上的数据库文件,就是【ora实例名】那个文件夹里的东西(包括控制文件、日志文件、数据文件)全部copy出来,覆盖到windows上的相应文件上。
4、重新启动Windows上的oracle相应服务。
5、一模一样的数据库就建好了。
---
以上,希望对你有所帮助。
1、在Windows上建一个和linux一模一样的数据库,数据库版本和实例名等都要一模一样。
2、停止oracle上的所有oracle相关的服务。
3、将linux上的数据库文件,就是【ora实例名】那个文件夹里的东西(包括控制文件、日志文件、数据文件)全部copy出来,覆盖到windows上的相应文件上。
4、重新启动Windows上的oracle相应服务。
5、一模一样的数据库就建好了。
---
以上,希望对你有所帮助。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询