本文涉及一种在容器中部署 oracle 数据库的方法。经验证,可达到预期目标,并能应用在实际工作中。
引言
之前曾经部署过 oracle,当时使用阿里云仓库上的镜像,版本为 11.2, 但一直解决不了永久存储问题。 oracle 官方有创建 docker 的说明(可能是 docker 官方),本文即根据文档进行实践。 本文着重实践性,且必须与生产数据库版本、表名尽量保持一致。
技术小结
- 宿主机挂载的目录必须能让 uid 为 54321 的用户读写。可创建该 uid 的用户,也可直接设置权限为777。
实践
下载
根据在 github 仓库的 安装说明文档 进行操作。
仓库没有提供 oracle 软件(可能是因为太大了),具体的软件下载可访问此页面 ,本文所用版本为 Linux x86-64 ,名称为 LINUX.X64_193000_db_home.zip ,大小为 2.8GB,md5 为 1858bd0d281c60f4ddabd87b1c214a4f。注意,下载需要登录,先进行注册(注册也花了一定时间)。
按官方说法需将软件压缩包重命名为:linuxx64_19.3.0_database.zip ,但实际并不需要。将 LINUX.X64_193000_db_home.zip 拷贝到 docker-images/OracleDatabase/SingleInstance/dockerfiles/19.3.0 目录。
修改为非CDB方式
自 12 版本后,默认使用非CDB方式(这个机制暂未研究)。
修改文件所有目录:docker-images/OracleDatabase/SingleInstance/dockerfiles/19.3.0。 修改文件 dbca.rsp.tmpl:
createAsContainerDatabase=false
numberOfPDBs=0
## 注释掉
#pdbName=###ORACLE_PDB###
#pdbAdminPassword=###ORACLE_PWD###
# em关掉
emConfiguration=NONE
修改文件 createDB.sh 如下语句:
ALTER PLUGGABLE DATABASE $ORACLE_PDB SAVE STATE;
EXEC DBMS_XDB_CONFIG.SETGLOBALPORTENABLED (TRUE);
修改文件 checkDBStatus.sh:
v\\$pdbs
改为
v\\$database
创建镜像
进入docker-images/OracleDatabase/SingleInstance/dockerfiles 目录,执行命令:
./buildContainerImage.sh -e -i -v 19.3.0
注:-i表示不校验md5(如检验md5提示某文件找不到,故自行检验)。
双核4G虚拟机,耗时约40分钟。20核64G服务器耗时约12分钟。
打标签并提交阿里云仓库:
docker tag oracle/database:19.3.0-ee registry.cn-hangzhou.aliyuncs.com/latelee/database:19.3.0-ee
docker push registry.cn-hangzhou.aliyuncs.com/latelee/database:19.3.0-ee
运行容器
官方示例:
docker run --name <container name> \
-p <host port>:1521 -p <host port>:5500 \
-e ORACLE_SID=<your SID> \
-e ORACLE_PDB=<your PDB name> \
-e ORACLE_PWD=<your database passwords> \
-e INIT_SGA_SIZE=<your database SGA memory in MB> \
-e INIT_PGA_SIZE=<your database PGA memory in MB> \
-e ORACLE_EDITION=<your database edition> \
-e ORACLE_CHARACTERSET=<your character set> \
-v [<host mount point>:]/opt/oracle/oradata \
oracle/database:19.3.0-ee
说明: 挂载 /opt/oracle/oradata 的目录必须可以由 uid 为 54321 的用户(该用户为容器oracle的 uid)访问,否则容器无法创建目录。实际中,挂载目录权限更改为 777 。 变量及默认值: ORACLE_SID ORCLCDB ORACLE_PDB ORCLPDB1 ORACLE_PWD 自动随机产生 ORACLE_CHARACTERSET AL32UTF8 实际:
docker run -itd \
--name oracle \
-p 1521:1521 \
-e ORACLE_SID=ORCLCDB \
-e ORACLE_PDB=ORCLPDB1 \
-e ORACLE_PWD=123456 \
-e ORACLE_CHARACTERSET=ZHS16GBK \
-e TZ="Asia/Shanghai" \
-v oracledata:/opt/oracle/oradata \
oracle/database:19.3.0-ee
最简单的,无任何功能
docker run -it --rm --name oracle registry.cn-hangzhou.aliyuncs.com/latelee/database:19.3.0-ee bash
加时区的测试:
docker run -it --rm --name oracle -e TZ="Asia/Shanghai" registry.cn-hangzhou.aliyuncs.com/latelee/database:19.3.0-ee bash
实际中使用 docker-compose 启动,docker-compose.yml 文件如下:
version: '2'
services:
lloracle:
image: registry.cn-hangzhou.aliyuncs.com/latelee/database:19.3.0-ee
container_name: lloracle
shm_size: 4gb
restart: always
#command:
volumes:
- ./oracle_data/oradata:/opt/oracle/oradata
- ./oracle_data/dbs:/opt/oracle/product/19c/dbhome_1/dbs
- ./oracle_data/admin:/opt/oracle/admin
environment:
- TZ=Asia/Shanghai
- ORACLE_SID=ORCLCDB
- ORACLE_PDB=ORCLPDB1
- ORACLE_PWD=123456
- ORACLE_CHARACTERSET=ZHS16GBK
ports:
- 1521:1521
networks:
- lloracle-net
networks:
lloracle-net:
driver: bridge
注1:INIT_SGA_SIZE、INIT_PGA_SIZE未设置。
注2:设置共享内容为2GB(相当于docker的 –shm-size 参数),设置了东八区时区,映射1521端口。字符编码设置为 GBK,非 UTF8。 注3:在虚拟机耗时约半小时。
注4:在 docker-compose.yml 同一目录下创建三个子目录:oradata、dbs、admin,将三个目录权限改为777。
验证服务
进入容器:
docker exec -it lloracle bash
验证:
$ sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Wed Mar 24 15:34:16 2021
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle. All rights reserved.
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
注:此处没有 Connected to an idle instance.
SQL> show pdbs;
SQL> select CDB from v$database; # 显示为NO表示非CDB
CDB
---
NO
创建表空间和用户
创建目录
进入容器,创建目录
docker exec -it lloracle bash
mkdir /opt/oracle/oradata/MY_DATA
注:此处是为了创建 54321 用户权限的目录,也可以在宿主机上创建,再用 chown 修改。
在navicat创建表空间和用户名
使用 navicat 连接 oracle,本次连接参数为:
端口:1521
服务名:ORCLCDB
用户及密码:system/123456
结果如图1所示:
点击“其它”、“表空间”、“新建表空间”。在默认“常规”:名称:system01.dbf,大小1,单位G,路径:’/opt/oracle/oradata/MY_DATA/'(注意最后的斜杠)。自动扩展:ON。(疑惑:此处的大小表征的是什么?如果后续数据超过1G会如何?)
点击“保存”,输入表空间名: MY_DATA。
点击“用户”、“用户”,“新建用户”,输入用户名称 MY_DB (大写),密码 123456,默认表空间选择刚才创建的表空间。“成员属于”,勾选DBA所有项。“保存”。
使用新用户连接
使用 navicat 连接 oracle,本次连接参数为:
端口:1521
服务名:ORCLCDB
用户及密码:MY_DB/123456
结果如图2所示:
另外,还再次创建另一表空间,另一用户名,再以 MY_DB 连接,依然可访问另一用户名的表空间。
小结
本文使用非 CDB 方式以 docker 运行 oracle19.3,经初步验证,可以正常使用,至于是否可经长期考验,等后续观察。
成果
本文完成的镜像如下:
registry.cn-hangzhou.aliyuncs.com/latelee/database:19.3.0-ee # 非cdb版本
registry.cn-hangzhou.aliyuncs.com/latelee/database:19.3.0-ee-cdb # cdb版本
容器探索
容器的用户名:
oracle:x:54321:54321::/home/oracle:/bin/bash
容器中的环境变量:
$ env
ORACLE_SID=ORCLCDB
INSTALL_FILE_1=LINUX.X64_193000_db_home.zip
ORACLE_BASE=/opt/oracle
CHECK_SPACE_FILE=checkSpace.sh
ORACLE_PDB=ORCLPDB1
PWD_FILE=setPassword.sh
TZ=Asia/Shanghai
SLIMMING=true
RUN_FILE=runOracle.sh
CREATE_DB_FILE=createDB.sh
SHLVL=1
ORACLE_PWD=123456
ORACLE_HOME=/opt/oracle/product/19c/dbhome_1
参考
官方仓库:github.com/oracle/dock…
修改后的仓库:github.com/latelee/doc…
安装说明文档
下载软件:www.oracle.com/database/te…
共享内存参考:blog.csdn.net/weisubao/ar…
Docker安装Oracle19c(NONCDB): www.jianshu.com/p/f0139aff1…
oracle镜像issue:github.com/oracle/dock…
附
构建镜像部分日志:
Removing intermediate container 2bbee773477c
---> f6b8442fcfaa
Step 19/22 : USER oracle
---> Running in 85995f303fab
Removing intermediate container 85995f303fab
---> 14525605ab30
Step 20/22 : WORKDIR /home/oracle
---> Running in b6c49a7101ee
Removing intermediate container b6c49a7101ee
---> d56853fe77c1
Step 21/22 : HEALTHCHECK --interval=1m --start-period=5m CMD "$ORACLE_BASE/$CHECK_DB_FILE" >/dev/null || exit 1
---> Running in 656e69b54359
Removing intermediate container 656e69b54359
---> c717fbcbc80e
Step 22/22 : CMD exec $ORACLE_BASE/$RUN_FILE
---> Running in 730cea346f50
Removing intermediate container 730cea346f50
---> 492ae2b9dbf8
Successfully built 492ae2b9dbf8
Successfully tagged oracle/database:19.3.0-ee
Oracle Database container image for 'ee' version 19.3.0 is ready to be extended:
--> oracle/database:19.3.0-ee
Build completed in 2288 seconds.
正常启动日志:
# docker-compose up
Starting oracle ... done
Attaching to oracle
oracle | ORACLE EDITION: ENTERPRISE # !!! 版本为商业版
oracle | ORACLE PASSWORD FOR SYS, SYSTEM AND PDBADMIN: 123456 # !!! 密码较简单,下面会出现提示
oracle |
oracle | LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 02-MAR-2021 15:42:22
oracle |
oracle | Copyright (c) 1991, 2019, Oracle. All rights reserved.
oracle |
oracle | Starting /opt/oracle/product/19c/dbhome_1/bin/tnslsnr: please wait...
oracle |
oracle | TNSLSNR for Linux: Version 19.0.0.0.0 - Production
oracle | System parameter file is /opt/oracle/product/19c/dbhome_1/network/admin/listener.ora
oracle | Log messages written to /opt/oracle/diag/tnslsnr/153722b1c570/listener/alert/log.xml
oracle | Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
oracle | Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=1521)))
oracle |
oracle | Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
oracle | STATUS of the LISTENER
oracle | ------------------------
oracle | Alias LISTENER
oracle | Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production
oracle | Start Date 02-MAR-2021 15:42:22
oracle | Uptime 0 days 0 hr. 0 min. 0 sec
oracle | Trace Level off
oracle | Security ON: Local OS Authentication
oracle | SNMP OFF
oracle | Listener Parameter File /opt/oracle/product/19c/dbhome_1/network/admin/listener.ora
oracle | Listener Log File /opt/oracle/diag/tnslsnr/153722b1c570/listener/alert/log.xml
oracle | Listening Endpoints Summary...
oracle | (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
oracle | (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=1521))) # !!!端口
oracle | The listener supports no services
oracle | The command completed successfully
oracle | [WARNING] [DBT-06208] The 'SYS' password entered does not conform to the Oracle recommended standards.
oracle | CAUSE:
oracle | a. Oracle recommends that the password entered should be at least 8 characters in length, contain at least 1 uppercase character, 1 lower case character and 1 digit [0-9].
oracle | b.The password entered is a keyword that Oracle does not recommend to be used as password
oracle | ACTION: Specify a strong password. If required refer Oracle documentation for guidelines.
oracle | [WARNING] [DBT-06208] The 'SYSTEM' password entered does not conform to the Oracle recommended standards.
oracle | CAUSE:
oracle | a. Oracle recommends that the password entered should be at least 8 characters in length, contain at least 1 uppercase character, 1 lower case character and 1 digit [0-9].
oracle | b.The password entered is a keyword that Oracle does not recommend to be used as password
oracle | ACTION: Specify a strong password. If required refer Oracle documentation for guidelines.
oracle | [WARNING] [DBT-06208] The 'PDBADMIN' password entered does not conform to the Oracle recommended standards.
oracle | CAUSE:
oracle | a. Oracle recommends that the password entered should be at least 8 characters in length, contain at least 1 uppercase character, 1 lower case character and 1 digit [0-9].
oracle | b.The password entered is a keyword that Oracle does not recommend to be used as password
oracle | ACTION: Specify a strong password. If required refer Oracle documentation for guidelines.
oracle | Prepare for db operation
oracle | 8% complete
oracle | Copying database files
oracle | 31% complete
oracle | Creating and starting Oracle instance
oracle | 32% complete
oracle | 36% complete
oracle | 40% complete
oracle | 43% complete
oracle | 46% complete
oracle | Completing Database Creation
oracle | 51% complete
oracle | 54% complete
oracle | Creating Pluggable Databases
oracle | 58% complete
oracle | 77% complete
oracle | Executing Post Configuration Actions
oracle | 100% complete
oracle | Database creation complete. For details check the logfiles at:
oracle | /opt/oracle/cfgtoollogs/dbca/TOLLPDB.
oracle | Database Information:
oracle | Global Database Name:TOLLPDB
oracle | System Identifier(SID):TOLLPDB
oracle | Look at the log file "/opt/oracle/cfgtoollogs/dbca/TOLLPDB/TOLLPDB0.log" for further details.
oracle |
oracle | SQL*Plus: Release 19.0.0.0.0 - Production on Tue Mar 2 16:09:31 2021
oracle | Version 19.3.0.0.0
oracle |
oracle | Copyright (c) 1982, 2019, Oracle. All rights reserved.
oracle |
oracle |
oracle | Connected to:
oracle | Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
oracle | Version 19.3.0.0.0
oracle |
oracle | SQL>
oracle | System altered.
oracle |
oracle | SQL>
oracle | System altered.
oracle |
oracle | SQL>
oracle | Pluggable database altered.
oracle |
oracle | SQL>
oracle | PL/SQL procedure successfully completed.
oracle |
oracle | SQL> Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
oracle | Version 19.3.0.0.0
oracle | The Oracle base remains unchanged with value /opt/oracle
oracle | #########################
oracle | DATABASE IS READY TO USE! # !!! 数据库可用
oracle | #########################
oracle | The following output is now a tail of the alert.log:
oracle | MY_DB(3):Completed: ALTER DATABASE DEFAULT TABLESPACE "USERS"
oracle | 2021-03-02T16:09:31.874025+08:00
oracle | ALTER SYSTEM SET control_files='/opt/oracle/oradata/TOLLPDB/control01.ctl' SCOPE=SPFILE;
oracle | 2021-03-02T16:09:31.898097+08:00
oracle | ALTER SYSTEM SET local_listener='' SCOPE=BOTH;
oracle | ALTER PLUGGABLE DATABASE MY_DB SAVE STATE
oracle | Completed: ALTER PLUGGABLE DATABASE MY_DB SAVE STATE
oracle | 2021-03-02T16:09:33.007808+08:00
oracle |
oracle | XDB initialized.
停止后第二次启动的日志:
Attaching to oracle
oracle | ORACLE EDITION: ENTERPRISE
oracle |
oracle | LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 02-MAR-2021 16:21:58
oracle |
oracle | Copyright (c) 1991, 2019, Oracle. All rights reserved.
oracle |
oracle | Starting /opt/oracle/product/19c/dbhome_1/bin/tnslsnr: please wait...
oracle |
oracle | TNSLSNR for Linux: Version 19.0.0.0.0 - Production
oracle | System parameter file is /opt/oracle/product/19c/dbhome_1/network/admin/listener.ora
oracle | Log messages written to /opt/oracle/diag/tnslsnr/11585b67b20f/listener/alert/log.xml
oracle | Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
oracle | Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=1521)))
oracle |
oracle | Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
oracle | STATUS of the LISTENER
oracle | ------------------------
oracle | Alias LISTENER
oracle | Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production
oracle | Start Date 02-MAR-2021 16:21:58
oracle | Uptime 0 days 0 hr. 0 min. 0 sec
oracle | Trace Level off
oracle | Security ON: Local OS Authentication
oracle | SNMP OFF
oracle | Listener Parameter File /opt/oracle/product/19c/dbhome_1/network/admin/listener.ora
oracle | Listener Log File /opt/oracle/diag/tnslsnr/11585b67b20f/listener/alert/log.xml
oracle | Listening Endpoints Summary...
oracle | (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
oracle | (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=1521)))
oracle | The listener supports no services
oracle | The command completed successfully
oracle |
oracle | SQL*Plus: Release 19.0.0.0.0 - Production on Tue Mar 2 16:21:58 2021
oracle | Version 19.3.0.0.0
oracle |
oracle | Copyright (c) 1982, 2019, Oracle. All rights reserved.
oracle |
oracle | Connected to an idle instance.
oracle |
oracle | SQL> ORACLE instance started.
oracle |
oracle | Total System Global Area 1610609888 bytes
oracle | Fixed Size 9135328 bytes
oracle | Variable Size 402653184 bytes
oracle | Database Buffers 1191182336 bytes
oracle | Redo Buffers 7639040 bytes
oracle | Database mounted.
oracle | Database opened.
oracle | SQL> Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
oracle | Version 19.3.0.0.0
oracle | The Oracle base remains unchanged with value /opt/oracle
oracle | #########################
oracle | DATABASE IS READY TO USE!
oracle | #########################
oracle | The following output is now a tail of the alert.log:
oracle | QPI: qopiprep.bat file present
oracle | 2021-03-02T16:22:33.798020+08:00
oracle | MY_DB(3):Opening pdb with no Resource Manager plan active
oracle | MY_DB(3):joxcsys_required_dirobj_exists: directory object exists with required path /opt/oracle/product/19c/dbhome_1/javavm/admin/, pid 119 cid 3
oracle | Pluggable database MY_DB opened read write
oracle | 2021-03-02T16:22:35.449498+08:00
oracle | Starting background process CJQ0
oracle | 2021-03-02T16:22:35.469509+08:00
oracle | CJQ0 started with pid=54, OS id=303
oracle | Completed: ALTER DATABASE OPEN
oracle | 2021-03-02T16:22:40.261727+08:00
oracle | ===========================================================
oracle | Dumping current patch information
oracle | ===========================================================
oracle | Patch Id: 29517242
oracle | Patch Description: Database Release Update : 19.3.0.0.190416 (29517242)
oracle | Patch Apply Time: 2019-04-18T15:21:17+08:00
oracle | Bugs Fixed: 14735102,19697993,20313356,21965541,25806201,25883179,25986062,
oracle | 26476244,26611353,26872233,27369515,27423500,27666312,27710072,27846298,
oracle | 27957203,28064977,28072567,28129791,28181021,28210681,28279456,28313275,
oracledata目录权限不足提示的信息:
mkdir: cannot create directory '/opt/oracle/oradata/dbconfig': Permission denied
oracle | mv: cannot stat '/opt/oracle/product/19c/dbhome_1/dbs/spfileTOLLPDB.ora': No such file or directory
oracle | mv: cannot stat '/opt/oracle/product/19c/dbhome_1/dbs/orapwTOLLPDB': No such file or directory
oracle | mv: cannot move '/opt/oracle/product/19c/dbhome_1/network/admin/sqlnet.ora' to '/opt/oracle/oradata/dbconfig/TOLLPDB/': No such file or directory
oracle | mv: cannot move '/opt/oracle/product/19c/dbhome_1/network/admin/listener.ora' to '/opt/oracle/oradata/dbconfig/TOLLPDB/': No such file or directory
oracle | mv: cannot move '/opt/oracle/product/19c/dbhome_1/network/admin/tnsnames.ora' to '/opt/oracle/oradata/dbconfig/TOLLPDB/': No such file or directory
oracle | mv: cannot move '/opt/oracle/product/19c/dbhome_1/install/.docker_enterprise' to '/opt/oracle/oradata/dbconfig/TOLLPDB/': No such file or directory
oracle | cp: cannot create regular file '/opt/oracle/oradata/dbconfig/TOLLPDB/': No such file or directory
oracle | ln: failed to create symbolic link '/opt/oracle/product/19c/dbhome_1/network/admin/sqlnet.ora': File exists
oracle | ln: failed to create symbolic link '/opt/oracle/product/19c/dbhome_1/network/admin/listener.ora': File exists
oracle | ln: failed to create symbolic link '/opt/oracle/product/19c/dbhome_1/network/admin/tnsnames.ora': File exists
oracle | cp: cannot stat '/opt/oracle/oradata/dbconfig/TOLLPDB/oratab': No such file or directory
oracle | ORACLE_HOME = [/home/oracle] ? ORACLE_BASE environment variable is not being set since this
oracle | information is not available for the current user ID .
oracle | You can set ORACLE_BASE manually if it is required.
oracle | Resetting ORACLE_BASE to its previous value or ORACLE_HOME
oracle | The Oracle base remains unchanged with value /opt/oracle
oracle | /opt/oracle/checkDBStatus.sh: line 26: sqlplus: command not found
oracle | #####################################
oracle | ########### E R R O R ###############
oracle | DATABASE SETUP WAS NOT SUCCESSFUL!
oracle | Please check output for further info!
oracle | ########### E R R O R ###############
oracle | #####################################
oracle | The following output is now a tail of the alert.log:
曾经的尝试
仅备档记录。 仅备档记录。 仅备档记录。
进入容器,可用如下命令连接:
sqlplus /nolog
sqlplus sys/123456@//localhost:1521/tollpdb as sysdba
sqlplus system/123456@//localhost:1521/tollpdb
sqlplus pdbadmin/123456@//localhost:1521/MY_DB # 注:修改密码,会登录失败,说明已经生效,但用navicat登录不了。
select * from all_users;
用 navicat 使用 system/123456 可登录(此时应该是cbd)。但用MY_DB和sysdba无法登录。原因未明。
查看pdb:
sqlplus sys/123456@//localhost:1521/tollpdb as sysdba
SQL> show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 MY_DB READ WRITE NO
注:必须以sysdba登录,system查看提示SP2-0382: The SHOW PDBS command is not available
。
使用 sysdba 登录做一些操作:
sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Wed Mar 3 10:11:26 2021
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle. All rights reserved.
Connected to an idle instance. # !!这里应该有错了
SQL> grant sysdba to system; # !! 执行,但不可用
grant sysdba to system
*
ERROR at line 1:
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0
SQL> show pdbs; # !! 执行,但不可用
ERROR:
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0
SP2-1545: This feature requires Database availability.
SQL> startup # !! 启动,但失败
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/opt/oracle/product/19c/dbhome_1/dbs/inittollpdb.ora'
拷贝一个inittollpdb.ora文件。
ORA-00845: MEMORY_TARGET not supported on this system
共享内存太小了
默认的init.ora中:memory_target=1G。
ORA-01102: cannot mount database in EXCLUSIVE mode
查看数据库是否为 CDB:
select CDB from v$database; -- 如果得到的结果为YES,那么就是CDB的数据库,否则,则不是。
切入要操作的pdb
show pdbs; -- 展示pdb数据库集合
alter session set container=MY_DB; -- 切入到PDB 数据库
alter session set container=CDB$ROOT; -- 切回到CDB 容器数据库
今天的文章我的docker随笔31:oracle数据库再次部署分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/21190.html