docker oracle linux命令执行sql

这篇具有很好参考价值的文章主要介绍了docker oracle linux命令执行sql。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

docker安装oracle

# 下载镜像 19.3.0.0.0
 docker pull registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:19c
# 创建文件
mkdir -p /home/mymount/oracle19c/oradata
mkdir -p /home/mymount/oracle23c/oradata
# 授权,不授权会导致后面安装失败
chmod 777 /home/mymount/oracle19c/oradata
chmod 777 /home/mymount/oracle23c/oradata


docker run -d  \
-p 1521:1521 -p 5500:5500 \
-e ORACLE_SID=SID \
-e ORACLE_PDB=PDB \
-e ORACLE_PWD=123456 \
-e ORACLE_EDITION=standard \
-e ORACLE_CHARACTERSET=AL32UTF8 \
-v /home/mymount/oracle19c/oradata:/opt/oracle/oradata \
--name oracle19c \
registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:19c




# 查看日志,等待加载进度(初次加载比较慢)
docker  logs  -tf  oracle19c


# 等待过程可能会比较漫长,成功的日志:
#########################
DATABASE IS READY TO USE!
#########################
# 连接数据库登录 默认账号密码:sys/123456
docker exec -it  oracle19c  /bin/bash
sqlplus sys/123456@localhost:1521/pdb as sysdba;

查看日志是否安装成功

docker logs -ft 容器名
docker logs -ft  orcl19c

docker oracle linux命令执行sql,docker,oracle,linux

docker container ls -a命令查看容器名

sys 用户登录容器

###  打开容器
docker exec -it  oracle19c  /bin/bash
sqlplus sys/123456@localhost:1521/pdb as sysdba;
show pdbs;


docker exec -it  oracle23  /bin/bash
sqlplus sys/123456@localhost:1523 as sysdba;

sys 用户登录容器创建表空间以及用户

-- 查询数据库实例的名称,也就是 ORACLE_SID 的值  -- 默认是 xe
SELECT name FROM v$database;
-- 查看oracle现在的状态 ,状态为 OPEN 则正常
select status from v$instance;  

-- 查看所有表空间(相当于mysql中的库)
SELECT name FROM v$tablespace;
-- 创建表空间
-- mkdir -p /home/oracle/escdb
-- chmod 777  /home/oracle/escdb
sqlplus sys/123456@localhost:1521/pdb as sysdba;
CREATE TABLESPACE EDU  DATAFILE '/opt/oracle/oradata/SID/PDB/ZS_EDU.dbf' SIZE 100M AUTOEXTEND ON MAXSIZE  500M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;
-- 查询所有用户名
-- select username from all_users;
select username from user_users;
-- 创建用户
CREATE USER IAM IDENTIFIED BY 123456  DEFAULT TABLESPACE idm_spc;
===========================================
CREATE USER ZS_EDU IDENTIFIED BY 123456  DEFAULT TABLESPACE edu;
-- 分配角色
ALTER USER ZS_EDU QUOTA UNLIMITED ON EDU;
GRANT CONNECT, RESOURCE TO IAM;
GRANT CONNECT, RESOURCE TO ZS_EDU;

-- 退出后登录,普通用户不需要指定角色类型
sqlplus zs_edu/123456@localhost:1521/pdb; 

建表

(复制sql,替换表名执行完毕后,再修改自己想要的字段即可)

-- 查看当前数据库中用户的所有表
-- SELECT table_name FROM user_tables;

-- 创建表
CREATE TABLE IAM.test_table (
  id NUMBER(10,0) VISIBLE NOT NULL,
  name VARCHAR2(255 BYTE) VISIBLE,
  create_time TIMESTAMP(6) VISIBLE DEFAULT CURRENT_TIMESTAMP NOT NULL,
  update_time TIMESTAMP(6) VISIBLE DEFAULT CURRENT_TIMESTAMP NOT NULL,
  del NUMBER(1,0) VISIBLE DEFAULT 0 NOT NULL,
  primary key(id)
) TABLESPACE IDM_SPC;
-- 设置字段备注
COMMENT ON COLUMN IAM.test_table.id IS '主键id';
COMMENT ON COLUMN IAM.test_table.name IS '名称';
COMMENT ON COLUMN IAM.test_table.create_time IS '创建时间';
COMMENT ON COLUMN IAM.test_table.update_time IS '修改时间';
COMMENT ON COLUMN IAM.test_table.del IS '是否已删除 0:否    1:是';
-- 设置主键自增 表名:test_table  (主键已存在就不需要再创建,在创建报错,可以跳过这步操作)
-- alter table test_table add constraint id primary key (id);
-- 自定义序列名 test_table_seq
create sequence test_table_seq
increment by 1 
start with 1 
nomaxvalue 
nominvalue 
nocache;
-- 创建触发器
create or replace trigger test_table_seq  
before insert on test_table for each row 
begin 
        select test_table_seq.nextval into :new.id from dual; 
