【Oracle】杂记
1.对Oracle数据库进行描述时我们更愿意将它拆成两部分,一部分是内存加后台进程,这部分称为Oracle的实例部分,另一部分是存放在磁盘中的文件,称作数据库。
2.凡是使用DBLink进行的业务操作,我们都称为分布式事务,这种事务是由Oracle来协调处理的,对用户来说是透明的。
3.分布式数据库之间要保证数据库间字符集一致,Oracle的建议是:
~客户端的字符集要等于数据库字符集或者子集
~多个数据库中最好设置成相同的,如果有特殊情况,那么数据库之间要保证字符集是被包含的关系。
4.DataGuard容灾数据库
5.ASM自动存储管理
6.expdp:导出表空间的数据文件时要注意表空间中的对象并非自包含,自包含的意思是不会被表空间以外的对象引用,比如表空间中的分区是表空间外的表的一个分区,或表空间中的对象被表空间外的对象引用等。
7.导出表空间的步骤:
通过表空间的方式进行备份,表空间导出的前提是要将表空间的状态设置为Read-Only状态,如果表空间上存储的是非分区表,通常很难将整个表设置为只读的,所以是不可行的:
<1>将表分区和分区索引(如果有)创建到单独的表空间上
<2>将需要备份的表分区以及分区索引所在的表空间设置为只读
<3>将需要导出的分区和分区索引与一个临时表以及索引进行分区交换
<4>对需要备份的临时表以及索引以导出表空间的方式进行备份
<5>复制表空间的文件,并与导出的文件一起保存
create directory tts as 'E:\';
expdp test/test directory=tts dumpfile = tts_p1.dmp transport_datafiles = (p1, p1_idx) logfile=tts_p1.log;
导入表空间是导出表空间的逆过程
8.对加载数据进行备份:SQL*Loader
9.对于内存相关参数的建议:PGA SGA Share Pool
10. I/O相关的参数DB_FILE_MULTIBLOCK_READ_COUNT
11.OLAP可以将DB_FILE_MULTIBLOCK_READ_COUNT设置大些反之OLTP数据库中用户每次读取的值并不多,所以可以考虑设置得小一些,要注意只有在以下两种情况多数据块的读取才会发生:
<1>FTS (FULL TABLE SCAN)
<2>INDEX_FFS (INDEX FAST FULL SCAN)
12.DB_FILES用来约束数据库可以打开的文件数,默认200,如果修改这个参数必须重启数据库才能生效,所以要预先考虑好需要设置的值大小。
13.OPTIMIZER_DYNAMIC_SAMPLING
oracle的动态采样级别有9个
在OLAP中建议采用Level 3或4,而OLTP中建议不适用动态采样技术。
14.出现乱码的两种情况:
<1>输入操作的OS字符编码和查询的OS字符集编码不一致
<2>输入的客户端字符集和查询客户端的字符集不同。
下一篇: 批量修改git commit的作者信息