搜档网
当前位置:搜档网 › Oracle数据库之间数据同步

Oracle数据库之间数据同步

Oracle数据库之间数据同步
Oracle数据库之间数据同步

Oracle数据库之间数据同步

项目中开发库与测试数据库分离,其中某些系统表数据与基础资料数据经常需要进行同步,为方便完成指定数据表的同步操作,可以采用dblink结合dbjob方法完成,简单方便。

操作环境:此Oracle数据库服务器ip为ip1,有dbcenter与dbbranch两个库,一般需要将dbcenter的表数据同步到dbbranch,dbcenter为源库,dbbranch为目标库,具体步骤如下:

1.在源库创建到目标库的dblink

create public database link dbcenter

connect to username identified by userpassword

using '

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = ip1)(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME = orcl)

)

)

' ;

在创建dblink时,要注意,有时候可能会报用户名和密码错误,但实际上我们所输入的账户信息是正确的,此时就注意将密码的大小写按服务器上所设置的输入,并在账号密码前号加上双引号(服务器版本不同造成的)。

2.成功后验证dblink

select sysdate from dual@dbcenter;

3.建立存储过程获取数据

create or replace procedure job_sync() is

begin

Select * from test@dbcenter;

end job_sync;

4.为方便每次需要同步时自动完成同步工作,采用oraclejobs完成定时工作:

--oracle 定时器

declare

job number;

begin

dbms_job.submit(job, 'job_sync;', sysdate,'sysdate+1/(24*60)'); commit;

end;

begin

dbms_job.run(11);

commit;

end;

6.job相关参数信息

select * from user_jobs;——查看调度任务

select * from dba_jobs_running;——查看正在执行的调度任务select * from dba_jobs;——查看执行完的调度任务

定时器的参数说明:

myjob参数是由Submit()过程返回的binary_ineger。这个值用来唯一标识一个工作;what参数是将被执行的PL/SQL代码块,这里指的是一个存储过程,注意名字后面的分号;next_date参数指识何时将运行这个工作。写Job的时候可以不指定该值;

interval参数何时这个工作将被重执行。

关于interval的设置,参考以下几个例子:

1、每分钟执行

Interval => TRUNC(sysdate,’mi’) +1 / (24*60)

2、每天定时执行

例如:每天的凌晨2点执行

Interval => TRUNC(sysdate) + 1 +2 / (24)

3、每周定时执行

例如:每周一凌晨2点执行

Interval => TRUNC(next_day(sysdate,2))+2/24 --星期一,一周的第二天

4、每月定时执行

例如:每月1日凌晨2点执行

Interval =>TRUNC(LAST_DAY(SYSDATE))+1+2/24

5、每季度定时执行

例如每季度的第一天凌晨2点执行

Interval => TRUNC(ADD_MONTHS(SYSDATE,3),'Q') + 2/24 6、每半年定时执行

例如:每年7月1日和1月1日凌晨2点

Interval => ADD_MONTHS(trunc(sysdate,'yyyy'),6)+2/24

7、每年定时执行

例如:每年1月1日凌晨2点执行

Interval =>ADD_MONTHS(trunc(sysdate,'yyyy'),12)+2/24

例子:

--oracle 定时器

declare

job number;

begin

dbms_job.submit(job, 'job_proc;', sysdate,'sysdate+1/(24*60)');

commit;

end;

begin

dbms_job.run(11);

commit;

end;

--job_queue_processes=0不会执行,=10才会执行oracle10以后自动被设置成了0,所以需要用到下面的操作开启job功能

select * from v$parameter where name='job_queue_processes';

alter system set job_queue_processes = 10;

oracle stream同步

Oracle Stream配置详细步骤 1 引言 Oracle Stream功能是为提高数据库的高可用性而设计的,在Oracle 9i及之前的版本这个功能被称为Advance Replication。Oracle Stream利用高级队列技术,通过解析归档日志,将归档日志解析成DDL及DML语句,从而实现 1 引言 Oracle Stream功能是为提高数据库的高可用性而设计的,在Oracle 9i及之前的版本这个功能被称为Advance Replication。Oracle Stream利用高级队列技术,通过解析归档日志,将归档日志解析成DDL及DML语句,从而实现数据库之间的同步。这种技术可以将整个数据库、数据库中的对象复制到另一数据库中,通过使用Stream的技术,对归档日志的挖掘,可以在对主系统没有任何压力的情况下,实现对数据库对象级甚至整个数据库的同步。 解析归档日志这种技术现在应用的比较广泛,Quest公司的shareplex软件及DSG公司的realsync 都是这样的产品,一些公司利用这样的产品做应用级的容灾。但shareplex或是realsync都是十分昂贵的,因此你可以尝试用Stream这个Oracle提供的不用额外花钱的功能。Oracle Stream对生产库的影响是非常小的,从库可以是与主库不同的操作系统平台,你可以利用Oracle Stream复制几个从库,从库可用于查询、报表、容灾等不同的功能。本文不谈技术细节,只是以手把手的方式一步一步的带你把Stream的环境搭建起来,细节内容可以查联机文档。 2 概述 主数据库: 操作系统:Solaris 9 IP地址:192.168.10.35 数据库:Oracle 10.2.0.2 ORACLE_SID:prod Global_name:prod 从数据库: 操作系统:AIX 5.2 IP地址:192.168.10.43

