我的docker随笔31:oracle数据库再次部署
本文涉及一种在容器中部署 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-eecontainer_name: lloracleshm_size: 4gbrestart: always#command: volumes:- ./oracle_data/oradata:/opt/oracle/oradata- ./oracle_data/dbs:/opt/oracle/product/19c/dbhome_1/dbs- ./oracle_data/admin:/opt/oracle/adminenvironment:- TZ=Asia/Shanghai- ORACLE_SID=ORCLCDB- ORACLE_PDB=ORCLPDB1- ORACLE_PWD=123456- ORACLE_CHARACTERSET=ZHS16GBKports:- 1521:1521networks:- lloracle-netnetworks: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 sysdbaSQL*Plus: Release 19.0.0.0.0 - Production on Wed Mar 24 15:34:16 2021
Version 19.3.0.0.0Copyright (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表示非CDBCDB
---
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
参考
官方仓库:https://github.com/oracle/docker-images
修改后的仓库:https://github.com/latelee/docker-images
安装说明文档
下载软件:https://www.oracle.com/database/technologies/oracle-database-software-downloads.html
共享内存参考:https://blog.csdn.net/weisubao/article/details/108704236
Docker安装Oracle19c(NONCDB): https://www.jianshu.com/p/f0139aff1746
oracle镜像issue:https://github.com/oracle/docker-images/issues/791
附
构建镜像部分日志:
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-eeOracle Database container image for 'ee' version 19.3.0 is ready to be extended: --> oracle/database:19.3.0-eeBuild 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 /nologsqlplus 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 sysdbaSQL> show pdbs;CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------2 PDB$SEED READ ONLY NO3 MY_DB READ WRITE NO
注:必须以sysdba登录,system查看提示SP2-0382: The SHOW PDBS command is not available
。
使用 sysdba 登录做一些操作:
sqlplus / as sysdbaSQL*Plus: Release 19.0.0.0.0 - Production on Wed Mar 3 10:11:26 2021
Version 19.3.0.0.0Copyright (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: 0SQL> show pdbs; # !! 执行,但不可用
ERROR:
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0SP2-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 容器数据库
2021年2月 开始着手研究,3月完成 李迟
我的docker随笔31:oracle数据库再次部署相关推荐
- linux删除sde服务,在Oracle数据库中部署多个SDE服务
在Oracle数据库中部署多个SDE服务 一.一个Oracle部署多个SDE服务(采用问题的方式提供答案) 问题: 目的: 在机器上安装了oracle实例,默认会产生一个数据库实例(SID为 Orcl ...
- 在Docker中搭建Oracle数据库,并使用PL/SQL Developer链接
原文地址::https://blog.csdn.net/qq_17518433/article/details/72835844?utm_medium=distribute.pc_relevant_t ...
- 我的docker随笔35:jenkins服务部署
本文涉及一种在容器中部署 jenkins 服务的方法,后续将其与 gitlab 配合以实现 CICD 功能.其目的是为了在实际工作中使用代码托管及自动化操作. 一.引言 因工作需要,需部署 jenki ...
- 我的docker随笔34:gitlab服务部署
本文涉及一种在容器中部署 gitlab 服务的方法,并结合其自带的 gitlab-runner 实现 CICD 功能.其目的是为了在实际工作中使用代码托管及自动化操作. 一.引言 因工作需要,需部署 ...
- 我的docker随笔32:sftp服务部署
本文涉及一种在容器中部署 sftp 服务的方法.经验证,可达到预期目标,并能应用在实际工作中. 一.引言 因工作需要,需部署 sftp 服务器进行数据测试. 二.技术小结 dockerhub 上相关镜 ...
- 我的docker随笔21:web 服务器部署
本文记录几种不同的web服务器部署,其过程大同小异. 技术总结: 1.选择镜像,建议体积越小越好.确认宿主机目录,将其挂载到容器存放 html 文件的目录. 2.可以将 html 文件拷贝到镜像中重新 ...
- 我的docker随笔33:在容器中连接oracle数据库
本文涉及一种在容器中连接 oracle 数据库的方法和步骤,最后给出测试结果.至于使用程序的方式连接,则是后续要实施的工作. 一.引言 之前在 Windows 实现了连接 oracle 数据库,本次尝 ...
- 我的docker随笔29:oracle数据库部署
本文涉及: oracle 的容器化部署. 下载镜像: docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g 镜像列表: RE ...
- docker 离线安装 mysql_Oracle数据库之docker 离线环境安装oracle
本文主要向大家介绍了Oracle数据库之docker 离线环境安装oracle,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助. 因测试需要,需在内网的测试环境搭建一套docker ...
最新文章
- JavaScript 中创建三种消息框:警告框、确认框、提示框
- 2.4 使用来自不同分布的数据,进行训练和测试-深度学习第三课《结构化机器学习项目》-Stanford吴恩达教授
- PHP设计模式之装饰者模式
- 神策数据算法专家:推荐系统的实践与思考(下)
- flink sql 部署_在FlinkSQL中使用SQL client时,如何使用 query配置?
- Python 操作 Windows 粘贴板
- 当你不被上司信任和待见,工作无法正常开展
- net安装 0x80096004 无法验证证书的签名_如何购买iOS签名证书
- java.lang.NoClassDefFoundError: com/baidu/ueditor/ActionEnter报错解决
- 汤国安:GIS教育可能要崩盘
- 举例 微积分 拉格朗日方程_(完整word版)拉格朗日方程的应用及举例08讲
- mysql 5.6 cmake 参数_编译cmake MySQL 5.6.10报错
- 计算机硬盘密码,电脑常识之--如何给移动硬盘[硬盘]加密码
- canvas绘制动态图片
- 2021年中职“网络安全“江西省赛题—B-1:系统漏洞利用与提权
- ue 查看 html,网页查看源文件 默认用UltraEdit或记事本打开 修改办法
- RHCE第一讲【II】
- 荣耀手机和小米打出了真火,针锋相对比拼千元机
- java 线程耗尽_关于线程耗尽导致请求超时系统假死
- 明白这十个故事--你也就参悟了人生
热门文章
- 怎样设置 vmware 开放一个网络端口,使网络上的电脑能访问这个端口
- android适配工具,Android自动适配工具
- 中国互联网大佬隐退简史
- iFixit:手机屏幕底部安装小芯片致第三方维修iPhone 13屏幕更难
- 你扔掉的旧衣服撑起了一个千亿市场?
- iPhone 13高端版所需120Hz刷新率屏幕或将由三星独家供应
- 京东大数据研究院:智能马桶四年销量翻10倍
- 果然!这款不到1万的折叠手机同样秒售罄
- 华为Mate 40系列开启线下预约:麒麟9000“末代”旗舰
- 2020 BrandZ全球品牌价值排行榜100强发布 TikTok首次上榜