oracle9i高级复制实施手记
- 格式:pdf
- 大小:254.84 KB
- 文档页数:42
安装目录不能有空格和中文!Oracle 版本oracle 8i (8.1.7)、oracle 9i(9.0) 临时版本,由于有问题,很快升级到Oracle 9i(9.2.0.1) 、oracle9i(9.2.0.4)、oracle10gOracle 9i 的三个重要特征:客户机/服务器结构(client/server)。
面向对象数据库。
用于关键业务。
如银行等业务,不允许出现错误。
(备份)第一课Oracle 9i 体系结构Oracle 9i 数据库:由实例和数据库组成。
实例是指访问数据库文件的内存和进程。
重点:实例和数据库的关系。
(以ORCL数据库为例讲解)正常情况下,实例和数据库是一一对应的。
在NT上,实例是作为服务运行的。
服务名:OracleServiceORCL。
OracleServiceORCL oracleserviceerp数据库名数据库名在Unix和Linux上,实例是作为Daemon运行的。
组成一个Oracle 9i数据库的文件控制文件(.ctl)、数据文件(.dbf)、联机重做日志文件(.log)。
讲解Oracle 9i数据库的工作原理图。
讲解Oracle 9i数据库的体系结构图。
实例的组成:1. 系统全局区(SGA)(system global area)共享池(shared pool):包括library cache、dictionary cache。
通过shared_pool_size设置。
library cache:存放执行SQL语句的二进制文件,执行速度快。
dictionary cache:存放系统表数据。
数据库缓冲区高速缓存(database buffer cache):存放数据文件的。
通过db_cache_size设置。
重做日志缓冲区(redo log buffer): 通过log_buffer设置。
存放重做日志的。
Java Pool、Large Pool。
2. Oracle 后台进程必须:系统监控和进程监控进程(SMON和PMON)数据库写进程(DBWR)、日志写进程(LGWR)、归档进程(ARCH)、检查点(CKPT)可选:调度进程(Dnnn)、恢复进程(RECO)、快照进程(SNPn)、锁进程(LCKn)、并行查询进程(Pnnn)PGA(Program Global Area):用户和服务器进程第二课. 开始使用Oracle 9i初始用户用户名:密码:(不区分大小写)syssystemOracle数据库的系统管理员默认是由操作系统验证。
oracle 复制执行计划(实用版)目录1.Oracle 复制执行计划的概念2.Oracle 复制执行计划的类型3.Oracle 复制执行计划的优缺点4.Oracle 复制执行计划的实现方法5.Oracle 复制执行计划的案例分析正文一、Oracle 复制执行计划的概念Oracle 复制执行计划是指在 Oracle 数据库中,将一个 SQL 语句或 PL/SQL 过程的执行计划复制到另一个数据库中,从而实现跨数据库的执行计划复用。
通过复制执行计划,可以减少开发工作量,提高开发效率。
二、Oracle 复制执行计划的类型1.SQL 复制执行计划:将一个 SQL 语句的执行计划复制到另一个数据库中。
2.PL/SQL复制执行计划:将一个PL/SQL过程的执行计划复制到另一个数据库中。
三、Oracle 复制执行计划的优缺点1.优点:- 减少开发工作量:通过复制执行计划,可以避免重复编写相同功能的 SQL 语句或 PL/SQL 过程。
- 提高开发效率:只需要在一个数据库中编写和调试执行计划,然后在其他数据库中复制使用。
- 便于维护:当需要修改执行计划时,只需在一个数据库中进行修改,其他数据库中的执行计划会自动更新。
2.缺点:- 可能导致性能下降:复制执行计划可能会导致目标数据库的性能下降,因为目标数据库可能需要为复制的执行计划重新编译和优化。
- 依赖源数据库:复制执行计划依赖于源数据库的稳定性和可用性,如果源数据库出现问题,可能会影响目标数据库的执行计划。
四、Oracle 复制执行计划的实现方法1.使用 dbms_replay 包:Oracle 提供了 dbms_replay 包,可以用于将一个数据库中的执行计划复制到另一个数据库中。
具体使用方法如下: - 在源数据库中,使用 dbms_replay.dbms_replay_sql_text 过程将 SQL 语句或 PL/SQL 过程的执行计划保存到临时表中。
Oracle数据库高级复制技术的应用在简要说明数据库复制技术的基础上,主要探讨了oracle数据库高级复制的几种方法,介绍了多主复制和可更新快照复制两种机制的设计步骤,并将实际应用中可能出现的问题进行列举,最后给出一个可更新快照复制实例。
标签:Oracle数据库;高级复制;应用一些大的信息系统往往由多地的不同用户同时使用,由相距较远的多个站点构成的广域网,并且各个站点之间需要数据共享,通常将这些共享的数据存储在其中一个站点上,作为数据中心,所有用户都从该站点存取数据。
这种方案很容易就能保证数据一致性,但会造成数据中心的负载过大,使远程用户的数据响应很慢,甚至造成系统瘫痪。
数据复制技术可以有效地解决这个问题,它通过将这些共享数据复制到多个不同站点的数据库中,实现数据的本地访问,减少网络负荷,并提高数据访问的性能,而且通过数据同步,确保数据实时性和一致性[1]。
该技术适用于用户数较多、地理分布较广、而且需要实时地访问相同数据的应用模式。
Oracle数据库的复制是由数据库的后台进程自动实现的,通过设置数据库参数,确定后台负责复制任务的进程数和被激活的时间。
数据库的后台进程是由系统按设定的时间间隔执行预定的操作,以实现数据定期地从源数据库到目标数据库的传输,并由系统进行控制。
Oracle数据库复制支持基本复制和高级复制两种形式,这里主要讲述Oracle高级复制技术在应用时的设计,以及可能遇到的问题和解决办法。
1 基本概念Oracle高级复制,即对称复制,既可支持整个表的复制也可支持基于部分表的复制两种复制方案,其主要是通过多主复制和可更新快照复制两种机制实现的。
同时还可以将这两种复制机制结合起来以满足不断变化的业务需求。
2 高级复制设计步骤2.1 多主复制(1)创建复制环境,明确高级复制的站点和参与复制的数据表;保证各站点具有复制关系的表结构的一致性;(2)使用数据库复制管理器,定义参加复制的站点,在复制的各站点,建立包含复制实体的用户和复制的数据库链路,建立复制的管理用户,配置数据更新的计划;(3)建立主复制组,不同的需参与复制的实体可加入不同的组中;(4)给用户分配适合的权限,防止由于用户权限过大而造成的复制冲突。
oracle9i数据库:Oracle9i 数据库控制文件疯狂代码 / ĵ:http://Java/Article62724.html经过前几期专栏文章洗礼相信大家对于 Oracle9i 数据库应该已具备些基本管理概念但是这还不足以驾驭Oracle9i 数据库!接下来我将从实务角度深入解说 Oracle9i 数据库各种核心组成组件和各种数据库管理窍门技巧本期先从 Oracle9i 数据库控制文件(Control files) 开始谈起j%KOG@_oJAVA中文站社区门户$AZ4DeRh!I控制檔角色j D2wkJJAVA中文站社区门户-G%R"H2c ~5h每个 Oracle9i 数据库都必须有个控制档它是个小型 2进制档案主要是储存 Oracle9i 数据库结构信息包括:#v jGvdwF/k4`q hI`n kc:n`jn ; ; ; ; ; ; 数据库名称8W+y\J ejSn ; ; ; ; ; ; 数据库建立时间 JAVA中文站社区门户[Cd*X:x7E,Xs4]`n ; ; ; ; ; ; 资料文件名称和所在位置{"U(F9NDhH-xn ; ; ; ; ; ; 重置日志文件名称和所在位置 JAVA中文站社区门户*Z7L l:F3J\D/VQn ; ; ; ; ; ; 目前日志序列码(log sequence number) JAVA中文站社区门户J$G]_v-tG8]Wn ; ; ; ; ; ; 检查点信息M9\;_}1U8K*xi"vJAVA中文站社区门户o8p$Z-C'NA\,K2OwGpkWw|6j简言的控制档可用来描述 Oracle9i 实体结构因此开启 Oracle9i 数据库时定要读取控制文件才能取得所有数据库实体档案相关信息旦控制文件不幸毁损数据库便无法顺利开启也如此控制档管理和维护工作显得格外重要JAVA中文站社区门户S~l}G2s(s(_JAVA中文站社区门户bI\h*TG如何管理控制檔F9?On+@k/T:s#I sU@x q%Y设定控制文件名称和所在位置*ITq A]f8hcl:]`q6u4GQ M~控制文件将用来存放 Oracle9i 数据库实体结构信息即使目前尚未建置 Oracle9i 数据库您也必须先准备好控制档!换言的在激活 Oracle Instance 时就必须知道控制文件名称和所在位置为此控制文件相关信息必须设定在起始参数档内才能在开启 Oracle Instance 时并读取控制档内容进而激活 Oracle9i 数据库控制文件名称和所在路径位置是设定在起始参数档内 CONTROL_FILES 参数IAOl2bl/n1n;Y7x ]mb+vB如何配置控制文件JAVA中文站社区门户(]Q8T&i9^~:XJAVA中文站社区门户C!l+bB9D7ie%Z每个 Oracle9i 数据库最好拥有两个以上控制档并各自存放在区别磁盘上如此来当控制档因故毁损时您便可以在最短时间内修复控制文件尽可能缩短数据库停摆时间假定您 Oracle9i 数据库目前配置了 3个控制文件那么Oracle 如何维护这些控制档呢? Oracle9i 和控制档互动方式如下:5~'`9eR5s,aT#wM)p#] VG`#tI~Lxn ; ; ; ; ; ; 开启 Oracle 数据库时只会读取第个控制文件(顺序以 CONTROL_FILES 设定值为基准)0W8M!G-G.{!@n ; ; ; ; ; ; 如果需要将特定信息写入控制文件则 Oracle 会同时写入 CONTROL_FILES 参数所指定档案 JAVA中文站社区门户){1K ^-W+u4RUn ; ; ; ; ; ; 当某个控制档发生问题时Oracle Instance 将因此停摆JAVA中文站社区门户 z/[ m!K9I2NHJAVA中文站社区门户O5WY L?sM5Gn,wi如前所述各控制档复本应该分散在区别实体磁盘因此实际上规划个正式系统时请仔细研究控制文件和重置日志文件的搭配方式JAVA中文站社区门户8H0w{%rj%|%{+V[%rp.k;p:~0}@假定目前重置日志群组有两个分别置于 /u01 和 /u02两个磁盘;每个重置群组包含 3个重置日志文件:PEmGr'Rj~;EA$f l9EB+XV/u01/oradata/ora901/log1a.rdo(Group1)[D9?V.yoJ E:Jo8pWJAVA中文站社区门户Tl Q]q)W/u01/oradata/ora901/log2a.rdo(Group2){+{|(T-N;j2Z1_r\VNDH0{,kn/u02/oradata/ora901/log1b.rdo(Group1)9_:c"deBJb)H.beJAVA中文站社区门户 Bu)w{|1S/u02/oradata/ora901/log2b.rdo(Group2)JAVA中文站社区门户*_g\Rl3LjUJQ3pAB/u03/oradata/ora901/log1c.rdo(Group1)JAVA中文站社区门户"y1\DFTv s!ouJAVA中文站社区门户RtZR{2Ih(I/u03/oradata/ora901/log2c.rdo(Group2)9k'_0I+r+r,}JAVA中文站社区门户\B7~Fr5V此时不妨在 /u01 和 /u02 各配置个控制文件如此可有效降低重置日志文件和控制文件同时遗失风险不管哪个磁盘出问题另个磁盘仍然保留完整重置日志文件和控制文件资料JAVA中文站社区门户;s(O,`u5n1Y5r&dJAVA中文站社区门户;b fG:M6Wh5f|XJAVA中文站社区门户p6X:U1M\|如何决定控制档大小JAVA中文站社区门户*G|3\:@Zw#BOracle9i 控制檔大小主要是由 CREATE DATABASE 指令内数个参数所决定分别是: MAXDATAFILES、MAXLOGFILES、MAZLOGMEMBERS、MAXLOGHISTORY 和 MAXINSTANCESJAVA中文站社区门户5Y%F*u[$x)B3\ P4C jJAVA中文站社区门户{ Eg#v7Y ze控制檔建立方式V qp0f:k]%~-MogV5e经由 CREATE DATABASE 指令建立控制文件0Da&f {$@)J&ScJAVA中文站社区门户,OSR-J.eOracle9i 控制文件在建立数据库同时就会并建立;换句话说当您执行 CREATE DATABASE 的后就会产生控制档但是有点必须注意:CREATE DATABASE 指令内并未指定控制文件相关信息! 其实控制文件名称和所在位置是定义在起始参数档CONTROL_FILES参数其命名方式必须视操作系统环境而定;例如 Windows 系统和 Linux 系统档案路径表示法就不相同以下是 CONTROL_FILES 参数的定义方式:3t.`M*D,fCONTROL_FILES = ( /u01/oracle/ora901/control01.ctl,JAVA中文站社区门户uZixJVV0V/u02/oracle/ora901/control02.ctl,z!uA F-IX~#v/u03/oracle/ora901/control03.ctl)JAVA中文站社区门户8~pP1MP6rDz.JJAVA中文站社区门户{Q,v W[]B如果 CONTROL_FILES 参数所指定文件名称已经存在于操作系统中如何办? 此时您在执行 CREATE DATABASE 指令时就会发生不过只要加上 CONTROL FILE REUSE 子句即可然而如果现有控制档名称和 CONTROL_FILES 所设定名称相同但是其 “大小” 却区别那么您还是无法使用 REUSE 选项JAVA中文站社区门户)fhQce7Xy4y F#l^JAVA中文站社区门户(eEH;|-Z1x/szjx建立额外控制档JAVA中文站社区门户hI\5T6m为了避免控制文件(或其所在磁盘)毁损时影响到 Oracle9i 数据库正常运作您也许需要在其它硬盘上新增其它控制档最简单方式就是先将既有控制文件复制到目位置然后将控制文件名称加入起始参数档 CONTROL_FILES 的中同理如果想更改控制档名称也可以先将控制文件复制到目位置后予以更名再更新 CONTROL_FILES 参数请注意不管是上述何项动作都应该先关闭 Oracle9i instance 再进行在其它磁盘建立额外控制文件步骤如下:-yp!J2[Ih2{rnRbf m1. ; ; ; ; 关闭 Oracle9i 数据库 JAVA中文站社区门户s s`'b-S!oY2. ; ; ; ; 在操作系统下将既有控制文件复制到目位置;Tt~:Ir3. ; ; ; ; 开启起始参数档并修改 CONTROL_FILES 参数您必须将新控制文件名和所在目录名称加入CONTROL_FILES 参数 JAVA中文站社区门户/u'v,p$UIt3SC4. ; ; ; ; 重新开启 Oracle9i 数据库L}nA@r:ZJAVA中文站社区门户&|n }3]_\建立全新控制檔JAVA中文站社区门户 tf5VCE Uat除了将控制文件复制到其它磁盘的外某些时候您可能需要建立 ”全新” 控制檔例如:JAVA中文站社区门户 iz;L qOFI$R"s:mn ; ; ; ; ; ; 目前数据库既有控制文件不幸毁损不仅未进行备份也尚未在其它磁盘建立镜射控制文件.M+dpg4I4rL:En ; ; ; ; ; ; ; ;您希望更改 CREATE DATABASE 指令内设定控制文件相关参数例如:数据库名称或是 MAXLOGFILES、MAXLOGMEMBERS 和 MAXLOGHISTORY 等参数JAVA中文站社区门户TuK(a6RE]:Z JAVA中文站社区门户&[A1uA7KEOb举例来说在分布式运算环境中可能会有两部 Oracle9i 数据库名称相同其中台必须更改数据库名称也有可能MAXLOGFILES 和 MAXLOGMEMBERS 最初设定值太小现在必须加大上述情况都必须建立全新控制档以下是建立详细建置步骤:JAVA中文站社区门户yb:[ ` Dx'Q L.GA8R c4?_#^hO1. ; ; ; ; ; ; 先整理份数据库档案清单其中包含所有数据文件和重置日志档案的路径和名称V$LOGFILE 和 V$DATAFILE 这两个视观表可协助您进行这项供工作例如:@"v z&Hr+P4]D[-XSELECT member FROM v$logfile;JAVA中文站社区门户'r._0`3nO*PTgSELECT NAME FROM V$DATAFILE;JAVA中文站社区门户G8H&YKR7DI+Pw[z3b\Ghz}2. ; ; ; ; ; ; 关闭数据库请尽可能以 NORMAL 选项关闭数据库必要时才使用 IMMEDIATE 或ABORT 选项0}z,p/^4\H3. ; ; ; ; ; ; 重新激活 Oracle Instance 至 NOMOUNT 状态:JAVA中文站社区门户6hNt-b+z&_?!T3ESTARTUP NOMOUNT;JAVA中文站社区门户 {0|ut!H:hU1^SLG|6e7F&X[.?b4. ; ; ; ; ; ; 执行 CREATE CONTROLFILE 指令建立新控制文件以下范例将为 ora901 数据库建立个全新控制档:,A\d}5u#JW&m1f P(iYQm9JCREATE CONTROLFILE9B9YM%Awm-BWRKz5cn:XuV6NDLSET DATABASE ora901JAVA中文站社区门户:];n(xiP'vte~X kupl;mLOGFILEGROUP 1 ( '/u01/oracle/ora901/redo01_01.log',JAVA中文站社区门户+Qd[5|UFu,h-k_;u6yG'/u01/oracle/ora901/redo01_02.log'),7c9w |?n4nSA-vJAVA中文站社区门户C`h&g`z9_-TjqGROUP 2 ( '/u01/oracle/ora901/redo02_01.log',ZYV!^}[[CJAVA中文站社区门户iiXqy9nRQ%E,`$}'/u01/oracle/ora901/redo02_02.log'),JAVA中文站社区门户.EQ)c#v/N'U1D@] ZJAVA中文站社区门户\JL e8TC8QGROUP 3 ( '/u01/oracle/ora901/redo03_01.log',.W#OLSzdq:l0U@.k6P^'/u01/oracle/ora901/redo03_02.log')JAVA中文站社区门户l"O"eg~Wxv1Qu.t)wn+pZNORESETLOGSQonzn4?_p$\AIf{.@+TDATAFILE'/u01/oracle/ora901/system01.dbf'SIZE 300M,JAVA中文站社区门户(H8^dipYU&DuA e$hzgli\n'/u01/oracle/ora901/rbs01.dbf'SIZE 50M,L7bpO[sVA:Oq)v$V6Hc,KlV(I'/u01/oracle/ora901/users01.dbf'SIZE 500M,JAVA中文站社区门户or-O}ic%\-K ew-cJ'/u01/oracle/ora901/temp01.dbf'SIZE 100Mg0iO2{&cD.u5Y|Ycs$v`j*Xo1E&|MAXLOGFILES 100JAVA中文站社区门户@_h_^ ]9k*TJAVA中文站社区门户^q5Bc~ f.w@1UMAXLOGMEMBERS 3n9f,Y Fe5\dU:uC_%l!z,pjaUMAXDATAFILES 500|ASb)UH1AEyc.Z c!u.O_MAXINSTANCES 10JAVA中文站社区门户bc$hm$Wkc%HcJAVA中文站社区门户a4MRs%nn(y7foARCHIVELOG;)mG%ZmIm_"lJAVA中文站社区门户 W[ymX6Nm注意如果您打算在控制文件内更改数据库名称则必须使用 RESETLOGS 选项否则请使用 NORESETLOGS 选项JAVA中文站社区门户9fp8K6_oJAVA中文站社区门户.Y2d;\&a@?5. ; ; ; ; ; ; 必要时修改起始参数档 CONTROL_FILES 参数如果数据库名称已被更改请记得修改 DB_NAME 参数 JAVA中文站社区门户z+Ue4eT6. ; ; ; ; ; ; 将数据库开启至 Open 状态:JAVA中文站社区门户#{RSnS.Y;IeALTER DATABASE OPEN;6k|c^?"r.nHB{m,p1RSAZ6G9~如果您建立控制文件时曾搭配RESETLOGS 选项那么执行 ALTER DATABASE 指令时必须加上RESETLOGS 选项:JAVA中文站社区门户i+[dG2D%@7L3p!pALTER DATABASE OPEN RESETLOGS;JAVA中文站社区门户B;i[f*D(y1W@/lNFs(q'}Q备份控制档h!aEh v'[JAVA中文站社区门户aRe3_Wy#?也许您已经在区别磁盘上配置多个控制文件但这并不表示控制档永远不会毁损为此您应该适时备份这些控制档;特别是在 Oracle9i 数据库实体结构经过变动时例如:PH8{ k*p$J6J+[7@nJn ; ; ; ; ; ; 新增或移除数据文件或是更改某数据文件名称 JAVA中文站社区门户j u'Y~G#C7qDRn ; ; ; ; ; ; 新增或移除表格空间或是更改表格空间状态F"N_;awtdS3[n ; ; ; ; ; ; 新增或移除重置日志档案(或群组)s d!E3cT-~k%T8pV4lD欲备份控制档时您可执行 ALTER DATABASE BACKUP CONTROLFILE 指令分为以下两种方式: Td'Si-W/a2wt;CS&O!mw1. ; ; ; ; 将控制文件备份到某个 2进制档案例如:S x"a"gV^Bi4kDwv/aP`S2A{eALTER DATABASE BACKUP CONTROLFILE TO1x/d.qw`V\D7{&q)z2g/bN6J'/backup/controlfile/control.bkp';3O*_;Pax6r&^y yGy%q2. ; ; ; ; 制作能够重建控制档的 SQL 叙述句例如:JAVA中文站社区门户SPa#?*ZC$ql4b2p0@/OA9yx2FALTER DATABASE BACKUP CONTROLFILE TO TRACE;Lj#U^f}JAVA中文站社区门户 LH,h~9x~^+z这道指令会将某个 SQL 叙述句写入数据库追踪文件您可从追踪档内撷取出这段代码进而重建控制档8ix3x9c Z"mj8a/if"egs|#[)@如何修复控制档(或其复本)JAVA中文站社区门户4K%|e5{4e@;vu1x~)W,gC3VF O情境:目前您 Oracle9i 数据库拥有 3个控制档分别置于 3个区别磁盘:JAVA中文站社区门户F@`ejD IHJAVA中文站社区门户m*e/w_L'f^5i$b/u01/ora901/controlfile/control01.ctlJAVA中文站社区门户 x#o8sfB^5nDkdZfl#B9ey#Q/u02/ora901/controlfile/control02.ctlz~ qT3qM6L jO1S'J&{,| b@!j/u03/ora901/controlfile/control03.ctl/zS*_)AQ2v)] jJAVA中文站社区门户1qr*nWi-b状况:control02.ctl 不幸毁损导致 Oracle9i 数据库无法正常运作JAVA中文站社区门户pi1w_\`2}yJ-@;f:bl解决方式:参考下列步骤修复控制档复本并重新激活数据库:'W{ar-{JAVA中文站社区门户UA4p&k&`|9u1. ; ; ; ; 关闭 Oracle9i 数据库在操作系统下将控制文件复制份至 /u02/ora901/目是覆盖掉毁损旧控制档:*a2M}M1}% cp /u01/ora901/controlfile/control01.ctlkD:BC,a)c~+x8Mq-nJAVA中文站社区门户IwWI&b6|1N/lA/y/u02/ora901/controlfile/control02.ctl;q{;C(S*jb2]m k'MvMB@2. ; ; ; ; 重新开启 Oracle9i 数据库8C-[!ED(H_0W~#l_&qRBJAVA中文站社区门户r5uhg|1h7f状况 2:control02.ctl 所在磁盘整个毁损(该磁盘并未存放其它数据库相关档案)JAVA中文站社区门户Kz ^F/Gfs\j1H%w6k!Vb解决思路方法A:以其它磁盘取代毁损磁盘!r"t x$gy"K8rJ"F ?JAVA中文站社区门户kU;S&C%M])ysn1. ; ; ; ; 关闭 Oracle9i 数据库在操作系统下将控制文件复制份至其它磁盘的适当目录 (例如 /u04):JAVA中文站社区门户a:q7T6fQ$nkp"v% cp /u01/oracle/ora901/control01.ctl /u04/oracle/ora901/control02.ctl;+K^m+?%GJAVA中文站社区门户:Hp5q8D:n&Hn*ri2. ; ; ; ; 更改启始参数档内 CONTROL_FILES 参数例如:JAVA中文站社区门户^m8vF'@ ?/o qCONTROL_FILES =(/u01/oracle/ora901/control01.ctl,:O&D2Y2M k1@/tOx8Q\Lt5{?([(z;y/u03/oracle/ora901/control03.ctl,JAVA中文站社区门户 u_+M1TE9U6N/H\mW&D"x8}Co/u04/oracle/ora901/control02.ctl)JAVA中文站社区门户3B|QF'@nRWm-u5u}7u7h.|M{.I3. ; ; ; ; 重新开启 Oracle9i 数据库D5p9_Z ESCJAVA中文站社区门户b#t!]^(L`D解决思路方法B:移除 control02.ctl 设定值JAVA中文站社区门户ptKi1mv(W2Ne:EP.D_Is1. ; ; ; ; 关闭 Oracle9i 数据库R*msq_ v2. ; ; ; ; 更改启始参数档内 CONTROL_FILES 参数移除原先 control02.ctl 的路径和名称 JAVA中文站社区门户/]F6nu!ziO @6g7q3. ; ; ; ; 重新开启 Oracle9i 数据库JAVA中文站社区门户:C k1}6E4{n\JAVA中文站社区门户$^a0V+@db0C6@需注意是:使用思路方法A以后您 Oracle9i 数据库仍然保有 3个控制档;但是使用思路方法B的后只剩下两个控制档+mK,t7p}%N/}JAVA中文站社区门户+Nv$PFyY如何查询控制文件相关信息9o&JvMBpeK7RPM9Ne!Z7Iq1`U欲查询 Oracle9i 控制文件相关资料时可参考下列几种方式:r|f6en8|)F*E1. ; ; ; ; ; ; 执行 SHOW PARAMETER 指令:}!F+f&Gm?+\2. ; ; ; ; ; ; 查询 V$CONTROLFILE 视观表:JAVA中文站社区门户e0dM#x`*i!x6bSELECT name FROM V$CONTROLFILE;JAVA中文站社区门户T1x8T r.\!a8d|%T3. ; ; ; ; ; ; 查询 V$PARAMETER 视观表:JAVA中文站社区门户I-O3lyy:G [CSELECT name, value from V$PARAMETER VV|FP+P:R(KvWHERE name = 'control_files';TAG: 数据库 文件 Oracle9i2009-2-14 1:15:03疯狂代码 /。
《Oracle 9i RMAN 备份与恢复技术》学习笔记第3章 RMAN设置和配置 (2)第9章 RMAN 备份 (5)第10章 RMAN还原与恢复 (10)第12章 RMAN的高级恢复 (15)第13章 RMAN维护 (25)第14章 RMAN报告 (29)第3章 RMAN设置和配置1.9i下将数据库配置为ARCHIVELOG模式虽说RMAN也可以在非归档模式下使用,但是我们不推荐。
因为非归档模式下很多RMAN的功能都用不上。
在9i中必须配置如下参数:LOG_ARCHIVE_DEST_n:指定归档的重做日志文件的位置,并指定是否是必要的。
N从1到10,也就是可以指定10个位置,至少指定一个。
例如下面的参数设置中:LOG_ARCHIVE_DEST_1= 'location=e:\oracle\backup mandatory'e:\oracle\backup是要备份文件要存放的位置,mandatory的意思是说这个目录下的日志是必须成功写入的;也可以是optional,也就是可选的。
LOG_ARCHIVE_START:这个参数指定Oracle实例启动数据库的时候启动ARCH进程。
这个参数需要设置成TRUE(书上第47页倒数第5行关于该参数的描述有误) 其它的与ARCH进程相关的参数:LOG_ARCHIVE_STATE_n:这个参数与LOG_ARCHIVE_DEST_n相对应,可能的值有ENABLE 和DISABLE两种。
如果设置成ENABLE,ARCH进程会认为与该状态关联的目标为一个有效的归档日志目标;如果设置成DEFER,ARCH进程就不会再相关的位置归档。
LOG_ARCHIVE_FORMAT:该参数设定归档文件的命名规则LOG_ARCHIVE_MIN_SUCCEED_DEST:定义归档日志必须成功的最小的副本数量。
这个参数应该大于等于LOG_ARCHIVE_DEST_n中的MANDATORY数量。
Oracle9i集中数据复制
曾宪锐
【期刊名称】《《程序员:CSDN开发高手》》
【年(卷),期】2004(000)005
【摘要】前言。
日益增长的分布式应用需求要求实现更好分布式的软件环境,不
断推动着分布式技术的进步。
Oracle数据复制是实现分布式数据环境的一种技术,通过在不同的物理站点拷贝数据来建立分布式数据环境。
它与分布式数据库不同,在分布式数据库中,虽然每个数据对象也对所有的站点可用,但是特定的数据对象只存在于一个特定的站点中。
而数据复制实现所有的站点都有相同数据对象的可用拷贝。
【总页数】4页(P53-56)
【作者】曾宪锐
【作者单位】
【正文语种】中文
【中图分类】TP311.133.1
【相关文献】
1.基于MapX & oracle9i空间分析的研究 [J], 杨福涛
2.Oracle9i Report输出数据至EXCEL [J], 杨丽华
3.Linux上超大型Oracle9i数据库优化探索 [J], 赖海铭
4.Oracle9i数据库开发(一) Oracle9i JDeveloper的安装与基本使用技巧 [J], 何
致亿
5.Oracle9i数据库开发(一)——通过JDBC API连接Oracle9i数据库 [J], 何致亿因版权原因,仅展示原文概要,查看原文内容请购买。
实现Oracle数据库复制数据库电脑资料我们经常希望把各地的数据入库后进行统一的应用,我们经常希望把各地的数据入库后进行统一的应用。
现在可以用复制技术来解决这个问题。
但实现数据库复制也是要有一些条件的。
首先,数据库要具备高级复制功能(用system身份数据库,查看v$option视图,如果其中Advanced replication为TRUE,则支持高级复制功能;否则不支持)。
如果具备高级复制功能,数据库要进行一些参数初始化。
db_domain = test.. 指明数据库的域名(默认的是WORLD),这里可以用您公司的域名;global_names = true 它要求数据库链接(database link)和被连接的数据库名称一致,现在全局数据库名:db_name+”.”+db_domain ;跟数据库job执行有关的参数:job_queue_processes = 1;job_queue_interval = 60;distributed_transactions = 10;open_links = 4第一行定义SNP进程的启动个数为n。
系统缺省值为0,正常定义范围为0~36,根据任务的多少,可以配置不同的数值。
第二行定义系统每隔N秒唤醒该进程一次。
系统缺省值为60秒,正常范围为1~3600秒。
事实上,该进程执行完当前任务后,就进入睡眠状态,睡眠一段时间后,由系统的总控负责将其唤醒。
如果修改了以上这几个参数,需要重新启动数据库以使参数生效。
做完了初步的准备,我们来实现数据库同步复制。
假设在Inte.上有两个数据库:一个叫中国(China),一个叫日本(Japan)。
具体配置如下:数据库名:China、Japan数据库域名 test..数据库sid号 China、JapanListener端口号 1521服务器ip地址 10.1.0.100 10.1.0.200确认两个数据库之间可以互相访问,在tnsnames.ora里设置数据库连接字符串。
oracle 命令复制表结构及数据主键索引注释In Oracle, there are several ways to copy a table's structure, data, primary keys, indexes, and comments. Here are the methods you can use:1. Using CREATE TABLE AS SELECT statement:You can use the CREATE TABLE AS SELECT statement to create a new table with the same structure and data as an existing table.Example:CREATE TABLE new_table AS SELECT * FROM existing_table;This command will create a new table called "new_table" with the same structure and data as "existing_table".使用CREATE TABLE AS SELECT语句:您可以使用CREATE TABLE AS SELECT语句来创建一个具有与现有表相同的结构和数据的新表。
示例:CREATE TABLE new_table AS SELECT * FROM existing_table;这个命令将创建一个名为“new_table”的新表,该表的结构和数据与“existing_table”相同。
2. Using the EXPDP/IMPDP utility:You can use the Oracle Data Pump utility (EXPDP/IMPDP) to export and import tables with their structures, data, primary keys, indexes, and comments.Example:To export the table:expdp system/password@database_name tables=table_name directory=directory_name dumpfile=dumpfile_name.dmplogfile=log_file.logTo import the table:impdp system/password@database_name tables=table_name directory=directory_name dumpfile=dumpfile_name.dmplogfile=log_file.log使用EXPDP/ IMPDP实用程序:您可以使用Oracle Data Pump实用程序(EXPDP/ IMPDP)导出和导入带有其结构、数据、主键、索引和注释的表。
Oracle高级复制实施手记 Version: <1.0>
Author:husthxd Date: <20/06/2004>
修订历史记录 日期 版本 说明 作者 <20日/06月/2004年> <1.0> 初次编写 Husthxd(husthxd@hotmail.com)
1Oracle高级复制实施手记 Version: <1.0>
Author:husthxd Date: <20/06/2004>
/******************************************************************************************** 注意问题:各个物化视图站点/主体复制站点的用户名需要一致!
************************************************************************************* 2004-05-24 ************************************************************************************* 1.修改主体复制对象(如table加主键等)后需要删除并重新加入到复制主体组中,并重新生成复制支持 2.用oem来运行job的时候,需要repadmin用户(复制管理员)
************************************************************************************* 2004-06-04 ************************************************************************************* 运行完毕要为物化视图建立索引 获取索引信息,不包括主键 select t1.* from user_indexes t1 where not exists (select 'x' from user_constraints t2 where t2.CONSTRAINT_NAME = t1.INDEX_NAME) and substr(t1.index_name,1,3) <> 'SYS' / 可用exp/imp来实现 exp @simis file= owner=sidb rows=n imp @mv file= fromuser=sidb indexfile= buffer=40000 或者用toad来生成index/view/function的脚本
************************************************************************************* 2004-06-08 ************************************************************************************* 1.如果以除repadmin(复制管理员)以外的用户登录oem的话,看到的复制环境为中断的数据库连接 2.job有可能会中断而不能产生数据传播
2Oracle高级复制实施手记 Version: <1.0>
Author:husthxd Date: <20/06/2004>
************************************************************************************* 2004-06-17 ************************************************************************************* 1. -- 创建新的undo表空间 create undo tablespace newundotbs datafile '$ORA_DATA/newundotbs01.dbf' size 1000m / -- 切换undo表空间 alter system set undo_tablespace=newundotbs scope=spfile / shutdown immediate / startup / drop tablespace undotbs including contents and datafiles / -- 创建旧的undo表空间 create undo tablespace undotbs datafile '$ORA_DATA/undotbs01.dbf' size 1000m / -- 切换undo表空间 alter system set undo_tablespace=undotbs scope=spfile / shutdown immediate / startup / drop tablespace newundotbs including contents and datafiles / 2.更新运行时间或运行间隔
BEGIN DBMS_JOB.CHANGE(job => 6, next_date => to_date('17-6月 -2004 16:49:15','dd-Mon-yyyy HH24:MI:SS'), interval => 'trunc(sysdate + 1) + 16/24', what => NULL); END; /
************************************************************************************* 2004-06-18
3Oracle高级复制实施手记 Version: <1.0>
Author:husthxd Date: <20/06/2004>
************************************************************************************* 安装步骤 准备:删除物化视图组/物化视图刷新组/物化视图 1.配置主体站点环境: a)修改global_name,修改其他初始化参数(job_queue_processes,domain_name等) b)创建复制组等 2.配置物化视图站点环境: a)修改global_name,job_queue_processes等 b)创建物化视图组 3.生成物化视图 4.创建索引 5.创建物化视图刷新组 6.创建索引 7.赋权限,创建synonym/package/view/function等 8.创建视图
******************************************************************************************** ******************************************************************************************** ********************************************************************************************/
/* prompt -- 如果复制不成功,系统自动停止push和refresh操作,需要手工恢复job的正常运行! prompt -- 半小时一次,自动把中断的dbms_job设置为正常运行 DECLARE jobno number; BEGIN DBMS_JOB.SUBMIT(job => jobno, what => 'declare cursor cur_job is select job from user_jobs where upper(nvl(broken,''Y'')) = ''Y''; begin for c_job in cur_job loop dbms_job.broken(c_job.job,FALSE); end loop; end;', next_date => SYSDATE, interval => 'sysdate + 30/1440'); END; / */
/****************************************************************************** 4Oracle高级复制实施手记 Version: <1.0>
Author:husthxd Date: <20/06/2004>
************** -- 1.创建主体站点 : 假定有两个主体站点simis.simis,web.simis. simis.simis为主体定义站点 ********************************************************************************************/
/******************************************************************************************** -- 1.1设置init参数:要注意db_name和db_domain的大小写 ********************************************************************************************/ -- simis.simis的init参数 db_name=simis db_domain=simis global_names=true job_queue_processes = 20 --#用于执行dbms_job中的任务 --web.simis的init参数 db_name=web db_domain=simis global_names=true job_queue_processes = 20 -- #用于执行dbms_job中的任务
/******************************************************************************************** -- 1.2在simis和web上分别配置tnsname. service name为web和simis,用tnsping来测试是否连通 ********************************************************************************************/