ORACLE数据备份与数据恢复方案

O R A C L E数据备份与数据恢 复方案 Prepared on 24 November 2020

摘要 结合金华电信IT系统目前正在实施的备份与恢复策略,重点介绍电信业务计算机管理系统(简称97系统)和营销支撑系统的ORALCE数据库备份和恢复方案。 Oracle数据库有三种标准的备份方法,它们分别是导出/导入 (EXP/IMP)、热备份和冷备份。要实现简单导出数据(Export)和导入数据(Import),增量导出/导入的按设定日期自动备份,可考虑,将该部分功能开发成可执行程序,然后结合操作系统整合的任务计划,实现特定时间符合备份规划的备份应用程序的运行,实现数据库的本级备份,结合ftp简单开发,实现多服务器的数据更新同步,实现数据备份的异地自动备份。 关键字:数据库远程异地集中备份 目录

一、前言 目前,数据已成为信息系统的基础核心和重要资源,同时也是各单位的宝贵财富,数据的丢失将导致直接经济损失和用户数据的丢失,严重影响对社会提供正常的服务。另一方面,随着信息技术的迅猛发展和广泛应用,业务数据还将会随业务的开展而快速增加。但由于系统故障,数据库有时可能遭到破坏,这时如何尽快恢复数据就成为当务之急。如做了备份,恢复数据就显得很容易。由此可见,做好数据库的备份至关重要。因此,建立一个满足当前和将来的数据备份需求的备份系统是必不可少的。传统的数据备份方式主要采用主机内置或外置的磁带机对数据进行冷备份,这种方式在数据量不大、操作系统种类单一、服务器数量有限的情况下,不失为一种既经济又简明的备份手段。但随着计算机规模的扩大,数据量几何级的增长以及分布式网络环境的兴起,将越来越多的业务分布在不同的机器、不同的操作平台上,这种单机的人工冷备份方式越来越不适应当今分布式网络环境。 因此迫切需要建立一个集中的、自动在线的企业级备份系统。备份的内容应当包括基于业务的业务数据,又包括IT系统中重要的日志文件、参数文件、配置文件、控制文件等。本文以ORACLE数据库为例,结合金华电信的几个相关业务系统目前正在实施的备份方案,介绍ORACLE数据库的备份与恢复。 二、金华电信ORACLE数据库的备份与恢复方案 由于金华电信IT系统以前只采用逻辑备份方式进行数据库备份,速度较慢并且数据存储管理都很分散,甚至出现备份数据不完整的现象。为了提高备份数据的效率,提供可靠的数据备份,完善备份系统,保证备份数据的完整性,降低数据备份对网络和服务器的影响,对每个IT系统的备份数据进行集中管理,我们对备份工作进行了改进,将逻辑备份与物理备份相结合,在远程建立了一个异地集中、自动在线的备份系统即网络存储管理系统。(这里用到的物理备份指热备份)其具备的主要功能如下:(1)集中式管理 :网络存储备份管理系统对整个网络的数据进行管理。利用集中式管理工具的帮助,系统管理员可对全网的备份策略进行统一管理,备份服务器可以监控所有机器的备份作业,也可以修改备份策略,并可即时浏览所有目录。所有数据可以备份到同备份服

eclipse如何连接oracle数据库、访问数据表并显示结果小结

总结eclipse中连接oracle数据库并访问其中的表: (这里我们用的是oracle10g) 为了防止把主要精力放在编程实现上而忽略小细节,我们可以先启动oracle 监听和oracleservice服务。 1 我们首先导入oracle 数据库驱动包:这里有两种方式:(1)把ojdbc14.jar包复制到当前项目的jar文件夹下,或新建一文件夹把ojdbc14.jar放到其下(在eclipse本项目上刷新一下,否则按下面添加时可能找不到),再project--------→properties---------→java build path--------→libraries-------→add jars找到ojdbc14.jar 点击ok. (2)project--------→properties---------→java build path--------→libraries-------→add externals jars找到ojdbc14.jar包,(本人的ojdbc14.jar是在目录E:\oracle\product\10.2.0\db_1\jdbc\lib 下)点击ok。 2 编写程序:可以归纳为6个小部分(1)装载并注册oracle数据库的jdbc驱动程序(2)建立与数据库的连接(3)创建statement对象(4)调用sql语句并执行,结果返回resultset对象(5)查看resultset对象中的记录(6)数据库操作完毕后,需要依次关闭ResultSet、Statement、Connection 对象。如下: Import java.sql.*; public class OracleTest { public static void main(String[] args) throws Exception{ //装载并注册oracle数据库的jdbc驱动程序 try { Class.forName("oracle.jdbc.driver.OracleDriver");//获取并装载jdbc驱动程序 java.sql.DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); //注册数据库驱动程序} catch(java.sql.SQLException e) { throw new RuntimeException("error"); } //建立与数据库的连接 String url="jdbc:oracle:thin:@localhost:1521:dbname"; //端口号1521可以通过查看oracle安装目录下E:\oracle\product\10.2.0\db_1\NETWORK\ADMIN的listener.ora文件得知String user="system"; String passworddb="****** "; Connection conn=null; try { conn=DriverManager.getConnection(url, user, passworddb); } catch(Exception ex) { ex.printStackTrace(); } //创建statement对象

oracle数据库恢复方案

目录 数据库恢复方案 (1) 文档控制 (1) 一、相关概念 (3) 1,恢复的两个阶段 (3) 2,Oracle实例启动的三个阶段 (3) 3,RMAN信息的保存位置 (3) 二、完全恢复 (3) (一) 控制文件 (3) 1) 丢失部分控制文件: (3) 2) 丢失全部控制文件 (3) (二) 重做日志文件 (4) 1) 非当前使用的重做日志文件: (4)

