oracle单实例 ASM归档变更


#asmcmd这个东西非常好,简化了管理员对于ASM相关的操作

#ASM实例开启归档
ASM开启归档与普通的一样,只是归档日志的目录需要变化。
1.先查询好准备的归档日志的挂载点目录
ASMCMD> pwd
+DISKGROUP2/TEST/ARCH

2.更改命令
alter system set log_archive_dest_1=’LOCATION=+DISKGROUP2/ARCH’ scope=spfile

3.更改归档
SQL> alter system set log_archive_dest_1=’LOCATION=+DISKGROUP2/ARCH’ scope=spfile;

System altered.

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.

Total System Global Area 285212672 bytes
Fixed Size 1267044 bytes
Variable Size 109054620 bytes
Database Buffers 167772160 bytes
Redo Buffers 7118848 bytes
Database mounted.

SQL> alter database open;

Database altered.

SQL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination +DISKGROUP2/test/arch
Oldest online log sequence 16
Next log sequence to archive 18
Current log sequence 18

//手工归档一次
SQL> alter system archive log current;

System altered.

//查看一下归档的效果,在+DISKGROUP2/ARCH下面有了手工归档出来的归档日志文件
ASMCMD> pwd
+DISKGROUP2/ARCH
ASMCMD> ls
1_19_740941867.dbf

//如果你在配置磁盘的时候配置了冗余,那么你会在如下目录找到一个备份,Redund便是冗余的提示信息,通常情况下会在磁盘组中创建如下
//的缺省目录,+$DISKGROUP_NAME/ORACLE_SID/ARCHIVELOG,当然如果你创建了一个数据文件,在平级的目录中也会出现DATAFILE的关键字目录,与
//ARCHIVELOG平级
ASMCMD> pwd
+DISKGROUP2/TEST/ARCHIVELOG/2011_01_28
ASMCMD> ls -lrt
Type Redund Striped Time Sys Name
ARCHIVELOG MIRROR COARSE JAN 28 13:00:00 Y thread_1_seq_18.258.741619145
ARCHIVELOG MIRROR COARSE JAN 28 13:00:00 Y thread_1_seq_19.259.741619671

ASMCMD> pwd
+DISKGROUP2/TEST
ASMCMD> ls
ARCH/
ARCHIVELOG/
DATAFILE/

PS:dba_extents是个不错的东西,dba可以用它查询某个用户对象的磁盘占用开销情况

SQL> select owner,segment_name,bytes from dba_extents where owner=’SCOTT’;

OWNER SEGMENT_NAME BYTES
—————————— —————————— ———-
SCOTT DEPT 65536
SCOTT EMP 65536
SCOTT BONUS 65536
SCOTT SALGRADE 65536
SCOTT PK_DEPT 65536
SCOTT PK_EMP 65536

IMP-00041


今天在客户那边做数据迁移的时候遇到一些问题,主要是:IMP-00041: 警告: 创建的对象带有编译警告
查了一下原因,大致如下,以后再做数据迁移的时候需要额外注意,尤其用户中有view对象的时候。
用户的环境是这样的,在库里有三个oracle的用户,其中一个用户中有几张视图是引用其他用户的,所以
在数据导入的时候,需要导入”独立性最好”的用户对象,什么是”独立性最好”?大概的意思是自相关,自己只和自己
打交道没有引用其他用户的对象。如果顺序错了,自然会出现”IMP-00041: 警告: 创建的对象带有编译警告”类似的错误,
可能是数据导入的过程中,用户有view对象,而view需要引用的对象在其他用户里。
除此之外,如果是夸用户的对象,还需要额外注意权限的问题。及时用户具备DBA的角色,在view中,仍需显示的
“grant select.. on…”来给用户授权,否则也会出现imp-00041,也许在你recompile之后,仍然无法解决,那么,那么
drop掉视图,重新创建吧。。
–EOF–

oracle priviledges


