之前使用Oracle数据库都是通过jdbc接口调用oracle。最近由于工作的关系需要通过tns操作Oracle数据库,于是把最近学习和收集的一点内容记录下来,以便以后再次使用时参考。

  • 概念先行
  • 概念落地
  • 登陆
  • 常用sql

概念先行

  • 数据库–文件
    • 表空间
  • 数据库实例–进程+内存空间

概念落地

  1. 表空间 select * from dba_tablespaces;
  2. 查询数据库名 select name,dbid from v$database;
  3. 查询实例名 select instance_name from v$instance;
  4. 查询数据库域名 select value from v$parameter where name='db_domain'
  5. 数据库服务名:此参数是数据库标识类参数,用service_name表示。数据库如果有域,则数据库服务名就是全局数据库名;如果没有,则数据库服务名就是数据库名。 select * from v$parameter where name='service_names'

登陆

  • sqlplus
    • path>sqlplus username/password@dbname as [sysdba,sysoper];
    • SQL>sqlplus`conn username/password as [sysdba,sysoper];
  • plsql
    • 设置%ORACLE_HOME%\network\ADMIN\tnsnames.ora
    • XE =
      (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = acer)(PORT = 1521))
      (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ORCL)
      )
      )其中,XE为下图中的登陆数据库名称(这里的数据库名称不是真实的数据库名称,可以随意设定,只是登陆时用的一个名称而已,其实叫listener_name),SERVICE_NAME = ORCL为oracle服务OracleServiceORCL中的末尾部分。

常用sql

SELECT a.tablespace_name "表空间名",total "表空间大小",free "表空间剩余大小",( total - free ) "表空间使用大小",Round(( total - free ) / total,4) * 100 "使用率 %" FROM (SELECT tablespace_name,Sum(bytes) free FROM DBA_FREE_SPACE GROUP BY tablespace_name) a,(SELECT tablespace_name,Sum(bytes) total FROM DBA_DATA_FILES GROUP BY tablespace_name) b WHERE a.tablespace_name = b.tablespace_name;

表空间名 表空间大小 表空间剩余大小 表空间使用大小 使用率 %


SYSAUX 692060160 40239104 651821056 94.19 UNDOTBS1 398458880 381026304 17432576 4.38 USERS 104857600 102170624 2686976 2.56 SYSTEM 377487360 5963776 371523584 98.42

dawei

【声明】:唐山站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。