2) 当前使用的重做日志文件(未归档): (4) (三) 数据文件 (4) 1) 无归档模式下的完全恢复 (4) 2) 归档模式下的完全恢复 (5) 三、不完全恢复 (6) (一) 基于SCN的不完全恢复 (6) 1) 准备工作 (6) 2) 使用RMAN进行恢复 (7) (二) 基于时间点的不完全恢复 (8) 1) 准备工作 (8) 2) 使用RMAN进行恢复 (8) 四、高级篇 (9)

(一) 使用RMAN进行异机同目录 (9) 1) 准备工作 (9) 2) 通过RMAN进行异机恢复 (10) (二)使用RMAN进行异机异目录 (11) 1) 准备工作 (11) 2) 通过RMAN进行异机恢复 (11) (三)使用RMAN进行在线数据块恢复 (14) 一、相关概念 1,恢复的两个阶段 数据库无论采取哪种方式进行恢复都分为Restore和Recover两个步骤。Restore(还原):把控制文件、重做日志文件和数据文件还原到正确位置。Recover(恢复):恢复还原后的数据文件,使数据库达到一致状态。

2,Oracle实例启动的三个阶段 Oracle实例启动经过三个阶段: l NOMOUNT(未装载):读入参数文件,验证参数文件中的目录是否存在。 l MOUNT(装载):读入参数文件指定位置的控制文件。 l OPEN(打开):验证控制文件中指定的重做日志文件和数据文件是否正确、数据文件是否一致,然后读入数据文件中的数据。 所以按照如下顺序使数据库正确打开。 1) SHUTDOWN(关闭)状态下,确保参数文件指定的文件夹存在,启动到NOMMUNT 状态。 2) NOMOUNT状态下,保证控制文件的位置和命名与参数文件中相同,控制文件中指定的重做日志文件和数据文件存在,然后启动到MOUNT状态。 3) MOUNT状态下,执行RMAN还原和恢复操作。

oracle表的导入导出-命令

数据导出: 1 将数据库TEST完全导出,用户名system 密码manager 导出到D:daochu.dmp中 exp system/manager@TEST file=d:daochu.dmp full=y 2 将数据库中system用户与sys用户的表导出 exp system/manager@TEST file=d:daochu.dmp owner=(system,sys) 3 将数据库中的表inner_notify、notify_staff_relat导出 exp aichannel/aichannel@TESTDB2 file= d:datanewsmgnt.dmp tables=(inner_notify,notify_staff_relat) 4 将数据库中的表table1中的字段filed1以"00"打头的数据导出 exp system/manager@TEST file=d:daochu.dmp tables=(table1) query=" where filed1 like '00%'" 上面是常用的导出,对于压缩,既用winzip把dmp文件可以很好的压缩。 也可以在上面命令后面加上 compress=y 来实现。 数据的导入 1 将D:daochu.dmp 中的数据导入 TEST数据库中。 imp system/manager@TEST file=d:daochu.dmp imp aichannel/aichannel@HUST full=y file=file= d:datanewsmgnt.dmp ignore=y 上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。 在后面加上 ignore=y 就可以了。 2 将d:daochu.dmp中的表table1 导入 imp system/manager@TEST file=d:daochu.dmp tables=(table1) 基本上上面的导入导出够用了。不少情况要先是将表彻底删除,然后导入。 注意: 操作者要有足够的权限,权限不够它会提示。 数据库时可以连上的。可以用tnsping TEST 来获得数据库TEST能否连上。 附录一: 给用户增加导入数据权限的操作 第一,启动sql*puls 第二,以system/manager登陆 第三,create user 用户名 IDENTIFIED BY 密码(如果已经创建过用户,这步可以省略)第四,GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW , DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE, DBA,CONNECT,RESOURCE,CREATE SESSION TO 用户名字 第五, 运行-cmd-进入dmp文件所在的目录, imp userid=system/manager full=y file=*.dmp