我们知道”系统权限”的信息,如果你用sys / as sysdba登陆的话,可以通过查询dba_sys_privs来查询,
而”角色”则可以通过dba_role_privs来查询,这两个是我比较熟悉的,也同时是经常被使用的。而例如某个用户
test被赋予了另外用的视图的访问权限,如何来查这些被授予的权限?可以通过dba_tab_privs来查询
SQL> desc dba_tab_privs;
名称 是否为空? 类型
—————————————————————– ——– ————————–
GRANTEE NOT NULL VARCHAR2(30)
OWNER NOT NULL VARCHAR2(30)
TABLE_NAME NOT NULL VARCHAR2(30)
GRANTOR NOT NULL VARCHAR2(30)
PRIVILEGE NOT NULL VARCHAR2(40)
GRANTABLE VARCHAR2(3)
HIERARCHY VARCHAR2(3)

SQL> select * from dba_tab_privs where grantee=’USER’;
这样就能得到USER的对象权限,例如能够访问的表、视图等等

所以如下三个视图可以一起来记忆,主要就是涉及到广义的权限,系统权限,角色,对象权限
dba_sys_privs

dba_role_privs

dba_tab_privs

[zz]央行四年后重启逆回购 3000亿紧急舒缓流动性


央行四年后重启逆回购 3000亿紧急舒缓流动性

2011年01月25日 01:34 来源: 中国网 【字体:大 中 小】 网友评论
1月24日,银行间市场指标利率——7天期质押式回购利率较上一个交易日大幅下跌200多个基点,但部分产品利率仍在上升,一个月期回购利率甚至大幅飙升至9%以上。

  新一轮存款准备金缴款之后,银行间市场流动性依然告急。

  1月24日,银行间市场指标利率——7天期质押式回购利率较上一个交易日大幅下跌200多个基点,但部分产品利率仍在上升,一个月期回购利率甚至大幅飙升至9%以上。

  “资金还是很紧张,隔夜资金利率虽然下降但成交量只有不到2000亿元,融出的少,融入的多,连四大行都在借钱,所以很难融到,我们也在到处找钱。听说今天下午还有逆回购,但不知道具体是对哪些机构,规模有多大。”一城商行资金交易员言语之中透着焦虑。

  时隔近四年后,央行在本月20日再次启动定向逆回购操作,向市场投放资金,规模约为500亿元。1月24日,市场人士透露央行再次启动逆回购,而且规模较大,或在3000亿元以上。另外,央行24日还宣布,继续暂停中央银行票据发行,为连续第二周暂停。

  再启逆回购

  虽然每年到春节之前银行间市场都会出现资金紧张局面,但今年紧张程度更甚以往。

  1月20日是商业银行上缴存款准备金之日,银行间货币市场的利率因此以百基点为单位飙升,7天回购利率超过2010年底的高点,接近7.5%。为了缓解资金面紧张,央行于20 日与部分银行进行逆回购操作,以向银行释放资金,涉及金额至少500亿元。而上一次央行在公开市场上进行逆回购还是在2007年2月13日。

  所谓逆回购是指央行向一级交易商(多数是银行)购买有价证券,并约定在未来特定日期将有价证券卖给一级交易商的交易行为。央行被迫启动逆回购输入资金,足以说明银行间流动性之紧张。不过,这500亿元仍难以解市场之渴,“流动性还是很紧张,很难借到钱”。上述城商行交易员说。

  1月27日,银行间市场1天期和7天期回购定盘利率分别报4.8400%和4.8000%,较上一个交易日分别下跌73.00和250.00个基点。1天和7天期Shibor也分别下跌68.34和189.66个基点,报5.0408%和5.4242%,但一个月期以上Shibor 仍在走高,其中一个月期Shibor上涨46.42个基点至7.9417%。

  上述股份行交易员表示,一个月期回购利率也大幅上升。“目前隔夜和7天期回购利率虽略有下降,但一个月期回购利率达到9%以上,银行现在是为春节而战。”该交易员说。

  在此背景下,市场人士称1月24日央行再次启动逆回购。“今天是央行来问各家银行,要不要做逆回购,大部分银行都说要,我们也做了逆回购,量挺大。现在连工行都四处借钱,国有银行的流动性也几乎干枯了。”上述股份行交易员表示。

  上周央行公开市场取消央票发行和正回购,公开市场净投放资金2490亿元。数据显示,当周净投放资金是2010年2月8日来的最大单周投放量。经历上周净投放,央行公开市场已经连续10周净投放累计6250亿元资金,但并未能缓解银行间市场资金面的紧张。

  “本周到期资金为1700亿,央行又继续暂停央票发行,加上逆回购释放的资金,或许会对安抚市场情绪有一点作用。”一位不愿透露姓名的银行人士表示。

  紧缩预期加剧资金面紧张

  对于银行间市场利率的这一波急升,多位市场人士认为此次上调存款准备金率的时机选择是一个重要因素。

  “原来银行以为要春节后才会调(存款准备金率),本来已经准备好春节的备付金,但这次上缴存款准备金一下子抽走4000亿,这不是个小规模,再加上春节期间备付资金需求,所以资金面就骤然紧张了。”上述银行人士表示。

  他同时指出,央行的逆回购对于缓解市场资金面的紧张有一定作用,但除了上调存款准备金和节日因素之外,推高市场利率的还有其他因素。“一是财政部回款,还有就是1月25日有一只可转债发行,很多机构要借钱买,也抽走很多资金。25日资金面还会更紧张。”

  平安证券固定收益部副总经理石磊亦指出,最近两年中,1月份流通中的现金(M0)的月增长均超过6000亿元,这相当于提高存款准备金率1个百分点,而12月份释放的财政存款几乎达到9000亿元,而从历年的经验上看,1月份基本上要还回去一半,也就是说相当于央行会通过财政存款的变化回笼流动性近4000亿元。

  “这两个因素相当于银行体系内流动性减少1万亿之多,对不到13万亿的全部准备金存款而言已经是一个足够大的数字了,这意味着商业银行为了保持与2010年末相近的超储率,就要提前提高超储1.5个百分点,而新流入几千亿的资金是根本解不了渴的。”石磊说。

  在多重因素的叠加下,上述银行人士预计1月25日市场资金面将依旧紧张,但从26日开始预计资金会有所回流。“按照往年的惯例,到节前最后两个交易日资金面又会有所缓解,因为实际上机构并不需要储备那么多资金,到那两天资金需求下降,就会增加资金供应。”

  石磊认为,近期资金面超预期的紧张主要是季节性因素和紧缩预期使然,节后资金面会有改善。“M0在春节后一般会下降3000-4000亿,财政存款一般在2-3月份会基本稳定,这相当于下调存款准备金率0.5个百分点。同时各家机构储藏的超额备付金也会自然随着节日的过去而下降。”

  但上述银行人士表示,一般而言节后资金面会宽松下来,不过鉴于今年以来央行调控节奏的频繁,节后是否还会上调存款准备金率还存有疑问。“有可能春节期间就会公布上调,节后再上缴。预期的紧张也有可能会加剧市场的紧张局面。”(21世纪经济报道)

