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 20:13:12
ORACLE外部表总结 https://www.cnblogs.com/kerrycode/p/3894260.html 外部表介绍 ORACLE外部表用来存取数据库以外的文本文件(Text File)或ORACLE专属格式文件。因此,建立外部表时不会产生段、区、数据块等存储结构,只有与表相关的定义放在数据字典中。外部表,顾名思义,存储在数据库外面的表。当存取时才能从ORACLE专属格式文件中取得数据,外部表仅供查询,不能对外部表的内容进行修改(INSERT、UPDATE、DELETE操作)。不能对外部表建立索引。因为创建索引就意味着要存在对应的索引记录。而外部表其实在没有存储在数据库中。故在外部是无法建立索引的。如果硬要建立的话,则系统会提示“操作在外部组织表上不受支持”的错误提示。 Notice: 外部表是ORACLE 9i后引入的。 外部表特征 (1) 位于文件系统之中(一定要在数据库服务器中,而不是其它网络路径),按一定格式分割, 例如@#$等,文本文件或者其他类型的文件可以作为外部表。   (2) 对外部表的访问可以通过SQL语句来完成,而不需要先将外部表中的数据装载进数据库中。   (3) 外部数据表都是只读的,因此在外部表不能够执行DML操作,也不能创建索引。   (4) ANALYZE语句不支持采集外部表的统计数据,应该使用DMBS

怎样修改查看Oracle字符集

こ雲淡風輕ζ 提交于 2020-04-07 19:27:29
[Q]怎么样查看数据库字符集      [A]数据库服务器字符集select * from nls_database_parameters,其来源于props$,是表示数据库的字符集。      客户端字符集环境select * from nls_instance_parameters,其来源于v$parameter,      表示客户端的字符集的设置,可能是参数文件,环境变量或者是注册表      会话字符集环境 select * from nls_session_parameters,其来源于v$nls_parameters,表示会话自己的设置,可能是会话的环境变量或者是alter session完成,如果会话没有特殊的设置,将与nls_instance_parameters一致。      客户端的字符集要求与服务器一致,才能正确显示数据库的非Ascii字符。如果多个设置存在的时候,alter session>环境变量>注册表>参数文件      字符集要求一致,但是语言设置却可以不同,语言设置建议用英文。如字符集是zhs16gbk,则nls_lang可以是American_America.zhs16gbk。       [Q]怎么样修改字符集      [A]8i以上版本可以通过alter database来修改字符集,但也只限于子集到超集,不建议修改props$表

oracle字符集查看、修改、版本查看

旧街凉风 提交于 2020-04-07 15:11:30
1.先查服务端的字符集 或者 2.再查客户端的字符集 两个字符集(不是语言)一致的话就不会乱码了 CONVERT(c1,set1,set2) 【功能】将源字符串c1 从一个语言字符集set2转换到另一个目的set1字符集 【参数】c1,字符串,set1,set2为字符型参数 【返回】字符串 convert(utl_raw. cast_to_raw(str_1), 'ZHS16GBK', 'US7ASCII') 参考资料:1. Oracle 服务器 客户端 US7ASCII、 UTF8字符编码问题 详细资料 一、 什么是Oracle字符集 Oracle字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包容关系。ORACLE 支持国家语言的体系结构允许你使用本地化语言来存储,处理,检索数据。它使 数据库 工具,错误消息,排序次序,日期,时间,货币,数字,和日历自动适应本地化语言和平台 影响Oracle数据库字符集最重要的参数是NLS_LANG参数。 它的格式如下: NLS_LANG = language_territory.charset 它有三个组成部分(语言、地域和字符集),每个成分控制了NLS子集的特性。 其中: Language: 指定服务器消息的语言, 影响提示信息是中文还是英文 Territory: 指定服务器的日期和数字格式, Charset: 指定字符集。 如

oracle字符集查看修改

和自甴很熟 提交于 2020-04-07 13:21:06
一、什么是 Oracle 字符集 Oracle字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包容关系。ORACLE 支持国家语言的体系结构允许你使用本地化语言来存储,处理,检索数据。它使数据库工具,错误消息,排序次序,日期,时间,货币,数字,和日历自动适应本地化语言和平台。 影响Oracle数据库字符集最重要的参数是NLS_LANG参数。 它的格式如下: NLS_LANG = language_territory.charset 它有三个组成部分(语言、地域和字符集),每个成分控制了NLS子集的特性。 其中: Language: 指定服务器消息的语言, 影响提示信息是中文还是英文 Territory: 指定服务器的日期和数字格式, Charset: 指定字符集。 如:AMERICAN _ AMERICA. ZHS16GBK 从NLS_LANG的组成我们可以看出,真正影响数据库字符集的其实是第三部分。 所以两个数据库之间的字符集只要第三部分一样就可以相互导入导出数据,前面影响的只是提示信息是中文还是英文。 二.字符集的相关知识: 2.1 字符集 实质就是按照一定的字符编码方案,对一组特定的符号,分别赋予不同数值编码的集合。Oracle数据库最早支持的编码方案是US7ASCII。 Oracle的字符集命名遵循以下命名规则: <Language><bit size>

