- 博客(17)
- 资源 (1)
- 收藏
- 关注
原创 [Oracle] 浅谈Sequence(序列)
Oracle的Sequence是一种数据库对象,它可以生成有序数字,主要用于主键的自动生成。如果没有Sequence,主键的自动生成必须得在代码逻辑里实现,大致过程是:获取当前主键值,新主键值=当前主键值+增量。如果多个用户同时请求新主键,则会产生并发等待,影响效率,Sequence就是用来解决这个问题。创建SequenceCREATE SEQUENCE emp_sequenc
2013-07-31 22:48:14 3741 1
原创 [Oracle] Data Pump 详细使用教程(5)- 命令交互模式
当我们起了一个datapump job之后,可以通过v$session_longops查看当前进度。USERNAME - job owner OPNAME - job name TARGET_DESC - job operation SOFAR - megabytes transferred thus far during the job TOTALWORK - estimat
2013-07-31 16:11:37 3270
原创 [Oracle] Data Pump 详细使用教程(4)- network_link
expdp的network_link我们知道,expdp默认是导出本地数据库,network_link的作用是导出远程数据库到本地服务器上,其步骤如下:术语说明:源数据库:远程数据库目标数据库:本地数据库(即expdp客户端所在的服务器)1. 在目标数据库端添加源数据库的连接字符串至tnsnames.ora:source_db = (DESCRI
2013-07-31 13:09:08 3336
原创 [Oracle] Linux下开机自动启动Oracle的设置
上周五,因为办公室突然停电,服务器重启后,数据库并没有跟着重启,我才发现原来所有的数据库都没有设置开机自动重启,为了防止以后三更半夜服务器重启时,不会有电话把我从睡梦中吵醒,让我手动启动数据库,我决定花点时间研究下Oracle随Linux自动重启的设置,具体方法如下:1. 修改oratab (root用户执行)/etc/oratab的配置格式如下:$ORACLE_SID:$ORACLE
2013-07-29 10:34:23 3271
原创 [Oracle] Linux下手动创建数据库过程
今天发现一个Oracle测试库的字符集设置不正确,原本的字符集是UTF-8,正确的字符集应该是ZHS16GBK,因为UTF-8是ZHS16GBK的超集,无法修改,只能重建数据库,幸好该测试库上还没有数据。虽然用DBCA也可以创建数据库,但我个人更喜欢手工创建数据库,其主要步骤如下(数据库版本11.2):1. 设置ORACLE_SID默认的ORACLE_SID是orcl,我个人强烈建议起
2013-07-26 09:02:54 5109
原创 [Linux] rlwrap - 解决Linux下sqlplus退格、上翻键乱码问题
在Linux下使用sqlplus你会发现:退格键无法正常使用(乱码),上翻键也无法正常显示历史功能,非常讨厌!为了让退格键和上翻键在sqlplus里正常发挥它的作用,我们必须安装一个软件 - rlwrap1. 首先,从http://utopia.knoware.nl/~hlub/uck/rlwrap/下载安装包,上传到linux服务器上2. 以root用户解压缩安装tar -zxv
2013-07-25 12:41:47 3414
原创 [Oracle] Data Pump 详细使用教程(3)- impdp
导入模式和导出模式一样,以下5种模式也是互斥的。Full模式设置Full=yes即可,如果没有DATAPUMP_IMP_FULL_DATABASE角色,只能导入到自己schema下的数据 Schema模式设置Schema参数,语法如下SCHEMAS=schema_name [,...]下面这个例子导入hr数据到hr schem
2013-07-24 13:18:01 3992 1
原创 [Oracle] Data Pump 详细使用教程(2)- expdp
导出模式有以下5种导出模式,它们之间是互斥的,不可以同时使用,注意:有些schemas是不能被导出的,如SYS, ORDSYS, and MDSYS等。Full模式设置Full=y(默认为n),导出全库,例子:> expdp user_name FULL=y DUMPFILE=expdat.dmp DIRECTORY=data_pump_dir LOGF
2013-07-24 11:29:16 4338
原创 [Oracle] Data Pump 详细使用教程(1)- 总览
从10g开始,Oracle提供更高效的Data Pump(即expdp/impdp)来进行数据的导入和导出,老的exp/imp还可以用,但已经不建议使用。注意:expdp/impdp和exp/imp之间互不兼容,也就是说exp导出的文件只能用imp导入,expdp导出的文件只能用impdp导入。Data Pump的组成部分Data Pump有以下三个部分组成:客
2013-07-23 23:12:35 4689
原创 [Oracle] expdp ORA-39006, ORA-39065 的解决办法
新公司上班第二天,接到一个任务:把生产库上的数据迁移到开发库上,当我兴致冲冲的用expdp导出数据时,出现如下的internal error,难怪之前的DBA放着expdp/impdp这个利器不用,一直要老的exp/imp。ORA-39006: internal errorORA-39065: unexpected master process exception in DISPATCHO
2013-07-23 16:29:03 10359 2
原创 [Python] 利用commands模块执行Linux shell命令
用Python写运维脚本时,经常需要执行linux shell的命令,Python中的commands模块专门用于调用Linux shell命令,并返回状态和结果,下面是commands模块的3个主要函数:1. commands.getoutput('shell command')执行shell命令,返回结果(string类型)>>> commands.getoutput('pwd')
2013-07-22 22:18:01 50080 2
原创 [Oracle] 把表和索引放在不同的表空间里
Oracle中并没有区分表空间里放的是表还是索引,所有当数据量比较小时,完全可以把表和索引放在同一个表空间里,但随着数据量的增大,最好还是把表和索引分开存储在不同的表空间里,因为:1)提高性能:尽量把表和索引的表空间存储在不同在磁盘上,把两类不同IO性质的数据分开放,这样可以提高磁盘的IO总体性能;2)便于管理:试想一下,如果索引的数据文件损坏,只要创建索引即可,不会引起数据丢失的问题。
2013-07-13 02:58:31 9397 2
原创 [Oracle] dbms_metadata.get_ddl的用法总结
dbms_metadata.get_ddl()用于获取对象的DDL,其具体用法如下。注意:在sqlplus里,为了更好的展示DDL,需要设置如下参数:set line 200set pagesize 0set long 99999set feedback offset echo off1)获得表、索引、视图、存储过程、函数的DDLselect dbms_metadata.g
2013-07-12 03:21:25 4261
原创 [Oracle] Data Guard CPU/PSU补丁安装教程
在Primary停止日志传输服务;关闭Standby数据库,在Standby的软件上打补丁(注意:不需要为Standby数据库打补丁),启动standby为mount状态,不启用managed recovery;关闭Primary,在Primary的软件和数据库本身都打上补丁;启动Primary数据库,重新开启日志传输服务;在Standby启动Redo Apply,这样Primary上补丁脚本就会自动同步至Standby;检查Primary和Standby是否都已安装补丁。
2013-07-10 06:25:36 3604
原创 [Tools] SecureCRT文件传输模式介绍
如下图所示,SecureCRT有5种文件传输模式。1)ASCII:最快的传输模式,但只能传文本2)Binary:只能传二进制文件3)Xmodem:非常古老的传输协议速度较慢,但由于使用了CRC错误侦测方法,传输的准确率可高达99.6%。4)Ymodem:Xmodem的改良版,速度比它快5)Zmodem:Zmodem采用了串流式(streaming)传输方式,传输速度较快
2013-07-10 02:37:46 7806 2
原创 [Oracle] CPU/PSU补丁安装教程
什么是CPU/PSUOracle CPU的全称是Critical Patch Update, Oracle对于其产品每个季度发行一次安全补丁包,通常是为了修复产品中的安全隐患。Oracle PSU的全称是Patch Set Update,Oracle对于其产品每个季度发行一次的补丁包,包含了bug的修复。Oracle选取被用户下载数量多,且被验证过具有较低风险的补丁放入到每个季度的
2013-07-05 04:19:25 6190
原创 [Oracle] 使用触发器实现IP限制用户登录
在Oracle里,不像MySQL那样方便,可以直接在用户上进行IP限制,Oracle要实现用户级别的IP限制,可以使用触发器来迂回实现,下面是一个触发器的例子:create or replace trigger logon_ip_controlafter logon on databasedeclare ip STRING(30); user STRING(30);beginS
2013-07-03 11:30:40 5142
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人