[zz]5种开源虚拟化技术推荐


5种开源虚拟化技术推荐
12人关注此资讯, 我要关注(收藏)(?) | 新闻投递 老枪 发布于: 2011年01月21日 (4评)

虚拟化现在已经成为主流技术,对于大企业来说。大玩家包括EMC、IBM、微软,当然他们致力于专利软件的推广。下面我们就看看有哪些不错的开源虚拟化软件。

1、 开源虚拟机 KVM
KVM

KVM (全称是 Kernel-based Virtual Machine) 是 Linux 下 x86 硬件平台上的全功能虚拟化解决方案,包含一个可加载的内核模块 kvm.ko 提供和虚拟化核心架构和处理器规范模块。

使用 KVM 可允许多个包括 Linux 和 Windows 每个虚拟机有私有的硬件,包括网卡、磁盘以及图形适配卡等。

2、 开源虚拟机 Xen

Xen 是一个开放源代码虚拟机监视器,由剑桥大学开发。它打算在单个计算机上运行多达100个满特征的操作系统。操作系统必须进行显式地修改(“移植”)以在Xen上运行(但是提供对用户应用的兼容性)。这使得Xen无需特殊硬件支持,就能达到高性能的虚拟化。

3、 Linux虚拟化技术 OpenVZ

OpenVZ是基于Linux内核和作业系统的操作系统级虚拟化技术。OpenVZ允许物理服务器运行多个操作系统,被称虚拟专用服务器(VPS,Virtual Private Server)或虚拟环境(VE, Virtual Environment)。

