oracle自动扩展表空间

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容