Oracle数据库同步技术

基于Oracle数据库的数据同步技术大体上可分为两类:Oracle自己提供的数据同步技术和第三方厂商提供的数据同步技术。Oracle自己的同步技术有DataGuard,Streams,Advanced Replication和今年 刚收购的一款叫做GoldenGate的数据同步软件。第三方厂商的数据同步技术有Quest公司的SharePlex 和DSG的RealSync。下面对这些技术逐一进行介绍。 一、DataGuard数据同步技术 DataGuard是Oracle数据库自带的数据同步功能,基本原理是将日志文件从原数据库传输到目标数据库,然后在目标数据库上应用(Apply)这些日志文件,从而使目标数据库与源数据库保持同步。DataGuard 提供了三种日志传输(Redo Transport)方式,分别是ARCH传输、LGWR同步传输和LGWR异步传输。在上述三种日志传输方式的基础上,提供了三种数据保护模式,即最大性能(Maximum Performance Mode)、最大保护(Maximum Protection Mode)和最大可用(Maximum Availability Mode),其中最大保护模式 和最大可用模式要求日志传输必须用LGWR同步传输方式,最大性能模式下可用任何一种日志传输方式。 最大性能模式:这种模式是默认的数据保护模式,在不影响源数据库性能的条件下提供尽可能高的 数据保护等级。在该种模式下,一旦日志数据写到源数据库的联机日志文件,事务即可提交,不必等待日 志写到目标数据库,如果网络带宽充足,该种模式可提供类似于最大可用模式的数据保护等级。 最大保护模式:在这种模式下,日志数据必须同时写到源数据库的联机日志文件和至少一个目标库 的备用日志文件(standby redo log),事务才能提交。这种模式可确保数据零丢失,但代价是源数据库的可用性,一旦日志数据不能写到至少一个目标库的备用日志文件(standby redo log),源数据库将会被关闭。这也是目前市场上唯一的一种可确保数据零丢失的数据同步解决方案。 最大可用模式:这种模式在不牺牲源数据库可用性的条件下提供了尽可能高的数据保护等级。与最 大保护模式一样,日志数据需同时写到源数据库的联机日志文件和至少一个目标库的备用日志文件(standby redo log),事务才能提交,与最大保护模式不同的是,如果日志数据不能写到至少一个目标库的备用日志文件(standby redo log),源数据库不会被关闭,而是运行在最大性能模式下,待故障解决并将延迟的日志成功应用在目标库上以后,源数据库将会自动回到最大可用模式下。 根据在目标库上日志应用(Log Apply)方式的不同,DataGuard可分为Physical Standby(Redo Apply)和Logical Standby(SQL Apply)两种。 Physical Standby数据库,在这种方式下,目标库通过介质恢复的方式保持与源数据库同步,这种方 式支持任何类型的数据对象和数据类型,一些对数据库物理结构的操作如数据文件的添加,删除等也可支持。如果需要,Physical Standby数据库可以只读方式打开,用于报表查询、数据校验等操作,待这些操 作完成后再将数据库置于日志应用模式下。 Logical Standby数据库,在这种方式下,目标库处于打开状态,通过LogMiner挖掘从源数据库传 输过来的日志,构造成SQL语句,然后在目标库上执行这些SQL,使之与源数据库保持同步。由于数据 库处于打开状态,因此可以在SQL Apply更新数据库的同时将原来在源数据库上执行的一些查询、报表等操作放到目标库上来执行,以减轻源数据库的压力,提高其性能。 DataGuard数据同步技术有以下优势: 1)Oracle数据库自身内置的功能,与每个Oracle新版本的新特性(如ASM)都完全兼容,且不 需要另外付费; 2)配置管理较简单,不需要熟悉其他第三方的软件产品; 3)Physical Standby数据库支持任何类型的数据对象和数据类型;

Oracle Export/Import数据库备份与恢复的三种方法

Oracle数据库备份与恢复的三种方法 Oracle数据库有三种标准的备份方法,它们分别是导出/导入(EXP/IMP)、热备份和冷备份。导出备件是一种逻辑备份,冷备份和热备份是物理备份。 一、导出/导入(Export/Import) 利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回到Oracle数据库中去。 1、简单导出数据(Export)和导入数据(Import) Oracle支持三种方式类型的输出: (1)、表方式(T方式),将指定表的数据导出。 (2)、用户方式(U方式),将指定用户的所有对象及数据导出。 (3)、全库方式(Full方式),瘵数据库中的所有对象导出。 数据导入(Import)的过程是数据导出(Export)的逆过程,分别将数据文件导入数据库和将数据库数据导出到数据文件。 2、增量导出/导入 增量导出是一种常用的数据备份方法,它只能对整个数据库来实施,并且必须作为SYSTEM来导出。在进行此种导出时,系统不要求回答任何问题。导出文件名缺省为export.dmp,如果不希望自己的输出文件定名为export.dmp,必须在命令行中指出要用的文件名。 增量导出包括三种类型: (1)、“完全”增量导出(Complete) 即备份三个数据库,比如: exp system/manager inctype=complete file=040731.dmp (2)、“增量型”增量导出 备份上一次备份后改变的数据,比如: exp system/manager inctype=incremental file=040731.dmp