与VMware这种虚拟机和Xen这种半虚拟化技 术相比,OpenVZ的host OS和guest OS都必需是Linux(虽然在不同的虚拟环境里可以用不同的Linux发行版)。但是,OpenVZ声称这样做有性能上的优势。根据OpenVZ网站的 说法,使用OpenVZ与使用独立的服务器相比,性能只会有1-3%的损失。

OpenVZ是SWsoft, Inc.公司开发的专有软件Virtuozzo的基础。OpenVZ的授权为GPLv2。

OpenVZ由两部分组成,一个经修改过的操作系统核心与及用户工具。

4、开源虚拟机 VirtualBox

VirtualBox 是一款功能强大的 x86 虚拟机软件,它不仅具有丰富的特色,而且性能也很优异。更可喜的是,VirtualBox 于数日前走向开源,成为了一个发布在 GPL 许可之下的自由软件。

5、Lguest

http://lguest.ozlabs.org/lguest-logo.png

Lguest 是由IBM工程师Rusty Russell(澳大利亚开发者)发起的虚拟化项目,是一个只有5000行代码的精简hypervisor(虚拟机管理程序),它已经包括在最近版本的内核里了。和KVM相似,它支持 Intel和AMD芯片的最新虚拟化技术。但又与VMware公司的ESX Server不同,在Lguest创建的虚拟机里的操作系统知道自己是被虚拟出来的。所以在调用CPU周期时它可以直接向真正的硬件发出请求,而不是作为中间媒介而降低了效率,因此这种架构大大提高了效率。Lguest采用GPL授权。

[zz]第三方支付牌照国家队占先机 近半企业或消失


我怎么依稀记得,媒体之前说支付宝无法获得?总之各种标题党,意思是”支付宝没戏”,”落选”….看来,这就是媒体,没事瞎鸡巴吵吵,断章取义,闲的蛋疼,没事找事,无事生非(这点很像老干部)…总之,这,这就是媒体。。。

