记一次Oracle 11g xe 导出导入使用过程

公司一个项目需要使用Oracle数据库,平时mysql用习惯了,这一换还有点蒙。

公司网络不好,需要在本地搭一个Oracle服务,选择了11g xe,主要是小。

下面整理了一下两种导出导入数据库的过程:

1、使用Navicat软件转储sql文件、执行sql文件方法(不好,容易存在外键问题和字符串长度超过4000无法导入问题)

2、使用exp、imp命令导出导入(推荐)

一、使用Navicat导出导入过程:

1、选择公司Oracle数据库模式,右键转储sql文件结构和数据,获得sql文件

2、本地数据库用sys登陆,创建一个sumengnan用户,赋予一些创建表、连接的权限

3、在sumengnan模式下导入公司Oracle的sql文件时报错,提示表空间不存在

解决办法:在菜单栏选择其他-表空间-新建表空间。

之后在用户-编辑用户-配额处为sumengnan用户,配置表空间

4、导入公司Oracle的sql文件时报错,又提示ORA-01950对表空间"system"无权限。

解决办法:在用户-编辑用户-服务器权限处为sumengnan用户,配置create session、create table和create tablespace权限

5、导入完成。

二、使用exp、imp命令导出导入过程:

开始导出:

1、远程Oracle数据库导出方式有两种(需要sys角色):

  ⑴添加远程TNS。在tnsnames.ora文件中添加如下

  remote =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 远程主机地址)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ORCL)
    )
   )

  然后执行tnsping remote命令,检测是否能连接。

  执行命令:exp sys/123@remote file=d:\sumengnan.dmp owner=sumengnan;

  ⑵执行命令:exp sys/[email protected]:1521/orcl file=d:\sumengnan.dmp owner=sumengnan;(这个更简单,不需要添加远程TNS,推荐)

2、执行远程导出数据库命令,提示身份证明检索失败。

解决办法:oracle\product\11.2.0\server\network\ADMIN\sqlnet.ora这个文件内容NTS改为NONE。(验证方式)

NTS表示采用本地操作系统认证,NONE表示将采用口令文件方式认证。

3、用sys登录提示connection as SYS should be as SYSDBA or SYSOPER(表示sys账号需要SYSDBA or SYSOPER角色)

解决办法:exp 'sys/[email protected]:1521/orcl as sysdba' file=d:\sumengnan.dmp owner=sumengnan;(加上 as sysdba)(owner表示用户)

4、导出时提示ORACLE 错误 904 ORA-00904: "MAXSIZE": 标识符无效

原因:Oracle不能从低版本向高版本导数据。公司的是10,本地是11.

    由于Oracle的imp/exp组件的操作原则--向下兼容,且有一些规则:

    规则1:低版本的exp/imp可以连接到高版本(或同版本)的数据库服务器,但高版本的exp/imp不能连接到低版本的数据库服务器;

    规则2:高版本exp出的dmp文件,低版本无法imp(无法识别dmp文件);低版本exp出的dmp文件,高版本可以imp(向下兼容);

    规则3:从Oracle 低版本Export的数据可以Import到Oracle高版本中,但限于Oracle的相邻版本,如从Oracle 10 到 Oracle 11.对于两个不相邻版本间进行转换,如从Oracle 9 到 Oracle 11,则应先将数据输入到中间版本-Oracle 10,再从中间数据库转入更高版本Oracle 11.

    据此,最快捷的解决方案就是使用安装了10g Oracle 的机子,进行服务器上数据库数据的导出。

5、无奈去另一台win10电脑下载了64位的10g(下载地址在下面),安装时提示检查操作系统版本: 必须是5.1 or 5.2。 实际为 6.1。

解决办法:修改\database\install\oraparam.ini文件,把Windows=5.1,5.2改成Windows=6.1。

6、安装时10g设置完密码后又提示“安装oracle10g“程序异常终止。发生内部错误。请将以下文件提供给oracle技术支持 部门”

