Oracle 26ai 安装示例数据库方法

安装报告 (Installation Report)

安装日期:2026-08-15。本报告记录示例 schema 在本环境中的安装过程、账号信息、验证结果与已知限制。

1. 目标数据库

项目
数据库 Oracle 23.26.3.0.0(26ai 系列),多租户架构
主机 / 端口 192.168.3.88:1521
容器 CDB: ORCLCDB,PDB: ORCLPDB1(READ WRITE)
连接串 192.168.3.88:1521/ORCLPDB1
组件 XDB、SDO(Spatial)均 VALID

2. 客户端工具(安装于本机)

工具 版本 位置
SQLcl 26.2.1.222.1617 D:\tools\sqlcl
Instant Client (Basic) 23.26.3.0.0 D:\Program Files\instantclient-basic-oracle-23.26.3.0.0\instantclient_23_26
Instant Client (Tools,含 SQL*Loader) 23.26.3.0.0 同上(本次补充解压,提供 sqlldr.exe

3. 账号汇总

所有 schema 密码统一为 88888888,数据表空间统一为 sample,临时表空间 TEMP

用户 密码 表空间 说明
system / sys 88888888 - 管理员账号(sys 以 SYSDBA 连接)
hr 88888888 sample Human Resources
co 88888888 sample Customer Orders
sh 88888888 sample Sales History
oe 88888888 sample Order Entry(归档,含 OC 子 schema)
pm 88888888 sample Product Media(归档)

4. 安装过程摘要

  1. HR / CO / SH(受支持 schema):以 system 连接 PDB,分别在 human_resources/customer_orders/sales_history/ 目录运行 <schema>_install.sql,按提示输入密码 88888888、表空间 sample、覆盖 YES。SH 官方要求使用 SQLcl 运行。
  2. OE / PM(归档 schema):先按官方流程执行 perl 替换 __SUB__CWD__D:/db-sample-schemas(生成了 .bak 备份),再以 system 连接,运行 order_entry/oe_main.sqlproduct_media/pm_main.sql,传入 9 个参数(各 schema 密码、表空间 sample、临时表空间 TEMP、数据/日志路径、版本 v3、连接串)。PM 通过 SQL*Loader 从客户端加载 LOB 数据。

5. 验证结果(provided = actual,全部一致)

HR:

行数
regions / countries / departments / locations / employees / jobs / job_history 5 / 25 / 27 / 23 / 107 / 19 / 10

CO:

行数
customers / stores / products / orders / order_items / shipments / inventory 392 / 23 / 46 / 1950 / 3914 / 1892 / 566

SH:

行数
channels / costs / countries / customers / products / promotions / sales / times / supplementary_demographics 5 / 82112 / 35 / 55500 / 72 / 503 / 918843 / 1826 / 4500

OE(93 个对象,0 无效;OC 类型 27 个,公共同义词 COE_ 5 个,HR→OE 授权 9 项):*

行数
customers / orders / order_items / product_information / product_descriptions / inventories / warehouses / promotions 319 / 105 / 665 / 288 / 8640 / 1112 / 9 / 2

PM(8 个对象,0 无效;SQL*Loader 加载 16 条记录,0 拒绝):

对象 行数
print_media 4
textdocs_nestedtab(嵌套表) 12

6. 已知限制

  1. OE 的 XDB 采购订单演示xdb03usg.sql):目录对象 SS_OE_XMLDIR 指向服务器端路径,而 purchaseOrder.xml/.xsd 文件在安装机本地、无法放置到远端服务器,因此 XDB 资源创建步骤失败(ORA-22288 / ORA-31001)。仅影响 XDB 演示资源,OE/OC 的表、视图、类型与数据完整。
  2. PM 的 BFILE 列print_media.ad_graphic):MEDIA_DIR 目录对象已创建但指向本机路径字符串,服务器上无对应媒体文件,BFILE 定位符存在但 DBMS_LOB.FILEEXISTS = 0。BLOB 数据(照片、文档等)均正常入库。

7. 日志位置

  • HR / CO / SH:各 schema 目录下的 <schema>_install.log,运行输出副本在仓库根目录 *_run_out.log
  • OE / PM:logs/oe_oc_v3.loglogs/pm_main.loglogs/pm_p_lob.log(及运行输出副本 logs/oe_run_out.loglogs/pm_run_out.log)。

8. 卸载方式

  • HR / CO / SH:以特权用户运行各目录下的 <schema>_uninstall.sql
  • OE / PM:以特权用户执行 DROP USER oe CASCADE;DROP USER pm CASCADE;

9. 具体安装命令与步骤

以下命令在本机 Git Bash(Windows)中实际执行并验证通过。/d/... 为 Git Bash 路径写法,等价于 D:/...

9.1 工具准备

# 1) 下载并解压 SQLcl(需已装 Java 11+)
curl -sSL -o sqlcl-latest.zip https://download.oracle.com/otn_software/java/sqldeveloper/sqlcl-latest.zip
unzip -q sqlcl-latest.zip -d /d/tools          # 得到 /d/tools/sqlcl