SQL Server数据导入到Oracle中的方法

SQL Server数据导入到Oracle中的方法 如果我们需要将SQL Server数据库中的数据导入到Oracle数据库中,应该如何操 作呢?下文对该方法的步骤进行了详细的介绍,供您借鉴参考之用。 在我们使用SQL Server数据库的过程中,有时需要将SQL Server数据导出,导 入到其他的数据库中,比如导入到Oracle中。 假设要将SQL Server中的Northwind数据库中的Products表导出到Oracle 的Scott用户 首先需要有安装SQL Server企业版 1.打开工具: 开始->程序->Microsoft SQLServer->导入和SQL Server数据导出数据 2.下一步,选择数据源 [数据源]选择“用于SQL Server的Microsoft OLE DB提供程序”,这应该是缺省值。 [服务器]选择要导出数据的服务器,如果是本机,选择(local) [数据库]选择要导出的数据所在的库,这里选择Northwind 3.下一步,选择目的 [目的]选择Microsoft ODBC for Oracle [DSN]选择用户/系统DSN一项,然后在下拉列表框中找一个已经连接到了Scott用户的DSN名称。 如果下拉列表中没有,点下拉列表框右侧的[新建],出现创建新数据源界面。 接下来选择系统数据源,下一步,在驱动程序列表中选择Microsoft ODBC for Oracle 下一步,完成,出现Microsoft ODBC for Oracle安装界面 [数据源名称]随便输入,比如sss [说明]可以不填 [用户名称]填入要SQL Server数据导出到的Oracle用户名称,这里是scott

第六章 数据库恢复技术

第六章数据库恢复技术 第六章数据库恢复技术 6.1 事务的基本概念 6.2 数据库恢复概述 6.3 故障的种类 6.4 恢复的实现技术 6.5 恢复策略 6.6 具有检查点的恢复技术 6.7 数据库镜像 6.8 小结 6.1 事务的基本概念 一、什么是事务 二、如何定义事务 三、事务的特性 一、什么是事务 ?事务(Transaction)是数据库的逻辑工作单位,是用户定义的一组操作序列。 ?事务和程序是两个概念 –在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序–一个应用程序通常包含多个事务 ?事务是恢复和并发控制的基本单位 二、如何定义事务 ?显式定义方式 BEGIN TRANSACTION BEGIN TRANSACTION SQL 语句1 SQL 语句1 SQL 语句2 SQL 语句2 。。。。。。。。。。 COMMIT ROLLBACK

?隐式方式 当用户没有显式地定义事务时, DBMS 按缺省规定自动划分事务 事务结束 COMMIT 事务正常结束 提交事务的所有操作(读+更新) 事务中所有对数据库的更新永久生效 ROLLBACK 事务异常终止 –事务运行的过程中发生了故障,不能继续执行 回滚事务的所有更新操作 –事务滚回到开始时的状态 三、事务的特性(ACID特性) 事务的ACID特性: ?原子性(Atomicity) ?一致性(Consistency) ?隔离性(Isolation) ?持续性(Durability ) 1. 原子性 ?事务是数据库的逻辑工作单位 –事务中包括的诸操作要么都做,要么都不做 2. 一致性 事务执行的结果必须是使数据库从一个 一致性状态变到另一个一致性状态。 一致性与原子性 银行转帐:从帐号A中取出一万元,存入帐号B。 –定义一个事务,该事务包括两个操作

将SQLSERVER中的数据同步到ORACLE中

如何将SQLServer2005中的数据同步到Oracle中 有时由于项目开发的需要,必须将SQLServer2005中的某些表同步到Oracle数据库中,由其他其他系统来读取这些数据。不同数据库类型之间的数据同步我们可以使用链接服务器和SQLAgent来实现。假设我们这边(SQLServer2005)有一个合同管理系统,其中有表contract 和contract_project是需要同步到一个MIS系统中的(Oracle9i)那么,我们可以按照以下几步实现数据库的同步。 1.在Oracle中建立对应的contract 和contract_project表,需要同步哪些字段我们就建那些字段到O racle表中。 这里需要注意的是Oracle的数据类型和SQLServer的数据类型是不一样的,那么他们之间是什么样的关系拉?我们可以在SQLServer下运行: SELECT* FROM msdb.dbo.MSdatatype_mappings SELECT* FROM msdb.dbo.sysdatatypemappings 来查看SQLServer和其他数据库系统的数据类型对应关系。第一个SQL语句是看SQL转Oracle的类型对应,而第二个表则更详细得显示了各个数据库系统的类型对应。根据第一个表和我们的SQLServer中的字段类型我们就可以建立好Oracle表了。 ORACLE bigint NUMBER1931 ORACLE binary BLOB NULL01 ORACLE binary RAW-141 ORACLE bit NUMBER131 ORACLE char CHAR-141 ORACLE char CLOB NULL01 ORACLE char VARCHAR2-141 ORACLE datetime DATE NULL01 ORACLE decimal NUMBER-131 ORACLE double precision FLOAT NULL01 ORACLE float FLOAT NULL01 ORACLE image BLOB NULL01 ORACLE int NUMBER1031 ORACLE money NUMBER1931 ORACLE nchar NCHAR-141 ORACLE nchar NCLOB NULL01 ORACLE ntext NCLOB NULL01 ORACLE numeric NUMBER-131 ORACLE nvarchar NCLOB NULL01 ORACLE nvarchar NVARCHAR2 -141 ORACLE nvarchar(max) NCLOB NULL01 ORACLE real REAL NULL01 ORACLE smalldatetime DATE NULL01 ORACLE smallint NUMBER531 ORACLE smallmoney NUMBER1031

