轻松掌握oracle 10g数据库:如何查看数据库信息 (oracle 10g 查看数据库)

轻松掌握Oracle 10g数据库:如何查看数据库信息

Oracle 10g数据库是一种流行的关系型数据库管理系统,广泛应用于企业和组织的数据存储、数据管理、数据分析等领域。了解数据库信息是管理Oracle 10g数据库的基本要求之一。本文将介绍如何轻松掌握Oracle 10g数据库的查看数据库信息方法。

1. 登录Oracle数据库

在开始查看数据库信息之前,首先需要登录Oracle 10g数据库。可以通过SQL*Plus工具或Oracle SQL Developer等基于GUI的工具进行登录。通过SQL*Plus工具登录Oracle数据库的步骤如下:

– 打开命令行界面(Windows系统可以使用“开始”菜单中的“运行”命令,输入“cmd”)。

– 输入以下命令,按Enter键,以系统管理员身份运行SQL*Plus工具:

sqlplus /nolog

– 输入以下命令,按Enter键,连接到Oracle数据库:

conn username/password@database

其中,username和password分别是连接Oracle数据库的用户名和密码;database是Oracle数据库的实例名。

2. 查看数据库版本

查看Oracle数据库的版本信息可以使用以下SQL命令:

SELECT * FROM v$version;

此命令会列出Oracle数据库服务器的版本信息,包括数据库名称、Oracle主机信息、Oracle产品版本、Oracle RDBMS版本、Oracle RDBMS组件版本等。

3. 查看数据库实例信息

在Oracle 10g数据库中,每个数据库都有一个唯一的实例名。可以使用以下SQL命令查看Oracle数据库实例信息:

SELECT * FROM v$instance;

此命令会列出Oracle数据库实例的信息,包括实例名、主机名称、Oracle版本、启动时间、会话ID等。

4. 查看数据库对象

在Oracle数据库中,有多种类型的对象,如表、视图、索引、存储过程等。可以使用以下SQL命令查看数据库中所有的对象:

SELECT object_name, object_type FROM user_objects;

此命令会列出数据库用户拥有的所有对象的名称和类型。

5. 查看表结构

在Oracle数据库中,表是最基本的数据存储结构。可以使用以下SQL命令查看表的结构:

DESCRIBE table_name;

此命令会列出指定表的所有列的名称、数据类型、长度以及是否可以为空等信息。

6. 查看数据库大小

查看Oracle数据库的大小可以使用以下SQL命令:

SELECT sum(bytes)/1024/1024/1024 AS gb FROM dba_segments;

此命令会统计该Oracle数据库中所有数据块的大小,并将其转换为GB单位来显示。

7. 查看数据库监控信息

Oracle 10g数据库提供了很多用于监控和优化数据库性能的工具,如AWR、ASH、ADDM等。可以使用以下SQL命令查看AWR的监控信息:

SELECT * FROM dba_hist_snapshot;

此命令会列出自Oracle数据库启动以来所有的AWR快照信息,包括快照ID、开始时间、结束时间等。

通过上述介绍,相信读者已经了解了如何通过SQL命令轻松掌握Oracle 10g数据库的各种信息。当然,此处仅是介绍了一些基本的操作,Oracle数据库还有很多高级技术和优化方法,需要进一步深入学习和研究。

相关问题拓展阅读:

Oracle10g数据库中闪回表特性剖析

