一、介绍
Oracle 12c
是Oracle 11g
的后续版本。12c
代表云计算(Cloud Computing),这是Oracle在该版本中强调的一个关键概念。它具有多租户架构、数据库内存、安全增强、大数据管理和自动化管理等功能。它被广泛应用于企业级应用程序和大型数据中心。
- 多租户架构:
Oracle12c
允许在单个数据库实例中容纳多个独立的租户。 - 数据库内存:
Oracle12c
可以将热数据加载到内存中,可以显著加快数据访问速度。 - 安全增强:
Oracle12c
提供了更强大的安全功能,包括数据红外线和统一审计等。 - 大数据管理:
Oracle12c
集成了与大数据技术的连接,支持直接访问和处理大规模数据集。这使得Oracle数据库能够更好地与Hadoop和NoSQL数据库集成。 - 自动化管理:自动化备份和恢复、自动化性能调整和自动化存储管理。
二、安装
1、搜索oracle-12c
docker search oracle-12c
2、拉取镜像
我们选择第一个版本
3、创建数据库挂载文件
将docker中的数据库文件挂载到你的主机目录下,并给该目录读和写的权限。
mkdir -p /mydata/oracle/ora_data
chmod -R 777 /mydata/oracle/ora_data
4、创建Oracle容器并运行
docker run --privileged=true -d -p 2122:22 -p 9090:8080 -p 1521:1521 -v /mydata/oracle/ora_data:/u01/app/oracle/ --name oracle-12c truevoly/oracle-12c
参数解释:
- -d 后台运行容器,并返回容器ID。
- -p 指定端口。
- -v 指定数据卷位置。
- –privileged=true 为容器提供特权模式,允许对主机的底层系统进行更高级别的访问。
查看oracle-12c
启动日志
docker logs -f oracle-12c
5、DBCA Operation failed.
错误
如果你的虚拟机没有给2G
以上的内存,那么在运行容器时会失败。启动日志会报如下错误:
Database not initialized. Initializing database.
Starting tnslsnr
Copying database files
1% complete
2% complete
4% complete
DBCA Operation failed.
Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/xe/xe.log" for further details.
同时,由于容器没有启动成功,因此你无法查看/u01/app/oracle/cfgtoollogs/dbca/xe/xe.log
该日志文件。
这个报错是由于oracle-12c
需要2G
以上的内存环境才能运行,虚拟机的内存设置为2G以上就可以了。
6、进入容器修改账号密码设置
#查看容器ID
docker ps
#进入容器
docker exec -it 6a29ce3c4e9f /bin/bash
#切换成oracle用户
su oracle
#进入sqlplus
$ORACLE_HOME/bin/sqlplus / as sysdba
//设置密码有效期为无限制
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
//解锁system用户
alter user SYSTEM account unlock;
//创建一个账号
create user zheng identified by 123456
//为这个用户赋予管理员的权限
grant dba to zheng;
7、使用Pl/SQL测试连接
登录成功,说明oracle已安装成功。