exchange partition(转)
在线重定义表可以将一个非分区表转换成一个分区表。使用exchange 和split partition 也可以将一个非分区表转换为分区表。后者相比较前者,因为不受要转换的数据量影响,因此也更方便、快捷一些。exchange partition 操作能将一个分区表的一个分区和另一张表的数据互换,这里的互换是segment 头部信息的修改,数据block 并不做改动,因此,和数据量无关,速度会非常快;完成后,再可以按照需要将分区具体split 成多个分区。[@more@]步骤:1.建立一个空的,只有一个分区的同构分区表2.exchangepartition with table 来互换数据
通过RMAN Duplicate创建Oracle物理standby备库
关于Oracle10g Data Gurad的搭建,虽然官方和网上有很多资料,但是基于物理冷备份后复制到备库的搭建方式。在生产环境中我们可能更多要关注主库的可用性,这是Rman的高级备份恢复功能完全胜任这些需求。 主库服务器名:dbserv ip:192.168.2.3 主库DB_UNIQUE_NAME='testdb'备库服务器名:dbservdg ip:192.168.2.4 备库db_unique_name='testdbDG'数据库名:testdb DG安装过成大致分为如下几个重要步骤: 1、备库安装数据库软件(仅安装软件,不必创建数据库) 2、主库通过Rman进行全备份,备份脚本如下:run{ DELETE NOPROMPT expired arc
Oracle10g Grid Control客户端的安装
环境:redhat 5.7 64位 + Oracle10g_64 (10.2.0.1) 采用agentDownload脚本方式安装 agentDownload脚本在$OMS_HOME下的sysman/agent_download/version/os/agentDownload.os,具体如下: [root@dbserv linux_x64]# pwd /opt/oracle/OracleHomes/oms10g/sysman/agent_download/10.2.0.3.0/linux_x64 [root@dbserv linux_x64]# ls addons agent agentdeploy agentDownload.linux_x64 agent_scripts.jar oui prereqs response [root@dbserv linux_x64]# [@more@]在按需要安装agent客户端服务器上创建相应的
Linux 5.7现有数据库上安装Oracle10g Grid Control
环境:redhat 5.7 64位 + Oracle10g_64 (10.2.0.1)+linux_x86_64_grid_control_102030 实验目的:同一台服务器上先安装Oracle1g数据库软件并建立数据库(DBCA自定义方式),然后再安装Oracle10g Grid Cuntrol(安装模式为选用现有数据库)。 如下将数据库的安装并创建过程省略,从已建好数据库上进行相关检查和安装Grid Control开始... 一、数据库先决条件查询及修改 [oracle@dbserv ~]$ sqlplus / as sysdba SQL> select username from dba_users; USERNAME ------------------------------
v$session的来源
今天在研究enqueue、resource、lock等的关系时通过 select * from v$fixed_view_definition where view_name='GV$LOCK'; 找出定义,如下: select s.inst_id, l.laddr, l.kaddr, s.ksusenum, r.ksqrsidt, r.ksqrsid1, r.ksqrsid2, l.lmode, l.request, l.ctime, decode(l.lmode, 0, 0, l.block) from l, x$ksuse s, x$ksqrs r where l.saddr = s.addr
statspack的安装配置
我曾经疑惑在Oracle10g中能否使用statspack,后来得知可以。Oracle10g的AWR是不必安装的,但是statspack不是的。 另外,据说statspack所有功能是免费的,但AWR不是的,AWR只在Oracle10g后的版本中带。如下是在Oracle10g中statspack的安装配置过程。 安装前需要如下前期准备工作: 1、初始化参数: job_queue_processes需要大于0,这是为了能够建立自动任务,执行数据收集 timed_statistics需要至少配置为true,因为statspack就是要针对动态性能视图差值进行对比分析,只要timed_statistics=true时才能收集操作系统的计
参考SQL Tunning Adviser进行SQL优化
无论前面介绍的通过“手工”分析手段或通过“工具”分析手段,很多时候我们很有可能面临TOP SQL语句的优化,即SQL优化。很多情况下可以说数据库的优化就是SQL的优化,而SQL的优化呢?那就是的索引的优化! Oracle 10g开始有个SQL优化功能,即SQL优化顾问(SQL Tuning Adviser),这个工具可以作为SQL优化过程的参考依据,但并并不能全靠它。因为很多时候SQL的优化还涉及到业务特性,关键业务高峰期等多种因素。另外在使用过程中也发现,SQL Tuning Adviser很多时候对select类语句用处较大… 当我们通过前面介绍动态性能视
通过ASH诊断性能
除了“手工”诊断分析Oracle性能,也可以通过Oracle提供的各类工具来快速的进行分析诊断。 尤其是Oracle10g以来,采用工具的特性更强大及方便。接下来介如何利用ASH工具来诊断分析,生成ASH报告有两种方式: 1、脚本方式: 执行$ORACLE_HOME/rdbms/admin/ashrpt.sql脚本 [dbserv1]@dbserv-db1[/export/home/oracle/awr_dir]$sqlplus / as sysdba SQL> @$ORACLE_HOME/rdbms/admin/ashrpt.sql Current Instance ~~~~~~~~~~~~~~~~ DB Id DB Name Inst Num Instance ----------- -----------
通过dba_hist_*来进行诊断
在Oracle10g中增加了dba_his_*类统计信息表,在瓶颈时间过时了的时候,可以参考这些表来诊断瓶颈来源。 1、确定时间段: select * from dba_hist_snapshot where snap_id between &snapid1 and &snapid2 order by end_interval_time; 例如以上&snapid1 and &snapid2的值分别为10910 and 10913 2、对瓶颈时间段的等待时间进行汇总排序: select event,count(*) from dba_hist_active_sess_history where snap_id between 10910 and 10913 group by event order by
Oracle性能诊断视图总结
Oracle的事件分为等待时间和诊断事件两类,熟练这两类事件在无工具诊断会有很大的帮助。 一、Oracle等待事件的分类 通过如下查询可以看,如下的wait_class是由 SQL> select wait_class#, wait_class_id, wait_class 2 from v$event_name 3 group by wait_class#, wait_class_id, wait_class; WAIT_CLASS# WAIT_CLASS_ID WAIT_CLASS ----------- ------------- ---------------------------------------------------- 10 2396326234 Scheduler 4 38
异常断电导致RAC的一个节点CRS无法启动
环境:两个节点的Solaris10 + Oracle10g RAC + ASM环境 bash-3.00# su - oracle Oracle Corporation SunOS 5.10 Generic Patch January 2005 You have new mail. [dbserv2]@dbserv-db2[/export/home/oracle]$crs_stat -t -v Name Type R/RA F/FT Target State Host ---------------------------------------------------------------------- ora....SM1.asm application 0/5 0/0 ONLINE OFFLINE ora....B1.lsnr app
TNS-12537监听程序启不来
环境:Linux AS 4.7 + Oracle10g 一次的异常断电事故,导致Oracle数据库监听启动不起来,不如下错误: [oracle@dbserv ~]$ lsnrctl start LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 11-JUL-2012 10:50:13 Copyright (c) 1991, 2005, Oracle. All rights reserved. Starting /var/oracle/product/10.2.0/database/bin/tnslsnr: please wait... TNS-12537: TNS:connection closed TNS-12560: TNS:protocol adapter error TNS-00507: Connection closed Linux Error: 29: Illegal seek
无工具情况下Oracle应急诊断思路(二)
二、锁表(Lock)导致的系统无响应或慢 在多用户能够后台登录进行维护的系统中,经常会发生某些表被锁定而直接影响业务的情况,在这样的情况下我们可以将v$session结合v$locked_object和v$lock视图,如下为简单的查找语句: select lo.oracle_username, lo.object_id, s.sid, s.serial#, s.seconds_in_wait from v$locked_object lo, v$session s where lo.session_id = s.sid order by seconds_in_wait 也可以通过以上的OBJECTID和USER_OBJE
无工具情况下Oracle应急诊断思路(一)
一、发现哪些session导致瓶颈或等在什么event上 在Oracle10g上,通过v$session视图就能找到瓶颈session,而Oracle9i中,除了v$session 还需要查询v$session_wait视图,具体如下: 在oracle 9iselect event, count(*) sessions from v$session_waitwhere state='WAITING'and Event not like '%SQL*Net%'and USERNAME is not nullgroup by eventorder by 2 desc; select SW.Sid, S.Username, SW.Event, SW.Wait_Time,SW.State, SW.Seconds_In_Wait SEC_IN_WAITfrom V$SESSION S, V$SESSION_WAIT SWwhere S.Username is not nulland SW.Sid =
没有备份的数据文件恢复(五)
环境:某个数据文件因操作系统错误删除原因被删除而且无任何备份,数据库运行在归档模式下,该数据文件创建时间晚于于控制文件创建时间。 [oracle@dbserv ~]$ sqlplus / as sysdba SQL> create tablespace test datafile '/opt/oracle/oradata/test/test01.dbf' size 100M; Tablespace created. SQL> create table ttt tablespace test as select * from dba_users; Table created. SQL> select count(*) from ttt; COUNT(*) ---------- 8 SQL> insert into
某个数据文件损坏完全恢复(三)
三、环境:某个数据文件损坏,有rman备份,具体恢复过程如下: 在这种恢复方式中,数据库处于OPEN状态,适合除了system和undo以外的普通数据文件的恢复。 [oracle@dbserv ~]$ export ORACLE_SID=test [oracle@dbserv ~]$ sqlplus / as sysdba SQL> select count(*) from tt; COUNT(*) ---------- 56 SQL> insert into tt select * from dba_users; 8 rows created. SQL> / 8 rows created. SQL> commit; Commit complete.[
Oracle10g RAC下启用归档模式
环境:两个节点的Oracle10g RAC 环境,数据库创建在独立的磁盘阵列上的裸设备上,数据库在非归档模式中,现在需要改为归档模式,具体步骤如下: 在节点1: -bash-3.2$ sqlplus / as sysdba SQL*Plus: Release 10.2.0.5.0 - Production on Wed Jun 20 21:26:57 2012 Copyright (c) 1982, 2010, Oracle. All Rights Reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production With the Partitioning, Real Application Clusters, OLAP, Data Mining
Oracle基本视图总结
当我们基本熟悉了Oracle体系架构后,可能需要将这些信息从数据库字典中查出来看以便诊断和分析。如下是根据Oracle 的体系架构整理出来基本视图分类列表: 一、数据库和实例信息 select * from gV$INSTANCE select * from V$DATABASE select * from V$version select * from V$option --select s.NAME,s.BYTES/1024/1024 bytesM, s.RESIZEABLE from v$sgainfo s select * from v$sgainfo[@more@]二、物理结构相关的信息 select * from v$parameter p where p.ISDEFAULT='FALSE' select * fro
Oracle10g在Linux4.7_32位上的安装
一、修改操作系统文件 1、配置主机名: [root@x3a-test ~]# hostname x3a-test [root@x3a-test ~]# hostname x3a-test [root@x3a-test ~]# vi /etc/sysconfig/network NETWORKING=yes HOSTNAME=x3a-test 2、修改 /etc/hosts文件 [root@x3a-test cdrom]# vi /etc/hosts # Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 localhost.localdomain localhost 192.168.2.6 x3a-test[@more@]3、修改
Oracle控制文件相关的其他(五)
DBID的确定 控制文件的备份恢复中,我们经常需要DBID,如下为常用的查询方法: 方法1、在数据库mount或open状态下: [oracle@dbserv ~]$ sqlplus / as sysdba Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options SQL> select dbid,name from v$database; DBID NAME ---------- --------- 2083742440 TEST[@more@]方法2、在数据库mount或open状态下: [oracle@dbserv ~]$ rman target