image.png

    image.png
    docker-compose.yml文件
    ———————————————————————————————————————————

    1. version: '3.1'
    2. services:
    3. oracle:
    4. image: docker.io/jaspeen/oracle-11g
    5. restart: always
    6. container_name: oracle11g
    7. environment:
    8. TZ: 'Asia/Shanghai'
    9. privileged: true
    10. volumes:
    11. - /usr/local/docker/oracle11/install:/install
    12. - /usr/local/docker/oracle11/dpdump:/opt/oracle/dpdump
    13. ports:
    14. - 1521:1521
    15. networks:
    16. - oraclenet
    17. networks:
    18. oraclenet:

    —————————————————————————————————————————————————————
    image.png
    关闭防火墙
    image.png
    进入容器后到/opt/oracle/app/product/11.2.0/dbhome_1/OPatch目录下可以执行sqlplus命令
    登录:sqlplus sys/sys@orcl as sysdba
    -bash: sqlplus: command not found
    image.png

    image.png

    数据库实例路径在容器的 /opt/oracle/app/oradata 文件夹下
    导出的dmp文件在/opt/oracle/dpdump 文件夹下
    查看创建的逻辑目录语句 select * from dba_directories,效果如下
    image.png
    export ORACLE_HOME=/opt/oracle/app/product/11.2.0/dbhome_1
    export ORACLE_SID=orcl
    export PATH=$ORACLE_HOME/bin:$PATH
    ————————————————
    导入时报错
    ORA-39002: invalid operation
    ORA-39070: Unable to open the log file.
    ORA-29283: invalid file operation
    ORA-06512: at “SYS.UTL_FILE”, line 536
    ORA-29283: invalid file operation
    image.png
    给你的映射文件属于可读写的权限
    image.png

    dmp文件导入
    进去容器后切换oracle用户 su - oracle
    然后进入路径/opt/oracle/dpdump文件夹,然后之心impdp命令,系统默认是读取expdat.dmp文件
    所以导入文件要是这个名字,因为导出的时候系统默认的就是这个名字
    image.png

    导入时排除指定的表
    [oracle@d8292ce03ead ~]$ impdp remap_schema=maximo:jsmaximo EXCLUDE=TABLE:\"IN \'ST_PI_TASK_ITEM\'\'INTERFACELOG\'\" 
    
    Import: Release 11.2.0.1.0 - Production on Tue May 11 10:53:06 2021
    
    Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.
    
    Username: jsmaximo
    --------------------------------------------------
    导入多个dmp文件
    [oracle@d8292ce03ead ~]$ impdp directory=DATA_PUMP_DIR  dumpfile=expdat%U.dmp remap_schema=maximo:jsmaximo EXCLUDE=TABLE:\"IN \'ST_PI_TASK_ITEM\'\'INTERFACELOG\'\" 
    ----------------------
    分段导出
    expdp maximo/maximo@eamppddb directory=DATA_PUMP_DIR  dumpfile=expdat%U.dmp remap_schema=maximo:jsmaximo filesize=5000m
    

    image.png

    --2、查看表空间物理文件的名称及大小
    select * from dba_data_files;
    
    1.查询不包含临时表空间的使用率
    SELECT Upper(F.TABLESPACE_NAME) "TablespaceName",
    D.TOT_GROOTTE_MB "Total(M)",
    D.TOT_GROOTTE_MB - F.TOTAL_BYTES "Used(M)",
    To_char(Round(( D.TOT_GROOTTE_MB - F.TOTAL_BYTES ) / D.TOT_GROOTTE_MB * 100, 2), '990.99')
    || '%' "Used%",
    F.TOTAL_BYTES "Free(M)",
    F.MAX_BYTES "max_block(M)"
    FROM (SELECT TABLESPACE_NAME,
    Round(Sum(BYTES) / ( 1024 * 1024 ), 2) TOTAL_BYTES,
    Round(Max(BYTES) / ( 1024 * 1024 ), 2) MAX_BYTES
    FROM SYS.DBA_FREE_SPACE
    GROUP BY TABLESPACE_NAME) F,
    (SELECT DD.TABLESPACE_NAME,
    Round(Sum(DD.BYTES) / ( 1024 * 1024 ), 2) TOT_GROOTTE_MB
    FROM SYS.DBA_DATA_FILES DD
    GROUP BY DD.TABLESPACE_NAME) D
    WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME
    ORDER BY 1
    
    2.查看临时表空间使用率
    select c.tablespace_name,
    to_char(c.bytes / 1024 / 1024, '99,999.999') total_bytes,
    to_char((c.bytes - d.bytes_used) / 1024 / 1024, '99,999.999') free_bytes,
    to_char(d.bytes_used / 1024 / 1024, '99,999.999') use_bytes,
    to_char(d.bytes_used * 100 / c.bytes, '99.99') || '%' use
    from (select tablespace_name, sum(bytes) bytes
    from dba_temp_files
    group by tablespace_name) c,
    (select tablespace_name, sum(bytes_cached) bytes_used
    from v$temp_extent_pool
    group by tablespace_name) d
    where c.tablespace_name = d.tablespace_name