第三方支付牌照国家队占先机 近半企业或消失
http://www.sina.com.cn 2011年01月20日 05:56 南方都市报官方微博南方都市报

  随着首批正规军的诞生,第三方支付行业将开始洗牌,近半企业或将彻底消失

  去年12月17家第三方支付企业申领牌照在央行公示后,牌照的发放就进入了倒计时。

  南都记者昨日从多位第三方支付企业人士处获悉,央行在春节前发放支付许可证的可能性很大,而确切的时间窗口有可能在本周五。据预计,具有“国字号”的银联相关支付企业以及支付宝、财付通等大型支付企业都有望成为首批获得支付牌照的企业。

  而支付行业分析人士认为,首批支付“正规军”成型后将促使行业整合,而近半企业可能将彻底消失。

  春节前有望发牌

  “本以为上周五央行会发牌照的,结果上周上调了存款准备金率,牌照发放的时间可能会顺延,这周五可能性应该非常大。”一位来自支付行业的总经理对南都记者透露。

  上述支付企业人士透露,按照牌照申报程序,17家第三方支付企业需向其所在地的央行分支机构提交《支付业务许可证》申请,然后汇总到央行汇审,接到受理行政许可申请通知书的方可公示,期限一般为3天。“去年12月20日左右17家企业申请支付许可证的公告相继在各地央行网站公告,预计审批程序应该基本完成了,剩下只是等牌照最后发放的公告。”一家大型支付企业的公关负责人对记者表示。

  多家接受采访的支付企业认为,最终获得第一批许可证的企业将从17家企业中有所取舍。据悉,对于首批获得牌照的企业名单,央行总行将以审委会的形式审批。央行相关负责人组成的审委会将投票决出最终名单。

  “国家队”占据先机

  据了解,17家进入央行公示程序的申报企业分别是北京6家,上海6家,深圳2家,杭州、广州、海南各一家,具有“国字号”背景的银联相关企业占据四席、支付宝、财付通、易宝、快钱、资和信等大型支付企业悉数入选。

  记者此前还从靠近监管部门的人士处获悉,即将发放的支付牌照分为三类:网络支付、预付卡以及收单服务。支付企业可以申请多张牌照。

  据透露,牌照的类别也是依据管理办法中对支付企业的大致划分,一是依托大型B2C、C2C网站的网关支付,如支付宝;二是通过销售点(POS)终端的线下支付,三是储值卡等预付卡服务。支付行业人士认为,“国字号”在获取牌照上将占据先机。

  17席“先遣队员”中有4家银联系支付企业分别为北京银联、上海银联、广州银联及数字王府井。而首批有望获得牌照的第三方支付企业中国字号的银联在线极有可能率先冲线,其他名额将由快钱、支付宝、财付通、易宝支付及资和信等几家规模较大的公司瓜分,排名靠后的其他企业成为“黑马”的几率很小。

  行业洗牌进入倒计时

  随着首批非金融支付机构正规军的诞生,业内一致认为将会是第三方支付行业洗牌的契机。

  “第三方支付企业将迎来洗牌,大部分企业开始对照标准进行调整,而近一半企业将彻底消失。”艾瑞咨询分析认为,在政府监管政策逐渐明朗的预期下,行业领先的支付企业,如支付宝、财付通和快钱等,纷纷拓展自身业务领域,通过开放支付服务平台,以及将第三方支付服务与更多行业应用进行紧密结合等方式,不断拓展对外围业务的覆盖。

  尽管多位接受采访的第三方支付企业都不在意能否成为首批获得支付许可证的企业,但在抢夺用户、抢占市场上,支付企业近期动作频频。不仅目前在第三方支付领域处于领跑地位的支付宝,日前发布了通用积分类产品———积分宝;互联网公司的另一巨头盛大也在近日宣布,旗下全资子公司盛付通启用全新域名,盛大进军电子第三方支付的计划正式浮出水面。“央行出台支付管理办法和发放牌照,从产业发展的角度看是好事,因为只有产业做大了,大家才能有更多的市场和利润。”一家支付公司的总经理对记者称

when the phone rings


电话的一头传来了可爱mm的声音,喃喃的声音,让人忍不住想捏一下。bryan Adams的歌曲还可以,主要用来回味,例如当你在10年前听到这首歌,然后又在10年之后听见,我仔细想着10年前的事情与情景,努力的回忆着10年前自己的思维和周遭的一切,半梦半醒,捕捉时间的过程,也是自省的过程,原来,我一直追着它,不曾断掉。我想,可能再过10年,或者再过20年,也是这样的飞速,然而再回头看看,一切还是那样,有些变了,有些永远不会。

create asmdisk


在oracle上有自己的存储解决方案asm,日后asm会慢慢的变成趋势,下面是创建asm磁盘的过程
1.asm相关的rpm包
os:rhel5u4 x86上可能需要下面这些包
(1)oracleasm-support-2.1.4-1.el5.i386.rpm
(2)oracleasmlib-2.0.4-1.el5.i386.rpm
这两个包无论哪个版本的rhel都需要打的,算是公共的包吧,当然据说oracle unbreakable linux不用额外的去oracle.com去下载这些asmlibs相关的包
可能这也是oracle干的一件好事吧。
(3)oracleasm-2.6.18-164.el5-2.0.5-1.el5.i686.rpm
(4)oracleasm-2.6.18-164.el5PAE-2.0.5-1.el5.i686.rpm
(5)oracleasm-2.6.18-164.el5debug-2.0.5-1.el5.i686.rpm
(6)oracleasm-2.6.18-164.el5xen-2.0.5-1.el5.i686.rpm
(7)oracleasm-2.6.18-164.el5-debuginfo-2.0.5-1.el5.i686.rpm
其中xen和debug相关的包,也可能环境中并不需要,但我是打上了,遇到依赖性的问题就去补充相应的包,例如kernel-PAE,kernel-debug等等