end;

以下是docker 安装oracle常用命令

什么是pdb数据库?什么是CDB?
参照https://blog.csdn.net/weixin_39876739/article/details/111605869

如何切换PDB数据库

1. 用sys用户登录数据库
2.  show con_name;
3. 3、 执行select name,open_mode from v$pdbs;

docker oracle linux命令执行sql,docker,oracle,linux

切换为pdb数据库
 alter session set container=ORCLPDB;

docker oracle linux命令执行sql,docker,oracle,linux

查找用户
select userName from dba_users;

查看有哪些表空间

select tableSpace_name from Dba_tablespaces;

删除用户以及表结构(参照:https://blog.csdn.net/daxiang52/article/details/50408312)

drop user ZS_EDU cascade;

5 创建临时表空间


create temporary tablespace edu tempfile '/opt/oracle/oradata2' size 50m autoextend on next 50m maxsize 20480m extent management local;
===============================
oracle23
create temporary tablespace eduTem tempfile '/opt/oracle/oradata6' size 50m autoextend on next 50m maxsize 20480m extent management local;

docker oracle linux命令执行sql,docker,oracle,linux

6 创建表空间(查看有哪些表空间select tableSpace_name from Dba_tablespaces;)

create tablespace 表空间名称 logging datafile '数据存储路径' size 50m

autoextend on next 50m maxsize 20480m extent management local

=======================================
create tablespace edu1 logging datafile '/opt/oracle/oradata1' size 50m autoextend on next 50m maxsize 20480m extent management local;
----------------------------
oracle23
create tablespace edu logging datafile '/opt/oracle/oradata7' size 50m autoextend on next 50m maxsize 20480m extent management local;
删除表空间 Oracle删除表空间语法结构:(https://www.php.cn/faq/489137.html)
drop tablespace tab_name [including contents][cascade constraints]

案例、删除student表空间,并删除表空间的数据文件和完整性
drop tablespace student including contents cascade constraints;

docker oracle linux命令执行sql,docker,oracle,linux

7 创建用户并指定表空间

create user 用户名 identified by 密码 default tablespace 表空间名称 temporary tablespace 临时表空间名称;

create user ze_edu identified by zsShang886 default tablespace edu temporary tablespace eduTem;
=============================
create user zs_edu identified by zsShang886 default tablespace edu temporary tablespace eduTem;


docker oracle linux命令执行sql,docker,oracle,linux
docker oracle linux命令执行sql,docker,oracle,linux

8给用户授权

grant connect,resource,dba to 用户名;
9 用创建的用户名进行连接。

docker oracle linux命令执行sql,docker,oracle,linux

docker文件复制(参照https://blog.51cto.com/u_16175455/6724342)

docker cp /home/sql/ZS_EDU.sql oracle19c:/home
docker 执行sql文件
如果sql文件不在当前目录下,可以使用绝对路径:

>@D:/demo.sql

查看表空间有哪些表

select TABLE_NAME,TABLESPACE_NAME from dba_tables where TABLESPACE_NAME='表空间名';

docker 安装参照

https://blog.csdn.net/arcsin_/article/details/123707618
http://www.inspinia.net/a/14909.html?action=onClick(这个文章可以系统使得系统登陆)
https://blog.csdn.net/weixin_44032384/article/details/131404349(可以使得docker oracle执行sql)推荐这个老哥文章文章来源地址https://www.toymoban.com/news/detail-656982.html

到了这里,关于docker oracle linux命令执行sql的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Oracle查看锁表和正在执行的Sql

    查看当前被锁的表(需要有管理员权限): 查看当前正在执行的SQL语句:

    2024年02月09日
    浏览(35)
  • Oracle常见的sql命令

    进入SQL环境,然后再使用connect命令以sysdba角色连接sys用户 connect sys as sysdba 断开当前用户的连接: disconnect 然后创建自己的用户 回车后会逐步提示用户名和密码,这里的密码不显示 回车后提示输入密码,如果输入的密码错误将重新输入用户名和密码,这里的密码也不显示 例

    2024年02月08日
    浏览(48)
  • Oracle数据库SQL Plus基础命令

    1.使用SQL*Plus登录Oracle数据库 开始 -- 所有程序 -- Oracle -- 应用程序开发 -- SQL Plus cmd窗口下输入:sqlplus 用户名/口令@主机字符串 2.使用CMD命令登录Oracle数据库 开始 -- 所有程序 -- 附件 -- 命令提示符 使用命令行登陆的连接命令格式为:sqlplus/@net_service_name username为用户名;passw

    2024年02月06日
    浏览(51)
  • 基本 SQL 命令 、重要的 SQL命令、SQL 约束 及 SQL语句 的 执行顺序

    学习目标如下: SQL语句执行顺序 基本 SQL 命令:` FROM ON JOIN WHERE GROUP BY AGG_FUNC WITH HAVING SELECT 从数据库中提取数据 UNION DISTINCT ORDER BY 排序 LIMIT 重要的sql命令: 1、SELECT - 从数据库中提取数据 2、UPDATE - 更新数据库中的数据 3、DELETE - 从数据库中删除数据 4、INSERT INTO - 向数据库

    2024年02月08日
    浏览(44)
  • macOS使用命令行连接Oracle(SQL*Plus)

    Author: histonevon@zohomail.com Date: 2023/08/25 原文地址:https://histonevon.top/archives/oracle-mac-sqlplus 数据库安装:Docker安装Oracle数据库 (histonevon.top) 适用Apple Silicon 下载 下载Instant Client:Instant Client for macOS (Intel x86) (oracle.com) 选择对应版本 下载基础包(Basic Package) 下载SQL*Plus软件包(SQ

    2024年02月11日
    浏览(36)
  • ORACLE重启命令(Linux)

    1. 在Linux下重启Oracle数据库及监听器: 方法1: 用root以ssh登录到linux,打开终端输入以下命令: 方法2: 方法3: (1) 以oracle身份登录数据库,命令:su -oracle (2) 进入Sqlplus控制台,命令:sqlplus /nolog (3) 以系统管理员登录,命令:connect / as sysdba (4) 启动数据库,命令

    2024年02月03日
    浏览(35)
  • Linux Oracle使用常用命令

    ps -ef | grep oracle 查看Oracle启动的进程,常被用作查看Oracle服务是否已启动。 登录Oracle sqlplus / nolog; conn / as sysdba; sqlplul / as sysdba; sqlplul “/ as sysdba”;有时需要使用双引号将反斜杠转义 sqlplus system/密码@orcl (一般管理员登录)--------连接本机oracle数据库 sqlplus system/密码@IP:端口

    2024年02月08日
    浏览(42)
  • docker ENTRYPOINT 执行多条命令

    如何在docker里面同时启动多个pm2进程_祥仔先生的博客-CSDN博客_docker pm2 ENTRYPOINT 命令1 命令2 命令3 dockerfile中添加: RUN chmod -x setup.sh ENTRYPOINT [\\\"sh\\\", \\\"./setup.sh\\\"]

    2024年02月12日
    浏览(41)
  • 在Java中执行docker命令

    在Java中执行docker命令可以使用Java的Runtime类或ProcessBuilder类。下面是使用Runtime类执行docker命令的示例代码: 上述代码中,使用Runtime类的exec()方法执行docker ps命令,并通过BufferedReader读取命令执行结果。 另外,使用ProcessBuilder类也可以执行docker命令,示例代码如下:   上述代

    2024年02月09日
    浏览(28)
  • docker exec :容器中执行命令

    docker exec 命令用于在正在运行的 Docker 容器中运行指定的命令。 使用 docker exec 命令的格式如下: 其中, OPTIONS 可以省略,常用的选项如下: -i :保持标准输入打开,使得可以与容器交互。 -t :分配一个伪终端,使得可以与容器交互。 CONTAINER 是要操作的容器的名称或 ID。

    2024年04月09日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包