oracle 创建模式语句,ORACLE基本使用SQL语句以及归档模式的操作

--1、查看表空间的名称及大小

SELECT t.tablespace_name, round(SUM(bytes / (1024 * 1024)), 0)

ts_size

FROM dba_tablespaces t, dba_data_files d

WHERE t.tablespace_name = d.tablespace_name

GROUP BY t.tablespace_name;

--2、查看表空间物理文件的名称及大小

SELECT tablespace_name,

file_id,

file_name,

round(bytes / (1024 * 1024), 0) total_space

FROM dba_data_files

ORDER BY tablespace_name;

--3、查看回滚段名称及大小

SELECT segment_name,

tablespace_name,

r.status,

(initial_extent / 1024) initialextent,

(next_extent / 1024) nextextent,

max_extents,

v.curext curextent

FROM dba_rollback_segs r, v$rollstat v

WHERE r.segment_id = v.usn(+)

ORDER BY segment_name;

--4、查看控制文件

SELECT NAME FROM v$controlfile;

--5、查看日志文件

SELECT MEMBER FROM v$logfile;

--6、查看表空间的使用情况

SELECT INSTANCE_NAME "实例名称", HOST_NAME "主机名称", T.TABLESPACE_NAME

"表空间",

TO_CHAR(U.USER_SPACE, '999,999') "已用大小(MB)",

TO_CHAR(T.TOTAL_SPACE - U.USER_SPACE, '999,999') "剩余大小(MB)",

TO_CHAR(T.TOTAL_SPACE, '999,999') "总大小(MB)",

TO_CHAR((ROUND ((1 - U.USER_SPACE / T.TOTAL_SPACE) * 100)), '999')

|| ' %' "剩余比率"

FROM (SELECT TABLESPACE_NAME, CEIL(SUM(BYTES) / POWER(2, 20))

USER_SPACE

FROM DBA_SEGMENTS

GROUP BY TABLESPACE_NAME

) U,

(SELECT TABLESPACE_NAME,

ROUND(SUM(DECODE(AUTOEXTENSIBLE, 'YES', MAXBYTES, BYTES) / POWER(2,

20))) TOTAL_SPACE

FROM DBA_DATA_FILES

GROUP BY TABLESPACE_NAME

) T, V$INSTANCE I

WHERE U.TABLESPACE_NAME = T.TABLESPACE_NAME

--7、查看数据库库对象

SELECT owner, object_type, status, COUNT(*) count#

FROM all_objects

GROUP BY owner, object_type, status;

--8、查看数据库的版本

SELECT version

FROM product_component_version

WHERE substr(product, 1, 6) = 'Oracle';

--9、查看数据库的创建日期和归档方式

SELECT created, log_mode, log_mode FROM v$database;

Oracle数据库可以运行在两种模式下:

归档模式(archivelog)

非归档模式(noarchivelog)

归档模式&非归档模式区别:

归档模式,可以在线|离线备份数据库,可以是全备份或者是部分备份(单个表空间|数据文件)

非归档模式,只能离线备份而且必须备份所有的数据文件,控制文件,日志文件

☆最大的区别是归档模式能够做到零数据丢失;当然归档会消耗一些存储和性能资源

归档模式工作方式:数据库有DML或其它事务处理时,日志写进程LGWR会把语句写入到日志文件LOG-A中,然后数据库会把改的数据调到内存中,修改完成后(修改的事务也会被记录到LOG-A中),不知道在什么情况下,会把脏数据写回磁盘。LOG-A写满后切换日志:CKPT被触发,告知控制文件有日志且换发生,CKPT工作完成,数据库继续工作,新产生的日志会被写到LOG-B中,等LOG-B也被写满,切换日志,归档进程被唤起,LOG-A中的数据copy到一个文件里面(不知道这个文件叫什么名字),然后数据库的事务日志又源源不断的写到LOG-A中,按照这种工作方式,你的数据库即使出现问题也会被回复到down机前的最后一刻的状态。

非归档模式:

不保存旧日志,LOG-A满后切换到LOG-B,LOG-B满后再切换回LOG-A,LOG-A中的旧数据会被覆盖.。

===================================================================

查询是否归档

SQL>select name,log_mode from v$database;

检查归档模式命令: SQL> archive log list

设置归档模式: SQL> shutdown immediate;

SQL> startup mount

SQL> alter database archivelog;

SQL> alter database open;

SQL> archive log list;

停止归档模式命令: SQL>alter database

noarchivelog

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值