Oracle创建索引要做到三个适当

☆樱花仙子☆ 提交于 2020-04-07 12:11:55
在 Oracle 数据库中,创建索引虽然比较简单。但是要合理的创建索引则比较困难了。笔者认为,在创建索引时要做到三个适当,即在适当的表上、适当的列上创建适当数量的索引。虽然这可以通过一句话来概括优化的索引的基本准则,但是要做到这一点的话,需要数据库管理员做出很大的努力。具体的来说,要做到这个三个适当有如下几个要求。   一、 根据表的大小来创建索引。   虽然给表创建索引,可以提高查询的效率。但是数据库管理员需要注意的是,索引也需要一定的开销的。为此并不是说给所有的表都创建索引,那么就可以提高数据库的性能。这个认识是错误的。恰恰相反,如果不管三七二十一,给所有的表都创建了索引,那么其反而会给数据库的性能造成负面的影响。因为此时滥用索引的开销可能已经远远大于由此带来的性能方面的收益。所以笔者认为,数据库管理员首先需要做到,为合适的表来建立索引,而不是为所有的表建立索引。   一般来说,不需要为比较小的表创建索引。如在一个 ERP 系统的数据库中, department 表用来存储企业部门的信息。一般企业的部分也就十几个,最多不会超过一百个。这 100 条记录对于人来说,可能算是比较多了。但是对于计算机来说,这给他塞塞牙缝都还不够。所以,对类似的小表没有必要建立索引。因为即使建立了索引,其性能也不会得到很大的改善。相反索引建立的开销,如维护成本等等,要比这个要大。也就是说

深入浅出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是循环使用的

Oracle数据库总结语法一

一世执手 提交于 2020-04-07 09:32:33
1、创建表 create table "表名"( pid number(20), pname varchar2(10) ) 2、添加一列 alter table "表名" add "列名称" number(1); 性别用0,1代替男女 3、修改列类型 alter table "表名" modify "列名称" char(1); char长度指定的,一直为1 4、修改列名称 alter table "表名" rename column "列名称" to "列名"; 5、删除列 alter table "表名" drop coiumn "列名称" 6、添加记录 insert into "表名" ("列名称","列名称") values("值","值"); commit; 事务提交不能忘 7、查询表记录 select * from "表名" 8、修改记录 update "表名" set "字段名"="值" where "字段名"="值"; commit; 9、删除全部记录 delete from "表名"; 10、删除表结构 drop table "表名"; 11、先删除表,在创建表。(相当于删除全部记录) truncate table "表名"; (数据量大的情况下,尤其是由索引,效率高。索引可以提高查询效率,但是会影响增删改效率) 12、序列:默认从1开始,依次递增(主键赋值使用)

oracle 数据泵

你。 提交于 2020-04-07 07:42:10
Oracle 数据库 导入导出工具,可以使用exp/imp,但这是比较早期的工具。本文主要介绍数据泵expdp/impdp工具的使用。 1、建立数据泵目录 使用数据泵需要先建directory create directory dir_back as 'e:\app\back' (删除目录:drop directory dir ) 2、查看建立的目录 Select * from dba_directories 3、赋权 Grant read,write on directory dir_back to sxybyj 4、导库 expdp sxybyj/sxybyj@orcl directory=dir_back dumpfile=sxybyj.dmp 导出数据 1)按用户导 expdp scott/tiger@orcl schemas=scott dumpfile=expdp.dmp DIRECTORY=dir logfile=expdp.log 2)并行进程parallel expdp scott/tiger@orcl directory=dir dumpfile=scott3.dmp parallel=40 job_name=scott3 3)按表名导 expdp scott/tiger@orcl TABLES=emp,dept dumpfile=expdp.dmp

NHibernate映射oracle数据库CLOB、BLOB类型大数据字段

不问归期 提交于 2020-04-07 01:46:23
最初始最简单的方法如下: 首先建一个测试类: public class testClass { //需要映射为CLOB类型的字段 public string WKT{get;set;} } nhibernate配置文件中: <property column="WKT" type="StringClob" name="WKT" length="200000" /> 具体nhibernate的配制方法什么的不在此赘述,请查看本人nhibernate相关博客。 番外:CLOB、BLOB字段最大上限为4GB,即4x1024x1024x1024个字节,除非特别需要,不建议length过大,合适就行。我取的20万字节 写一个简单的方法插入数据测试: var testClass = new testClass(); testClass.WKT = data; // data是一个变量,存储你要插入的字符串 ISession session = SessionFactory.OpenSession(); session.Save(testClass); session.Flush(); 我们会发现此时oracle数据库WKT字段为NCLOB类型,但是测试数据在2000字节以下以及4000字节以上时顺利通过,在2000-4000字节时发生错误【 ORA-01461: 仅可以插入 LONG 列的