# 以19c为例
docker pull registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:19c
# 后台安装并启动容器
docker run -d -p 1521:1521 -p 5500:5500 -e ORACLE_SID=ORCLCDB -e ORACLE_PDB=ORCLPDB -e ORACLE_PWD=123456 -e ORACLE_EDITION=standard -e ORACLE_CHARACTERSET=AL32UTF8 -v D:/Developer/OracleData:/opt/oracle/oradata --name oracle1521 registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:19c
等10分钟,再执行以下命令,否则执行失败。
# 创建root用户 密码root
docker exec -it oracle1521 /bin/bash
sqlplus / as sysdba
//切换数据库
alter session set container=ORCLPDB;
//创建用户
create user root identified by root;
//授权
grant dba to root;
之后可以用ORCLPDB的root/root登录
--创建表空间
CREATE TABLESPACE TEST_RMMIS2
LOGGING
DATAFILE '/opt/oracle/oradata/test_rmmis2.dbf'
SIZE 32M
AUTOEXTEND ON
NEXT 32M MAXSIZE 2048M
EXTENT MANAGEMENT LOCAL;
--创建临时表空间
CREATE TEMPORARY TABLESPACE TEST_RMMIS2_TEMP
TEMPFILE '/opt/oracle/oradata/test_rmmis2_temp.dbf'
SIZE 32M
AUTOEXTEND ON
NEXT 32M MAXSIZE 2048M
EXTENT MANAGEMENT LOCAL;
--创建用户
create user test_rmmis2
identified by "test_rmmis2"
default tablespace TEST_RMMIS2
temporary tablespace TEST_RMMIS2_TEMP
profile DEFAULT
quota unlimited on TEST_RMMIS2;
-- Grant/Revoke role privileges
grant dba to test_rmmis2;
-- Grant/Revoke system privileges
grant unlimited tablespace to test_rmmis2;
字符集不对应(导致数据库导入会提示值过大)
字符集为ZHS16GBK才不会出现字符值过长的问题
默认为:AL32UTF8
cmd中:
sqlplus /nolog
conn / as 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 OPEN;
ALTER DATABASE CHARACTER SET INTERNAL_USE ZHS16GBK;
SHUTDOWN IMMEDIATE
STARTUP