Oracle i Database 推出了闪回查询选项的概念 以便检索过去某个时间点的数据 但它不能闪回 DDL 操作 如删除表的操作 唯一的恢复方法是在另一个数据库中使用表空间的时间点恢复 然后使用导出/导派基入或其他方法 在当前数据库中重新创建表 这一过程需要 DBA 进行大量工作并且耗费宝贵的时间 更不用说还要使用另一个数据库进行克隆 使用 Oracle Database g 中的闪回表特性 它使得被删除表的恢复过程如同执行几条语句一样简单 让我们来看该特性是如何工作的

  删除那个表!

  首先 让我们查看当前模式中的表

  

  

  SQL> select * from tab;TNAMETAYPE CLUSTERID

   RECYCLETEST TABLE

  现在 我们意外地删除了该表

  

  

  SQL> drop table recycletest;Table dropped

    现在让我们来查看该表的状态

  

  

  SQL> select * from tab;TNAME TAYPE CLUSTERID BIN$ LhcpndanfgMAAAAAANPw==$ TABLE

  表RECYCLETEST 已不存在 但是请注意出现新表BIN$ LhcpndanfgMAAAAAANPw==$ 这就是所发生的事情 被删除的表 RECYCLETEST 并没有完全消失 而是重命名为一个由系统定义的名称 它存在于同一个表空间中 具有与原始表相同的结构 如果在该表上定义了索引或触发器 则它们也被重命尘灶谨名 使用与表相同的命名规则 任何相关源(如过程)都失效 原始表的触发器和索引被改为放置在重命名的表 BIN$ LhcpndanfgMAAAAAANPw==$ 上 保持被删除表的完整对象结构

  表及其相关对象被放置在一个称为 回收站 的逻辑容器中 它类似于您 PC 机中的回收站 但是 对象并没有从它们原先所在的表空间中删除 它们仍然占用那里的空间 回收站只是一个列出被删除对象目录辩闷的逻辑结构 在 SQL*Plus 提示符处使用以下命令来查看其内容(您需要使用 SQL*Plus 来进行此操作)

  

  

  SQL> show recyclebinORIGINAL NAME RECYCLEBIN NAMEOBJECT TYPE DROP TIME RECYCLETESTBIN$ LhcpndanfgMAAAAAANPw==$ TABLE : : :

  结果显示了表的原始名称 RECYCLETEST 并显示了回收站中的新名称 该名称与我们看到的删除后所创建的新表名称相同 (注意 确切的名称可能因平台不同而不同 )为恢复该表 您所需要做的就是使用 FLASHBACK TABLE 命令

  

  

  SQL> FLASHBACK TABLE RECYCLETEST TO BEFORE DROP;FLASHBACK PLETE SQL> SELECT * FROM TAB;TNAME TAYPE CLUSTERID RECYCLETESTTABLE

  瞧!表毫不费力地恢复了 如果现在查看回收站 它将是空的 记住 将表放在回收站里并不在原始表空间中释放空间 要释放空间 您需要使用以下命令清空回收站

  

  

  PURGE RECYCLEBIN;

  但是如果您希望完全删除该表而不需要使用闪回特性 该怎么办?在这种情况下 可以使用以下命令永久删除该表

  

  

  DROP TABLE RECYCLETEST PURGE;

  此命令不会将表重命名为回收站中的名称 而是永久删除该表 就象 g 之前的版本一样

  管理回收站

  如果在该过程中没有实际删除表 — 因而没有释放表空间 — 那么当被删除的对象占用了所有空间时 会发生什么事?

  答案很简单 这种情况根本不会出现 当表空间被回收站数据完全占满 以至于必须扩展数据文件来容纳更多数据时 可以说表空间处于 空间压力 情况下 此时 对象以先进先出的方式从回收站中自动清除 在删除表之前 相关对象(如索引)被删除

  同样 空间压力可能由特定表空间定义的用户限额而引起 表空间可能有足够的空余空间 但用户可能将其在该表空间中所分配的部分用完了 在这种情况下 Oracle 自动清除该表空间中属于该用户的对象

  此外 有几种方法可以手动控制回收站 如果在删除名为 TEST 的特定表之后需要从回收站中清除它 可以执行

  

  

  PURGE TABLE TEST;

  或者使用其回收站中的名称

  

  

  PURGE TABLE BIN$ LhcpndanfgMAAAAAANPw==$ ;

  此命令将从回收站中删除表 TEST 及所有相关对象 如索引 约束等 从而节省了空间 但是 如果要从回收站中永久删除索引 则可以使用以下命令来完成工作

  

  

  purge index in_test _ ;

  此命令将仅仅删除索引 而将表的拷贝留在回收站中 有时在更高级别上进行清除可能会有用 例如 您可能希望清除表空间 USERS 的回收站中的所有对象 可以执行

  

  

  PURGE TABLESPACE USERS;

    您也许希望只为该表空间中特定用户清空回收站 在数据仓库类型的环境中 用户创建和删除许多临时表 此时这种方法可能会有用 您可以更改上述命令 限定只清除特定的用户

  

  

  PURGE TABLESPACE USERS USER SCOTT;

  诸如 SCOTT 等用户可以使用以下命令来清空自己的回收站

  

  

  PURGE RECYCLEBIN;

  DBA 可以使用以下命令清除任何表空间中的所有对象

  

  

  PURGE DBA_RECYCLEBIN;

  可以看到 可以通过多种不同方法来管理回收站 以满足特定的需要

  表版本和闪回功能

  用户可能会经常多次创建和删除同一个表 如

  

  

  CREATE TABLE TEST (COL NUMBER);INSERT INTO TEST VALUES ( );mit;DROP TABLE TEST;CREATE TABLE TEST (COL NUMBER);INSERT INTO TEST VALUES ( );mit;DROP TABLE TEST;CREATE TABLE TEST (COL NUMBER);INSERT INTO TEST VALUES ( );mit;DROP TABLE TEST;

  此时 如果您要对表 TEST 执行闪回操作 那么列 COL 的值应该是什么?常规想法可能认为从回收站取回表的之一个版本 列 COL 的值是 实际上 取回的是表的第三个版本 而不是之一个 因此列 COL 的值为 而不是

  此时您还可以取回被删除表的其他版本 但是 表 TEST 的存在不允许出现这种情况 您有两种选择

  使用重命名选项

  

  

  FLASHBACK TABLE TEST TO BEFORE DROP RENAME TO TEST ;FLASHBACK TABLE TEST TO BEFORE DROP RENAME TO TEST ;

  这些语句将表的之一个版本恢复到 TEST 将第二个版本恢复到 TEST TEST 和 TEST 中的列 COL 的值将分别是 和 或者 使用表的特定回收站名称进行恢复 为此 首先要识别表的回收站名称 然后执行

  

  

  FLASHBACK TABLE BIN$ LhcpnoanfgMAAAAAANPw==$ TO BEFORE DROP RENAME TO TEST ;FLASHBACK TABLE BIN$ LhcpnqanfgMAAAAAANPw==$ TO BEFORE DROP RENAME TO TEST ;

  这些语句将恢复被删除表的两个版本

  警告

  取消删除特性使表恢复其原始名称 但是索引和触发器等相关对象并没有恢复原始名称 它们仍然使用回收站的名称 在表上定义的源(如视图和过程)没有重新编译 仍然保持无效状态 必须手动得到这些原有名称并应用到闪回表

  信息保留在名为 USER_RECYCLEBIN 的视图中 在对表进行闪回操作前 请使用以下查询来检索原有名称

  

  

  SELECT OBJECT_NAME ORIGINAL_NAME TYPEFROM USER_RECYCLEBINWHERE BASE_OBJECT = (SELECT BASE_OBJECT FROM USER_RECYCLEBINWHERE ORIGINAL_NAME = RECYCLETEST )AND ORIGINAL_NAME != RECYCLETEST ;

  OBJECT_NAMEORIGINAL_N TYPE BIN$ LhcpnianfgMAAAAAANPw==$ IN_RT_   INDEXBIN$ LhcpnganfgMAAAAAANPw==$ TR_RT TRIGGER

  在表进行闪回操作后 表 RECYCLETEST 上的索引和触发器将按照 OBJECT_NAME 列中所示进行命名 根据以上查询 可以使用原始名称重新命名对象 如下所示

  

  

  ALTER INDEX BIN$ LhcpnianfgMAAAAAANPw==$ RENAME TO IN_RT_ ;ALTER TRIGGER BIN$ LhcpnganfgMAAAAAANPw==$ RENAME TO TR_RT;