解决办法:安装程序setup.exe文件,需要用兼容模式xp sp3模式运行。

7、不过出现了一个意外,win10电脑没有xp sp3兼容模式。

解决办法:下载一个虚拟机,安装xp系统。

8、虚拟机安装完xp之后,在系统上运行Oracle10g setup.exe安装程序,提示不是有效的win32

解决办法:应该下载32位的Oracle 10g(直接使用了上面下载的64位的10g)

执行第3步命令,导出成功了,拷贝到本地电脑桌面

开始导入:

9、先查询公司数据库用户sumengnan使用的表空间(一般情况只有一个)。

命令:select tablespace_name from dba_tables t WHERE t.owner='sumengnan' group by t.tablespace_name

10、首先需要在本地创建好sumengnan用户和表空间

创建表空间命令:create tablespace sumengnan_data(表空间名称) datafile 'e:\oracle\oradata\test\data_1.dbf'(表空间文件) size 1000M(表空间大小);

创建用户命令:create user sumengnan identified by 123456 default tablespace sumengnan_data;(用户sumengnan,密码123456 默认表空间 sumengnan_data)

赋予权限命令:grant connect, resource to sumengnan ;(赋予sumengnan连接Oracle和创建表的权限)

11、开始导入数据,执行命令:imp 'sys/123@XE as sysdba' file=C:\Users\sumengnan\Desktop\SUMENGNAN.DMP full=y时提示:“无法打开 EXPDAT.DMP 进行读取”.

原因:c盘没有权限,换到其他盘,如d盘。

注意:如果服务器和本地两端用户名不相同,则执行:imp 'sys/123@XE as sysdba' file=C:\Users\sumengnan\Desktop\SUMENGNAN.DMP fromuser=sumengnan touser=sumengnan2

fromuser就是把当前的dmp文件中的某一个用户下的数据取出。
touser就是把现在dmp文件中的数据导入到目标库的指定user下。

12、切换盘后导入又提示:“导入时由于对象已存在, 下列语句失败: ”

解决办法:imp导入命令添加参数 ignore=y

13、导入完成

碰到的其他问题

1、修改Oracle安装时默认8080端口

命令:

begin
   dbms_xdb.sethttpport('8081');
   dbms_xdb.setftpport('0');
end;

2、删除用户提示“必须指定 CASCADE 以删除 'sumengnan'”

解决办法:drop user sumengnan cascade;(因为这个数据库只有这一个用户,删了就没有用户关联了,所以需要用 cascade,把没有关联的整个数据库也删掉。)

导出导入imp、exp命令参数:


参数参考地址:https://blog.csdn.net/fghsfeyhdf/article/details/79807690

参数参考地址:https://www.cnblogs.com/weiwenpeng/p/10345419.html

xp迅雷下载地址:thunder://QUFodHRwOi8vc29mdC51c2Fpa2EuY24vstnX98+1zbMvd2luZG93cy9XaW5kb3dzWFAvVkwtSW1hZ2UvTVNETi96aC1oYW5zX3dpbmRvd3NfeHBfcHJvZmVzc2lvbmFsX3dpdGhfc2VydmljZV9wYWNrXzNfeDg2X2NkX3ZsX3gxNC03NDA3MC5pc29aWg==                 序列号:MRX3F-47B9T-2487J-KWKMF-RPWBY

Oracle 10g 32位迅雷下载地址:http://download.oracle.com/otn/nt/oracle10g/10201/10201_database_win32.zip

Oracle 10g 64位迅雷下载地址:http://download.oracle.com/otn/nt/oracle10g/10201/102010_win64_x64_database.zip

Oracle 11g xe 64位下载地址:https://download.oracle.com/otn/nt/oracle11g/xe/OracleXE112_Win64.zip?AuthParam=1581570015_b536f613e8fecc7c02ed77c63e8c6944

发布了26 篇原创文章 · 获赞 0 · 访问量 777

猜你喜欢

转载自blog.csdn.net/sumengnan/article/details/104303795