dataguard 最大保护模式下的 failover
测试如下 测试版本 : 9。2。0。8 [@more@]建立最大保护模式最大性能模式修改成最大保护模式 :SQL> alter database add standby logfile GROUP 4 ('/u02/oracle/uassdb/stdy_redo04.log') SIZE 300m;alter database add standby logfile GROUP 4 ('/u02/oracle/uassdb/stdy_redo04.log') SIZE 300m*ERROR at line 1:ORA-01156: recovery in progress may need access to filesSQL> shutdown immediate;ORA-01109: database not openDatabase dismounted.ORACLE instance shut down.SQL> SQL> SQL> startup nomount pfil
物理dataguard 正常切换 脚色转换
物理dataguard 正常切换 脚色转换,switchover_status 状态改变: [@more@]正常切换 切换前: 主库: SQL> select DATABASE_ROLE from v$database;DATABASE_ROLE----------------PRIMARYSQL> select OPEN_MODE,PROTECTION_MODE,PROTECTION_LEVEL,SWITCHOVER_STATUS from v$database;OPEN_MODE PROTECTION_MODE PROTECTION_LEVEL SWITCHOVER_STATUS---------- -------------------- -------------------- ------------------READ WRITE MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE TO STANDBYSQL> SELECT COUNT(*) FR
ALTER DATABASE REGISTER LOGFILE 手工注册日志测试
ALTER DATABASE REGISTER LOGFILE 手工注册日志测试[@more@]不设置 log2 手工同步arc ALTER DATABASE REGISTER LOGFILE '/trunkbow/oracle/oradata/mmcdb/archive/1_6.dbf';SQL> create user wrj identified by wrj;User created.SQL> SQL> SQL> grant dba,connect,resource to wrj;Grant succeeded.SQL> grant unlimited tablespace to wrj;Grant succeeded.SQL> connect wrj/wrj;Connected.SQL> create table test1 as select * from dba_objects;Table created.SQL> SQL> SQL> SQL> alter sys
物理 dataguard 管理
物理 dataguard 的管理: 1. 查询备用库的保护模式,可切换模式SQL> select OPEN_MODE,PROTECTION_MODE,PROTECTION_LEVEL,SWITCHOVER_STATUS from v$database;OPEN_MODE PROTECTION_MODE PROTECTION_LEVEL SWITCHOVER_STATUS---------- -------------------- -------------------- --------------------MOUNTED MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE NOT ALLOWED2. 查询连接程序select sid,process,program from v$session;3.查询有没有传输日志,MFS 进程 v$managed_standby ----有没有正在传输的日志SQL>
warehouse 整理的几篇文章
http://www.itpub.net/viewthread.php?tid=911241&extra=&page=1warehouse 整理的几篇文章 [@more@]http://www.itpub.net/viewthread.php?tid=911241&extra=&page=1 warehouse 整理的几篇文章
编译程序报 libclntsh.so.9.0: Permission denied
Exception in thread "main" java.lang.UnsatisfiedLinkError: /export/home/oracle/product/9.2.0/lib32/libocijdbc9.so: ld.so.1: java: fatal: /export/home/oracle/product/9.2.0/lib32/libclntsh.so.9.0: Permission denied [@more@]报权限不够,增加权限 # chmod 755 /export/home/oracle/product/9.2.0/lib32/libclntsh.so.9.0# ls -ltra /export/home/oracle/product/9.2.0/lib32/libclntsh.so.9.0
aq 引起的latch free 的完美解决方案
查出热点块 热点sql优化sql 问题解决 [@more@]oracle aq 问题,版主帮忙,江湖救急252 processes: 216 sleeping, 31 running, 3 stopped, 2 on cpuCPU states: 0.0% idle, 91.5% user, 8.5% kernel, 0.0% iowait, 0.0% swapMemory: 4096M real, 147M free, 5835M swap in use, 5522M swap free PID USERNAME LWP PRI NICE SIZE RES STATE TIME CPU COMMAND10215 mpaper 17 43 0 547M 402M run 45:22 5.30% java22646 oracle 1 33 0 2230M 2223M run 22.0H 4.51% oracle22648 oracle 1
solaris 信号量,共享内存可编辑参数 含义
solaris 信号量,共享内存可编辑参数 含义[@more@]semsys:seminfo_semmni(Solaris 9 发行版)在 Solaris 10 发行版中已过时。说明 指定最大信号标识符数。数据类型 带符号整数缺省值 10范围 1 到 65,535是否为动态 否 验证 与 SEMA_INDEX_MAX(当前为 65,535)进行比较,如果数值较大,则重置为该值。警告消息会写入到控制台或消息文件中,或者同时写入到两者中。何时更改 当缺省集数不够时进行更改。通常根据软件供应商的建议进行更改。如果尝试创建的集数多于当前配置的集数,则不会显示任何错误消息。相反,应用程序会收到来自 semget
solaris 消息队列各参数含义 :
solaris 消息队列各参数含义 :[@more@]msgsys:msginfo_msgmni(Solaris 9 发行版)在 Solaris 10 发行版中已过时。说明 可以创建的最大消息队列数。数据类型 带符号整数缺省值 50范围 0 到 MAXINT是否为动态 否。已装入 msginfo 结构的 msgmni 字段中。验证 无何时更改 当 msgget(2) 调用返回错误 ENOSPC 时或者根据软件供应商的建议进行更改。承诺级别 不稳定msgsys:msginfo_msgtql(Solaris 9 发行版)在 Solaris 10 发行版中已过时。说明 可以创建的最大消息数。如果 msgsnd 调用尝试超过此限制,则请求会被延迟直到消息标题可用为止
rename 数据文件,在线文件路径
干净的关闭数据库,rename 数据文件,日志文件 [@more@]$ ls -llttotal 27709826-rw-r----- 1 oracle dba 7553024 Dec 25 16:47 control01.ctl-rw-r----- 1 oracle dba 7553024 Dec 25 16:47 control02.ctl-rw-r----- 1 oracle dba 7553024 Dec 25 16:47 control03.ctl-rw-r----- 1 oracle dba 524288512 Dec 25 16:47 redo02.log-rw-r----- 1 oracle dba 4194312192 Dec 25 16:47 sysaux01.dbf-rw-r----- 1 oracle dba 4194312192 Dec 25 16:47 system01.dbf-rw-r----- 1 oracle dba 4194312192 Dec 25 16:47 undotbs01.dbf-rw-r----- 1
动态sql 用法二 :
动态游标 的使用 : [@more@]游标声明: type tcur is ref cursor;c_corp tcur;v_qury :=’’打开动态游标open c_corp for v_query loop fetch c_corp into exit when c_corp not found ;end loop;close c_corp;
动态sql 的 用法 1:
1. 其中v_query 变量 可以是 ddl ,select,dml [@more@]create or replace procedure create_test(p_date varchar2) isv_date date;v_sqlstr varchar2(1024);beginv_date := to_date(p_date, 'YYYYMMDD') + 1;-- Create tablev_sqlstr := 'create table aa.test' || to_char(v_date, 'YYYYMMDD') || ' ' || '(' ||' ISDN VARCHAR2(21) not null,' || ' HOST VARCHAR2(4),' ||' R_FROM VARCHAR2(4),' || ' R_TO VARCHAR2(4) not null, ' ||' RECORD_TIME DATE default sysdate ' || ')';execute immediate v_sqlstr;end;==========
9i 10g 检查点的增强
v$instance_recovery fast_start_mttr_target [@more@]SQL> show parameter fastNAME TYPE VALUE------------------------------------ ----------- ------------------------------fast_start_io_target integer 0fast_start_mttr_target integer 300fast_start_parallel_rollback string LOWsql>select t.RECOVERY_ESTIMATED_IOS REIO,t.ACTUAL_REDO_BLKS ARB,t.LOG_FILE_SIZE_REDO_BLKS TRB,t.LOG_CHKPT_TIMEOUT_REDO_BLKS LCTRB,t.LOG_CHKPT_INTERVAL_REDO_BLKS LCIRB,t.TARGET_REDO_BLKS TMTTR,t.ESTIMATED_MTTR EMTTR,t.CKPT_
临时表空间被删除,恢复的办法
创建新的temp2修改数据库的临时表空间到temp2drop 原来的temp[@more@]创建新的temp2create temporary tablespace temp2 tempfile 'C:oracleoradataora101ttemp2_01.dbf' size 100m extent management local uniform size 128k;修改数据库的临时表空间到temp2alter database default temporary tablespace temp2; drop 原来的tempdrop tablespace temp including contents and datafiles ;
一个更新语句
update user_order s set s.area_code = (select t.area_code from isdn_head t where substr(s.user_isdn,1,6)=t.exchg_code or substr(s.user_isdn,1,7)=t.exchg_code or substr(s.user_isdn,1,8)=t.exchg_code )[@more@]user_order 表,字段user_isdn,area_codearea_code现在是空的,还有号段表 exchg_code,area_code能不能一条语句把area_code填上update user_order s set s.area_code = (select t.area_code from isdn_head t where substr(s.user_isdn,1,6)=t.exchg_code or substr(s.user_isdn,1,7)=t.exchg_co
数据库恢复的理解
理解数据库恢复的过程 :数据库在 open 的时候,进行2次检查 :[@more@]理解数据库恢复的过程 : 在数据库immediate 关闭的的时候,oracle 数据库将进行一系列的检查点的操作,使结束scn (v$datafile 中的last_change# ) 由无穷大变成 开始 scn (v$datafile_header中的checkpoint_change#)在数据库abort 关闭的的时候,oracle 数据库不进行一系列的检查点的操作所以结束scn 为无穷大,也就是空值。 数据库在 open 的时候,进行2次检查 : 1. 检查数据文件头中 v$datafile_header (checkpoint_count) 的值和控制文件的中的ch
ckpt 的 理解
何时触发检查点 检查点作写什么: [@more@]切换日志会触发checkpoint什么是checkpoint?checkpoint是一个数据库事件,它将已修改的数据从高速缓存刷新到磁盘,并更新控制文件和数据文件。什么时候发生checkpoint?我们知道了checkpoint会刷新脏数据,但什么时候会发生checkpoint呢?以下几种情况会触发checkpoint。1.当发生日志组切换的时候2.当符合LOG_CHECKPOINT_TIMEOUT,LOG_CHECKPOINT_INTERVAL(8i),fast_start_io_target,fast_start_mttr_target(9i)参数设置的时候3.当运行ALTER SYSTEM SWITCH LOGFILE的时候4.当运行ALTER SYSTEM C
数据库正常运行,正常关闭,非正常关闭,各个scn 对比,试验
数据库正常运行,正常关闭,非正常关闭,各个scn 对比,试验[@more@]数据库正常启动后 系统检查点: SQL> select checkpoint_change# from v$database;CHECKPOINT_CHANGE#------------------ 1272827629数据文件检查点: SQL> select file#,checkpoint_change# from v$datafile; FILE# CHECKPOINT_CHANGE#---------- ------------------ 1 1272827629 2 1272827629 3 1272827629 4 1272827629 启动scn和 SQL> select file#,checkpoint_chan
oracle 常用命令
日志管理,表空间管理,用户管理,备份恢复管理[@more@]Oracle 常用命令大汇总 第一章:日志管理 1.forcing log switches sql> alter system switch logfile; 2.forcing checkpoints sql> alter system checkpoint; 3.adding online redo log groups sql> alter database add logfile [group 4] sql> ('/disk3/log4a.rdo','/disk4/log4b.rdo') size 1m; 4.adding online redo log members sql> alter database add logfile member sql> '/disk3/log1b.rdo' to group 1,
delete 后空间还可以继续使用测试:
create tablespace test datafile '/oracle/oradata/nindb/test01.dbf' size 10m;创建用户:赋权限 create user cs identified by cs default tablespace test temporary tablespace temp profile default; grant dba,resource ,connect to cs; alter user cs quota 10m on test;[@more@] delete 后空间可以继续使用 [折叠] 创建表空间: create tablespace test datafile '/oracle/oradata/nindb/test01.dbf' size 10m;创建用户:赋权限 create user cs identified by cs default tablespace test temporary