Oracle数据库恢复

Oracle 数据库恢复 一、停止ORACLE数据库 用oracle用户登录,用sqlplus的sysdba用户登录,执行shutdown immediate oracle@JSBC-SIHUA-DB01:~> sqlplus /nolog SQL*Plus: Release 10.2.0.1.0 - Production on Mon Feb 6 14:02:45 2012 Copyright (c) 1982, 2005, Oracle. All rights reserved. SQL> conn /as sysdba Connected. SQL> shutdown immediate SQL>quit 停止监听 oracle@JSBC-SIHUA-DB01:~> lsnrctl stop oracle@JSBC-SIHUA-DB01:~> ps -ef |grep ora root 4655 4524 0 Nov11 ? 00:00:48 hald-addon-storage: polling /dev/sr0 (every 16 sec) root 42514 42162 0 11:40 pts/0 00:00:00 su - oracle oracle 42515 42514 0 11:40 pts/0 00:00:00 -bash root 42853 42815 0 12:02 pts/2 00:00:00 su - oracle oracle 42854 42853 0 12:02 pts/2 00:00:00 -bash root 42924 42889 0 12:03 pts/1 00:00:00 su - oracle oracle 42925 42924 0 12:03 pts/1 00:00:00 -bash oracle 42975 42854 0 12:09 pts/2 00:00:00 ps -ef oracle 42976 42854 0 12:09 pts/2 00:00:00 grep ora 二、数据库备份 #root用户,创建sihua.bak目录 JSBC-SIHUA-DB01:/oradata # mkdir sihua.bak JSBC-SIHUA-DB01:/oradata # chown oracle:dba /oradata/sihua.bak JSBC-SIHUA-DB01:/oradata # ll total 24 drwx------ 2 root root 16384 Sep 16 11:53 lost+found drwxr-x--- 4 oracle dba 4096 Nov 8 14:16 sihua drwxr-xr-x 2 oracle dba 4096 Nov 28 12:15 sihua.bak #oracle用户 JSBC-SIHUA-DB01:/oradata # su - oracle oracle@JSBC-SIHUA-DB01:~> cd /oradata oracle@JSBC-SIHUA-DB01:/oradata> cp -r sihua sihua.bak oracle@JSBC-SIHUA-DB01:/oradata> cd sihua.bak/ oracle@JSBC-SIHUA-DB01:/oradata/sihua.bak> cd sihua/

oracle表的导入导出-命令

oracle表的导入导出-命令.txt12思念是一首诗,让你在普通的日子里读出韵律来;思念是一阵雨,让你在枯燥的日子里湿润起来;思念是一片阳光,让你的阴郁的日子里明朗起来。数据导出: 1 将数据库TEST完全导出,用户名system 密码manager 导出到D:daochu.dmp中 exp system/manager@TEST file=d:daochu.dmp full=y 2 将数据库中system用户与sys用户的表导出 exp system/manager@TEST file=d:daochu.dmp owner=(system,sys) 3 将数据库中的表inner_notify、notify_staff_relat导出 exp aichannel/aichannel@TESTDB2 file= d:datanewsmgnt.dmp tables=(inner_notify,notify_staff_relat) 4 将数据库中的表table1中的字段filed1以"00"打头的数据导出 exp system/manager@TEST file=d:daochu.dmp tables=(table1) query=" where filed1 like '00%'" 上面是常用的导出,对于压缩,既用winzip把dmp文件可以很好的压缩。 也可以在上面命令后面加上compress=y 来实现。 数据的导入 1 将D:daochu.dmp 中的数据导入TEST数据库中。 imp system/manager@TEST file=d:daochu.dmp

oracle跨实例数据同步

Oracle 快照及dblink使用(两台服务器数据同步)跨ORACLE实例数据同步(物化视图应用) 名词说明:源——被同步的数据库 -- 目的——要同步到的数据库 /*一、创建dblink:*/ --1、在目的数据库上,创建dblin drop public database link dblink_anson; Create public database link dblink_anson Connect to lg identified by lg using 'SDLGDB'; --源数据库的用户名、密码、服务器名k /*二、创建快照:*/ --1、在源和目的数据库上同时执行一下语句,创建要被同步的表 drop table tb_anson; create table tb_anson(c1 varchar2(12)); alter table tb_anson add constraint pk_anson primary key (C1);

