docker安装oracle-12-ee
#一行命令
#【由于Image docker.io/absolutapps/oracle-12c-ee:latest uses outdated schema1 manifest format原因,如无法拉取,可以使用博主备份的镜像地址】
docker run -d --name oracle \
--privileged -v $(pwd)/oradata:/u01/app/oracle \
-p 8080:8080 -p 1521:1521 absolutapps/oracle-12c-ee
#备份镜像方案
docker run -d --name oracle \
--privileged -v $(pwd)/oradata:/u01/app/oracle \
-p 8080:8080 -p 1521:1521 haoyu233/oracle-12c-ee
修改oracle账号密码设置
镜像创建的容器「默认有sys和system两个用户,密码都是oracle,默认的一个SID/服务名是ORCL」,Oracle的用户密码默认有效期是180天,180天后用户会自动锁住,下面进入oracle-12c容器内将密码的有效期设置为永久!
# 进入oracle-12c容器内
docker exec -it oracle /bin/bash
# 切换成oracle用户
su oracle
# 进入sqlplus
sqlplus / as sysdba
# 设置密码有效期为无限制
SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
# 解锁system用户
SQL> alter user SYSTEM account unlock;
如果遇到切换oracle用户报错提示为:su: cannot open session: Permission denied,请按照如下方式解决
修改/etc/security/limits.conf
和/etc/security/limits.d/
文件夹下limit配置
物理机连接oracle-12c
输入ip等信息测试连接
其他相关命令
//创建表空间
create tablespace lcxs datafile '/u01/app/oracle/oradmp/lcxs.dbf' size 300M;
//创建用户并绑定空间
create user lcxs identified by lcxs default tablespace lcxs;
//linux用户授权
GRANT CREATE SESSION,CREATE TABLE,CREATE VIEW,CREATE SEQUENCE,UNLIMITED TABLESPACE TO lcxs;
grant connect,resource,dba to lcxs;
//设定连接数SQL
alter profile DEFAULT limit FAILED_LOGIN_ATTEMPTS 10;
//不限制连接数
alter profile DEFAULT limit FAILED_LOGIN_ATTEMPTS UNLIMITED;
//创建数据仓库文件
create directory dpdata2023 as '/u01/app/oracle/oradmp';
//查询
select * from dba_directories;
//exit;
//导入dmp文件[将lcxs.dmp文件移动到/u01/app/oracle/oradmp]后执行下面
#如果导入失败大概率是文件损坏
impdp lcxs/lcxs dumpfile=lcxs.dmp directory=dpdata2023 remap_schema=lcxs:lcxs remap_tablespace=lcxs:lcxs
SQL>
//删除用户
#先锁定需要删除的用户
ALTER USER '用户名' ACCOUNT LOCK;
#查看用户访问连接,如有:执行杀进程处理
SELECT SADDR,SID,SERIAL#,PADDR,USERNAME,STATUS FROM V$SESSION WHERE USERNAME = '用户名';
ALTER SYSTEM KILL SESSION 'SID,SERIAL#';
#执行删除用户及其用户所有对象操作
DROP USER '用户名' CASCADE;