- docker pull registry.cn-beijing.aliyuncs.com/zhouchaoyi/oracle19c:19.3
- docker images|grep oracle19
步骤2:规划镜像数据存储路径
- # 创建目录
- mkdir -p /opt/oracle19c
-
- # 授权,不授权会导致后面安装失败
- chmod -R 777 /opt/oracle19c
-
- docker run -d --name oracle19c \
- -p 15312:1521 -p 15313:5500 \
- --privileged=true -it \
- -v /opt/oracle19c//var/opt/oracle/data \
- -e TZ=Asia/Chongqing \
- registry.cn-beijing.aliyuncs.com/zhouchaoyi/oracle19c:19.3
- #容器id
- docker ps -a|grep oracle19c|awk '{print $1}'
-
- docker logs -f oracle19c
- docker exec -it oracle19c bash
-
- #登录数据库
- sqlplus / as sysdba
进入容器后有个 setPassword.sh 脚本
- #进入容器
- docker exec -it oracle19c bash
- #执行
- ./setPassword.sh 123456 # 123456为设置密码,这里修改为自己的即可
-
- -- 依次执行如下命令进入oracle并设置 PDB
-
- grep $ORACLE_HOME /etc/oratab | cut -d: -f1
- export ORACLE_SID=ORCLCDB
- sqlplus / as sysdba
- - 设置pdb
- show pdbs;
- alter session set container=ORCLPDB1;
-
- -- 测试登录
- sqlplus SYSTEM/123456@ORCLPDB1
步骤5:检查新生成的容器的时区
- docker exec -it oracle19c date +"%Z %z"
- CST+0800表示东8时区,正是设置的中国时区
echo "export ORACLE_SID=ORCLCDB" >> ~/.bashrc
jdbc连接:
- # ORACLE_SID
- grep $ORACLE_HOME /etc/oratab | cut -d: -f1
- ==》ORCLCDB
-
- #pdb_name
- ls -dl $ORACLE_BASE/oradata/ORCLCDB/*/ | grep -v pdbseed | awk '{print $9}' | cut -d/ -f6
- ===》ORCLPDB1
-
-
- driver = "oracle.jdbc.driver.OracleDriver"
- url = "jdbc:oracle:thin:@//192.168.5.103:15312/ORCLPDB1"
- 查看oracle是否安装成功
- 可以通过 docker logs -ft oracle19c
-
-
- 4、修改Oralce数据库密码
- docker exec myoracle ./setPassword.sh 123456
-
- 5、账号信息:
- https://localhost:5500/em
- 账号: system/sys/等
- 密码:123456
- sid : orcl
- pdb : orclpdb1
-
- 6、连接Oracle
- docker exec -it oracle19c /bin/bash
- sqlplus / as sysdba
- show pdbs;
-
- 查看容器中的数据库名: show pdbs;
- 切换到PDB : alter session set container=ORCLPDB1
- 切换到CDB : alter session set container=CDB&ROOT
-
- oracle数据库sid(实例名)的查看方法:
- select instance_name from V$instance;
-
- 也可以使用下边的命令登录oracle
- sqlplus SYSTEM/123456@ORCLPDB1
- sqlplus autotest/autotest@ORCLPDB1
原因: 在表空间“USERS”无权限
解决办法:
查看当前用户所属表空间:
select username,default_tablespace from dba_users;
修改表空间:
- alter user username quota umlimited on tablespacename;
- 或者
- grant resource to username 【因为 grant resource to username 时 自动获得了有unlimited tablespace的系统权限】
- SQL> truncate table WMP.TXN_PROC_RESULT;
- truncate table WMP.TXN_PROC_RESULT
- *
- ERROR at line 1:
- ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired
-
- SQL> select session_id from v$locked_object;
-
- SESSION_ID
- ----------
- 2543
-
- SQL> SELECT sid, serial# FROM v$session where sid=2543;
-
- SID SERIAL#
- ---------- ----------
- 2543 59853
-
- SQL> alter system kill session '2543,59853';
-
- System altered.
-
- SQL>