--2、在目的数据库上,测试dblink select * from tb_anson@dblink_anson; select * from tb_anson; --3、在目的数据库上,创建要同步表的快照日志 Create snapshot log on tb_anson; --4、创建快照,快照(被同步(源)数据库服务必须启动) Create snapshot sn_anson as select * from tb_anson@dblink_anson; --5、设置快照刷新时间 Alter snapshot anson refresh fast Start with sysdate+1/24*60 next sysdate+10/24*60; --oracle自动在1分钟后进行第一次快速刷新,以后每隔10分钟快速刷新一次 Alter snapshot anson refresh complete Start with sysdate+30/24*60*60 next sysdate+1;

oracle数据迁移方法

Oracle数据迁移方案 数据迁移通俗的说就是将数据从一个地方转移到另一个地方。主要使用场景有:根据正式系统搭建测试环境、从内网复制到外网、数据库服务器硬件升级等。根据需要迁移的数据量大小、系统架构,可采取不同的迁移方法。 注:以下所说方法,不考虑数据的增量更新、不考虑数据的实时同步、不考虑数据的逻辑转换。如果有这些需求,建议使用第三方ETL工具或使用Oracle的其他数据同步技术。 一、常用示例 1.1 如何在客户现场搭建测试环境? 常规方案,使用imp/exp工具,先在源库执行直接路径导出操作,然后在目标库执行导入操作。IMP/EXP的执行速度主要受限于磁盘及网络。 数据量:1.5G 导出用时:5分钟 导入用时:23分钟 导出文件大小:641M 导出导入环境:单CPU,700M内存。为力求最大速度,使用直接路径导出、设置最大I/O 缓冲、导入导出文件都放在服务器上执行。 1.2 还有没有更快的办法? 有,仍然使用impdp/expdp。只是不再将数据导出后导入,而是直接将数据从源库导入到目的库。 CMD> Impdp testi@目标库 directory=DMPDIR schemas=TESTI network_link=源库dblink remap_schema=TESTI:TESTA 上面语句的操作是将源库的TESTI用户的数据,导入到目标库的TESTA用户下。 这个操作是局域网内迁移数据最方便的工具,不过也可能是速度最慢的工具。 1.3 有没有还快一点的方法? 有,换用impdp/expdp。同样在源库执行导出,在目标库执行导入。操作速度能得到极大提升。IMPDP/EXPDP速度主要受限于磁盘,与网络无关。

Oracle数据仓库-电信行业应用案例

转眼,从事电信行业BI/DW已经有三年时间了,一直想写点东西,给大家共同分享,感谢ERP 100给我了一个展示的平台! 连载时间:一周一篇 连载提纲: 第一篇数据仓库建设目标、系统规模及项目面临的技术挑战 第二篇选择数据仓库平台的考虑 第三篇选择Oracle产品的原因 第四篇系统现状分析、DW数据仓库建设原则及整体规划的实现 第五篇整体规划的实现、新增应用优先级的确定及螺旋式建设方法 第六篇数据仓库的效益、成本和风险控制 第七篇数据模型设计方法 第八篇构建闭环的信息流、数据模型-分层设计、DW中的数据功能划分 第九篇数据抽取策略、数据抽取过程管理、对脏数据的管理、数据去重及元数据管理及 第十篇典型的应用流程、主题分析及应用推广方法 (第一篇)数据仓库建设目标、系统规模及项目面临的技术挑战 1 数据仓库项目建设目标: 建立统一的数据信息平台,实现客户资料和生产数据的集中存储。利用先进的数据仓库技术和决策分析技术为市场营销和客户服务工作提供有效的支撑: 2 目前系统规模: 包含12个月的话单;数据库容量为65TB,其中原始数据为25TB;最大的表包含1800亿话单

3 项目面临的技术挑战: 数据存储-系统要求存储12-18个月的详单数据; 数据装载-按小时装载详单数据,要求每天在8小时内装载5亿条详单;高峰时一个小时装载6500万条详单;在8小时内同时完成1亿7000万个汇总操作 数据访问-支持680个并发用户,支持8000个系统用户;5%的预定义查询操作在5秒钟内完成;每秒钟23个查询操作 Sina微薄互动地址:https://www.sodocs.net/doc/2f9455594.html,/2186879022/zDx5x29Cw 感谢大家的参与和鼓励,pathwide的建议很好,下面列举出该连载的计划提纲,如下: 连载周期:一周一篇 连载提纲: 第一篇数据仓库建设目标、系统规模及项目面临的技术挑战 第二篇选择数据仓库平台的考虑 第三篇选择Oracle产品的原因 第四篇系统现状分析、DW数据仓库建设原则及整体规划的实现 第五篇整体规划的实现、新增应用优先级的确定及螺旋式建设方法 第六篇数据仓库的效益、成本和风险控制 第七篇数据模型设计方法 第八篇构建闭环的信息流、数据模型-分层设计、DW中的数据功能划分 第九篇数据抽取策略、数据抽取过程管理、对脏数据的管理、数据去重及元数据管理及 第十篇典型的应用流程、主题分析及应用推广方法 希望大家积极参与,共同分享BI/DW的项目经验,同时,有不到位的地方,还请大家多多指正,谢谢! 选择数据仓库平台时的考虑 4 选择数据仓库平台时的考虑 4.1 强大的ETL支持能力-支持按小时的数据装载 4.2 高效的数据访问-硬件的支持:多CPU 大内存并发处理 分区技术 索引技术 数据库内置分析能力 4.3 高可用性7 * 24小时不间断运行 4.4 数据访问每秒钟23到100个并发查询操作; 95%的查询在1秒内完成 4.5 数据表分区-混合分区 按地区建立列表分区; 按时间建立范围分区; 4.6 可传输的表空间 操作系统文件的直接复制;不需要数据的导入、导出

