Oracle

📅 2026/7/10 22:14:22
Oracle
1. windows 安装oracle环境要求操作系统必须是 64 位的。推荐 Windows 10/11 专业版/企业版 或 Windows Server 2019/2022 。家庭版可能会有兼容性问题。内存与硬盘至少 2GB 内存 强烈建议 4GB 以上。您的C盘或安装盘需要有 10GB 以上的空闲空间因为安装文件和解压过程都需要空间 。使用管理员账号登录安装从oracle 官网下载压缩包Get Started with Oracle Database 26ai | Oracle解压压缩包开始安装设置密码一定要记住点击安装这个过程很漫长需要耐心等待。可能需要很久很久winR-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 连接即可操作向量业务。配置plsql4. 账号账号说明账号 1PDBADMIN推荐向量表、RAG、业务开发专用用户名pdbadmin密码你安装 Oracle 时设置的数据库统一密码数据库下拉选择FREEPDB1连接为Normal固定选 Normal不要 SYSDBA账号 2SYSTEMPDB 管理员建用户、授权、查表空间用户名system密码安装统一密码数据库FREEPDB1连接为Normal账号 3SYS仅 CDB 根库运维不建议连 PDBSYS 不能用 Normal 登录 FREEPDB1只能连 FREECDB做启停库、全局参数修改用户名sys密码安装统一密码数据库FREE连接为SYSDBApdbadmin 需要设置一下权限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 usernamePDBADMIN; -- 指定监听地址1521端口 ALTER SYSTEM SET local_listener(ADDRESS(PROTOCOLTCP)(HOST127.0.0.1)(PORT1521)) SCOPEBOTH; -- 强制实例向监听注册所有服务 ALTER SYSTEM REGISTER;返回到cmd 模式(退出sql的状态)查看状态lsnrctl status此时可以使用plsql 测试一下最后连接成功就可以了2. 使用示范用户scott23ai版本默认是没有scott 用户的如果需要这个用户就需要手动的去执行官方给的脚本C:\app\Administrator\product\26ai\dbhomeFree\rdbms\admin\utlsampl.sql执行脚本之前需要修改一下脚本中的内容修改的内容如下修改的目的就是为了连接业务数据库的时候使用scott用户使用sysdba登录oraclesqlplus / as sysdba更改会话ALTER SESSION SET CONTAINERFREEPDB1;使用scott 连接数据库sqlplus scott/tigerFREEPDB1查看用户的表select table_name from user_tables;使用plsql 登录5. 表空间Oracle 禁止业务数据存入系统表空间必须自建业务表空间。表空间再创建的时候需要使用管理员普通用户没有权限去创建表空间切换会话ALTER SESSION SET CONTAINERFREEPDB1;创建表空间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 CONTAINERFREEPDB1;创建用户的时候使用的账号需要是管理员 不能是普通的账号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/tigerFREEPDB1 DIRECTORYdump_dir DUMPFILEscott_full_data.dmp SCHEMASscott LOGFILEexp_scott_full.logscott/tigerFREEPDB1 代表用户是scott 密码是tiger 数据库是FREEPDB1DIRECTORYdump_dir 逻辑目录的名字是dump_dir导出多张表的数据expdp scott/tigerFREEPDB1 DIRECTORYdump_dir DUMPFILEemp_dept_data.dmp TABLESemp,dept LOGFILEexp_table_data.log7. 导入将刚才导出的scott 用户下面的所有的数据放到用户test下面1. 需要给test授予权限-- 连接PDB FREEPDB1 ALTER SESSION SET CONTAINERFREEPDB1; GRANT READ,WRITE ON DIRECTORY dump_dir TO test; -- 给导入用户 scott 授权 GRANT DATAPUMP_IMP_FULL_DATABASE TO SCOTT;impdp scott/tigerFREEPDB1 DIRECTORYdump_dir DUMPFILEscott_full_data.dmp REMAP_SCHEMAscott:test LOGFILEimp_test.log使用test用户测试一下看看当前的账户里面是不是有emp表有并且有数据就证明此时的导入是成功的8. Rman使用物理备份的话需要开启归档模式使用sysdba的用户