oracle19c docker镜像
0
docker pull registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:19c
docker-compose
oracle19c:
container_name: oracle19c
image: "registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:19c"
restart: always
privileged: true
ports:
- 1521:1521
- 5500:5500
volumes:
- /etc/localtime:/etc/localtime
- $PWD/oracle19c/oradata:/opt/oracle/oradata
查看日志获取密码:
ORACLE PASSWORD FOR SYS, SYSTEM AND PDBADMIN: JKF+Zf3e6YM=1
修改密码
docker exec oracle19c ./setPassword.sh oracle
使用Navicat Premium登录sys as sysdba需要注意用户名填写sys,然后在高级里面选择角色。
Navicat Premium连接sqlserver不用填写端口
CDB/PDB
ORCLCDB
ORCLPDB1
查询PDB
SELECT con_id, dbid, NAME, OPEN_MODE FROM v$pdbs;
ALTER SESSION SET container = ORCLPDB1;
创建表空间
CREATE tablespace acgist datafile '/opt/oracle/oradata/ORCLCDB/acgist.dbf' SIZE 1024M autoextend ON NEXT 128M;
创建用户
CREATE USER user IDENTIFIED BY 123456 DEFAULT tablespace acgist;
授权
GRANT CONNECT, RESOURCE TO user;
GRANT CREATE ANY sequence TO user;
GRANT CREATE ANY TABLE TO user;
GRANT DELETE ANY TABLE TO user;
GRANT INSERT ANY TABLE TO user;
GRANT SELECT ANY TABLE TO user;
GRANT UPDATE ANY TABLE TO user;
GRANT CREATE ANY VIEW TO user;
GRANT unlimited tablespace TO user;
GRANT execute ANY PROCEDURE TO user;
GRANT dba TO user;
删除
-- DROP tablespace acgist;
-- DROP tablespace acgist including contents and datafiles;
-- DROP user name;
Linux连接Oracle19c问题
Caused by: oracle.net.ns.NetException: Got minus one from a read call
at oracle.net.ns.NSProtocolNIO.doSocketRead(NSProtocolNIO.java:557)
at oracle.net.ns.NIOPacket.readHeader(NIOPacket.java:258)
at oracle.net.ns.NIOPacket.readPacketFromSocketChannel(NIOPacket.java:190)
at oracle.net.ns.NIOPacket.readFromSocketChannel(NIOPacket.java:132)
at oracle.net.ns.NIOPacket.readFromSocketChannel(NIOPacket.java:105)
at oracle.net.ns.NIONSDataChannel.readDataFromSocketChannel(NIONSDataChannel.java:91)
at oracle.net.ano.AnoCommNIO.p(Unknown Source)
at oracle.net.ano.AnoCommNIO.e(Unknown Source)
at oracle.net.ano.AnoComm.readUB4(Unknown Source)
at oracle.net.ano.Ano.c(Unknown Source)
at oracle.net.ano.Ano.negotiation(Unknown Source)
at oracle.net.ns.NSProtocol.connect(NSProtocol.java:368)
at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1600)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:592)
... 39 common frames omitted
这个问题非常奇怪,window上面没有问题,linux就有问题,解决办法修改连接:
# 错误连接
url: jdbc:oracle:thin:@192.168.1.100:1521/acgist
# 正确连接
url: jdbc:oracle:thin:@tcp://192.168.1.100:1521/acgist?oracle.net.disableOob=true
数据导入
使用sqlplus连接进入数据库,然后使用@/sql.sql
执行导入。
如果提示Enter value for
语句里面含有转义符,关闭转义符set define off
。
sqlplus连接命令sqlplus username/password@host:port/服务名称
重要:完了千万不要忘了commit
乱码
select userenv('language') from dual;
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8