从已发布镜像中,选择数据库版本及对应的镜像。我们使用以下命名约定:
| 数据库版本 | 最新镜像标签 | 特定发布镜像标签 | 支持架构 |
|---|---|---|---|
| 26ai | latest-26ai | 26.2.4.2-26ai | linux/arm64 和 linux/amd64 |
| 23ai | latest-23ai | 25.9.3.2-23ai | linux/arm64 和 linux/amd64 |
| 19c | latest | 26.2.4.2 | linux/amd64 |
[!NOTE] ADBS-25.9.3.2-23ai 是最后一个 23ai 版本。我们现在仅发布 26ai 和 19c 的 adb-free 镜像。
[!NOTE] 通常,镜像除了发布版本标签外,还会有额外的"重要功能"标签。例如:
adb-free:select_ai_agent
Oracle Autonomous AI Database Free 容器需要 4 个 CPU 和 8 GiB 内存
请参考官方文档在Linux、Windows或Mac上安装 podman
容器需要Linux内核。运行以下命令启动podman虚拟机:
podman machine init
podman machine set --cpus 4 --memory 8192
podman machine start
[!NOTE] 26ai 镜像是多架构的,即原生支持 ARM64 和 AMD64 平台。 19c 镜像仅原生支持 linux/amd64 平台。要在 ARM 机器上运行 19c adb-free 容器,需要使用 colima 模拟。 有关设置 Colima 虚拟机的说明,请阅读FAQ
[!NOTE] 尽管说明中使用
podman,但镜像格式同时符合开放容器倡议 (OCI) 和 Docker 标准。 ADB 容器可与 OCI 和 Docker 容器运行时无缝协作。您也可以使用docker启动容器。
要启动用于ATP工作负载的 Oracle Autonomous AI Database Free 容器,请运行以下命令:
podman run -d \
-p 1521:1522 \
-p 1522:1522 \
-p 8443:8443 \
-p 27017:27017 \
-e WORKLOAD_TYPE=ATP \
-e WALLET_PASSWORD=*** \
-e ADMIN_PASSWORD=*** \
--cap-add SYS_ADMIN \
--device /dev/fuse \
--name adb-free \
container-registry.oracle.com/database/adb-free:latest-26ai
注意:对于 19c,请使用
container-registry.oracle.com/database/adb-free:latest
ADMIN_PASSWORD 指定密码WALLET_PASSWORD 生成下表解释传递给容器的环境变量:
| 环境变量 | 描述 |
|---|---|
| WORKLOAD_TYPE | 可以是 ATP(事务处理)或 ADW(数据仓库)。默认值为 ATP |
| DATABASE_NAME | 数据库名称只能包含字母数字字符。如果未提供,数据库将根据传递的工作负载类型命名为 MYATP 或 MYADW |
| ADMIN_PASSWORD | 管理员用户密码长度必须在 12 到 30 个字符之间,且必须包含至少一个大写字母、一个小写字母和一个数字。密码不能包含用户名 |
| WALLET_PASSWORD | ***密码长度至少为 8 个字符,且必须包含字母字符以及数字或特殊字符 |
| ENABLE_ARCHIVE_LOG | 用于启用数据库归档日志。默认值为 True。要关闭归档日志,请将值设置为 False |
注意:对于 OFS 挂载,容器应使用
SYS_ADMIN权限启动。此外,虚拟设备/dev/fuse必须可访问
请注意以下转发到容器进程的端口:
| 端口 | 描述 |
|---|---|
| 1521 | TLS |
| 1522 | mTLS |
| 8443 | ORDS / APEX 和 Database Actions 的 HTTPS 端口 |
| 27017 | Mongo API |
如果您位于企业代理之后,有两种方式配置数据库使用代理设置:
HTTP_PROXY 数据库属性。供 DBMS_CLOUD 等包使用:exec DBMS_CLOUD_CONTAINER_ADMIN.set_database_property('HTTP_PROXY', 'www-my-corp-proxy.com:80/');
UTL_HTTP.set_proxy 为通过 UTL_HTTP 发送的 HTTP 请求设置代理:exec UTL_HTTP.SET_PROXY('www-my-corp-proxy.com');
adb-cli 可用于在容器启动并运行后执行数据库操作。
要使用 adb-cli,您可以定义以下别名以方便使用:
alias adb-cli="podman exec adb-cli"
>> adb-cli --help
Usage: adb-cli [OPTIONS] COMMAND [ARGS]...
ADB-S Command Line Interface (CLI) to perform container-runtime database operations
Options:
-v, --version Show the version and exit.
--help Show this message and exit.
Commands:
add-database 添加数据库
change-password 修改密码
您可以使用 add-database 命令添加数据库:
adb-cli add-database --workload-type "ADW" --admin-password "Welcome_1234"
要修改管理员用户密码,请使用以下命令:
adb-cli change-password --database-name "MYADW" --old-password "Welcome_1234" --new-password "Welcome_***"
要在容器重启和删除后持久化数据,应在 /u01/data 挂载卷,并按照跨容器迁移PDB数据的文档中提到的步骤操作:
podman run -d \
-p 1521:1522 \
-p 1522:1522 \
-p 8443:8443 \
-p 27017:27017 \
-e WORKLOAD_TYPE=ATP \
-e WALLET_PASSWORD=*** \
-e ADMIN_PASSWORD=*** \
--cap-add SYS_ADMIN \
--device /dev/fuse \
--name adb-free \
--volume adb_container_volume:/u01/data \
container-registry.oracle.com/database/adb-free:latest-26ai
容器主机名用于生成自签名SSL证书,以在8443端口提供HTTPS流量。可使用容器主机(或直接使用localhost)访问APEX和Database Actions:
| 应用程序 | URL |
|---|---|
| APEX | [***] |
| Database Actions | [***] |
注意:对于使用
adb-cli add-database命令插入的其他数据库,请分别使用 URL 格式[***]{database_name}/apex和[***]{database_name}/sql-developer访问 APEX 和 Database Actions。
在容器中,TLS***生成于 /u01/app/oracle/wallets/tls_wallet 位置。
将***复制到主机:
podman cp adb-free:/u01/app/oracle/wallets/tls_wallet /scratch/tls_wallet
在此示例中,***被复制到 /scratch/tls_wallet 文件夹。
将 TNS_ADMIN 环境变量指向***目录:
export TNS_ADMIN=/scratch/tls_wallet
如果要连接到运行ADB free容器的远程主机,请将 $TNS_ADMIN/tnsnames.ora 中的 localhost 替换为远程主机的FQDN:
sed -i 's/localhost/my.host.com/g' $TNS_ADMIN/tnsnames.ora
与云中的Autonomous AI Database类似,可使用以下任一别名连接到ADB free容器。
对于mTLS,使用以下别名:
对于TLS,使用以下别名:
对于mTLS,使用以下别名:
对于TLS,使用以下别名:
TNS别名与其连接字符串的映射可在 $TNS_ADMIN/tnsnames.ora 文件中找到。
要无***连接,需要使用容器启动时生成的自签名证书更新客户端的信任库。
从容器复制 /u01/app/oracle/wallets/tls_wallet/adb_container.cert 并更新系统信任库:
podman cp adb-free:/u01/app/oracle/wallets/tls_wallet/adb_container.cert adb_container.cert
sudo cp adb_container.cert /etc/pki/ca-trust/source/anchors
sudo update-ca-trust
对于MacOS,请参考支持指南将证书添加到钥匙串。
要更新JDK信任库,可使用 keytool:
Linux示例:
sudo keytool -import -alias adb_container_certificate -keystore $JAVA_HOME/lib/security/cacerts -file adb_container.cert
MacOS示例:
sudo keytool -import -alias adb_container_certificate -file adb_container.cert -keystore /Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home/lib/security/cacerts
从容器复制***并压缩:
podman cp adb-free:/u01/app/oracle/wallets/tls_wallet /scratch/tls_wallet
zip -j /scratch/tls_wallet.zip /scratch/tls_wallet/*
压缩***后,打开SQLDeveloper并按照以下步骤操作:
在此示例中,我们使用别名 myatp_low 连接:
sqlplus admin/<password>@myatp_low
SQL*Plus: Release 21.0.0.0.0 - Production on Wed Jul 26 22:38:27 2023
Version 21.9.0.0.0
Copyright (c) 1982, 2022, Oracle. All rights reserved.
Last Successful login time: Wed Jul 26 2023 16:36:16 +00:00
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.20.0.1.0
SQL>
安装Oracle数据库的python-oracledb驱动:
python3 -m pip install oracledb
import oracledb
conn = oracledb.connect(
user="admin",
password="<password>",
dsn="myadw_medium",
config_dir="/scratch/tls_wallet",
wallet_location="/scratch/tls_wallet",
wallet_password="***"
)
cr = conn.cursor()
r = cr.execute("SELECT 1 FROM DUAL")
print(r.fetchall())
>> [(1,)]
以管理员身份连接:
sqlplus admin/<password>@myatp_medium
按如下方式创建用户:
CREATE USER APP_USER IDENTIFIED BY "<password>" QUOTA UNLIMITED ON DATA;
-- 添加角色
GRANT CONNECT TO APP_USER;
GRANT CONSOLE_DEVELOPER TO APP_USER;
GRANT DWROLE TO APP_USER;
GRANT RESOURCE TO APP_USER;
-- 启用REST
BEGIN
ORDS.ENABLE_SCHEMA(
p_enabled => TRUE,
p_schema => 'APP_USER',
p_url_mapping_type => 'BASE_PATH',
p_url_mapping_pattern => 'app_user',
p_auto_rest_auth=> TRUE
);
commit;
END;
/
-- 配额
ALTER USER APP_USER QUOTA UNLIMITED ON DATA;
Oracle Estate Explorer 是一款工具,使客户能够以编程方式评估Oracle数据库组向Oracle Autonomous AI Database的迁移就绪性。OEE的输出提供测试数据库组的高级资产概述,根据其与ADB先决条件的对齐程度进行排名,并提供所需任何修复的分级相对工作量。OEE APEX应用已安装在adb-free镜像中,可供使用...
请登录使用轩辕镜像享受快速拉取体验,支持国内访问优化,速度提升
docker pull container-registry.oracle.com/database/adb-free:26.2.4.2-26ai-arm64探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务