lishixinzhi/Article/program/Oracle/202311/17794

OracleDatabase10g:闪回版本查询

不需要设置 立即识别对行的所有更改

  在 Oracle i Database 中 我们看到它推出了以闪回查询形式表示的 时间机器 该特性允许 DBA 看到特定时间的列值 只要在还原段中提供该数据块此前镜像的拷贝即可 但是 闪回查询只提供某时刻数据的固定快照 而不是在两个时间点之间被更改数据的运行状态表示 某些应用程序 如涉及到外币管理的应用程序 可能需要了解一段时期内数值数据的变化 而不仅仅是两个时间点的数值 由于闪回版本查询特性 Oracle Database g 能够更方便高效地执行该任务

  

查询对表的更改

  在本示例中 我使用了一个银行外币管理应用程序 其数据库含有一个名称为 RATES 的表 用于记录特亏漏行定时间的汇率

  SQL> desc rates    NameNull?TypeCURRENCY     VARCHAR ( )    RATENUMBER( )

  该表显示 US$ 与各种其他货币的汇率 在 CURRENCY 列中显示 在金融服务行业中 汇率不但在变更时进行更新 而且被记录在历史中 需要这种方式的原因是银行交易可能在 过去时间 生效 以便适应由于汇款而耗费的时间 例如 对于一项在上午 : 发生但在上午 : 生效的交易 其有效汇率是上午 : 的汇率 而不是现在的汇率

  直到现在 唯一的选择是创建一个汇率历史表来存储汇率的变更 然后查询该表是否提供历史记录 另一种选择是在 RATES 表本身中记录特定汇率适用性的开始和结束时间 当发生变更时 现有行中的 END_TIME 列被更新为 SYSDATE 并插入一个具有新汇率的新行 其 END_TIME 为 NULL

  但是在 Oracle Database g 中 闪回版本查询特性不需要维护历史表或存储开始和结束时间 使用该特性 您不必进行额外的设置 即可获得某行在过去特定时间的值

  例如 假定该 DBA 在销哗正常业务过程中数次更新汇率 ― 甚至删除了某行并重新插入该行

  insert into rates values ( EURO );    mit;    update rates set rate = ;    mit;    update rates set rate = ;    mit;    delete rates;    mit;    insert into rates values ( EURO );    mit;    update rates set rate = ;    mit;

  在进行了这一系列操作后 DBA 将通过以下命令获得 RATE 列的当前提交值

  SQL> select * from rates;

  CURRRATEEURO    

  此搜笑输出显示 RATE 的当前值 没有显示从之一次创建该行以来发生的所有变更 这时使用闪回查询 您可以找出给定时间点的值 但我们对构建变更的审计线索更感兴趣 ― 有些类似于通过便携式摄像机来记录变更 而不只是在特定点拍摄一系列快照

  以下查询显示了对表所做的更改

  select versions_starttime versions_endtime versions_xid     versions_operation rate    from rates versions beeen timestamp minvalue and maxvalue    order by VERSIONS_STARTTIME    /

  VERSIONS_STARTTIME     VERSIONS_ENDTIMEVERSIONS_XID     VRATEDEC PM  DEC PM  C IDEC PM  DEC PM  A A UDEC PM  DEC PM  A B UDEC PMA C DDEC PM  DEC PM  A D IDEC PMA E U    

  注意 此处显示了对该行所作的所有更改 甚至包括该行被删除和重新插入的情况 VERSION_OPERATION 列显示对该行执行了什么操作 (Insert/Update/Delete) 所做的这些工作不需要历史表或额外的列

  在上述查询中 列 versions_starttime versions_endtime versions_xid versions_operation 是伪列 与 ROWNUM LEVEL 等其他熟悉的伪列相类似 其他伪列 ― 如 VERSIONS_STARTSCN 和 VERSIONS_ENDSCN ― 显示了该时刻的系统更改号 列 versions_xid 显示了更改该行的事务标识符 有关该事务的更多详细信息可在视图 FLASHBACK_TRANSACTION_QUERY 中找到 其中列 XID 显示事务 id 例如 使用上述的 VERSIONS_XID 值 A D UNDO_SQL 值显示了实际的语句

  SELECT UNDO_SQL    FROM FLASHBACK_TRANSACTION_QUERY    WHERE XID = A D ;

  UNDO_SQLinsert into ANANDA RATES ( CURRENCY RATE ) values ( EURO );

  除了实际语句之外 该视图还显示提交操作的时间标记和 SCN 查询开始时的 SCN 和时间标记以及其他信息

  

