Logical Standby Database的配置步骤.
Logical Standby Database的配置步骤.一:首先要确认主数据库处于归档模式Archive log list如果是没有归档的话要做如下操作Shutdown immediateStartup mountAlter database archivelog;Alter system archive log startArchive log listAlter database open后:将主数据库置为FORCE LOGGING模式.在主数据库创建之后做如下操作:ALTER DATABASE FORCE LOGGING;确认主数据库是归档的并定义好本地归档.如下:SQL >ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=e:oracleoradataorclarchive MANDATORY' SCOPE=BOTH;(路径根据实际的生产环境
Oracle 高级复制配置步骤详细说明
首先,数据库要具备高级复制功能(用system身份登录数据库,查看v$option视图,如果其中Advanced replication为TRUE,则支持高级复制功能;否则不支持) 一.数据库基本情况数据库A 版本oracle 10.2.0.3 数据库名sid:shenzhen数据库B 版本oracle 10.2.0.3 数据库名sid:beijing主体定义站点:A shenzhen主体站点:B shenzhen注:主体定义站点指配置复制工作的站点 本例涉及的用户. 复制管理员:repadmin 应用用户:cqm本例复制的对象:reptest 数据表 本例的先决条件:你需要设置好相应的参数,job_queue_processes需要大于0,global_name=true,并且
aix小试牛刀
1 安装AIX比WINDOW的安装还简单2 升级其实简单的多!直接用SMIT升级就可以拉3 安装数据库安装起来比在LINUX环境下要简单得多!4 打补丁!补丁的安装办法:1,解压: 解压下载的补丁 p4899479_10203_AIX64-5L.zip->p4899479_10203_AIX64-5L2, 然后,在终端窗口中,执行cd命令移动到4518443子目录中,执行以下命令: $ $ORACLE_HOME/OPatch/opatch apply 对inventory列表,确认安装操作: $ $ORACLE_HOME/OPatch/opatch lsinventory 执行卸载命令时,也必须使4518443子目录成为当前目录。其中,Rollback命令需要两个
Oracle sql 性能优化
Oracle sql 性能优化调整 1. 选用适合的ORACLE优化器ORACLE的优化器共有3种:a. RULE (基于规则) b. COST (基于成本) c. CHOOSE (选择性)设置缺省的优化器,可以通过对init.ora文件中OPTIMIZER_MODE参数的各种声明,如RULE,COST,CHOOSE,ALL_ROWS,FIRST_ROWS . 你当然也在SQL句级或是会话(session)级对其进行覆盖。为了使用基于成本的优化器(CBO, Cost-Based Optimizer) , 你必须经常运行analyze 命令,以增加数据库中的对象统计信息(object statistics)的准确性。如果数据库的优化器模式设置为选择性(CHOOSE),那么实
Oracle SQL性能优化
(转改学) (1) 选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表. (2) WHERE子句中的连接顺序.: ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些可以
rac install
安装的主要命令和要点!!!1,创建用户与组 groupadd oinstall groupadd dba mkdir -p /export/home/oracle /ocfs useradd -d /export/home/oracle -g oinstall -G dba -s /bin/ksh oracle chown oracle:dba /export/home/oracle /u01 passwd oracle2, 创建 oracle 用户环境文件。 /export/home/oracle/.profile export PS1="`/bin/hostname -s`-> " export EDITOR=vi export ORACLE_SID=devdb1 export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product
oracle asm ora-15031
ora-15031 DBCA找不到ASM磁盘组 使用DBCA创建数据库,使用ASM存储。ASM实例已经创建,但是在创建磁盘组窗口,无法找到已经创建的ASM磁盘组。ORACLEASM显示正常。 [yangwenchao@yangwenchao ~]$ /etc/init.d/oracleasm status Checking if ASM is loaded: [ OK ] Checking if /dev/oracleasm is mounted: [ OK ] [yangwenchao@yangwenchao ~]$ /etc/init.d/oracleasm listdisks VOL1 VOL2 VOL3 VOL4 VOL5 [yangwenchao@yangwenchao ~]
oracle data guard!!
用了两天的时间终于完成拉data guard的培植!primary database inin.oraoradb.__db_cache_size=100663296oradb.__java_pool_size=4194304oradb.__large_pool_size=4194304oradb.__shared_pool_size=54525952oradb.__streams_pool_size=0*.audit_file_dest='/u01/app/oracle/admin/oradb/adump'*.background_dump_dest='/u01/app/oracle/admin/oradb/bdump'*.compatible='10.2.0.1.0'*.control_files='/u01/app/oracle/oradata/oradb/control01.ctl','/u01/app/oracle/oradata/oradb/control02.ctl','/u01/app/oracle/oradata/oradb/contro
死锁分析
一个死锁的分析!先看报错的信息!*** 2008-05-05 10:24:51.933*** SESSION ID:(9.14897) 2008-05-05 10:24:51.924DEADLOCK DETECTEDCurrent SQL statement for this session:DELETE FROM ZZRK121R WHERE (ZZRK121R.出租屋编号 IS NOT NULL) AND (ZZRK121R.F00 = '37070500020110')The following deadlock is not an ORACLE error. It is adeadlock due to user error in the design of an applicationor from issuing incorrect ad-hoc SQL. The followinginformation may aid in determining the deadlock:Deadlock graph:---------Bloc
ORACLE概念的理解!
一:块清除当事务提交 commit时,oracle会去更改 row head与itl信息 的标志,指出这些被修改的行已经作了提交,以便后面的查询不需再作一致性读操作了.这被称为快速块清除.然而,块清除有 data_buffer *10% 的了限制,即仅有10%*buffers的块能享有这种操作.这样做是为了提高commit的速度.而其余的受影响的块则会由下次操作时访问到此块时再作延迟块清除.如果块上没有活动的事务,会根据xid信息去回滚段中找如果不能确认scn的大小则会报 ora-1555的错误,否则则进行延迟的块清除.1)﹑在commit时只有 buffer数目的10%才会进行fast block cleanout﹐
删除或者更新重复的记录
删除或者更新重复的记录create or replace procedure sp_tran_delete_manyone_data/********************************************功能:删除接口表port_rk_czrk内的重复数据没有使用,但是可以应用20071129 BY LIHJ********************************************/as--定义type_err t_tran_sys_errors%rowtype;type_log t_tran_sys_log%rowtype;type_process t_tran_sys_process%rowtype;LN_LXZ NUMBER:=0;begin--初始化值type_process.ins_rows:=0;type_process.upd_rows:=0;type_process.err_rows:=0;type_log.total_rows:=0;type_log.er
数据库表格转换成XML格式方法!
数据库表格转换成XML格式方法! 资源中心有软件可下载1,确定必要的视图或者是表格2,创建存储过程create or replace procedure SP_create_xml(obj_name varchar2) isls_object_name user_tab_columns.TABLE_NAME%type;ln_object_hava number:=0;type ty_obj_cols is table of user_tab_columns.COLUMN_NAME%type index by binary_integer;ty_obj_col ty_obj_cols;ln_col_no number:=1;ls_creaet_sql varchar2(5000);begindbms_output.enable(200000);--------------------获得表的名称并验证-------------------------------------------
Oracle 10g数据安全策略
Oracle 10g数据安全策略1,安装过后要冷备数据库要在归档的模式下确保数据库在任何时候都可以恢复到一个确定的状态1,要备份数据的参数文件!这个文件数据库启动的必要基础!!1>直接拷贝2>Alter datebase back up controlfile to trace/filename2,要备份控制文件,控制文件中有数据库里的SCN信息,数据文件信息,控制文件是数据库恢复数据的必要基础!!控制文件里的SCN信息是恢复数据库最近时间尺度基础!!1>直接拷贝3,备份数据文件这个是肯定要备份的!4,备份在线日志文件没有在线日志文件,数据库是很难启动的!!5,备份
$$自动创建触发器$$
1,这个存储过程可以创建特定的instead of 触发器2,用于特定的视图,他必须包含所有的表列(这个并不影响使用)create or replace procedure Sp_create_tr(view_names varchar2 ,list_tabs varchar2) is/* 使用与比较规则的视图!!!!!! 动态创建触发器:目的,方便在视图层进行数据库的操作 传入的表名称必须是字母来表示!!!!!!!!! 从插入开始练习!!! 输入的表名称必须是这样的格式! tabe3name*table*tabel ---LIHJ*/ LS_create_sql varchar2(5000); ln_triggs_nos number:=0; ls_trigger_name varc
±±oracle trigger±±
在ORACLE 内部创建触发器的时候,不能在创建的的基表内引用其他数据,而在创建触发器的往往需要引用基表的数据,这时候我感觉最好的办法上:创建视图!!!!!!!-- Create tablecreate table AJCJ_ZAAJDJB( BH VARCHAR2(30) not null, YEAR VARCHAR2(4), YEAR_NO VARCHAR2(20), MONTH_NO VARCHAR2(22), AB VARCHAR2(30), FA_TIME DATE, FADD VARCHAR2(30), BASJ DATE, DSR1_XM VARCHAR2(30), DSR1_XB VARCHAR2(30), DS
♀♀数据库升级♀♀
我的数据库升级后,数据库没有启动!!!!C:Documents and SettingsAdministrator>sqlplus /nologSQL*Plus: Release 10.2.0.1.0 - Production on 星期三 3月 5 09:34:17 2008Copyright (c) 1982, 2005, Oracle. All rights reserved.SQL> conn / as sysdba已连接。SQL> startupORA-01081: 无法启动已在运行的 ORACLE - 请首先关闭它SQL> shutdown immediateORA-01109: 数据库未打开已经卸载数据库。ORACLE 例程已经关闭。SQL> startupORACLE 例程已经启动。Total System Global Area 322961408 bytesFixed Size 1248792 b
★★External Tables★★
1.创建sqlldr驱动的External Tables默认情况下,oracle会采用sqlldr驱动的external tableSQL> CREATE TABLE test_ext2 (employee_id NUMBER(4),3 first_name VARCHAR2(20),4 last_name VARCHAR2(25),5 job_id VARCHAR2(10),6 manager_id NUMBER(4),7 hire_date DATE,8 salary NUMBER(8,2),9 commission_pct NUMBER(2,2),10 department_id NUMBER(4),11 email VARCHAR2(25)12 )13 ORGANIZATION EXTERNAL14 (15 TYPE ORACLE_LOADER16 DEFAULT DIRECTORY dir_test17 ACCESS PARAMETERS18 (19 records delimited by newline20 badfile admi
¤¤¤exp/imp¤¤¤
记住:要看帮助!!$exp scott/tiger tables=emp query="where job='salesman' and sal<1600" file=/directory/scott2.dmp$exp parfile=username.par file=/directory1/username_1.dmp,/directory1/username_2.dmpfilesize=2000M log=/directory2/username_exp.log参数文件username.par内容userid=username/userpasswordbuffer=8192000compress=ngrants=y表模式 ######################仅仅会备份表里的数据!!!备份某个用户模式下指定的对象(表)。业务数据库通常采用这种备份方式。 若备份到本地文件,使用如下命令: e
performance of the database
create or replace procedure performance_exec is/*自动执行响应的函数与存储过程*/var number:=0;begin --缓存区的情况! dbms_output.put_line(' the performance of the database!!!!'); for i in 101..102 loop dbms_output.put_line(' -----------------------------------------------------'); dbms_output.put_line(' '||fun_sga(i)); end loop; --dbms_output.put_line(' '||fun_sga(102)); --dbms_output.put_line(' the performance of the database^^^^'); /*for i in 101..111 loop dbms_output.put_lin
print the result sql
create or replace procedure Print_sql(sqltest varchar2) is/*作者:李红杰说明:为了进行性能的管理,对一些性能管理的语句做一些必要的结果的输出!!*/begindbms_output.enable(2000000);--验证输入的SQL语句是否有问题!!--利用DBMS__SQL包进行数据正确性的判断!!----------------------------------------------------------------------declarecur_sql_int number:=0;cur_sqltest varchar2(500):=0;begincur_sqltest:=sqltest; cur_sql_int:=dbms_sql.open_cursor;dbms_sql.parse(cur_sql_int,cur_sqltest,dbms_sql.v7);--dbms