docker安装oracle11g并导入数据库
1.拉去oracle11g镜像
docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
2.创建oracle容器
docker run -d -p 1521:1521 --name oracle11g registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
3.启动容器
docker start oracle11g
4.进入容器配置
docker exec -it --user root 774c292d1437 bash
774c292d1437:容器ID
5.编辑profile文件
vi /etc/profile
在文件末未添加
export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
export ORACLE_SID=helowin
export PATH=$ORACLE_HOME/bin:$PATH
这是才真正创建l软连接
# ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
su - oracle
conn sys/ as sysdba; || sqlplus / as sysdba;```![2018121022024946.png](http://lmr.luomuren.top/FuKv7pTMGJhg22Wq0-AWWF2Oz2o_)
6.修改默认用户密码
alter user sys identified by sys;
alter user system identified by system;
创建用户
create user dlsys identified by dlsys;
赋予权限
grant connect,resource,dba to dlsys;```![20181210220249117.png](http://lmr.luomuren.top/Fn8y-lpkXKkJzSkAIPf4OCxMX6BF)
7.navicat连接
8.导入数据库
-
从本地拷贝bmp文件到docker容器中
docker cp D:\桌面\aa.dmp 774c292d1437:/home/oracle/
-
进入容器导入数据库
imp aa/aa file=/home/oracle/aa.dmp log=imp.log grants=no full=y
9.导入问题
IMP-00019: row rejected due to ORACLE error 12899
IMP-00003: ORACLE error 12899 encountered
ORA-12899: value too large for column "CRM"."BK_ECS_ORDER_INFO_00413"."POSTSCRIPT" (actual: 895, maximum: 765)导入日志报IMP-00019: 由于 ORACLE 错误 12899 而拒绝行
IMP-00003: 遇到 ORACLE 错误 12899
ORA-12899: 列 "JACKEYJ"."JK_REGISTER"."OPNAME" 的值太大 (实际值: 21, 最大值: 20)
出现这种问题时因为生产库的字符集和本机测试库的字符集不一样。
到生产库上用
select userenv('language') from dual;
查看到是ZHS16GBK,而本机库是utf-8用一下命令修改本机库字符集
SQL>SHUTDOWN IMMEDIATE
SQL>STARTUP MOUNT
SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION;
SQL>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
SQL>ALTER SYSTEM SET AQ_TM_PROCESSES=0;
SQL>ALTER DATABASE OPEN
SQL>ALTER DATABASE CHARACTER SET INTERNAL_USE ZHS16GBK;
SQL>SHUTDOWN IMMEDIATE
SQL>STARTUP
设置后导入成功!
标题:docker安装oracle11g并导入数据库
作者:luomuren
地址:http://luomuren.top/articles/2021/04/14/1618408665776.html