From cd5fa0ed4d4a6f9acf32166afb1b284695ffd229 Mon Sep 17 00:00:00 2001 From: wenyongda Date: Sun, 3 Aug 2025 00:03:41 +0800 Subject: [PATCH] commit --- source/_posts/Docker-Compose.md | 70 +++++++++++++++++++++++++++++++++ source/_posts/Oracle.md | 70 ++++++++++++++++++++++++++++++++- 2 files changed, 139 insertions(+), 1 deletion(-) diff --git a/source/_posts/Docker-Compose.md b/source/_posts/Docker-Compose.md index 81d6ded..446491a 100644 --- a/source/_posts/Docker-Compose.md +++ b/source/_posts/Docker-Compose.md @@ -323,3 +323,73 @@ services: ``` +## Oracle-12C + +docker-compose.yaml + +```yaml +services: + server: + image: truevoly/oracle-12c + container_name: oracle-12c + volumes: + - /etc/localtime:/etc/localtime:ro + - /etc/timezone:/etc/timezone:ro + - /var/oracle:/u01/app/oracle + ports: + - "2122:22" + - "1521:1521" + - "9090:8080" +``` + +首先创建挂载目录,并赋予权限 + +```bash +mkdir -p /var/oracle && chmod 777 /var/oracle +``` + +启动 + +```bash +docker compose up -d +``` + +连接Oracle数据库 + +```yml +hostname: localhost #主机名 +port: 1521 #端口号 +sid: xe +service name: xe #服务名 +username: system #用户名 +password: oracle #密码 +``` + +```bash +sqlplus system/oracle@localhost:1521/xe + +sqlplus /nolog +conn sys/oracle@localhost:1521/xe as sysdba +``` + +使用 `sqlplus / as sysdba`登录 + +```bash +su - oracle +export ORACLE_HOME=/u01/app/oracle/product/12.1.0/xe +export ORACLE_SID=xe +export PATH=$ORACLE_HOME/bin:$PATH +sqlplus / as sysdba +``` + +环境变量永久生效 + +```bash +echo 'export ORACLE_HOME=/u01/app/oracle/product/12.1.0/xe' >> ~/.bashrc +echo 'export ORACLE_SID=xe' >> ~/.bashrc +echo 'export PATH=$ORACLE_HOME/bin:$PATH' >> ~/.bashrc +source ~/.bashrc +``` + + + diff --git a/source/_posts/Oracle.md b/source/_posts/Oracle.md index 5f25d4b..a523f87 100644 --- a/source/_posts/Oracle.md +++ b/source/_posts/Oracle.md @@ -286,6 +286,74 @@ export NLS_LANG="AMERICAN_AMERICA.AL32UTF8" ### 登录 +#### 使用操作系统认证 + +适用于以管理员身份登录数据库: + +```bash +sqlplus / as sysdba +``` + +- */* 表示操作系统认证。 +- *as sysdba* 用于以管理员权限登录。 + +#### 使用用户名和密码登录 + +通过提供用户名、密码和数据库连接信息: + +```bash +sqlplus username/password@hostname:port/SID +``` + +**示例:** + +```bash +sqlplus scott/tiger@192.168.1.100:1521/orcl +``` + +- *hostname* 是数据库主机名或 IP 地址。 +- *port* 是监听端口,默认是 *1521*。 +- *SID* 是数据库实例名。 + +如果已配置 TNS,则可以简化为: + +```bash +sqlplus username/password@TNSNAME +``` + +#### 无日志模式登录 + +先启动 SQL*Plus,再手动连接数据库: + +```bash +sqlplus /nolog +``` + +然后使用以下命令连接: + +```bash +conn username/password@hostname:port/SID +``` + +**优点:** 避免直接暴露用户名和密码。 + +#### 直接交互式登录 + +直接输入 *sqlplus*,按提示输入用户名和密码: + +```bash +sqlplus +``` + +**示例:** + +``` +请输入用户名: scott +输入口令: tiger +``` + + + ```shell # 以oracle账号登录 su oracle @@ -304,7 +372,7 @@ alter user sys identified by 123456; ## CDB 和 PDB -![24221659-693602e2df62491e8cad466d5b865147](D:\source\repos\XiaodaBlogSource\source\_posts\Oracle\24221659-693602e2df62491e8cad466d5b865147.gif) +![24221659-693602e2df62491e8cad466d5b865147](Oracle\24221659-693602e2df62491e8cad466d5b865147.gif) - CDB :容器数据库,名称为 CDB$ROOT。其作用就是系统数据库,sys账号等以及Common User(公共用户)都保存在里面。同时它可以管理PDB数据库