实验8 Oracle数据库备份与恢复

实验8 Oracle数据库备份与恢复 1 实验目的 (1)掌握Oracle数据库各种物理备份方法。 (2)掌握Oracle数据库各种物理恢复方法。 (3)掌握利用RMAN工具进行数据库的备份与恢复。 (4)掌握数据的导入与导出操作。 2 实验要求 (1)对BOOKSALES数据库进行一次冷备份。 (2)对BOOKSALES数据库进行一次热备份。 (3)利用RMAN工具对BOOKSALES数据库的数据文件、表空间、控制文件、初始化参数文件、 归档日志文件进行备份。 (4)利用热备份恢复数据库。 (5)利用RMAN备份恢复数据库。 (6)利用备份进行数据库的不完全恢复。 3 实验步骤 (1)关闭BOOKSALES数据库,进行一次完全冷备份。 select file_name from dba_data_files; select member from v$logfile; select value from v$parameter where name='control_files';

(2)启动数据库后,在数据库中创建一个名为cold表,并插入数据,以改变数据库的状态。 CREATE TABLE COLD( ID NUMBER PRIMARY KEY, NAME VARCHAR2(25) );

(3)利用数据库冷备份恢复BOOKSALES数据库到备份时刻的状态并查看恢复后是否存在cold表。 (4)将BOOKSALES数据库设置为归档模式。 shutdown immediate 正常关闭数据 startup mount;将数据库启动到mount状态 3)、关闭flash闪回数据库模式,如果不关闭的话,在后面关闭归档日志的时候就会出现讨厌的ora-38774错误。 alter database flashback off alter database archivelog;发出设置归档模式的命令 alter database open;打开数据库 再次正常关闭数据库,并备份所有的数据文件和控制文件 archive log list;在将数据库设置为归档模式后,可以执行此命令进行确认 Database log mode 为Archive Mode说明当前的数据库为归档模式 Automatic archival为Enable说明启动了自动归档。

Oracle查看表结构的几种方法

Oracle查看表结构的几种方法 Oracle查看表结构的几种方法 1,DESCRIBE 命令 使用方法如下: SQL> describe nchar_tst(nchar_tst为表名) 显示的结果如下: 名称是否为空? 类型 ----------------------------------------- -------- ---------------------------- NAME NCHAR(6) ADDR NVARCHAR2(16) SAL NUMBER(9,2) 2,DBMS_METADATA.GET_DDL包 使用方法如下: [sql] SQL> SELECT DBMS_METADATA.GET_DDL('TABLE','NCHAR_TST') FROM DUAL; 如果显示的结果并未完整,如下: CREATE TABLE "SCOTT"."NCHAR_TST" ( "NAME" NCHAR(6), "ADDR" NVARCHAR2(16 那么修改如下: [sql] SQL> SET LONG 9999 SQL> SELECT DBMS_METADATA.GET_DDL('TABLE','NCHAR_TST') FROM DUAL; 则显示如下的结果: DBMS_METADATA.GET_DDL('TABLE','NCHAR_TST')

------------------------------------------------------------------------ ------ CREATE TABLE "SCOTT"."NCHAR_TST" ( "NAME" NCHAR(6), "ADDR" NVARCHAR2(16), "SAL" NUMBER(9,2) ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 LOGGING STORAGE(INITIAL 12288 NEXT 12288 MINEXTENTS 1 MAXEXTENTS 249 PCTINCREASE 50 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "SYSTEM" [Oracle] dbms_metadata.get_ddl 的使用方法总结 以下是对Oracle中dbms_metadata.get_ddl的用法进行了详细的分析介绍,需要的朋友参考下 dbms_metadata.get_ddl()用于获取对象的DDL,其具体用法如下。 注意:在sqlplus里,为了更好的展示DDL,需要设置如下参数: 复制代码代码如下: set line 200 set pagesize 0 set long 99999 set feedback off set echo off 1)获得表、索引、视图、存储过程、函数的DDL 复制代码代码如下:

相关主题