oracle版本升级:从11.2.0.1到11.2.0.3
oracle版本升级:从11.2.0.1到11.2.0.3不过从11.2.0.2开始 都是全新install,并不升级原有的oracle_home目录,而是选择新的oracle_home进行安装,并升级。standalone升级asm:1、下载补丁包,2、安装grid 到新目录 选择第3项 upgrade (执行rootupgrade.sh 比较慢 半个小时多,还以为hung住了呢)升级 db:1、下载升级包(也就是11203的安装包) 其实也是调用dbua进行升级结果:升级比较顺利,基本没有遇到阻碍。out-of-place升级的优点是最大限度的降低风险。升级线路图1. Install 11.2.0.3.0 rdbms softwareSee Note 1189783.1 Impor
dataguard switchover & failover steps (rac)
角色转换前的准备工作l 检查各数据库的初始化参数,主要确认对不同角色相关的初始化参数都进行了正确的配置。l 确保可能成为primary 数据库的standby 服务器已经处于archivelog 模式。l 确保standby 数据库的临时文件存在并匹配primary 数据库的临时文件l 确保standby 数据库的RAC 实例只有一个处于open 状态。(对于rac 结构的standby 数据库,在角色转换时只能有一个实例startup。其它rac 实例必须统统shutdown,待角色转换结束后再startup)switchover 执行顺序先切换主库,然后切换备库。select switchover_status from v$database;在
11.2.0.1 rac 2nodes asm aix6.1 orarootagent.bin swap memory内存泄漏
oracle 11.2.0.1aix 6.1rac(2nodes) + asm现象:rac os 无响应,查看crs asm db 的alert log 均无明显异常。症状:orarootagent.bin 进程消耗了近40g swap memory。几乎耗尽全部交换分区metalink 参考:ORAAGENT or ORAROOTAGENT High Resource (CPU, Memory etc) Usage [ID 1062676.1]Bug 9855476 - aix:cssd/ohasd may coredump, or orarootagent/gipcd may leak memory [ID 9855476.8]下面说明了 导致了内存泄漏,观察发现每个节点的orarootagent.bin 进程每天增加约220M内存左右Descriptiongipcd.bin or orarootagent.bin process m
ora-30004:when using sys_connect_by_path function,cannot have seperator as part of column value
今天在做在线重定义表对一个8000w行的大表进行分区之前拼写脚本的时候报了一个错 ora-30004EXEC DBMS_REDEFINITION.START_REDEF_TABLE(USER, 'TESTTT1', 'TESTTT1_PART', 'OWNER OWNER ,OBJECT_NAME OBJECT_NAME ,SUBOBJECT_NAME SUBOBJECT_NAME ,OBJECT_ID OBJECT_ID ,DATA_OBJECT_ID DATA_OBJECT_ID ,OBJECT_TYPE OBJECT_TYPE ,CREATED CREATED ,LAST_DDL_TIME LAST_DDL_TIME ,TIMESTAMP TIMESTAMP ,STATUS STATUS ,TEMPORARY TEMPORARY ,GENERATED GENERATED ,SECONDARY SECONDARY ', DBMS_REDEFINITION.cons_use_rowid);用下面的sql取
Logminer的使用以及注意事项
oracle版本:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0最近在分析日志的时候,发现没有DML语句,只能分析出DDL语句。后来发现没有打开补充日志功能是否打开补充日志,可以查看 v$databaseSELECT "SUPPLEMENTAL_LOG_DATA_MIN","SUPPLEMENTAL_LOG_DATA_PK","SUPPLEMENTAL_LOG_DATA_UI","SUPPLEMENTAL_LOG_DATA_FK","SUPPLEMENTAL_LOG_DATA_ALL"FROM v$databaseSUPPLEMENTAL_LOG_DATA_MIN SUPPLEMENTAL_LOG_DATA_PK SUPPLEMENTAL_LOG_DATA_UI SUPPLEMENTAL_LOG_DATA_FK
oracle客户端无人值守安装 静默安装
1、录制response file:就是把每个安装的步骤记录下来,实现相同安装的智能化和无人值守E:soft11gR1_client_win32_client> setup -record -destinationFile d:install_oracle11.rsp或者直接修改11gR1_client_win32_clientresponseclientadmin.rsp等文件来准备response file2、使用录制的response file来实现无人值守的静默安装E:soft11gR1_client_win32_client >setup -silent -nowelcome -noconfig -nowait -responseFile d:install_oracle11.rsp安装前的环境的要求可以修改11gR1_client_win32_clientstageprereqclientrefhost.xml
关于 oracle 临时表 ORA-14452
--总结:不管事务级还是会话级的临时表,都需要所有会话解除绑定,才能drop,解除绑定的办法就是清空每个会话的数据--清空数据的办法:事务级别的临时表:commit/truncate table;会话级的临时表:truncate table ;--注意,事务级临时表:不能用delete所有数据 然后commit这种方式清空,必须用truncate table,才能解除该会话同临时表的绑定--事务级:on commit delete rows;--会话级:on commit preserve rows;--ORA-14452: attempt to create, alter or drop an index on temporary table already in use避免此错误就是解除所有数据绑定
关于oracle日期格式显示格式
日期时间的默认格式同字符集相关日期时间格式先后顺序:默认的是客户端的nls_date_format;其次是instance的nls_date_format;最后是nls_date_format如果在session中修改nls_date_format,则这个是最优先的。select * from nls_session_parameters where parameter = 'NLS_DATE_FORMAT';select * from nls_instance_parameters where parameter = 'NLS_DATE_FORMAT';select * from nls_database_parameters where parameter = 'NLS_DATE_FORMAT';修改默认的格式alter session set nls_date_format='yyyy-mon-day hh24:mi:ss';alter session
job_queue_processes参数 job关系
job_queue_processes 这个参数和你的job运行的个数有关。是最大的job个个数 大点应该对性能不会有太大的影响有时候job有运行但没有效果。有可能是这个参数设置为0或者小于当前job的总数了。SQL> alter system set job_queue_processes=10000 scope=both; alter system set job_queue_processes=10000 scope=both*ERROR at line 1:ORA-00068: invalid value 10000 for parameter job_queue_processes, must bebetween 0 and 1000SQL> alter system set job_queue_processes=1000 scope=both;System altered.例如你可以定义超过100
oracle crs voting disk损坏一例(asm+rac)
--DBA行有一句老话,什么损坏都不可怕,可怕的是没有有效备份--下面就遇到了这个问题,就是在没有备份下的恢复检查一下crs进程: $ ps -ef|grep crs root 10469 1 0 16:52:16 ? 0:00 /bin/sh /etc/init.d/init.crsd run oracle 14164 9725 0 17:05:48 pts/1 0:00 grep crs 此时需要以root身份启动crs后台进程:或者crsctl # /etc/init.d/init.crs start Startup will be queued to init within 30 seconds. # id uid=0(root) gid=1(other) # ps -ef|grep crs --crsctl start crs 启动c
求一行中多个字段的最大值
例如表aa,有a,b,c,d 4个字段,要取每行中b,c,d 3个字段的最大值A B C D1 2 3 42 3 5 13 7 3 5取出结果如下:1 42 53 7测试和实现如下:create table aa(a int,b int,c int,d int,constraint pk_aa primary key( a ))insert into aa values(1,2,3,4);insert into aa values(2,3,5,1);insert into aa values(3,7,3,5);commit;select * from aa;select aa.a, max(tmp.bb) from aa, (select a, b as bb from aa union all select a, c as bb from aa union all s
oracle job使用方法--实现定时任务
--创建测试表create table AAHXL( ID NUMBER, NAME VARCHAR2(100), DT TIMESTAMP(6))--创建存储过程create or replace procedure pro_ins_aahxl is li_id int;-- lti_dt timestamp;begin select nvl(max(id), 0) + 1 into li_id from aahxl;-- select to_char(sysdate, 'yyyyy-mm-dd hh:mi:ss') into lti_dt from dual; insert into aahxl (id, name, dt) values (li_id, 'name' || li_id, sysdate); commit;end pro_ins_aahxl;--创建jobDECLARE job NUMBER; begin sys.dbms_job.submit(job => job,
oracle两种登陆认证方式
oracle登陆有两种认证方式:os认证和密码文件认证Password File/Operating System Authentication1、os认证需要把登陆用户加入到os相应的用户组Operating System Group UNIX User Group Windows User GroupOSDBA dba ORA_DBAOSOPER oper ORA_OPER本机CONNECT / AS SYSDBACONNECT / AS SYSOPER远程CONNECT /@net_service_name AS SYSDBACONNECT /@net_service_name AS SYSOPER2、密码文件认证,密码文件在不同的os平台下,路径和默认的名称不同。ORAPWD FILE=filename PASSWORD=password ENTRIES=max_users force =yREMOTE_LOGIN_PASSWORDF
分区表和分区索引(global local)的性能对比测试
分区表以及分区索引测试的场景建立如下四个独立的tablespace;然后建立四个相应的table和index。测试那种配置下性能最优。由于环境限制,table或index分区都没有独立的tablespace,但是每种情形测试条件都是相同的,以保证测试结果的可比性table index tablespace不分区 ,不分区 , tp_tno_ino不分区 ,global hash分区 ,tp_tno_ighhash分区 ,local hash分区 ,tp_th_ilhhash分区 ,global hash分区 ,tp_th_ighcreate tablespace tp_tno_ino datafile '/export/home/oracle/oradata/tp_tno_ino.dbf' size 3g;create tablespace tp_tno_igh dat
oracle network 管理之安全(b14266)
easy connectCONNECT username/password@host[:port][/service_name]SQL> conn oracle/oracle@10.0.8.31:1521/dbprim已连接。SQL> conn oracle/oracle@10.0.8.31:1521/dbprim已连接。SQL> show userUSER 为 "ORACLE"SQL> conn oracle/oracle@10.0.8.31/dbprim已连接。SQL>--database security b14266audit 可以存在sys.aud$ 也可以存在os上dbms_fga安全:物理安全,os安全,组件最小化,用户锁定,网络安全 ip限定 监听加密,权限最小化,密码规则复杂化,审计ddl dml,DBA_USERSALL_USERSUSER_USERSDBA_TS_QU
oracle管理之 view synonym sequence(server.102 b14231)
--view sequence synonymsview也是可以update的,只要你有update的权限,不过有很多约束例如:view不能含有 set distinct group by,not null列没有default值,decode等等都不能update deletecreate table AAATTT( ID CHAR(5) not null, NAME CHAR(10), NOTE CHAR(30), XINGMING VARCHAR2(10), XINGM VARCHAR2(10), NUM NUMBER(5,3), NUM2 NUMBER(4), NUM3 NUMBER(*,3), DAT DATE, TIMLZ TIMESTAMP(6) WITH LOCAL TIME ZONE, TIMZ TIMESTAMP(6) WITH TIME ZONE);create view aaat a
oracle管理之 cluster(server.102 b14231)
cluster多用在 经常需要连立的表上优点:减少io;节省存储空间cluster key column 一定要有合理的区分度,最好一个key 的row能存储在一个data block中CREATE CLUSTER emp_dept (deptno NUMBER(3))SIZE 600TABLESPACE usersSTORAGE (INITIAL 200KNEXT 300KMINEXTENTS 2MAXEXTENTS 20PCTINCREASE 33);CREATE TABLE emp (empno NUMBER(5) PRIMARY KEY,ename VARCHAR2(15) NOT NULL,. . .deptno NUMBER(3) REFERENCES dept)CLUSTER emp_dept (deptno);CREATE TABLE dept (deptno NUMBER(3) PRIMARY KEY, . . . )CLUSTER emp_dept (deptno);CRE
oracle管理之 partitioned table(server.102 b14231)
--分区表Range partitioningHash partitioningList partitioningComposite range-hash partitioningComposite range-list partitioning--range分区;可以有多个字段组成partition keyCREATE TABLE sales( invoice_no NUMBER,sale_year INT NOT NULL,sale_month INT NOT NULL,sale_day INT NOT NULL )PARTITION BY RANGE (sale_year, sale_month, sale_day)( PARTITION sales_q1 VALUES LESS THAN (1999, 04, 01)TABLESPACE tsa,PARTITION sales_q2 VALUES LESS THAN (1999, 07, 01)TABLESPACE tsb,PARTITION sales_q3 VALUES LESS THAN (1
oracle管理之 index(server.102 b14231)
--index management--load data first,create index after--创建索引的规则1、query less then 15% rows of a large table2、在多表连接字段上建立index3、小表不需要建立index4、在相对唯一的字段上建立b-tree index,集势小的字段上建立bitmap index5、WHERE COL_X > -9.99 * power(10,125) 来代替 WHERE COL_X IS NOT NULL(假设col_x number类型)6、多字段复合index,注意字段顺序,只有匹配字段顺序的才可以利用索引7、同一个表的index的数量,要权衡select update的性能,在只读表上可以多建index,在频繁更新的表上index反而影
oracle管理之 table(server.102 b14231)
b14231/15 manage tableTable Compression 用于只读表提高io性能,减少cacheNOLOGGING 用于create table as select /ctasParallelizing 用于ctas 多处理器的情形--临时表,对所有session可见,不过数据只对session可见CREATE GLOBAL TEMPORARY TABLE transaction-specific (the default) or session-specific,DELETE ROWS transaction-specificPRESERVE ROWS session-specific--事务级的临时表CREATE GLOBAL TEMPORARY TABLE admin_work_area(startdate DATE,enddate DATE,class CHAR(20))ON COMMIT DELETE ROWS;--transaction-specif