找出一段时期中的变更

  现在 让我们来看如何有效地使用这些信息 假设我们需要找出下午 : : 时 RATE 列的值 我们可以执行

  select rate versions_starttime versions_endtime    from rates versions    beeen timestamp    to_date( / / : : mm/dd/yyyy hh :mi:ss )    and to_date( / / : : mm/dd/yyyy hh :mi:ss )    /

  RATE VERSIONS_STARTTIME     VERSIONS_ENDTIME

  此查询与闪回查询类似 在以上的示例中 开始和结束时间为空 表示汇率在该时间段中没有更改 而是包含一个时间段 还可以使用 SCN 来找出过去的版本值 可以从伪列 VERSIONS_STARTSCN 和 VERSIONS_ENDSCN 中获得 SCN 号 以下是一个示例

  select rate versions_starttime versions_endtime    from rates versions    beeen scn and     /

  使用关键词 MINVALUE 和 MAXVALUE 可以显示还原段中提供的所有变更 您甚至可以提供一个特定的日期或 SCN 值作为范围的一个端点 而另一个端点是文字 MAXVALUE 或 MINVALUE 例如 以下查询提供那些只从下午 : : 开始的变更 而不是全部范围的变更

  select versions_starttime versions_endtime versions_xid     versions_operation rate    from rates versions beeen timestamp    to_date( / / : : mm/dd/yyyy hh :mi:ss )    and maxvalue    order by VERSIONS_STARTTIME    /

  VERSIONS_STARTTIME     VERSIONS_ENDTIMEVERSIONS_XID     VRATEDEC PMA C DDEC PM  DEC PM  A D IDEC PMA E U    

  

