

docker-compose.yml文件
———————————————————————————————————————————
version: '3.1'services:oracle:image: docker.io/jaspeen/oracle-11grestart: alwayscontainer_name: oracle11genvironment:TZ: 'Asia/Shanghai'privileged: truevolumes:- /usr/local/docker/oracle11/install:/install- /usr/local/docker/oracle11/dpdump:/opt/oracle/dpdumpports:- 1521:1521networks:- oraclenetnetworks:oraclenet:
—————————————————————————————————————————————————————
关闭防火墙
进入容器后到/opt/oracle/app/product/11.2.0/dbhome_1/OPatch目录下可以执行sqlplus命令
登录:sqlplus sys/sys@orcl as sysdba
-bash: sqlplus: command not found

数据库实例路径在容器的 /opt/oracle/app/oradata 文件夹下
导出的dmp文件在/opt/oracle/dpdump 文件夹下
查看创建的逻辑目录语句 select * from dba_directories,效果如下
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
给你的映射文件属于可读写的权限
dmp文件导入
进去容器后切换oracle用户 su - oracle
然后进入路径/opt/oracle/dpdump文件夹,然后之心impdp命令,系统默认是读取expdat.dmp文件
所以导入文件要是这个名字,因为导出的时候系统默认的就是这个名字
导入时排除指定的表
[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

--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
