查询与插入数据使用rownum与level
romnum与level在某些场景的用法是一样的,但在某些场景就产生天渊之别的结果,提醒大家平时慎用level。以下是两者一些场景中使用的比较:----rownum 与level的用法:--例子:题目:打印2016-06-15~2016-07-14之间的连续日期。--使用rownum查询:SQL> select (to_date('2016-06-15','yyyy-mm-dd') + rownum-1) servi...
number数据类型在查询中的显示
讲到number数据类型在查询中的默认的显示格式与长度,我的印象中模糊想起在2014年的那个夏天有看过相应的书讲到,说number数据类型在查询中默认显示是10位数的长度,超出10位之后,会以科学计数法格式显示,设计不到10位长度的前面会以空格显示。其实这篇文章的最初想法不是这个,原来要探讨的是我国移动电话号码适合用那...
使用DG_broker工具管理DG之switchover
想到当时我做这个实验的时候,由于在dg_broker工具使用switchover切换主备库时候,忘记了具体语法,官方文档找没有讲到,网上找也完全没有太多的文章讲到dg_broker工具管理DG的,有了文章,都是很粗糙的文章,很难看的明白,关键是参照敲了语句上去,也是报错,还一直嫌疑自己配错了参数文件CONFIGURATION,试了几个语句...
snapshot standby快照备库角色
snapshot standby 与physical standby的切换,两个角色都是针对备库来说的 :----切换到snapshot standby快照备库:--打开备库,查看备库状态:SQL> alter database open;Database altered.SQL> select database_role,open_mode from v$database;DATABASE_ROLE OPEN_MODE---------------- ------------...
DG中模拟备库断档并恢复过程
断档情况,主要是针对备库来说,使用归档日志过程中,中间有个日志文件损坏了,或者丢失了,即使开启着使用日志功能,也会导致了往后所有的日志文件都不能使用,也即导致了主库与备库不同步,这样的结果就是数据同步备库功能丧失了。不同版本的oracle软件,对断档的恢复功能不一样。有些版本在恢复主库中的日志之后,需...
DG中3种保护模式之间的切换
对于生成当中的数据库,不同公司不同业务需求或者不同时间,对主库与备库的保护模式需求不一样,这样,就需要切换主数据库与备用数据库之间的保护模式。以下是模式之间的切换过程。--查看主库的保护模式:SQL> select open_mode,protection_mode,switchover_status,database_role from v$database;OPEN_MODE &n...
DG中主库与备库角色的交换
在实际的生成当中,当主库需要对主库进行一些修正,或者主库遇到故障时候,主要调用备库顶替主库运用到生成当中,因为一般情况下只能对主库进行更改等操作(读写状态),备库是只读状态。所以要运用备库作为读写库时,需要用switchover或者failover切换主库与备库的状态。failover切换一般是在主库故障的时候,使用它把备...
容灾技术Data Guard搭建
Oracle Data Guard容灾技术是一种备份容灾策略,简称DG。以下是DG的搭建过程:准备条件:两台虚拟机,一台装载主库,另一台装载备库(备库为空库,只有安装好oracle软件)----主库:PROD/IP:192.168.2.6----备库: PROD/IP:192.168.2.4 # 备库名PROD(提前定义)要与主库名一致。--关闭主库,从spfile...
删除日志文件组或成员
删除日志文件组:(前提条件:数据库处于归档模式,并且将要删除的日志文件成员或者日志文件组已经完成归档。)--先查看数据库的归档模式:SQL> archive log list;Database log mode Archive ModeAutomatic archival Enab...
同时配置动态监听与静态监听
再次同时配置动态监听与静态监听:oracle机ORA11GR2库:192.168.2.4enmo机PROD库:192.168.2.6----oracle机ORA11GR2库:192.168.2.4--数据库的service name:SQL> show parameter serviceNAME T...
防止 rm -rf 带来的灾难
在系统用户的home目录下创建回收站trash:--首先进入到root或者oracle用户下:--编辑bash_profile文件:[root@enmo ~]# vi .bash_profile# .bash_profile# Get the aliases and functionsif [ -f ~/.bashrc ]; then . ~/.bashrcfi# User specific environment and startup progr...
手动降低高水位线
一张表,当用delete删除时,数据是被删除了,可是在数据块中的空间还没有释放,则高水位线依然在原来的位置,当我们查询该表的数据时候,空块依然还被搜索。为了提高查询效率,降低I/O的读取,我们不得不进行人为手动降低高水位线。操作如下:1、创建表与索引:QL> create table emp tablespace users as select * fr...
生成AWR性能报告
AWR报告就是查看数据库历史的各种性能参数,生成报告过程相对容易,但是查看AWR性能报告就复杂多了。以下是生成AWR报告的过程,至于如何去看报告,这里不做介绍。生成awr报告过程:1、进入存放AWR报告的目录以DBA角色登录数据库:[oracle@enmo ~]$ sqlplus / as sysdba2、执行以下脚本:SQL> @?/rdbms/admin/aw...
获取SQL执行计划
在做优化的过程中,在执行优化之前,我们必须先知道原来执行的SQL语句的执行计划是怎样。这里,就讲述两种常用的方法或工具来获取执行计划。dbms_xplan.display_cursor用来格式化v$sql_plan和v$sql_plan_statistics_all(是v$sql_plan,v$sql_plan_statistics和v$sql_workarea的信息合集)显示格式有5种:Basic仅显示最少...
通过10053事件分析一个SQL执行计划
通过10053事件生成trace文件,分析一个SQL的执行计划。1、启用10053事件与关闭10053事件:SQL> ALTER SESSION SET EVENTS='10053 trace name context forever, level 1';Session altered.SQL> ALTER SESSION SET EVENTS='10053 trace name context forever, level 2';Session altered.关闭:SQL> ALTER SESSION SE...
创建分区表二
这里接着上一篇博文分区表一续写,这一篇这一主要验证交换分区之后,表中原来的索引失效。1、创建另一分区表:SQL> create table test_par 2 ( 3 nid number(10) constraint pk_test_par primary key, 4 idcard varchar2(18), 5 pdd date not null 6 ...
创建分区表一
对于一个数据量非常大的表来说,将它转化成分区表时很有必要的,已达到一些优化效果。很容易理解,如果一张表,包括了不同地区的数据,或者表按照年月日为日期单位的数据量巨大,在没有创建分区表的情况下,查询数据时如此的费劲耗时。以下是讲述有关分区表的一些内容,包括分区表的分类,与索引的区别,分区管理,创建...
管理日志文件
一、日志文件管理:日志文件也是数据库非常关键的文件之一,日志文件相当是数据库的数据操作的记录员。以下是一些日志文件的管理,包括日志文件组或成员的添加,切换日志文件,归档日志文件等等。1、查看日志文件组或者成员:QL> select group#,member from v$logfile; GROUP# MEMBER...
添加控制文件成员形成多路径
在一般生产的环境中,重要的文件,比如三大文件,其中控制文件与日志文件,都需要创建冗余形成多路径控制文件或者多路径日志文件,这样提高数据库的安全性。学习环境就没有必要这样做,以下是模拟创建冗余的过程:添加控制文件成员:1、查看目前的控制文件:SQL> select name from v$controlfile;NAME...
修改pfile参数文件过程的异常
这个修改参数过程中的异常是我在迁移数据库的时候发生的。按照之前的方法去修改pfile参数文件,继而生成spfile参数文件,修改并生成spfile参数文件之后,想启动实例到nomount状态,却发现不能启动,原因是参数文件有误,看了报错,却发现是由于一个自动管理文件的目录在系统里没有对应的目录或文件,再看看系统层,发现确...