1. windows 安装oracle
环境要求
操作系统:必须是 64 位的。推荐 Windows 10/11 专业版/企业版 或 Windows Server 2019/2022 。家庭版可能会有兼容性问题。
内存与硬盘:至少 2GB 内存 (强烈建议 4GB 以上)。您的C盘或安装盘需要有 10GB 以上的空闲空间,因为安装文件和解压过程都需要空间 。
使用管理员账号登录
安装
从oracle 官网下载压缩包Get Started with Oracle Database 26ai | Oracle
解压压缩包
开始安装
设置密码,一定要记住
点击安装
这个过程很漫长,需要耐心等待。可能需要很久很久
win+R->cmd
输入sqlplus / as sysdba
出现上图就证明你安装的oracle没有什么问题
2. 安装客户端
plsql
无脑下一步即可
桌面上出现这个图标就是安装成功了
3. 配置
tnsnames.ora
客户端用,告诉客户端「别名对应哪台数据库」
文件所在的位置在:oracle主目录\network\admin
我的文件在:C:\app\Administrator\product\26ai\dbhomeFree\network\admin
# tnsnames.ora Network Configuration File: C:\app\Administrator\product\26ai\dbhomeFree\NETWORK\ADMIN\tnsnames.ora # Generated by Oracle configuration tools. FREE = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = FREE) ) ) FREEPDB1 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = FREEPDB1) ) )listener.ora
# listener.ora Network Configuration File: C:\app\Administrator\product\26ai\dbhomeFree\NETWORK\ADMIN\listener.ora # Generated by Oracle configuration tools. DEFAULT_SERVICE_LISTENER = FREE LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) ) SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = CLRExtProc) (ORACLE_HOME = C:\app\Administrator\product\26ai\dbhomeFree) (PROGRAM = extproc) ) (SID_DESC = (SID_NAME = FREE) (ORACLE_HOME =C:\app\Administrator\product\26ai\dbhomeFree) ) )重启监听
cmd 窗口
lsnrctl stop lsnrctl start lsnrctl status验证 TNS 连通
tnsping FREE tnsping FREEPDB1两条都返回 OK 即配置正常,PL/SQL Developer 选择 FREEPDB1 连接即可操作向量业务。
配置plsql
4. 账号
账号说明
账号 1:PDBADMIN(推荐!向量表、RAG、业务开发专用)
用户名:
pdbadmin密码:你安装 Oracle 时设置的数据库统一密码
数据库:下拉选择
FREEPDB1连接为:Normal(固定选 Normal,不要 SYSDBA)
账号 2:SYSTEM(PDB 管理员,建用户、授权、查表空间)
用户名:
system密码:安装统一密码
数据库:
FREEPDB1连接为:Normal
账号 3:SYS(仅 CDB 根库运维,不建议连 PDB)
SYS 不能用 Normal 登录 FREEPDB1,只能连 FREE(CDB)做启停库、全局参数修改
用户名:
sys密码:安装统一密码
数据库:
FREE连接为:SYSDBA
pdbadmin 需要设置一下权限
1. 解锁账号
在cmd窗口使用sysdba的角色去解锁
sqlplus / as sysdba -- 切换业务PDB ALTER SESSION SET CONTAINER = FREEPDB1; -- 重置密码+解锁账号 ALTER USER pdbadmin IDENTIFIED BY yyl ACCOUNT UNLOCK; -- 赋予向量开发全套权限(防止后续向量操作无权限) GRANT CONNECT, RESOURCE TO pdbadmin; -- 验证用户存在 SELECT username, account_status FROM dba_users WHERE username='PDBADMIN'; -- 指定监听地址1521端口 ALTER SYSTEM SET local_listener='(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))' SCOPE=BOTH; -- 强制实例向监听注册所有服务 ALTER SYSTEM REGISTER;返回到cmd 模式(退出sql的状态)查看状态
lsnrctl status此时可以使用plsql 测试一下
最后连接成功就可以了
2. 使用示范用户scott
23ai版本默认是没有scott 用户的,如果需要这个用户,就需要手动的去执行官方给的脚本
C:\app\Administrator\product\26ai\dbhomeFree\rdbms\admin\utlsampl.sql
执行脚本之前需要修改一下脚本中的内容,修改的内容如下
修改的目的就是为了连接业务数据库的时候使用scott用户
使用sysdba登录oracle
sqlplus / as sysdba
更改会话
ALTER SESSION SET CONTAINER=FREEPDB1;
使用scott 连接数据库
sqlplus scott/tiger@FREEPDB1
查看用户的表
select table_name from user_tables;
使用plsql 登录
5. 表空间
Oracle 禁止业务数据存入系统表空间,必须自建业务表空间。
表空间再创建的时候需要使用管理员,普通用户没有权限去创建表空间
切换会话
ALTER SESSION SET CONTAINER=FREEPDB1;
创建表空间
CREATE TABLESPACE BUS_DATA DATAFILE 'C:\oracle\oracledata\ORCL\bus_data01.dbf' SIZE 10M AUTOEXTEND ON NEXT 5M MAXSIZE 100M EXTENT MANAGEMENT LOCAL AUTOALLOCATE SEGMENT SPACE MANAGEMENT AUTO;创建用户
创建用户的时候一定要保证我们的会话是在业务数据库里面
也就是说在创建用户之后一定是执行过一个语句
ALTER SESSION SET CONTAINER=FREEPDB1;
创建用户的时候使用的账号需要是管理员 不能是普通的账号
CREATE USER test IDENTIFIED BY test DEFAULT TABLESPACE BUS_DATA;给用户赋权限
GRANT CONNECT, RESOURCE TO test;
创建完用户之后可以使用该用户连接数据库
建表1
使用的是内置的序列让主键进行自动增长
GENERATED ALWAYS AS IDENTITY:禁止手动传入 id,只能数据库自增
INSERT INTO myemp_1(emp_name, salary) VALUES ('张三', 9500); COMMIT;建表2
-- 创建表 CREATE TABLE myemp_2 ( id NUMBER(10) PRIMARY KEY, emp_name VARCHAR2(50 CHAR) NOT NULL ); -- 创建序列 CREATE SEQUENCE seq_emp_id START WITH 1 -- 起始数字 INCREMENT BY 1 -- 每次自增步长 MINVALUE 1 -- 最小值 MAXVALUE 9999999999 -- 最大值 NOCYCLE -- 到达最大值后不循环(主键推荐) CACHE 20; -- 缓存20个数字,并发更快;NOCACHE无缓存 -- 添加主键的值的时候使用序列即可 INSERT INTO myemp_2(id,emp_name) VALUES(seq_emp_id.NEXTVAL,'李四'); commit; select * from myemp_2;推荐使用这种方式去建表和添加数据
建表3
这种方式类似于mysql 的自动增长
CREATE TABLE myemp_3 ( id NUMBER(10) DEFAULT seq_emp_id.NEXTVAL PRIMARY KEY, emp_name VARCHAR2(50 CHAR) NOT NULL );6. 导出
创建逻辑目录
创建逻辑目录用于存放导出的文件
使用的用户是sysdba
导出scott用户里面的所有的数据
此时使用的是cmd 的窗口不是sql窗口
expdp scott/tiger@FREEPDB1 DIRECTORY=dump_dir DUMPFILE=scott_full_data.dmp SCHEMAS=scott LOGFILE=exp_scott_full.log
- scott/tiger@FREEPDB1 代表用户是scott 密码是tiger 数据库是FREEPDB1
- DIRECTORY=dump_dir 逻辑目录的名字是dump_dir
导出多张表的数据
expdp scott/tiger@FREEPDB1 DIRECTORY=dump_dir DUMPFILE=emp_dept_data.dmp TABLES=emp,dept LOGFILE=exp_table_data.log
7. 导入
将刚才导出的scott 用户下面的所有的数据放到用户test下面
1. 需要给test授予权限
-- 连接PDB FREEPDB1 ALTER SESSION SET CONTAINER=FREEPDB1; GRANT READ,WRITE ON DIRECTORY dump_dir TO test; -- 给导入用户 scott 授权 GRANT DATAPUMP_IMP_FULL_DATABASE TO SCOTT;impdp scott/tiger@FREEPDB1 DIRECTORY=dump_dir DUMPFILE=scott_full_data.dmp REMAP_SCHEMA=scott:test LOGFILE=imp_test.log
使用test用户测试一下看看当前的账户里面是不是有emp表
有并且有数据就证明此时的导入是成功的
8. Rman
使用物理备份的话需要开启归档模式
使用sysdba的用户