Tip: 看不到本站引用 Flickr 的图片? 下载 Firefox Access Flickr 插件 | AD: 订阅 DBA notes -- ![]()
2008-05-08 Thu
要求:
1、一年以上ORACLE DBA/技术支持相关工作经验,可以独立承担安装部署以及基本的ORACLE操作,熟悉UNIX/RAC/PARTITION/DATA GUARD优先
2、对OCP知识有一定理解,有OCP证书优先
3、主要服务通讯行业客户,出差较少,熟悉通讯行业优先
4、有良好的人际关系和沟通能力
5、请在简历注明待遇要求,如果附件发送简历请在附件名称注明个人姓名
6、此职位必须是女性,各位兄弟下次有机会欢迎.
待遇:
1:面谈
2:每月提供交通和通信补贴
3:在职期间,通过OCM考试,报销全部费用
有意者,请简历给我 guoyue@gmail.com
那位大哥有熟人推荐给我也行,有丰厚推荐费哟.
The page is in Catalan but the bundle is in English and pretty self-explanatory. Just drop the .tmCommand bundle file on TextMate. Then you can select some CSS or HTML that contains references to external images, hit Apple + control + B and they will be encoded as base64 and embedded with the data: protocol. Killer. Completely eliminates the need for that AppleScript droplet I was about to release. #
如果想更改数据库名,即修改db_name参数。在Oracle 9iR2提供了一个工具nid,可以通过它来完成这项工作,这样就避免了重建控制文件等繁琐方式来实现了。
nid工具可以只用来更改数据库名(db_name),或者只更改数据库的id(dbid),或者两个同时更改。
当涉及到更改db_name的时候,由于数据库名还存在与参数文件中,因此,更改数据库名时也要更改相应的参数。如果你使用了spfile,那么要重建它。另外,还需要重建密码文件。
有个nid工具的详细使用情况,在metalink 文章 Note:224266.1有详细的记载。
首先,我们来看看nid的使用帮助:
[oracle@testdbc oracle]$ nid
DBNEWID: Release 9.2.0.6.0 - Production
Copyright (c) 1995, 2002, Oracle Corporation. All rights reserved.
Keyword Description (Default)
----------------------------------------------------
TARGET Username/Password (NONE)
DBNAME New database name (NONE)
LOGFILE Output Log (NONE)
REVERT Revert failed change NO
SETNAME Set a new database name only NO
APPEND Append to output log NO
HELP Displays these messages NO
这里来解释一下几个问题:
(I):如果你只想更改数据库的id(dbid),那么你只需要指定target参数就可以了,具体的操作过程,请参考如下:
1. Backup the database
2. SHUTDOWN IMMEDIATE of the database
3. STARTUP MOUNT
4. Open one session and run NID with sysdba privileges
% nid TARGET=SYS/password@test_db
5. Shutdown IMMEDIATE of the database
6. Set the DB_NAME initialization parameter in the initialization parameter
file to the new database name
7. Create a new password file
8. Startup of the database with open resetlogs
(II):如果你想只更改数据库名(db_name),那么你需要设置SETNAME参数为Y,同时指定DBNAME参数,具体的操作过程,请参考如下:
1. Backup the database
2. SHUTDOWN IMMEDIATE of the database
3. STARTUP MOUNT
4. Open one session and run NID with sysdba privileges
% nid TARGET=SYS/password@test_db DBNAME=test_db2 SETNAME=Y
- the value of DBNAME is the new dbname of the database
- SETNAME must be set to Y. The default is N and causes the
DBID to be changed also.
5. shutdown IMMEDIATE of the database
6. Set the DB_NAME initialization parameter in the initialization parameter
file to the new database name
7. Create a new password file
8. Startup of the database(without resetlogs)
(III):如果你想同时更改数据库名(db_name)和数据库ID(dbid),那么你要指定DBNAME参数,同时设置SETNAME为N(其值默认也为N),具体操作过程,请参考如下:
1. Backup of the database.
2. Shutdown IMMEDIATE of the database
3. STARTUP MOUNT
4. Open one session and run NID with sysdba privileges
% nid TARGET=SYS/password@test_db DBNAME=test_db2
- the value of DBNAME is the new dbname of the database
5. After DBNEWID successfully changes the DBID,Shutdown IMMEDIATE of the database
6. Set the DB_NAME initialization parameter in the initialization parameter file to the new database name.
7. Create a new password file.
8. Startup of the database with open resetlogs
(IV):如果你只更改了数据库名,而没有更改数据库id,那么你打开数据库就不需要open resetlogs了。
下面是我自己做的一次操作,DBNAME和DBID同时更改。
1.数据库启动到mount状态
SQL> startup mount
ORACLE instance started.
total System Global Area 923904016 bytes
Fixed Size 452624 bytes
Variable Size 385875968 bytes
Database Buffers 536870912 bytes
Redo Buffers 704512 bytes
Database mounted.
2. 使用NID更改
[oracle@testdb2 dbs]$ nid target=sys/syspassword dbname=testdb2
DBNEWID: Release 9.2.0.6.0 - Production
Copyright (c) 1995, 2002, Oracle Corporation. All rights reserved.
Connected to database TESTDB1 (DBID=287286795) -- 注意这里的数据库名和数据库id
Control Files in database:
/cx300_testdb2/data1/control01.ctl
/cx300_testdb2/data2/control02.ctl
/cx300_testdb2/data3/control03.ctl
Change database ID and database name TESTDB1 to TESTDB2? (Y/[N]) => Y – 这里有个手工确认过程
Proceeding with operation
Changing database ID from 287286795 to 975736982
Changing database name from TESTDB1 to TESTDB2
Control File /cx300_testdb2/data1/control01.ctl – modified -- 更改控制文件中相关控制信息,这里估计是致控制文件于某种状态,以便后面信息的更改。
Control File /cx300_testdb2/data2/control02.ctl - modified
Control File /cx300_testdb2/data3/control03.ctl - modified
Datafile /cx300_testdb2/data2/system01.dbf - dbid changed, wrote new name -- 这里开始更改数据文件中的信息
Datafile /cx300_testdb2/data2/tbs_taobao_3.dbf - dbid changed, wrote new name
…………………………………………
Datafile /cx300_testdb2/data3/tbs_temp2.dbf - dbid changed, wrote new name
Control File /cx300_testdb2/data1/control01.ctl - dbid changed, wrote new name --- 这里开始更改控制文件中的信息
Control File /cx300_testdb2/data2/control02.ctl - dbid changed, wrote new name
Control File /cx300_testdb2/data3/control03.ctl - dbid changed, wrote new name
Database name changed to TESTDB2. –- 数据库名更改完毕
Modify parameter file and generate a new password file before restarting. –- 这里提示要在再次启动数据库时要更改parameter file和password file
Database ID for database TESTDB2 changed to 975736982. –- 数据库id更改完毕
All previous backups and archived redo logs for this database are unusable.
Shut down database and open with RESETLOGS option. –- 由于更改了dbid,所以要以resetlogs选项打开数据库
Succesfully changed database name and ID.
DBNEWID - Completed succesfully.
3.Shutdown database
SQL> shutdown immediate
ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.
4.修改初始化参数文件
###########################################
db_domain=""
db_name=testdb2
# db_name=testdb1
###########################################
5.重建口令文件
orapwd file=/opt/oracle/product/9.2/dbs/orapwdev-db2 password=syspassword
6.Startup mount,resetlogs打开
alter database open resetlogs;
7.创建新的spfile
create spfile from pfile='/opt/oracle/product/9.2/dbs/initdev-db2.ora';
8.对数据库做个全备份
我这里其实在开始的时候还少了一步,就是在更改之前,要对全库做备份。这个很重要,备份最重要!
Oracle database 10.2.0.4 patchset的Windows版本和Linux版本发布已经有一段时间了
在最新的Oracle数据库产品中,Windows和Linux平台是基础平台,新版本或者patchset的发布一般首先是这两大平台,然后是三大UNIX平台即AIX,HP-UX和Solaris
现在Oracle Database 10.2.0.4也就是Oracle Database的第三个大的patchset Solaris版本和HP版本已经发布几天了,在metalink上已经提供下载,AIX平台估计很快也提供下载。patch number是6810189 ,大小大概1个G左右,够大的。
请到updates.oracle.com下载(需要Metalink帐号)
….
230-
230- Welcome to the Oracle Patch Download FTP Server
230-
230- For detailed help, use command “quote site help”.
230
ftp> cd 6810189
250 Changed directory OK.
ftp> dir
200 PORT command OK.
150 Opening data connection for file listing.
total 1
-r–r–r– 1 root other 1758061824 Apr 30 20:58 p6810189_10204_HPUX-IA64.zip
-r–r–r– 1 root other 1195551830 Mar 17 05:36 p6810189_10204_Linux-x86-64.zip
-r–r–r– 1 root other 1053748381 Feb 22 18:58 p6810189_10204_Linux-x86.zip
-r–r–r– 1 root other 1276477084 Apr 30 19:25 p6810189_10204_Solaris-64.zip
-r–r–r– 1 root other 1034079272 Mar 18 00:03 p6810189_10204_Win32.zip
226 Listing complete. Data connection has been closed.
ftp: 收到 444 字节,用时 0.00Seconds 444000.00Kbytes/sec.
ftp>
从上面的截图看,Solaris和HPUX-IA都是在4月30号发布的。
作者:Fenng 发布在 dbanotes.net. ![]()
明天结婚。是阿里巴巴集团同事的集体婚礼。
和老婆风风雨雨一路走来。大学最后一年相识,毕业后,她在青岛,我在北京。她抛弃很好的工作背景,杀到北京,在北京生活三年,又和我一起来到杭州发展。感激老婆,每次虽然面对的不是什么大决择,也需要很大的勇气,想起来多不容易。这期间尤其令我感到内疚的是在北京期间老婆压力过大导致生病,深深自责。
不管怎么样,祝福我们吧! 我先祝福一下 :)
--EOF--
BTW,我的支付宝账户: dbanotes@gmail.com
相关文章|Related Articles
评论数量(68)|Add Comments
本文网址:http://www.dbanotes.net/mylife/marry.html
最近作者还说了什么? Follow Twitter / Fenng
作者:Fenng 发布在 dbanotes.net. ![]()
继续我的学习笔记之旅。Flickr 的 DBA Dathan Pattishall 在前几天的 MySQL 大会上分享了 Scaling Heavy Concurrent Writes In Real Time (Record every Referral for Flickr Realtime) ,其中介绍了 Flickr Stats 的设计经验。国内好多 Web 站点其实也在设计类似的功能,只是不知道细节罢了。
数据结构原型
字段 数据类型
Path_query Varchar(255) PK
Domain Varchar(50)
Owner Bigint
When Date
Object-ID Bigint
Object-Type Tinyint
Counts and stuff Various ints May be some keys
主键是字符串,开销太大。其他的索引如果做主键,也比较大。当表大小超过内存的时候,插入速度很慢,I/O 能力也上不来。
优化数据结构
数据预处理,通过 CONV(SUBSTR(MD5(Url),0,16),16,10) 把 Path_query 修改为 64 位的 ID (8字节), 主键为 ID+Owner+object+objecg-type,这个统计信息很容易抽象到一个数据对象,这个索引的设计也在于此。
另外补充一点,利用 PHP 的 ip2long() 和 long2ip() 函数对 IP 地址作预处理,耗费的存储空间只为原来地 25%,这是个很有趣的技巧。
数据 Sharding
对于海量的数据,以一个礼拜为间隔,水平分割。按照不同的数据力度每周一个表,每年一个全局表,再加上一个汇总表。数据量越大,InnoDB 存储引擎针对字符串的索引浪费的空间就越大。单个查询的 I/O 也自然大了起来。
所有应用对 DB 的响应要求 是 300 毫秒。但高并发写入的时候响应时间就糟糕起来。Flickr 的 Java 牛人实现了 Referral 队列,每 4000 条做批量处理。这样 IO 拥塞的就解决掉了。
总体的服务器规模过去 介绍过,对专业版用户的数据是永久保留的,而普通用户则只保留几周,为节省空间,采用 MyISAM 引擎,当用户转为专业版时,迁移数据。
补充一下,抓取 URL 是用的 curl 。最后,这篇 PPT 在线观看。
--EOF--
相关文章|Related Articles
评论数量(1)|Add Comments
本文网址:http://www.dbanotes.net/mylife/flickr_referral_design.html
最近作者还说了什么? Follow Twitter / Fenng
说实话我在淘宝上买的东西不多。今天计划在淘宝上买4件商品。在几百万的商家找到最适合的商品需要花费很大的精力。要么分别从4个商铺买到最适合的商品,分别支付4份物流的费用。要么再花些时间找到一家商铺能够买到所有的商品,这样就只需要支付一份物流费用了,但是却不能保证所有商品的价格都令人满意。另外,我想没有一家商铺在卖手机的同时还卖内衣的。淘宝因此带动了一大批的物流公司。相信各个公司的前台每天都会收到来自全国各地的快递,小到一包巧克力或者一件内衣。
幸好我今天买的都是衣服,可以在同一家商铺找到。选好衣服,跟商家旺旺沟通之后,商家让我先分别拍下4件衣服,他再修改各件衣服的价格。但是在用网上银行支付的时候,我还是需要分别启动、关闭网银4次才完成了所有的支付,这种用户体验实在让人很不爽!
淘宝已经占领了中国80%的C2C市场,就好像义乌批发市场 - 拥有大量便宜的商品,却令人无法是从,需要花费很多时间去淘,再一一讨价还价去买。当然,也有人以此为乐,我想起我们以前有位女同事,每天都花好几个小时泡在淘宝上,是为一种乐趣;而男同志大多认为买东西是件痛苦的任务。淘宝商城B2C已经开张1个月了,我还没用过,不知道能否在一站式购物和性价比之间找到平衡?
另一方面,国内网站的首页一个比一个眼花缭乱,各网站都恨不得把自家的东西都能放在首页上。而国外的网站首页却很简洁,但顺着某个链接点进去会发现非常丰富的内容。想起几年前,新浪新闻中心的JS广告展现无所不用其极,导致很多用户不能正常打开网页而产生大量的投诉。而现在,各种广告的展现形式依然在网页上上蹿下跳。
我最近发现www.qunar.com,http://www.vancl.com等一些用户体验超酷的网站,细节设计处处为用户考虑。相信这样的网站一定会取得成功,中国的企业已经越来越需要依靠细节取胜了!
在Clipper Group2006年8月发布的”备份技术的发展(The Evolution of Backups)”分析白皮书中,分析师针对提升容量效益部分做出了这样的报告:”重复数据删除技术是备份技术的下一个发展步骤。”在二级存储归档时删除重复数据可以大幅削减存储介质的成本、进一步流畅管理任务,同时最小化复制数据时的带宽需求。
尽管重复数据删除的概念非常先进,但由于识别重复数据、索引唯一数据、将被紧凑的数据恢复到初始状态所需要的处理能力要求的成本太高,致使这项技术的推广非常缓慢。但是,随着技术的发展,处理能力越来越经济高效,重复数据删除技术在近期再次成为市场的焦点。
许多厂商都声称自家提供的是’最佳’的重复数据删除产品,而将辨别真伪和判断哪些因素对企业的业务更为重要的难题留给了迷茫的用户。甚至有些厂商不切实际的大肆渲染自家产品可以巨量删除重复数据,致使很多早期的重复数据删除用户对他们之前选择的解决方案感到非常失望。
企业想要找到可以真正提供经济效益、高性能且无限扩展的长期数据储存的重复数据删除技术,就必须充分考虑到一些关键性因素。本文将有助于那些想要使用重复数据删除技术的用户了解更多背景资料,从而做出明智的购买选择。
重复数据删除成为一项操作需求
由于二级存储卷的不断增加,企业需要一种方法可以极大的减少数据卷。而很多法律法规的变化,也使得企业面临更大的挑战,被迫不得不改变他们原有的数据保护方式。通过消除重复数据,使数据归档时尽可能的紧凑、简洁,不仅极大的削减了企业成本,同时企业还可以将更多的数据在线保留更长时间。很多企业都希望将数据存储环境的成本效益和性能发挥到最优,而重复数据删除正是这样一种技术,因此很快吸引了企业IT主管的眼球。
虽然压缩技术也可以提供平均值为2:1的数据压缩,但这对于企业需要处理的海量数据只不过是很小的部分,实在是杯水车薪。只有重复数据删除技术才能满足企业大量削减数据量的需求。
由于人们对物理搬运磁带的方式所面临的风险(损坏、被窃、丢失等)早已非常明了,而企业在进行远程存储时又特别重视关键信息的保护和风险最小化的问题,电子化传输无疑成为远程传送的最佳选择。在将备份数据以电子传输方式传送到远程站点进行归档时,重复数据删除能够使所需的带宽需求最小化。
优秀的重复数据删除解决方案应该具备的关键性标准
当用户在评估重复数据删除解决方案时,可以将下面的八条标准作为主要评估标准:
- 1 能够解决关键性问题:有效删除重复数据
- 2 能够与当前环境相整合
- 3 VTL容量
- 4 重复数据删除对备份性能的影响
- 5 具备可扩展能力
- 6 支持分布式应用
- 7 能够对存储库提供实时保护
- 8 效率及有效性
1. 能够解决关键性问题:有效删除重复数据
重复数据删除解决方案是否能够真正解决关键问题所在:有效的删除二级存储上的重复数据,是我们首先要考虑的问题。重复的备份数据会造成多次储存需求,只要重复数据不被删除,储存需求就会继续。
ESG集团2007年发布的报告用图表方式说明了备份向新技术发展的必要性。相对于一次全备份来说,增量和差异数据备份也可以减少备份的数据量。
然而,即使是增量备份,在保护基于文件级变化的数据时,还是会备份很多重复的数据。当需要跨越多个站点的多台服务器进行备份时,通过部署重复数据删除解决方案减少存储才是更好的选择。
2. 能够与当前环境相整合
一个高效的重复数据删除解决方案应该对当前IT环境的影响/中断越小越好。许多企业都选择利用VTL备份来避免影响/中断,以在不改变企业当前备份策略、处理或软件的情况下提升备份质量。因此,基于VTL的重复数据删除技术在部署时对环境影响也应该是最小的。它将更多的注意力集中在了备份这个巨大的重复数据存储池上。
基于VTL的t重复数据删除解决方案通常要求使用专用设备,但这并不影响部署的灵活性。一个充分灵活的重复数据删除解决方案应该即可以以软件包形式提供给用户,也可以提供给用户整体的解决方案(Turnkey Appliance),从而最大限度的使用户的现有资源得以利用。
3. VTL容量
如果重复数据删除技术的部署是围绕着VTL进行的,那么VTL自身的容量就必须作为评估的一部分来考虑。重复数据删除节省下的容量是不能解决由于使用不够规格的VTL所引发的问题的。因此,既要全面考虑VTL的功能性、性能、稳定性以及支持能力也要充分考虑重复数据删除的扩展能力。
4. 重复数据删除对备份性能的影响
在哪里、什么时候进行重复数据删除是关系到备份处理性能的非常重要的问题。有些解决方案试图在数据进行备份时删除重复数据,这会使VTL的性能降低多达60%以上,直接造成备份过程太慢和备份窗口太大的严重性能影响。
相比之下,在备份任务完成之后进行重复数据删除的解决方案则不会出现这些问题,而且不会对备份性能带来任何影响。另外,为了最大限度的发挥易管理性,解决方案允许用户依照多种不同的因素,如资源利用、生产进度、创建时间等进行精细(磁带级或磁带组级)的基于策略的重复数据删除。这使得存储经济性轻松实现,同时,也将系统资源的利用发挥到最大。
5. 具备可扩展能力
由于重复数据删除解决方案是用于长期的数据储存的,在容量和性能方面的可扩展能力也是非常重要的考虑因素,而且至少要考虑未来五年甚至更长时间的增长计划。那么,在保证快速访问的前提下,你希望有多少数据保存在磁带上?你需要怎样的数据索引系统呢?
优秀的重复数据删除解决方案提供的架构,无论是在初始部署时,还是面对未来系统的长期增长,都应该能保证最优化(Right-sizing)、最经济的架构规模。集群可以帮助用户满足不断增长的容量需求—即使是N多Petabyte数据增长的环境—而且不会降低重复数据删除的效率或系统的性能。
这个架构还为存储库保护的部分提供了故障切换(Failover)功能。
6. 支持分布式应用
重复数据删除技术,不只是能为单个数据中心带来利益,对于具有多个分支机构或多个站点的大型企业来说,它可以让整个企业的分布式应用受益无穷。一个包含复制和多级重复数据删除的解决方案可以将这一技术的优势发挥到极致。
举例来说,一个企业由1个总部和3个区域代表机构构成,可以在区域代表机构部署一台具备重复数据删除功能的容灾设备,使本地存储及向远程中央站点的复制更为高效。这种解决方案使数据复制到中央站点的带宽需求降到最低,它只不过是用来确定远程的数据是否已经包括在中央的存储库中。所有站点中,只有唯一的数据会被复制到中央站点或是容灾站点,否则所需的带宽就会增大。
7. 能够对存储库提供实时保护
保证对删除重复数据的存储库的访问是非常关键的,因此它不能允许有单点故障发生。一个优秀的重复数据删除解决方案应该包括可以在本地存储故障发生时提供保护的镜像功能,同时也应该具备复制功能以在灾难发生时从提供保护。这种解决方案还应该在出现节点故障时具备故障切换能力,即使是一个集群中的多个节点出现故障,企业也必须能够及时恢复数据同时还要保证业务持续运营。
8. 效率及有效性
与基于文件的重复数据删除方式相比,在SUBFILE或数据块级分析数据的方式删除的冗余数据会更多。比如,一个4MB大小的文件被修改了一行内容,如果是文件级解决方案,整个4MB的文件都必须再被保存,而存储上就需要保存两遍。如果这个文件被发送给多个人(这种情况非常普遍),这种负面的效应也会随之倍增。
大多数SUBFILE重复数据删除处理是通过将大量的数据分割成’块’,就像虚拟磁带匣一样,在相对小尺寸的数据块中搜索重复数据。分割成大块的数据处理速度更快,但发现的重复数据也比较少;而分割成小块的数据可以更轻松的发现更多重复数据,但它在扫描数据时所需的开销也会更高。
如果数据在磁带(或其它应用的数据流)的时候就被分割成’块’,重复数据删除处理在备份软件创建的元数据上就能进行。优秀的解决方案可以分离元数据,从而在分割成’块’的实际数据文件中发现重复数据,这种方式使找到重复数据的机率更高。有些重复数据删除解决方案甚至可以按照所掌握的数据格式来调节分割的’块’的大小。如果能将这些技术结合应用,将使发现的重复数据数量大幅增加。这在重复数据删除解决方案的经济效益标准方面影响重大。
找到最适合的整体解决方案
由于业务应用需要和法律法规的要求,存储的数据量还在不断的增加,重复数据删除也快速上升到至关重要的地位。在大幅消除数据量、削减存储需求、最小化数据保护成本和风险方面,重复数据删除可说是唯一的应对办法。
尽管重复数据删除技术所带来的利益多多,企业还是应该抵御住不时出现的针对这一技术的大肆抄作。无论是哪种方式,重复数据删除的删除比率都可以根据数据自身的格式和保护策略的不同而发生变化。
为了使重复数据删除技术的利益最大化,企业应该从上面提到的几个标准出发,充分考虑,仔细评估,找到真正适合自己的重复数据删除解决方案,而不应该简单的听信于宣传的重复数据删除比率的理论数值。
今年 2 月份的时候,曾提到过 Facebook 将改进个人资料页面布局,当时预计在 4 月初即可完成全面的升级,不过由于其他一些功能应用的改进和升级,被耽搁了一下,不过据内部消息,此次改版近在咫尺。根据最新的消息,多页卡页面包含了五个重要的 Tab:Feed、信息、Wall、相片与 Boxes。Feed 部分除了原本个人在 Facebook 的动态,而生成的 Mini-Feed 之外,还将增强





















