https://www.jianshu.com/p/7db9885fef64
安装docker:
brew cask install docker
sudo docker search docker-oracle-xe-11g
sudo docker pull deepdiver/docker-oracle-xe-11g
sudo docker run -d -p 1521:1521 --name oracle11g deepdiver/docker-oracle-xe-11g
sudo docker exec -it 40128a8a2496 /bin/bash
错误:Error response from daemon: Container * is not running
解决办法:sudo docker start 40128a8a2496 (你的容器Id)
通过sqlplus进入Oracle:
sqlplus system/oracle
查看数据库用户名和密码:
select username,password from dba_users;
创建新的用户来进行数据库:
create user 用户名 identified by 密码
验证:创建成功后为大写
select * from all_users;
grant connect,resource to 这里需要将用户名大写,否则授权不成功
通过Navicat进行连接(服务名XE)
同步时区
方法一:在【宿主机】中执行命令,【docker cp /etc/localtime 容器ID:/etc/localtime】,重启Docker容器。(已验证)
方法二:在【宿主机】中执行命令,【docker cp /usr/share/zoneinfo/Asia/Shanghai 容器ID:/etc/localtime】,重启Docker容器。
方法三:在【容器】中执行命令,【ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime】,重启Docker容器。
1.用有dba权限的用户登录:sys用户
2.创建一个新用户:create user abc identified by 123456;
3.授予DBA权限: grant connect,resource,dba to abc;
su oracle
sqlplus "/as sysdba"
查询表空间使用情况
SELECT a.tablespace_name "表空间名",a.bytes/1024/1024 "表空间大小(M)",(a.bytes-b.bytes)/1024/1024 "已使用空间(M)",b.bytes/1024/1024 "空闲空间(M)",round(((a.bytes-b.bytes)/a.bytes)*100,2) "使用比" FROM (SELECT tablespace_name,sum(bytes) bytes FROM dba_data_files GROUP BY tablespace_name) a,( SELECT tablespace_name,sum(bytes) bytes,max(bytes) largest FROM dba_free_space GROUP BY tablespace_name) b WHERE a.tablespace_name=b.tablespace_name ORDER BY ((a.bytes-b.bytes)/a.bytes) DESC;
查询文件位置
select FILE_ID,tablespace_name,file_name,autoextensible from dba_data_files where tablespace_name = 'USERS';
查询表所在的空间
SELECT TABLE_NAME,TABLESPACE_NAME FROM DBA_TABLES where TABLE_NAME like '%T_TJ_YW%';
修改表空间大小(注意:autoextend off 才可以以瘦身)
alter database datafile '/u01/app/oracle/oradata/XE/system.dbf' autoextend on; // 自动扩容
alter database datafile '/u01/app/oracle/oradata/XE/sysaux.dbf' resize 10000m;
与临时表空间相关的语句:
--查询用户所使用的临时表空间:
select username,default_tablespace,temporary_tablespace from dba_users;
--查询临时表空间大小以及使用率:
select tablespace_name, bytes, user_bytes, user_bytes/bytes,file_name from dba_temp_files;
--查询临时文件是否在线:
select name,status from v$tempfile;
--修改临时文件在线(离线)状态:
alter database tempfile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TEMP02.DBF' online(offline);
--增加临时文件大小(增加原文件):
alter database tempfile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TEMP01.DBF' resize 100m;
--通过增加新的临时文件,来扩大临时表空间:
alter tablespace temp add tempfile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TEMP02.DBF' size 4000m;
--删除临时文件:
alter database tempfile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TEMP02.DBF' drop;
--将临时文件设置为自动扩展:
alter database tempfile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TEMP01.DBF' autoextend on next 5m maxsize unlimited;
--关闭(启动)临时文件的自动增长:
alter database tempfile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TEMP01.DBF' autoextend off(on);