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配置
/etc/security/limits.d/

物理机连接oracle-12c

输入ip等信息测试连接
使用navicat连接oracle-12c

其他相关命令

//创建表空间
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;
最后修改:2024 年 05 月 01 日
如果觉得我的文章对你有用,请随意赞赏