文章目录
- Docker安装oracle19c
- 1. 拉取镜像
- 2. 创建目录并赋权
- 3. 构建容器并启动
- 4. 查看日志
- 5. 登录docker容器里面
- 6. 登录sqlplus 创建PDB用户
- 7. 查看show pdbs
- 7. 切换数据库
- 8. 创建用户
- 9. 授权
- 10. 使用navicat连接
- 11. 参考和感谢
Docker安装oracle19c
1. 拉取镜像
docker pull registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:19c
2. 创建目录并赋权
mkdir -p /docker/oracle19c/oradata
chmod 777 /docker/oracle19c/oradata
3. 构建容器并启动
docker run -d -p 1521:1521 \-p 5502:5500 \-e ORACLE_SID=ORCLCDB \-e ORACLE_PDB=ORCLPDB \-e ORACLE_PWD=oracle \-e ORACLE_EDITION=standard \-e ORACLE_CHARACTERSET=AL32UTF8 \-v /docker/oracle19c/oradata/:/opt/oracle/oradata/ --name oracle_19c\registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:19c
-
docker run: 运行 Docker 容器的命令。
-
-d: 指定容器在后台运行(detached mode)。
-
-p 1521:1521: 将容器的 1521 端口映射到主机的 1521 端口,Oracle 数据库监听端口。
-
-p 5502:5500: 将容器的 5500 端口映射到主机的 5502 端口,用于 Oracle Enterprise Manager Express 访问的端口。
-
-e ORACLE_SID=ORCLCDB: 设置 Oracle 实例的 SID(System Identifier),这里设置为 ORCLCDB。
-
-e ORACLE_PDB=ORCLPDB: 设置 Oracle 的 Pluggable Database(PDB)的名称,这里设置为 ORCLPDB。
-
-e ORACLE_PWD=oracle: 设置 Oracle 系统用户
SYS
和SYSTEM
的初始密码为oracle
。 -
-e ORACLE_EDITION=standard: 设置 Oracle 的版本为标准版(standard),这影响 Oracle 的功能集。
-
-e ORACLE_CHARACTERSET=AL32UTF8: 设置 Oracle 数据库的字符集为 AL32UTF8,即 Unicode 字符集。
-
-v /docker/oracle19c/oradata/:/opt/oracle/oradata/: 将主机上的
/docker/oracle19c/oradata/
目录挂载到容器内的/opt/oracle/oradata/
目录,用于持久化存储数据库文件。 -
–name oracle_19c: 指定容器的名称为
oracle_19c
。 -
registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:19c: 指定要运行的 Docker 镜像,这里是从阿里云的镜像仓库中拉取并运行名为
oracle:19c
的镜像。
这个命令通过 Docker 在后台运行 Oracle 19c 数据库容器,并配置了数据库实例的 SID、PDB 名称、密码、字符集等参数,同时将数据库数据目录挂载到主机上的指定目录,确保数据持久化。
4. 查看日志
docker logs -ft oracle_19c
安装有点慢,请耐心等待执行完成
5. 登录docker容器里面
docker exec -it oracle_19c /bin/bash
6. 登录sqlplus 创建PDB用户
sqlplus / as sysdba
在 Oracle 数据库中,sqlplus / as sysdba
是一种连接到数据库的方式,其中:
sqlplus
是 Oracle 提供的交互式 SQL 工具,用于与 Oracle 数据库进行交互和执行 SQL 命令。/ as sysdba
是一种特殊的连接方式,其中/
表示连接时不需要输入用户名,sysdba
是系统管理员角色的一种,具有最高权限,可以执行数据库的管理操作。
因此,当你使用 sqlplus / as sysdba
命令连接到 Oracle 数据库时,你将以系统管理员 (sysdba
) 的身份登录,拥有对数据库实例进行各种管理操作的权限。这种连接方式常用于执行数据库的操作和维护,例如创建和修改数据库对象、备份和恢复数据等。需要谨慎使用,以免误操作导致不可逆的损坏。
7. 查看show pdbs
show pdbs
7. 切换数据库
alter session set container=ORCLPDB;
8. 创建用户
# create user 用户名 identified by 密码;
create user root identified by root;
9. 授权
grant dba to root;
在 Oracle 数据库中,GRANT DBA TO user;
是一种授权命令,用于赋予指定用户(user
)数据库管理员 (DBA
) 的权限。具体到你的问题 grant dba to root;
,这个命令的含义如下:
- GRANT: 这是 Oracle 数据库中用于授权的关键字,用于给予用户特定的权限。
- DBA: 是一个预定义的角色(Role),代表数据库管理员角色,具有数据库的最高权限。DBA 角色允许用户管理数据库对象、执行系统级别的任务等。
- TO: 表示授权的目标,即要授予权限的用户或角色。
- root: 在你的命令中,
root
可能指的是操作系统中的 root 用户,但需要注意,在 Oracle 数据库中,通常需要使用数据库用户(例如SYS
用户)来执行授权操作,而不是操作系统的 root 用户。
10. 使用navicat连接
11. 参考和感谢
docker安装oracle:19c