oracle系统

Oracle数据库服务器备份/恢复

笑着哭i 提交于 2020-04-08 14:31:03
一、什么是Oracle数据库系统 Oracle数据库系统是美国 Oracle 公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,目前最流行的客户 服务器 (CLIENT/ 或 B/S 体系结构的数据库之一 ,Oracle 数据库本身提供了对数据库物理文件进行冷备份和在线备份两种方式。在线备份类型包括:完全备份、差异 增量备份、累积增量备份。其中差异增量备份,备份的是自上一次同级别的差异备份或者是上一次更高级别的备份完成之后的数据库发生改变的数据块;而累积增量备份则是备份的自上一次上一级增量备份完成以来数据库发生改变的数据块。 二、Oracle数据库定时/实时备份原理: Oracle复制物理方案是通过配置实时复制源端和目标端的生产机,将源端的数据库配置成主库角色(primary role)目标端的数据库配置成备库角色(stand by role),主库可以正常的进行各种数据库操作产生日志, 备库未到open 状态不能数据变更。 通过从主库向备库传送日志,备库应用接收到的日志来保证数据同步, 还可以实现源端和目标端的主备库角色手动切换和故障切换功能 。 Oracle完全备份方案是数据源的一个完整副本,包含从备份开始处所有的数据块,包含备份数据库实例的归档日志。 Oracle增量备份方案包含从最近一次备份以来被修改或添加的数据。 三、利用云灾备技术进行Oracle数据库灾难恢复

oracle获取系统日期--当前时间+前一天+当前月+前一个月

大憨熊 提交于 2020-04-07 19:52:30
目录 获取系统日期: SYSDATE 当前日: 前一天: 前一天转换为日期格式: 前一个月日期: 前一个月: 后一个月转换为字符串: 补充:格式化日期 获取系统日期: SYSDATE 当前日: select TRUNC(SYSDATE) from dual; 前一天: select TRUNC(SYSDATE-1) from dual; 前一天转换为日期格式: select to_char(TRUNC(SYSDATE-1),'fmdd') from dual; 前一个月日期: select add_months(trunc(sysdate),-1) from dual; 前一个月: select TRUNC(add_months(trunc(sysdate),-1),'MM') from dual; 或者 select to_char(add_months(trunc(sysdate),-1),'yyyy-mm') from dual; 后一个月转换为字符串: select TRUNC(add_months(trunc(sysdate),1),'MM') from dual; 或者 select to_char(add_months(trunc(sysdate),1),'yyyy-mm') from dual; 补充:格式化日期 TO_CHAR(SYSDATE,'YY/MM/DD

深入浅出Oracle:Redo的作用

被刻印的时光 ゝ 提交于 2020-04-07 10:42:59
深入浅出Oracle:Redo的作用 Oracle 通过Redo来保证数据库的事务可以被重演,从而使得在故障之后,数据可以被恢复。Redo对于Oracle数据库来说至关重要。 在数据库中,Redo的功能主要通过3个组件来实现:Redo Log Buffer、LGWR后台进程和Redo Log File(在归档模式下,Redo Log File最终会写出为归档日志文件)。 在Oracle的SGA中,存在一块共享内存,称为Redo Log Buffer,如图6-1所示。 图6-1 Oracle Instance Redo Log Buffer位于SGA之中,是一块循环使用的内存区域,其中保存数据库变更的相关信息。这些信息以重做条目(Redo Entries)形式 存储 (Redo Entries也经常被称为Redo Records)。Redo Entries包含重构、重做数据库变更的重要信息,这些变更包括INSERT、UPDATE、DELETE、CREATE、ALTER或者DROP等。在必要的时候Redo Entries被用于数据库恢复。 Redo Entries的内容被Oracle数据库进程从用户的内存空间复制到SGA中的Redo Log Buffer之中。Redo Entries在内存中占用连续的顺序空间,由于Redo Log Buffer是循环使用的

PLSQL远程连接到Oracle服务器

拈花ヽ惹草 提交于 2020-04-06 13:13:19
这里只介绍一种远程连接服务器方法,即本机安装了Oracle客户端和PLSql工具,服务器安装在虚拟机或者另一台电脑上 1.打开Oracle客户端的Net Manager,选择Oracle Net配置——本地——服务命名,然后创建一个,例如:bjdm_wsdj。在创建的过程中,网络服务名自己起一个即可(这个名字就是之后连接远程服务器的数据库名),通信协议为TCP/IP,主机名是要远程连接的服务器的IP地址,端口号是要远程连接的服务器的端口,一般默认为1521,服务名是要远程连接的服务器的服务名,一般在创建数据库时默认为ORCL,完成后并保存刚才的配置。这一步完成后tnsnames.ora文件中会自动映射出刚才的配置,所以不需要手动修改这个文件中的数据。 2.如果是64位系统还需要另外配置一下PLSql的一项配置,下载并安装PLSql配置应用(instantclient_11_2) 打开PLSql,登录界面点取消,进入后选择菜单栏的Tools——preferences——connection,设置Oracle Home和OCI library 然后将tnsnames.ora文件中新增的配置选中复制到新配置中的tnsnames.ora文件中。 3.重新打开PLSql就会在database中有服务器中的数据库啦,输入连接服务器的用户名和密码就行了。 来源: https://www

Oracle在Linux下使用异步IO配置

北城余情 提交于 2020-04-06 08:10:09
最近在测试Oracle的时候,很想测试下使用异步IO的性能。但是异步IO是需要专门配置的,否则的话,容易遇到很著名的“ORA-01578: ORACLE data block corrupted (file # 202, block # 257)”的问题。 那么什么是异步IO呢,异步IO有什么好处? 一般说来,异步I/O是和同步I/O相比较来说的,如果是同步I/O,当一个I/O操作执行时,应用程序必须等待,直到此I/O执行完. 相反,异步I/O操作在后台运行,I/O操作和应用程序可以同时运行,提高了系统性能; 使用异步I/O会提高I/O流量,如果应用是对裸设备进行操作,这种优势更加明显, 因此象 数据库 ,文件 服务器 等应用往往会利用异步I/O,使得多个I/O操作同时执行. Oracle在默认情况是不使用异步IO的。可查看参数filesystemio_options(默认值为none),有四种选项 ■ ASYNCH: enable asynchronous I/O on file system files, which has no timing requirement for transmission. ■ DIRECTIO: enable direct I/O on file system files, which bypasses the buffer cache. ■

【赵强老师】Oracle数据库的存储结构

独自空忆成欢 提交于 2020-04-04 13:21:38
Oracle的存储结构分为:物理存储结构和逻辑存储结构。 一、物理存储结构:指硬盘上存在的文件 数据文件(data file) 一个数据库可以由多个数据文件组成的,数据文件是真正存放数据库数据的。一个数据文件就是一个操作系统文件。数据库的对象(表和索引)物理上是被存放在数据文件中的。当我们要查询一个表的数据的时候,如果该表的数据没有在内存中,那么oracle就要读取该表所在的数据文件,然后把数据存放到内存中。通过下面的语句可以查看当前存在的数据文件和对应的表空间: select file_name,tablespace_name from dba_data_files; 联机日志文件(online redo log file) 一个数据库可以有多个联机日志文件,联机日志文件包含了重做记录(undo records).联机日志文件记录了数据库的改变,例如当一次意外导致对数据的改变没有及时的写到数据文件中,那么oracle就会根据联机日志文件中 的信息获得这些改变,然后把这些改变写到数据文件中.这也是联机日志文件存在的意义.联机日志文件中重做记录的唯一功能就是用来做实例的恢复.比如,一次系统的意外掉电,导致内存中的数据没有被写到数据文件中.那么oralce就会根据联机日志文件中的重做记录功能包数据库恢复到失败前的状态。可以通过下面的语句查看当前存在的日志文件和对应的日志组信息:

First Impression on BBED: installation

女生的网名这么多〃 提交于 2020-04-04 06:39:57
BBED(Block Browser and EDitor) 是Oracle提供的一个功能非常强大的工具,用来直接对oracle block进行操作。因此这个工具使用起来很危险,而且Oracle不对用这个工具带来的任何后果负责任,这个工具仅供内部使用。 虽然如此,这个工具为我们研究block的存储结构带来了极大的便利,因此了解下也是很有好处的 :-) 本文主要介绍如果安装BBED, 因为在linux下面,bbed默认没有“安装”,不能直接使用,需要先进行一些操作... [oracle@ora10g ~]$ cd $ORACLE_HOME/rdbms/lib[oracle@ora10g lib]$ lsconfig.c ins_rdbms.mk ksnnt2.o rfsin.o sskfoded.oconfig.o jox.o ktd.o rfsxc.o sskrmed.ocursize.o joxoff.o kxmnsd.o s0exudrv.o sskrned.odbfsize.o kciwcx.o kxmwsd.o s0impdrv.o sskrsed.odefopt.o kcsm.o kzlnlbac.o s0kudbv.o ssoraed.odmndm.o kfod.o libdbtools10.a s0kuzr.o sstrced.odmndmse.o kgupc.o

oracle学习笔记1(环境搭建)

ⅰ亾dé卋堺 提交于 2020-04-04 01:24:35
学习的开始先剧透一下,本人有点笨,本来想用oracle vbox,装个red hat+oracle,但是虚拟机一直报错,0x00000000内存不能written。所以便想到其他的办法,刚好接触了golang,然后就知道了docker这个伟大的项目,所以本环境使用docker来搭建。省去了一大部分时间可以直接开始Oracle的学习。 特此留下笔记,以供参考。。。。   工具:一共需要三个工具        docker-install.exe        DockerToolbox-1.12.0.exe       SecureCRT.rar 然后就很快速的搭建这个环境了。     1,安装docker-install.exe     2,安装DockerToolbox-1.12.0.exe (桌面会有三个工具:Boot2Docker Start,Docker Quickstart Terminal,Kitematic (Alpha) )     3,SecureCRT.rar(需要注册一下) 修改一下hosts文件新增一行    127.0.0.1 localhost  以上步骤完成之后就到了操作阶段了:   运行:Boot2Docker Start,这个运行会稍微慢一点,(图略)等待出现started.然后命令行结束(这里会出现IP地址,也就是我们需要连接到docker的IP

oracle 常用调优方法

你。 提交于 2020-04-02 05:57:25
Oracle 数据库应用系统的调优主要包括十个方面: (1)、优化 数据库 内存; (2)、在Oracle共享池中固定应用程序代码; (3)、优化数据存储; (4)、优化数据排序的技术; (5)、优化 SQL 语句; (6)、优化回退段; (7)、优化索引; (8)、优化磁盘I/O; (9)、定期生成数据库对象的状态统计信息; (10)、优化操作系统环境。 其实质就是降低CPU负载、改善I/O性能。 1、化磁盘I/O 数据库的作用就是实现对数据的 管理 和查询,所以必然存在对数据的大量读写操作,其I/O问题也往往是导致Oracle数据库性能问题的重要原因。 1.1、Oracle中I/O的产生 1.2、优化OS存储 一、在UNIT环境下,采用裸设备(Raw Device)作为Oracle数据文件的存储设备比采文件系统(File System)存储Oracle数据文件具有较高的读写效率。 二、采用异步IO(Asynchronous IO)方式。在异步IO模式下,进程发出IO请求后无需等待IO完成,可以去处理其它事情;IO请求被放入一个队列中,一旦IO完成,系统会发出信号通知进程。异步IO可以使需要大量写的Oracle进程(如DBWn进程)将IO请求队列化,以充分利用硬件的IO带宽,从而使它们能最大程度实现并行处理。确认操作系统已经设置支持AIO后,还需要设置Oracle初始化参数

Java 8 与 .Net的平台发展

耗尽温柔 提交于 2020-04-01 18:45:02
从早期版本中,我们已经可以领略到一些令人兴奋的特性。但是开发真Andrew C.Oliver表示,尽管如此,Java语言在某些特性上还是落后于.Net。比如,Java 8 中最令人期待的Lambda表达式,在2007年发布的.Net 3.5中已经存在了。他认为,.Net已有的和即将到来的特性要比Java 8 优秀得多,如果Java 9在不做一些大的改进,那么Java落后于.Net就不止一点点了。 关于更新速率   微软有能力做出更快的改进。我记得在很早期的时候,微软能做到每周都更新数据库API:从ODBC、RDO、ADO到OLEDB等。自从出现了.Net之后,微软便达到了一种前所未有的更新速度。   但是Java为什么落后这么远?在早期的时候,Java的发展也是非常快速的,从Java 1.0.2 到 Java 1.1,仅仅一年时间,我们就看到了Java彻底地改变。从Java 1.1到Java 1.2只用了一年半时间,而Java 1.2.2只用了7个月的时间(这是一个重要的版本,只是使用了一个小版本号)。而在10个月之后,具有关键意义的Java 1.3问世,这也正是Java发行的第一个带有垃圾回收的版本。   Java 1.4为我们带来了NIO和正则表达式,但在之后不到两年的时间里就被取消了。Java 1.4.2版本带来了用于多核环境的垃圾回收器。Java 1