# 2) 下载 Instant Client Tools 包(提供 sqlldr.exe),解压进已有 Basic 目录
curl -sSL -o ic-tools.zip "https://download.oracle.com/otn_software/nt/instantclient/2326300/instantclient-tools-windows.x64-23.26.3.0.0.zip"
unzip -q ic-tools.zip -d "/d/Program Files/instantclient-basic-oracle-23.26.3.0.0/instantclient_23_26/"
# zip 内含一层 instantclient_23_26/ 子目录,需将内容上移一层到 Basic 目录根

# 3) 建日志目录
mkdir -p /d/db-sample-schemas/logs

9.2 HR / CO / SH(受支持 schema,交互提示)

脚本用 ACCEPT 依次询问:密码、表空间、是否覆盖已存在 schema。以下用管道预填答案:
三行输入 = 密码 / 表空间 / 覆盖确认(空行回车 = 默认 YES)。

# HR
cd /d/db-sample-schemas/human_resources
printf '88888888\nsample\n\n' | /d/tools/sqlcl/bin/sql -S "system/88888888@192.168.3.88:1521/ORCLPDB1" @hr_install.sql

# CO
cd /d/db-sample-schemas/customer_orders
printf '88888888\nsample\n\n' | /d/tools/sqlcl/bin/sql -S "system/88888888@192.168.3.88:1521/ORCLPDB1" @co_install.sql

# SH(官方要求 SQLcl 运行)
cd /d/db-sample-schemas/sales_history
printf '88888888\nsample\n\n' | /d/tools/sqlcl/bin/sql -S "system/88888888@192.168.3.88:1521/ORCLPDB1" @sh_install.sql

三个脚本末尾自带的验证段(provided = actual 行数对比)会打印在输出与 <schema>_install.log 中。

9.3 OE / PM(归档 schema,参数传入)

归档脚本用 DEFINE &1..&9 接收参数(非交互提示),需先替换脚本与数据文件中的
__SUB__CWD__ 占位符为仓库绝对路径(官方安装流程,会生成 .bak 备份):

cd /d/db-sample-schemas
perl -p -i.bak -e 's#__SUB__CWD__#D:/db-sample-schemas#g' *.sql */*.sql */*.dat

OE(含 OC 子 schema)@oe_main.sql 后跟 9 个参数:

cd /d/db-sample-schemas
printf 'exit\n' | /d/tools/sqlcl/bin/sql -S -L "system/88888888@192.168.3.88:1521/ORCLPDB1" \
  @order_entry/oe_main.sql 88888888 sample TEMP 88888888 88888888 \
  D:/db-sample-schemas D:/db-sample-schemas/logs/ v3 192.168.3.88:1521/ORCLPDB1

PM@product_media/pm_main.sql 后跟 9 个参数(先确保 sqlldr 在 PATH 中):

export PATH="/d/Program Files/instantclient-basic-oracle-23.26.3.0.0/instantclient_23_26:$PATH"
cd /d/db-sample-schemas
printf 'exit\n' | /d/tools/sqlcl/bin/sql -S -L "system/88888888@192.168.3.88:1521/ORCLPDB1" \
  @product_media/pm_main.sql 88888888 sample TEMP 88888888 88888888 \
  D:/db-sample-schemas/product_media/ D:/db-sample-schemas/logs/ \
  D:/db-sample-schemas/product_media/ 192.168.3.88:1521/ORCLPDB1

参数顺序说明(OE / PM 一致):

# 含义 本次取值
1 目标 schema 密码 88888888
2 默认表空间 sample
3 临时表空间 TEMP
4 HR(OE 用)/ OE(PM 用)密码 88888888
5 SYS 密码 88888888
6 数据/控制文件目录 OE: D:/db-sample-schemas;PM: D:/db-sample-schemas/product_media/(PM 中同时写入目录对象 MEDIA_DIR
7 日志目录(末尾需带分隔符) D:/db-sample-schemas/logs/
8 OE: 版本号 v3(对应 coe_v3/loe_v3/poe_v3 系列脚本,注意不是 README 原写的 3);PM: 工作目录(存放 pm_p_lob.dat OE: v3;PM: D:/db-sample-schemas/product_media/
9 连接串 192.168.3.88:1521/ORCLPDB1

说明:纯数字密码(88888888)无需引号即可 CREATE USER ... IDENTIFIED BY ...
CREATE DIRECTORY 不校验服务器路径是否存在,故 PM 的 MEDIA_DIR 指向本机路径也能完成安装。

9.4 验证抽查命令

/d/tools/sqlcl/bin/sql -S -L "system/88888888@192.168.3.88:1521/ORCLPDB1" <<'EOF'
select 'HR.employees='||count(*) from hr.employees;
select 'CO.orders='||count(*) from co.orders;
select 'SH.sales='||count(*) from sh.sales;
select 'OE.customers='||count(*) from oe.customers;
select 'PM.print_media='||count(*) from pm.print_media;
exit
EOF

完整的逐表行数对比见上文第 5 节验证结果。