2.格式化盘
我的环境是虚拟机,分了四块盘给os。/dev/sde,/dev/sdf,/dev/sdg,/dev/sdh
格式化成单个的主分区:(follow this)
[root@r ~]# fdisk /dev/sdf
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won’t be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-130, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-130, default 130):
Using default value 130

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

3.配置ASM环境
[root@r asmlibs]# oracleasm configure -i
Configuring the Oracle ASM library driver.

This will configure the on-boot properties of the Oracle ASM library
driver. The following questions will determine whether the driver is
loaded on boot and what permissions it will have. The current values
will be shown in brackets (‘[]’). Hitting without typing an
answer will keep that current value. Ctrl-C will abort.

Default user to own the driver interface []: oracle
Default group to own the driver interface []: oinstall
Start Oracle ASM library driver on boot (y/n) [n]: y
Scan for Oracle ASM disks on boot (y/n) [y]: y
Writing Oracle ASM library driver configuration: done

4.创建ASM磁盘
查看一下asm配置的是否正确
[root@r ~]# lsmod|grep oracleasm
oracleasm 46356 1
[root@rhel5u4test ~]# dmesg|grep oracleasm
ASM: oracleasmfs mounted with options:

创建ASM磁盘
[root@rhel5u4test ~]# /etc/init.d/oracleasm createdisk VOL1 /dev/sde1
Marking disk “VOL1” as an ASM disk: [ OK ]
[root@rhel5u4test ~]# /etc/init.d/oracleasm createdisk VOL2 /dev/sdf1
Marking disk “VOL2” as an ASM disk: [ OK ]
[root@rhel5u4test ~]# /etc/init.d/oracleasm createdisk VOL3 /dev/sdg1
Marking disk “VOL3” as an ASM disk: [ OK ]
[root@rhel5u4test ~]# /etc/init.d/oracleasm createdisk VOL4 /dev/sdh1
Marking disk “VOL4” as an ASM disk: [ OK ]
//查看创建的ASM磁盘信息
[root@rhel5u4test ~]# /etc/init.d/oracleasm listdisks
VOL1
VOL2
VOL3
VOL4

dblink test summary


做了一天的测试,对于dblink有了一些基于实验的认识。dblink所做的事情就是访问远端数据库中一张表的一种方式,这是他的核心的功能。无论怎样,这个不是我所需要的,无法解决我的问题。相信在数据迁移中,从A库到B中里,我只想把表拿过来,而且无论A库中,这些表的DDL中怎样写死了storage的选项,写死了表空间的名称,我希望的是当迁移到B库的时候,与后面的存储结构不相关,换个说法,admin无需再创建与A库,一摸一样的tablespace name,因为迁移的原因大多数是因为A库在最初的规划上不合理,例如只有一个USER表空间…..下一个transport tablespace..

dblink test3


说明:都知道dblink是连接远端数据库,访问远端数据库中表的一种便利方式,试想如果创建了一个dblink这个link是连接自身的,会有什么效果?
然后测试把一个用户下的schema迁移至,或者复制到另外一个预先创建的用户下

//先创建一个指向自己的dblink
create public database link linktoself connect to scott identified by tiger
using ‘(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.201.128)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = test)))’

//在os上开始remap_schema的操作
zhangsan这个用户是我自己手工创建的,在impdp的时候 “remap_schema=scott:zhangsan”,我想即使我不手工创建,后续过程impdp时会自动帮我加上这个用户,当然
如果已经有了,在log中肯定有一个条类似”ORA-31684: Object type USER:”ZHANGSAN” already exists”的错误

[oracle@rhel5u4test ~]$ impdp scott/tiger directory=test logfile=scott_zhangsan_remap.log schemas=scott remap_schema=scott:zhangsan network_link=linktoself

Import: Release 10.2.0.4.0 – Production on Wednesday, 19 January, 2011 13:11:47

