前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住给大家分享一下。点击跳转到网站:https://www.captainai.net/dongkelun

镜像
1 | https://docker.aityp.com/image/docker.io/truevoly/oracle-12c:latest |
创建并启动容器
1 | mkdir -p /home/oracle/app/oracle12c/oradata |
查看日志
1 | docker logs -f --tail 100 oracle12c |
1 | Database not initialized. Initializing database. |
登录到容器内
1 | docker exec -it oracle12c bash |
配置环境变量
1 | vi /etc/profile |
登录
1 | # 必须要切到 oracle 用户 |
命令解释:
- sqlplus / as sysdba : 使用操作系统认证以 SYSDBA 特权用户身份连接到 Oracle 数据库的命令
- sqlplus:Oracle 提供的命令行工具,用于与数据库交互(SQL*Plus 的缩写)。
- /:表示使用操作系统认证(OS Authentication),无需显式输入用户名和密码。
- as sysdba:以 SYSDBA 特权角色连接,拥有最高权限(如启动 / 关闭数据库、创建用户等)。
- sqlplus sys/oracle as sysdba : 使用用户名密码以 SYSDBA 特权身份连接到 Oracle 数据库 (不过这里用户名密码不管写什么都能连接)
- sys/oracle:用户名和密码
- sys:Oracle 数据库的超级管理员用户(拥有最高权限)
- oracle:默认密码
- sqlplus /nolog : 启动 SQL*Plus 工具但不立即连接到数据库的命令
- CONNECT sys/oracle AS SYSDBA :SQL*Plus 中使用用户名密码以 SYSDBA 特权身份连接到 Oracle 数据库的命令。(同样的这里用户名密码不管写什么都能连接)
- CONNECT:SQL*Plus 内置命令,用于建立或切换数据库连接(可简写为 CONN 或 LOGON)。
- conn / as sysdba 是 Oracle SQL*Plus 中使用操作系统认证以 SYSDBA 特权身份连接数据库的命令
登录异常
1 | sqlplus / as sysdba |
解决:以oracle用户登录。
启动数据库
1 | SQL> startup |
解决 cannot mount database in EXCLUSIVE mode
首先关闭数据库
1 | SHUTDOWN IMMEDIATE; |
方法1
1 | su oracle |
参考:https://blog.csdn.net/qq_47502724/article/details/144828940
方法2
和我在之前写的Centos7 安装oracle11 中用的方法一样: 通过 fuser -k 释放占用 lk<SID>
的进程。一般系统自带 fuser 命令,但是我们装的oracle 容器内没有自带,所以需要先安装对应的命令。
1 | sudo apt update |
需要先联网 update ,再安装 psmisc,联网需要修改 /etc/resolv.conf ,添加 DNS(前提是宿主机也能联网):
1 | nameserver 223.5.5.5 |
在 Docker 容器中使用 vi 编辑文件时, 可能遇到一些体验问题(如方向键乱码、退格键失效等),可通过安装最小化的 vim-tiny
1 | apt-get install -y vim-tiny |
lk<SID>
在 $ORACLE_HOME/dbs
1 | su oracle |
查询数据库状态
1 | SELECT status FROM v$instance; |
返回值说明:
- STARTED:实例已启动,但未装载数据库。
- MOUNTED:实例已装载数据库(ALTER DATABASE MOUNT)。
- OPEN:数据库正常打开,可读写。
- OPEN READ ONLY:数据库只读模式。
连接验证
- SID 和 Service Name 均为 XE
- 用密码密码: sys/oracle 和 system/oracle
- sys 用户:具有 “SYSDBA” 或者 “SYSOPER” 系统权限,登录EM(企业管理器)也只能用这两个身份,不能用normal(普通用户)身份。SYSDBA是管理 Oracle 实例的,拥有最高的系统权限,可完成数据库的所有管理任务,如创建数据库、删除数据库、数据库日志归档、执行不完全恢复,以及创建其它的SYSOPER和SYSDBA用户等
- system 用户:SYSTEM用户:默认拥有普通DBA角色权限,能完成除备份恢复、升级之外的大部分数据库管理任务。但只能用normal身份登录EM,除非对它授予了SYSDBA或SYSOPER系统权限。如果SYSTEM用户以AS SYSDBA登录,其结果实际上是作为SYS用户登录的。
修改密码
1 | alter user system identified by test123; |
删除 Docker 容器
1 | docker stop oracle12c |