本文共 1478 字,大约阅读时间需要 4 分钟。
在本地Linux系统上尝试将Oracle数据库导入时,遇到了多个问题,逐步解决并记录以下详细过程。
在使用EXP命令导出包含dblink连接的数据库时,由于本地客户端版本(11.2.0.1.0-64bit)低于服务器版本(11.2.0.4.0-64bit),导出过程中出现连接失败提示。经过多次尝试后,发现直接删除dblink连接并使用PLSQL导出虽慢,但能顺利完成任务。建议仅在必要时删除dblink,以免影响业务流程。
在成功导出数据库后,将其导入另一台Linux服务的数据库时,发现部分数据显示为乱码。经过检查,发现两端数据库的字符编码不一致,导致数据无法正确解析。
验证字符编码
执行以下SQL查询确认两端字符集:SELECT * FROM nls_instance_parameters WHERE parameter='NLS_LANGUAGE';
并查看数据库的字符集设置。
修改字符编码
以sysdba身份执行以下步骤:shutdown immediate;
startup mount;
ALTER SYSTEM ENABLE RESTRICTED SESSION;ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;ALTER SYSTEM SET AQ_TM_PROCESSES=0;
ALTER DATABASE CHARACTER SET ZHS16GBK;
如果出现超集检查失败,使用以下命令绕过检查:
ALTER DATABASE character set INTERNAL_USE ZHS16GBK;
shutdown immediate;startup;
重新创建用户并授权
删除现有用户并创建新用户:drop user user_name cascade;create user user_name identified by password;grant connect, resource, dba to user_name;alter user user_name quota unlimited on tablespace_name;
重新导入数据库
使用IMP命令导入dmp文件:imp user_name/password file=/home/oracle/dmp/dmp_file.dmp log=/home/oracle/dmp/log_name.log FULL=y;
查找并修改listener.ora文件
使用以下命令停止和启动listener:lsnrctl stoplsnrctl start
查看listener日志以确定文件位置并确认配置。
更新listener.ora文件
添加必要的SID_LIST_LISTENER配置,确保listener能够正确识别数据库服务。重新启动数据库服务
使用SQLPlus控制台执行:sqlplus /nologconn / as sysdbashutdown immediate;startup;exit;
重新启动listener并验证连接是否正常。
通过以上步骤,成功解决了数据库导入过程中的字符编码问题和ORA-12514错误,最终实现了数据库的顺利导入与使用。
转载地址:http://sxkfk.baihongyu.com/