Copyright (c) 2003, 2007, Oracle. All rights reserved.

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 – Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Starting “SCOTT”.”SYS_IMPORT_SCHEMA_01″: scott/******** directory=test logfile=scott_zhangsan_remap.log schemas=scott remap_schema=scott:zhangsan network_link=linktoself
Estimate in progress using BLOCKS method…
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 94.68 MB
Processing object type SCHEMA_EXPORT/USER
ORA-31684: Object type USER:”ZHANGSAN” already exists

Processing object type SCHEMA_EXPORT/SYSTEM_GRANT
Processing object type SCHEMA_EXPORT/ROLE_GRANT
Processing object type SCHEMA_EXPORT/DEFAULT_ROLE
Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
Processing object type SCHEMA_EXPORT/SEQUENCE/SEQUENCE
Processing object type SCHEMA_EXPORT/TABLE/TABLE
ORA-31679: Table data object “ZHANGSAN”.”NC_JMSQUEUE” has long columns, and longs can not be loaded/unloaded using a network link
. . imported “ZHANGSAN”.”CMOBJPROPS7″ 1017 rows
. . imported “ZHANGSAN”.”CMDATA” 103 rows
. . imported “ZHANGSAN”.”CMOBJPROPS26″ 592 rows
. . imported “ZHANGSAN”.”CMOBJNAMES_BASE” 21652 rows
. . imported “ZHANGSAN”.”CMUNIQUENAMES” 18331 rows
. . imported “ZHANGSAN”.”CMOBJPROPS25″ 8 rows
. . imported “ZHANGSAN”.”CMOBJPROPS30″ 13 rows
. . imported “ZHANGSAN”.”CMOBJPROPS14″ 1330 rows
. . imported “ZHANGSAN”.”CMPOLICIES” 3352 rows
. . imported “ZHANGSAN”.”CMCLASSES” 145 rows
. . imported “ZHANGSAN”.”CMOBJPROPS13″ 653 rows

//不过在上述的整个过程中,除了意料之中的error意外,还有几个需要注意的:
从”ORA-31679: Table data object “ZHANGSAN”.”NC_JMSQUEUE” has long columns, and longs can not be loaded/unloaded using a network link”
中可以看出,network link对于long类型的支持,是存在问题的,所以在做数据迁移的时候需要额外的小心了。。

dblink test 2


1.dblink可以用来把远端link的数据库中的某个用户下的schema同步到本地数据库中
同时,在dba_users中会自动创建你指定的数据库用户名称,测试开始

创建dblink:
SQL> create public database link linkto123 connect to scott identified by tiger
2 using ‘(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.201.123)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = orcl)))’;
//创建完毕dblink之后,记得要把scott解锁,否则后面会遇到很多错误信息,减少troubleshooting的时间

开始impdp导入测试:

[oracle@r~]$ impdp scott/tiger logfile=scott_remap.log schemas=scott remap_schema=scott:scott2 network_link=linkto123

Import: Release 10.2.0.4.0 – Production on Tuesday, 18 January, 2011 17:43:24

Copyright (c) 2003, 2007, Oracle. All rights reserved.

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 – Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Starting “SCOTT”.”SYS_IMPORT_SCHEMA_01″: scott/******** logfile=scott_remap.log schemas=scott remap_schema=scott:scott2 network_link=linkto123
Estimate in progress using BLOCKS method…
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 192 KB
Processing object type SCHEMA_EXPORT/USER
Processing object type SCHEMA_EXPORT/SYSTEM_GRANT
Processing object type SCHEMA_EXPORT/ROLE_GRANT
Processing object type SCHEMA_EXPORT/DEFAULT_ROLE
Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
Processing object type SCHEMA_EXPORT/TABLE/TABLE
. . imported “SCOTT2″.”DEPT” 4 rows
. . imported “SCOTT2″.”EMP” 14 rows
. . imported “SCOTT2″.”SALGRADE” 5 rows
. . imported “SCOTT2″.”BONUS” 0 rows
Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX
Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
Job “SCOTT”.”SYS_IMPORT_SCHEMA_01″ successfully completed at 17:44:02
//导入了很原始的scott中的四张表,我本地的数据库中scott大概有几百张表,linkto123远端的oracle中,scott没有任何变更过,我这个时候
很好奇是否会在dba_users中见到scott2????,查看一下:
SQL> select username from dba_users where account_status=’OPEN’;

USERNAME
——————————
SYSTEM
SYS
CM
SYSMAN
SCOTT
DBSNMP
MGMT_VIEW
SCOTT2

8 rows selected.
//竟然有scott2这个是在remap_schema的时候,自己创建的,而不是create user这样显示创建的。。。还不错,为以后的数据迁移提供了更多的选择。
我在想如果我这个dblink是连着自己身的,如果再做一次会有什么效果???

dblink test


1.the function of database link
两台不同的数据库服务器,从一台数据库服务器的一个用户读取另一台数据库服务器下的某个用户的数据,这个时候可以使用dblink

2.在A库上创建一个database link,访问B库的链接。然后用expdp把远端,通过dblink相连接的B库中scott用户的数据导出出来。
远端的一个数据库实例情况为:
(1)instance name:orcl
(2)本地配置的tns解析远端的名称为orcl
(3)远端被连接的用户信息scott

create public database link linkto123 connect to scott identified by tiger
using ‘(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.201.123)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = orcl)))’
//tnsping orcl是能够得到如下的信息,也就是能够解析的。

(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.201.123)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = orcl)))

SQL> create public database link linkto123 connect to scott identified by tiger
2 using ‘(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.201.123)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = orcl)))’;

Database link created.
//database link 创建完毕了

可以desc scott.emp@dblink_name来看看能够看到远端数据表的数据

//通过dblink访问远端数据库用户下面数据的权限,完全由创建dblink时候,使用的connect用户所限定。

在本地的库上先创建expdp可能需要的directory
用scott用户连接进oracle然后创建目录
SQL> create directory test as ‘/home/oracle/remote_test’
授权
SQL> conn / as sysdba
Connected.
SQL> grant read,write on directory test to scott;

Grant succeeded.

你最好确保expdp过程中两端使用的账户权限是一致的,否则会有下面的报错信息:(当然ora-31631的错误也很可能是因为相关权限的问题)
$ expdp scott/tiger directory=test dumpfile=scott_raw.dmp network_link=linkto123 logfile=expdp.log

Export: Release 10.2.0.4.0 – Production on Tuesday, 18 January, 2011 16:05:32

Copyright (c) 2003, 2007, Oracle. All rights reserved.

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 – Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
ORA-31631: privileges are required
ORA-39149: cannot link privileged user to non-privileged user

原来A库中,scott角色是connect,resource,dba。而B库中,scott没人经过任何处理,grant之,赋予权限,再次执行

[oracle@rhel5u4test remote_test]$ expdp scott/tiger directory=test dumpfile=scott_raw.dmp network_link=linkto123 logfile=expdp.log

Export: Release 10.2.0.4.0 – Production on Tuesday, 18 January, 2011 16:09:38

Copyright (c) 2003, 2007, Oracle. All rights reserved.

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 – Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

Starting “SCOTT”.”SYS_EXPORT_SCHEMA_01″: scott/******** directory=test dumpfile=scott_raw.dmp network_link=linkto123 logfile=expdp.log
Estimate in progress using BLOCKS method…
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 192 KB
Processing object type SCHEMA_EXPORT/USER
Processing object type SCHEMA_EXPORT/SYSTEM_GRANT
Processing object type SCHEMA_EXPORT/ROLE_GRANT
Processing object type SCHEMA_EXPORT/DEFAULT_ROLE
Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
Processing object type SCHEMA_EXPORT/TABLE/TABLE
Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX
Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
. . exported “SCOTT”.”DEPT” 5.656 KB 4 rows
. . exported “SCOTT”.”EMP” 7.820 KB 14 rows
. . exported “SCOTT”.”SALGRADE” 5.585 KB 5 rows
. . exported “SCOTT”.”BONUS” 0 KB 0 rows
Master table “SCOTT”.”SYS_EXPORT_SCHEMA_01″ successfully loaded/unloaded
******************************************************************************
Dump file set for SCOTT.SYS_EXPORT_SCHEMA_01 is:
/home/oracle/remote_test/scott_raw.dmp
Job “SCOTT”.”SYS_EXPORT_SCHEMA_01″ successfully completed at 16:10:52

 

it’s over


感冒临近结束,一切恢复正常,好好保重自己的身体,以及自己的作息。