最终的分析

  闪回版本查询随取随用地复制表变更的短期易变数值审计 这一优点使得 DBA 能够获得过去时间段中的所有变更而不是特定值 只要还原段中提供数据 就可以尽情使用 因此 更大的可用版本依赖于 UNDO_RETENTION 参数

lishixinzhi/Article/program/Oracle/202311/17217

归档模式下怎么查询oracle g归档日志存放的路径?

用以下语句就行:

SQL> show parameter db_recovery;

方法1: 以 sysdba 登陆数据库 (一般为数据库所在服务器姿厅判,如果进行了伏如必要的配置,也可以远程)

sqlplus /nolog

connect / as sysdba

archive log list;

便会列出所需的信息

show parameter log_archive_dest

方法2: 以可查询 v$parameter 的用户登陆数据库(可远程)

select name, value from v$parameter where name like ‘log_archive_dest_%’ and value is not null and value ‘enable’;

方法3: 以可查询 v$archive_dest 的用户登陆数据库(可远程)

select dest_name, DESTINATION from v$archive_dest where destination is not null;

方法4: 以可查询 v$archived_log 的用户登陆数据库(可远程)

select name from v$archived_log where name is not null and rownum select name from v$archived_log;

NAME

/u01/oracle/flash_recovery_area/ORA10G/archivelog/

2023_02_18/o1_mf_1_15_7myb1ftq_.arc

/u01/派扒禅oracle/尘尘arch/1_16_.dbf

如果没有的话切换一下日志:alter system switch logfile;

其他此启方法:

show parameter log_archive_dest;

show parameter dest

show parameter dest

11g是archivelog list

关于oracle 10g 查看数据库的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » 轻松掌握oracle 10g数据库:如何查看数据库信息 (oracle 10g 查看数据库)